mis-crystal-design-system 14.0.55-test-v6 → 14.0.56-test
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dropdown/dropdown.component.d.ts +2 -1
- package/dynamic-form/dynamic-form.component.d.ts +10 -2
- package/esm2020/async-search-dropdown/async-dropdown.component.mjs +1 -1
- package/esm2020/dropdown/dropdown.component.mjs +79 -50
- package/esm2020/dynamic-form/dynamic-form.component.mjs +471 -213
- package/fesm2015/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2015/mis-crystal-design-system-dropdown.mjs +87 -49
- package/fesm2015/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2015/mis-crystal-design-system-dynamic-form.mjs +524 -212
- package/fesm2015/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system-async-search-dropdown.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system-dropdown.mjs +78 -49
- package/fesm2020/mis-crystal-design-system-dropdown.mjs.map +1 -1
- package/fesm2020/mis-crystal-design-system-dynamic-form.mjs +470 -212
- package/fesm2020/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
- package/package.json +1 -9
- package/datepicker/base/bs-datepicker-container.d.ts +0 -44
- package/datepicker/bs-datepicker-inline.component.d.ts +0 -64
- package/datepicker/bs-datepicker-inline.config.d.ts +0 -6
- package/datepicker/bs-datepicker-input.directive.d.ts +0 -33
- package/datepicker/bs-datepicker.component.d.ts +0 -126
- package/datepicker/bs-datepicker.config.d.ts +0 -143
- package/datepicker/bs-datepicker.module.d.ts +0 -29
- package/datepicker/bs-daterangepicker-inline.component.d.ts +0 -64
- package/datepicker/bs-daterangepicker-inline.config.d.ts +0 -9
- package/datepicker/bs-daterangepicker-input.directive.d.ts +0 -33
- package/datepicker/bs-daterangepicker.component.d.ts +0 -118
- package/datepicker/bs-daterangepicker.config.d.ts +0 -7
- package/datepicker/bs-locale.service.d.ts +0 -13
- package/datepicker/chronos/create/check-overflow.d.ts +0 -2
- package/datepicker/chronos/create/clone.d.ts +0 -1
- package/datepicker/chronos/create/date-from-array.d.ts +0 -2
- package/datepicker/chronos/create/from-anything.d.ts +0 -4
- package/datepicker/chronos/create/from-array.d.ts +0 -2
- package/datepicker/chronos/create/from-object.d.ts +0 -2
- package/datepicker/chronos/create/from-string-and-array.d.ts +0 -2
- package/datepicker/chronos/create/from-string-and-format.d.ts +0 -4
- package/datepicker/chronos/create/from-string.d.ts +0 -4
- package/datepicker/chronos/create/local.d.ts +0 -3
- package/datepicker/chronos/create/parsing-flags.d.ts +0 -2
- package/datepicker/chronos/create/parsing.types.d.ts +0 -64
- package/datepicker/chronos/create/valid.d.ts +0 -6
- package/datepicker/chronos/duration/bubble.d.ts +0 -4
- package/datepicker/chronos/duration/constructor.d.ts +0 -21
- package/datepicker/chronos/duration/create.d.ts +0 -8
- package/datepicker/chronos/duration/humanize.d.ts +0 -5
- package/datepicker/chronos/duration/valid.d.ts +0 -2
- package/datepicker/chronos/format/format.d.ts +0 -11
- package/datepicker/chronos/format.d.ts +0 -5
- package/datepicker/chronos/i18n/ar.d.ts +0 -2
- package/datepicker/chronos/i18n/bg.d.ts +0 -2
- package/datepicker/chronos/i18n/ca.d.ts +0 -2
- package/datepicker/chronos/i18n/cs.d.ts +0 -2
- package/datepicker/chronos/i18n/da.d.ts +0 -2
- package/datepicker/chronos/i18n/de.d.ts +0 -2
- package/datepicker/chronos/i18n/en-gb.d.ts +0 -2
- package/datepicker/chronos/i18n/es-do.d.ts +0 -2
- package/datepicker/chronos/i18n/es-us.d.ts +0 -2
- package/datepicker/chronos/i18n/es.d.ts +0 -2
- package/datepicker/chronos/i18n/et.d.ts +0 -2
- package/datepicker/chronos/i18n/fi.d.ts +0 -2
- package/datepicker/chronos/i18n/fr.d.ts +0 -2
- package/datepicker/chronos/i18n/gl.d.ts +0 -2
- package/datepicker/chronos/i18n/he.d.ts +0 -2
- package/datepicker/chronos/i18n/hi.d.ts +0 -2
- package/datepicker/chronos/i18n/hr.d.ts +0 -2
- package/datepicker/chronos/i18n/hu.d.ts +0 -2
- package/datepicker/chronos/i18n/id.d.ts +0 -2
- package/datepicker/chronos/i18n/it.d.ts +0 -2
- package/datepicker/chronos/i18n/ja.d.ts +0 -2
- package/datepicker/chronos/i18n/ka.d.ts +0 -2
- package/datepicker/chronos/i18n/kk.d.ts +0 -2
- package/datepicker/chronos/i18n/ko.d.ts +0 -2
- package/datepicker/chronos/i18n/lt.d.ts +0 -2
- package/datepicker/chronos/i18n/lv.d.ts +0 -2
- package/datepicker/chronos/i18n/mn.d.ts +0 -2
- package/datepicker/chronos/i18n/nb.d.ts +0 -2
- package/datepicker/chronos/i18n/nl-be.d.ts +0 -2
- package/datepicker/chronos/i18n/nl.d.ts +0 -2
- package/datepicker/chronos/i18n/pl.d.ts +0 -2
- package/datepicker/chronos/i18n/pt-br.d.ts +0 -2
- package/datepicker/chronos/i18n/ro.d.ts +0 -2
- package/datepicker/chronos/i18n/ru.d.ts +0 -2
- package/datepicker/chronos/i18n/sk.d.ts +0 -2
- package/datepicker/chronos/i18n/sl.d.ts +0 -2
- package/datepicker/chronos/i18n/sq.d.ts +0 -2
- package/datepicker/chronos/i18n/sv.d.ts +0 -2
- package/datepicker/chronos/i18n/th-be.d.ts +0 -2
- package/datepicker/chronos/i18n/th.d.ts +0 -2
- package/datepicker/chronos/i18n/tr.d.ts +0 -2
- package/datepicker/chronos/i18n/uk.d.ts +0 -2
- package/datepicker/chronos/i18n/vi.d.ts +0 -2
- package/datepicker/chronos/i18n/zh-cn.d.ts +0 -2
- package/datepicker/chronos/index.d.ts +0 -1
- package/datepicker/chronos/locale/calendar.d.ts +0 -8
- package/datepicker/chronos/locale/locale.class.d.ts +0 -143
- package/datepicker/chronos/locale/locale.defaults.d.ts +0 -11
- package/datepicker/chronos/locale/locales.d.ts +0 -7
- package/datepicker/chronos/moment/add-subtract.d.ts +0 -5
- package/datepicker/chronos/moment/calendar.d.ts +0 -15
- package/datepicker/chronos/moment/diff.d.ts +0 -3
- package/datepicker/chronos/moment/min-max.d.ts +0 -2
- package/datepicker/chronos/parse/regex.d.ts +0 -22
- package/datepicker/chronos/parse/token.d.ts +0 -5
- package/datepicker/chronos/public_api.d.ts +0 -57
- package/datepicker/chronos/test/chain.d.ts +0 -214
- package/datepicker/chronos/types.d.ts +0 -36
- package/datepicker/chronos/units/aliases.d.ts +0 -7
- package/datepicker/chronos/units/constants.d.ts +0 -9
- package/datepicker/chronos/units/day-of-month.d.ts +0 -1
- package/datepicker/chronos/units/day-of-week.d.ts +0 -20
- package/datepicker/chronos/units/day-of-year.d.ts +0 -3
- package/datepicker/chronos/units/hour.d.ts +0 -1
- package/datepicker/chronos/units/index.d.ts +0 -18
- package/datepicker/chronos/units/millisecond.d.ts +0 -1
- package/datepicker/chronos/units/minute.d.ts +0 -1
- package/datepicker/chronos/units/month.d.ts +0 -2
- package/datepicker/chronos/units/offset.d.ts +0 -10
- package/datepicker/chronos/units/priorities.d.ts +0 -1
- package/datepicker/chronos/units/quarter.d.ts +0 -3
- package/datepicker/chronos/units/second.d.ts +0 -1
- package/datepicker/chronos/units/timestamp.d.ts +0 -1
- package/datepicker/chronos/units/timezone.d.ts +0 -3
- package/datepicker/chronos/units/week-calendar-utils.d.ts +0 -9
- package/datepicker/chronos/units/week-year.d.ts +0 -8
- package/datepicker/chronos/units/week.d.ts +0 -6
- package/datepicker/chronos/units/year.d.ts +0 -4
- package/datepicker/chronos/utils/abs-ceil.d.ts +0 -1
- package/datepicker/chronos/utils/abs-round.d.ts +0 -1
- package/datepicker/chronos/utils/compare-arrays.d.ts +0 -1
- package/datepicker/chronos/utils/date-compare.d.ts +0 -9
- package/datepicker/chronos/utils/date-getters.d.ts +0 -18
- package/datepicker/chronos/utils/date-setters.d.ts +0 -12
- package/datepicker/chronos/utils/defaults.d.ts +0 -1
- package/datepicker/chronos/utils/start-end-of.d.ts +0 -3
- package/datepicker/chronos/utils/type-checks.d.ts +0 -12
- package/datepicker/chronos/utils/zero-fill.d.ts +0 -1
- package/datepicker/chronos/utils.d.ts +0 -2
- package/datepicker/component-loader/bs-component-ref.class.d.ts +0 -5
- package/datepicker/component-loader/component-loader.class.d.ts +0 -75
- package/datepicker/component-loader/component-loader.factory.d.ts +0 -21
- package/datepicker/component-loader/content-ref.class.d.ts +0 -7
- package/datepicker/component-loader/index.d.ts +0 -1
- package/datepicker/component-loader/listen-options.model.d.ts +0 -11
- package/datepicker/component-loader/public_api.d.ts +0 -4
- package/datepicker/date-formatter.d.ts +0 -3
- package/datepicker/datepicker-animations.d.ts +0 -3
- package/datepicker/datepicker-inner.component.d.ts +0 -78
- package/datepicker/datepicker.component.d.ts +0 -81
- package/datepicker/datepicker.config.d.ts +0 -22
- package/datepicker/datepicker.module.d.ts +0 -15
- package/datepicker/daypicker.component.d.ts +0 -17
- package/datepicker/engine/calc-days-calendar.d.ts +0 -2
- package/datepicker/engine/flag-days-calendar.d.ts +0 -17
- package/datepicker/engine/flag-months-calendar.d.ts +0 -12
- package/datepicker/engine/flag-years-calendar.d.ts +0 -12
- package/datepicker/engine/format-days-calendar.d.ts +0 -4
- package/datepicker/engine/format-months-calendar.d.ts +0 -2
- package/datepicker/engine/format-years-calendar.d.ts +0 -4
- package/datepicker/engine/view-mode.d.ts +0 -2
- package/datepicker/index.d.ts +0 -1
- package/datepicker/mini-ngrx/index.d.ts +0 -1
- package/datepicker/mini-ngrx/public_api.d.ts +0 -7
- package/datepicker/mini-ngrx/state.class.d.ts +0 -8
- package/datepicker/mini-ngrx/store.class.d.ts +0 -16
- package/datepicker/models/index.d.ts +0 -102
- package/datepicker/monthpicker.component.d.ts +0 -14
- package/datepicker/positioning/index.d.ts +0 -1
- package/datepicker/positioning/models/index.d.ts +0 -41
- package/datepicker/positioning/modifiers/arrow.d.ts +0 -2
- package/datepicker/positioning/modifiers/flip.d.ts +0 -2
- package/datepicker/positioning/modifiers/index.d.ts +0 -5
- package/datepicker/positioning/modifiers/initData.d.ts +0 -2
- package/datepicker/positioning/modifiers/preventOverflow.d.ts +0 -2
- package/datepicker/positioning/modifiers/shift.d.ts +0 -2
- package/datepicker/positioning/ng-positioning.d.ts +0 -8
- package/datepicker/positioning/positioning.service.d.ts +0 -48
- package/datepicker/positioning/public_api.d.ts +0 -2
- package/datepicker/positioning/utils/computeAutoPlacement.d.ts +0 -2
- package/datepicker/positioning/utils/findCommonOffsetParent.d.ts +0 -1
- package/datepicker/positioning/utils/getBordersSize.d.ts +0 -4
- package/datepicker/positioning/utils/getBoundaries.d.ts +0 -1
- package/datepicker/positioning/utils/getBoundingClientRect.d.ts +0 -2
- package/datepicker/positioning/utils/getClientRect.d.ts +0 -5
- package/datepicker/positioning/utils/getFixedPositionOffsetParent.d.ts +0 -4
- package/datepicker/positioning/utils/getOffsetParent.d.ts +0 -1
- package/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +0 -2
- package/datepicker/positioning/utils/getOffsets.d.ts +0 -2
- package/datepicker/positioning/utils/getOppositePlacement.d.ts +0 -4
- package/datepicker/positioning/utils/getOppositeVariation.d.ts +0 -4
- package/datepicker/positioning/utils/getOuterSizes.d.ts +0 -7
- package/datepicker/positioning/utils/getParentNode.d.ts +0 -4
- package/datepicker/positioning/utils/getReferenceOffsets.d.ts +0 -2
- package/datepicker/positioning/utils/getRoot.d.ts +0 -4
- package/datepicker/positioning/utils/getScroll.d.ts +0 -4
- package/datepicker/positioning/utils/getScrollParent.d.ts +0 -1
- package/datepicker/positioning/utils/getStyleComputedProperty.d.ts +0 -4
- package/datepicker/positioning/utils/getTargetOffsets.d.ts +0 -2
- package/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +0 -2
- package/datepicker/positioning/utils/getWindowSizes.d.ts +0 -4
- package/datepicker/positioning/utils/includeScroll.d.ts +0 -2
- package/datepicker/positioning/utils/index.d.ts +0 -23
- package/datepicker/positioning/utils/isBrowser.d.ts +0 -1
- package/datepicker/positioning/utils/isFixed.d.ts +0 -1
- package/datepicker/positioning/utils/isIE.d.ts +0 -1
- package/datepicker/positioning/utils/isModifierEnabled.d.ts +0 -4
- package/datepicker/positioning/utils/isNumeric.d.ts +0 -4
- package/datepicker/positioning/utils/isOffsetContainer.d.ts +0 -1
- package/datepicker/positioning/utils/setStyles.d.ts +0 -5
- package/datepicker/positioning/utils/updateContainerClass.d.ts +0 -6
- package/datepicker/public_api.d.ts +0 -25
- package/datepicker/reducer/_defaults.d.ts +0 -2
- package/datepicker/reducer/bs-datepicker.actions.d.ts +0 -46
- package/datepicker/reducer/bs-datepicker.effects.d.ts +0 -41
- package/datepicker/reducer/bs-datepicker.reducer.d.ts +0 -3
- package/datepicker/reducer/bs-datepicker.state.d.ts +0 -43
- package/datepicker/reducer/bs-datepicker.store.d.ts +0 -8
- package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +0 -5
- package/datepicker/themes/bs/bs-current-date-view.component.d.ts +0 -6
- package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +0 -17
- package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +0 -36
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +0 -14
- package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +0 -13
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +0 -12
- package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +0 -40
- package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +0 -13
- package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +0 -26
- package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +0 -16
- package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +0 -8
- package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +0 -16
- package/datepicker/utils/bs-calendar-utils.d.ts +0 -10
- package/datepicker/utils/matrix-utils.d.ts +0 -9
- package/datepicker/utils-v2/decorators.d.ts +0 -1
- package/datepicker/utils-v2/facade/browser.d.ts +0 -23
- package/datepicker/utils-v2/index.d.ts +0 -1
- package/datepicker/utils-v2/linked-list.class.d.ts +0 -26
- package/datepicker/utils-v2/public_api.d.ts +0 -10
- package/datepicker/utils-v2/theme-provider.d.ts +0 -2
- package/datepicker/utils-v2/trigger.class.d.ts +0 -6
- package/datepicker/utils-v2/triggers.d.ts +0 -18
- package/datepicker/utils-v2/utils.class.d.ts +0 -4
- package/datepicker/utils-v2/warn-once.d.ts +0 -1
- package/datepicker/yearpicker.component.d.ts +0 -14
- package/esm2020/datepicker/base/bs-datepicker-container.mjs +0 -47
- package/esm2020/datepicker/bs-datepicker-inline.component.mjs +0 -137
- package/esm2020/datepicker/bs-datepicker-inline.config.mjs +0 -14
- package/esm2020/datepicker/bs-datepicker-input.directive.mjs +0 -160
- package/esm2020/datepicker/bs-datepicker.component.mjs +0 -254
- package/esm2020/datepicker/bs-datepicker.config.mjs +0 -87
- package/esm2020/datepicker/bs-datepicker.module.mjs +0 -126
- package/esm2020/datepicker/bs-daterangepicker-inline.component.mjs +0 -134
- package/esm2020/datepicker/bs-daterangepicker-inline.config.mjs +0 -21
- package/esm2020/datepicker/bs-daterangepicker-input.directive.mjs +0 -192
- package/esm2020/datepicker/bs-daterangepicker.component.mjs +0 -240
- package/esm2020/datepicker/bs-daterangepicker.config.mjs +0 -19
- package/esm2020/datepicker/bs-locale.service.mjs +0 -32
- package/esm2020/datepicker/chronos/create/check-overflow.mjs +0 -30
- package/esm2020/datepicker/chronos/create/clone.mjs +0 -6
- package/esm2020/datepicker/chronos/create/date-from-array.mjs +0 -17
- package/esm2020/datepicker/chronos/create/from-anything.mjs +0 -107
- package/esm2020/datepicker/chronos/create/from-array.mjs +0 -136
- package/esm2020/datepicker/chronos/create/from-object.mjs +0 -17
- package/esm2020/datepicker/chronos/create/from-string-and-array.mjs +0 -38
- package/esm2020/datepicker/chronos/create/from-string-and-format.mjs +0 -106
- package/esm2020/datepicker/chronos/create/from-string.mjs +0 -227
- package/esm2020/datepicker/chronos/create/local.mjs +0 -16
- package/esm2020/datepicker/chronos/create/parsing-flags.mjs +0 -26
- package/esm2020/datepicker/chronos/create/parsing.types.mjs +0 -2
- package/esm2020/datepicker/chronos/create/valid.mjs +0 -42
- package/esm2020/datepicker/chronos/duration/bubble.mjs +0 -47
- package/esm2020/datepicker/chronos/duration/constructor.mjs +0 -130
- package/esm2020/datepicker/chronos/duration/create.mjs +0 -113
- package/esm2020/datepicker/chronos/duration/humanize.mjs +0 -80
- package/esm2020/datepicker/chronos/duration/valid.mjs +0 -43
- package/esm2020/datepicker/chronos/format/format.mjs +0 -51
- package/esm2020/datepicker/chronos/format.mjs +0 -46
- package/esm2020/datepicker/chronos/i18n/ar.mjs +0 -128
- package/esm2020/datepicker/chronos/i18n/bg.mjs +0 -94
- package/esm2020/datepicker/chronos/i18n/ca.mjs +0 -91
- package/esm2020/datepicker/chronos/i18n/cs.mjs +0 -179
- package/esm2020/datepicker/chronos/i18n/da.mjs +0 -50
- package/esm2020/datepicker/chronos/i18n/de.mjs +0 -72
- package/esm2020/datepicker/chronos/i18n/en-gb.mjs +0 -61
- package/esm2020/datepicker/chronos/i18n/es-do.mjs +0 -85
- package/esm2020/datepicker/chronos/i18n/es-us.mjs +0 -79
- package/esm2020/datepicker/chronos/i18n/es.mjs +0 -84
- package/esm2020/datepicker/chronos/i18n/et.mjs +0 -73
- package/esm2020/datepicker/chronos/i18n/fi.mjs +0 -100
- package/esm2020/datepicker/chronos/i18n/fr.mjs +0 -76
- package/esm2020/datepicker/chronos/i18n/gl.mjs +0 -84
- package/esm2020/datepicker/chronos/i18n/he.mjs +0 -98
- package/esm2020/datepicker/chronos/i18n/hi.mjs +0 -124
- package/esm2020/datepicker/chronos/i18n/hr.mjs +0 -62
- package/esm2020/datepicker/chronos/i18n/hu.mjs +0 -104
- package/esm2020/datepicker/chronos/i18n/id.mjs +0 -83
- package/esm2020/datepicker/chronos/i18n/it.mjs +0 -65
- package/esm2020/datepicker/chronos/i18n/ja.mjs +0 -75
- package/esm2020/datepicker/chronos/i18n/ka.mjs +0 -87
- package/esm2020/datepicker/chronos/i18n/kk.mjs +0 -76
- package/esm2020/datepicker/chronos/i18n/ko.mjs +0 -77
- package/esm2020/datepicker/chronos/i18n/lt.mjs +0 -116
- package/esm2020/datepicker/chronos/i18n/lv.mjs +0 -56
- package/esm2020/datepicker/chronos/i18n/mn.mjs +0 -99
- package/esm2020/datepicker/chronos/i18n/nb.mjs +0 -53
- package/esm2020/datepicker/chronos/i18n/nl-be.mjs +0 -81
- package/esm2020/datepicker/chronos/i18n/nl.mjs +0 -80
- package/esm2020/datepicker/chronos/i18n/pl.mjs +0 -126
- package/esm2020/datepicker/chronos/i18n/pt-br.mjs +0 -56
- package/esm2020/datepicker/chronos/i18n/ro.mjs +0 -66
- package/esm2020/datepicker/chronos/i18n/ru.mjs +0 -181
- package/esm2020/datepicker/chronos/i18n/sk.mjs +0 -157
- package/esm2020/datepicker/chronos/i18n/sl.mjs +0 -184
- package/esm2020/datepicker/chronos/i18n/sq.mjs +0 -54
- package/esm2020/datepicker/chronos/i18n/sv.mjs +0 -63
- package/esm2020/datepicker/chronos/i18n/th-be.mjs +0 -74
- package/esm2020/datepicker/chronos/i18n/th.mjs +0 -59
- package/esm2020/datepicker/chronos/i18n/tr.mjs +0 -82
- package/esm2020/datepicker/chronos/i18n/uk.mjs +0 -147
- package/esm2020/datepicker/chronos/i18n/vi.mjs +0 -74
- package/esm2020/datepicker/chronos/i18n/zh-cn.mjs +0 -114
- package/esm2020/datepicker/chronos/index.mjs +0 -2
- package/esm2020/datepicker/chronos/locale/calendar.mjs +0 -9
- package/esm2020/datepicker/chronos/locale/locale.class.mjs +0 -532
- package/esm2020/datepicker/chronos/locale/locale.defaults.mjs +0 -40
- package/esm2020/datepicker/chronos/locale/locales.mjs +0 -229
- package/esm2020/datepicker/chronos/moment/add-subtract.mjs +0 -35
- package/esm2020/datepicker/chronos/moment/calendar.mjs +0 -41
- package/esm2020/datepicker/chronos/moment/diff.mjs +0 -70
- package/esm2020/datepicker/chronos/moment/min-max.mjs +0 -38
- package/esm2020/datepicker/chronos/parse/regex.mjs +0 -49
- package/esm2020/datepicker/chronos/parse/token.mjs +0 -32
- package/esm2020/datepicker/chronos/public_api.mjs +0 -56
- package/esm2020/datepicker/chronos/test/chain.mjs +0 -711
- package/esm2020/datepicker/chronos/types.mjs +0 -2
- package/esm2020/datepicker/chronos/units/aliases.mjs +0 -35
- package/esm2020/datepicker/chronos/units/constants.mjs +0 -11
- package/esm2020/datepicker/chronos/units/day-of-month.mjs +0 -31
- package/esm2020/datepicker/chronos/units/day-of-week.mjs +0 -129
- package/esm2020/datepicker/chronos/units/day-of-year.mjs +0 -37
- package/esm2020/datepicker/chronos/units/hour.mjs +0 -127
- package/esm2020/datepicker/chronos/units/index.mjs +0 -19
- package/esm2020/datepicker/chronos/units/millisecond.mjs +0 -60
- package/esm2020/datepicker/chronos/units/minute.mjs +0 -23
- package/esm2020/datepicker/chronos/units/month.mjs +0 -63
- package/esm2020/datepicker/chronos/units/offset.mjs +0 -210
- package/esm2020/datepicker/chronos/units/priorities.mjs +0 -21
- package/esm2020/datepicker/chronos/units/quarter.mjs +0 -39
- package/esm2020/datepicker/chronos/units/second.mjs +0 -23
- package/esm2020/datepicker/chronos/units/timestamp.mjs +0 -28
- package/esm2020/datepicker/chronos/units/timezone.mjs +0 -19
- package/esm2020/datepicker/chronos/units/week-calendar-utils.mjs +0 -70
- package/esm2020/datepicker/chronos/units/week-year.mjs +0 -101
- package/esm2020/datepicker/chronos/units/week.mjs +0 -58
- package/esm2020/datepicker/chronos/units/year.mjs +0 -60
- package/esm2020/datepicker/chronos/utils/abs-ceil.mjs +0 -4
- package/esm2020/datepicker/chronos/utils/abs-round.mjs +0 -4
- package/esm2020/datepicker/chronos/utils/compare-arrays.mjs +0 -16
- package/esm2020/datepicker/chronos/utils/date-compare.mjs +0 -55
- package/esm2020/datepicker/chronos/utils/date-getters.mjs +0 -67
- package/esm2020/datepicker/chronos/utils/date-setters.mjs +0 -75
- package/esm2020/datepicker/chronos/utils/defaults.mjs +0 -11
- package/esm2020/datepicker/chronos/utils/start-end-of.mjs +0 -57
- package/esm2020/datepicker/chronos/utils/type-checks.mjs +0 -56
- package/esm2020/datepicker/chronos/utils/zero-fill.mjs +0 -10
- package/esm2020/datepicker/chronos/utils.mjs +0 -7
- package/esm2020/datepicker/component-loader/bs-component-ref.class.mjs +0 -3
- package/esm2020/datepicker/component-loader/component-loader.class.mjs +0 -272
- package/esm2020/datepicker/component-loader/component-loader.factory.mjs +0 -29
- package/esm2020/datepicker/component-loader/content-ref.class.mjs +0 -12
- package/esm2020/datepicker/component-loader/index.mjs +0 -2
- package/esm2020/datepicker/component-loader/listen-options.model.mjs +0 -2
- package/esm2020/datepicker/component-loader/public_api.mjs +0 -5
- package/esm2020/datepicker/date-formatter.mjs +0 -7
- package/esm2020/datepicker/datepicker-animations.mjs +0 -16
- package/esm2020/datepicker/datepicker-inner.component.mjs +0 -323
- package/esm2020/datepicker/datepicker.component.mjs +0 -182
- package/esm2020/datepicker/datepicker.config.mjs +0 -32
- package/esm2020/datepicker/datepicker.module.mjs +0 -49
- package/esm2020/datepicker/daypicker.component.mjs +0 -314
- package/esm2020/datepicker/engine/calc-days-calendar.mjs +0 -19
- package/esm2020/datepicker/engine/flag-days-calendar.mjs +0 -91
- package/esm2020/datepicker/engine/flag-months-calendar.mjs +0 -41
- package/esm2020/datepicker/engine/flag-years-calendar.mjs +0 -39
- package/esm2020/datepicker/engine/format-days-calendar.mjs +0 -29
- package/esm2020/datepicker/engine/format-months-calendar.mjs +0 -19
- package/esm2020/datepicker/engine/format-years-calendar.mjs +0 -35
- package/esm2020/datepicker/engine/view-mode.mjs +0 -4
- package/esm2020/datepicker/index.mjs +0 -2
- package/esm2020/datepicker/mini-ngrx/index.mjs +0 -2
- package/esm2020/datepicker/mini-ngrx/public_api.mjs +0 -3
- package/esm2020/datepicker/mini-ngrx/state.class.mjs +0 -16
- package/esm2020/datepicker/mini-ngrx/store.class.mjs +0 -43
- package/esm2020/datepicker/mis-crystal-design-system-datepicker.mjs +0 -5
- package/esm2020/datepicker/models/index.mjs +0 -9
- package/esm2020/datepicker/monthpicker.component.mjs +0 -145
- package/esm2020/datepicker/positioning/index.mjs +0 -2
- package/esm2020/datepicker/positioning/models/index.mjs +0 -2
- package/esm2020/datepicker/positioning/modifiers/arrow.mjs +0 -56
- package/esm2020/datepicker/positioning/modifiers/flip.mjs +0 -66
- package/esm2020/datepicker/positioning/modifiers/index.mjs +0 -6
- package/esm2020/datepicker/positioning/modifiers/initData.mjs +0 -42
- package/esm2020/datepicker/positioning/modifiers/preventOverflow.mjs +0 -59
- package/esm2020/datepicker/positioning/modifiers/shift.mjs +0 -24
- package/esm2020/datepicker/positioning/ng-positioning.mjs +0 -30
- package/esm2020/datepicker/positioning/positioning.service.mjs +0 -75
- package/esm2020/datepicker/positioning/public_api.mjs +0 -3
- package/esm2020/datepicker/positioning/utils/computeAutoPlacement.mjs +0 -57
- package/esm2020/datepicker/positioning/utils/findCommonOffsetParent.mjs +0 -40
- package/esm2020/datepicker/positioning/utils/getBordersSize.mjs +0 -10
- package/esm2020/datepicker/positioning/utils/getBoundaries.mjs +0 -56
- package/esm2020/datepicker/positioning/utils/getBoundingClientRect.mjs +0 -55
- package/esm2020/datepicker/positioning/utils/getClientRect.mjs +0 -8
- package/esm2020/datepicker/positioning/utils/getFixedPositionOffsetParent.mjs +0 -17
- package/esm2020/datepicker/positioning/utils/getOffsetParent.mjs +0 -32
- package/esm2020/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.mjs +0 -51
- package/esm2020/datepicker/positioning/utils/getOffsets.mjs +0 -11
- package/esm2020/datepicker/positioning/utils/getOppositePlacement.mjs +0 -8
- package/esm2020/datepicker/positioning/utils/getOppositeVariation.mjs +0 -13
- package/esm2020/datepicker/positioning/utils/getOuterSizes.mjs +0 -14
- package/esm2020/datepicker/positioning/utils/getParentNode.mjs +0 -10
- package/esm2020/datepicker/positioning/utils/getReferenceOffsets.mjs +0 -13
- package/esm2020/datepicker/positioning/utils/getRoot.mjs +0 -10
- package/esm2020/datepicker/positioning/utils/getScroll.mjs +0 -14
- package/esm2020/datepicker/positioning/utils/getScrollParent.mjs +0 -26
- package/esm2020/datepicker/positioning/utils/getStyleComputedProperty.mjs +0 -13
- package/esm2020/datepicker/positioning/utils/getTargetOffsets.mjs +0 -30
- package/esm2020/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +0 -19
- package/esm2020/datepicker/positioning/utils/getWindowSizes.mjs +0 -18
- package/esm2020/datepicker/positioning/utils/includeScroll.mjs +0 -15
- package/esm2020/datepicker/positioning/utils/index.mjs +0 -24
- package/esm2020/datepicker/positioning/utils/isBrowser.mjs +0 -2
- package/esm2020/datepicker/positioning/utils/isFixed.mjs +0 -16
- package/esm2020/datepicker/positioning/utils/isIE.mjs +0 -16
- package/esm2020/datepicker/positioning/utils/isModifierEnabled.mjs +0 -10
- package/esm2020/datepicker/positioning/utils/isNumeric.mjs +0 -7
- package/esm2020/datepicker/positioning/utils/isOffsetContainer.mjs +0 -9
- package/esm2020/datepicker/positioning/utils/setStyles.mjs +0 -17
- package/esm2020/datepicker/positioning/utils/updateContainerClass.mjs +0 -22
- package/esm2020/datepicker/public_api.mjs +0 -25
- package/esm2020/datepicker/reducer/_defaults.mjs +0 -5
- package/esm2020/datepicker/reducer/bs-datepicker.actions.mjs +0 -136
- package/esm2020/datepicker/reducer/bs-datepicker.effects.mjs +0 -169
- package/esm2020/datepicker/reducer/bs-datepicker.reducer.mjs +0 -302
- package/esm2020/datepicker/reducer/bs-datepicker.state.mjs +0 -12
- package/esm2020/datepicker/reducer/bs-datepicker.store.mjs +0 -21
- package/esm2020/datepicker/themes/bs/bs-calendar-layout.component.mjs +0 -54
- package/esm2020/datepicker/themes/bs/bs-current-date-view.component.mjs +0 -23
- package/esm2020/datepicker/themes/bs/bs-custom-dates-view.component.mjs +0 -78
- package/esm2020/datepicker/themes/bs/bs-datepicker-container.component.mjs +0 -319
- package/esm2020/datepicker/themes/bs/bs-datepicker-day-decorator.directive.mjs +0 -52
- package/esm2020/datepicker/themes/bs/bs-datepicker-inline-container.component.mjs +0 -203
- package/esm2020/datepicker/themes/bs/bs-datepicker-navigation-view.component.mjs +0 -111
- package/esm2020/datepicker/themes/bs/bs-daterangepicker-container.component.mjs +0 -362
- package/esm2020/datepicker/themes/bs/bs-daterangepicker-inline-container.component.mjs +0 -203
- package/esm2020/datepicker/themes/bs/bs-days-calendar-view.component.mjs +0 -308
- package/esm2020/datepicker/themes/bs/bs-months-calendar-view.component.mjs +0 -106
- package/esm2020/datepicker/themes/bs/bs-timepicker-view.component.mjs +0 -64
- package/esm2020/datepicker/themes/bs/bs-years-calendar-view.component.mjs +0 -107
- package/esm2020/datepicker/utils/bs-calendar-utils.mjs +0 -43
- package/esm2020/datepicker/utils/matrix-utils.mjs +0 -14
- package/esm2020/datepicker/utils-v2/decorators.mjs +0 -25
- package/esm2020/datepicker/utils-v2/facade/browser.mjs +0 -24
- package/esm2020/datepicker/utils-v2/index.mjs +0 -2
- package/esm2020/datepicker/utils-v2/linked-list.class.mjs +0 -240
- package/esm2020/datepicker/utils-v2/public_api.mjs +0 -11
- package/esm2020/datepicker/utils-v2/theme-provider.mjs +0 -35
- package/esm2020/datepicker/utils-v2/trigger.class.mjs +0 -10
- package/esm2020/datepicker/utils-v2/triggers.mjs +0 -110
- package/esm2020/datepicker/utils-v2/utils.class.mjs +0 -21
- package/esm2020/datepicker/utils-v2/warn-once.mjs +0 -12
- package/esm2020/datepicker/yearpicker.component.mjs +0 -147
- package/fesm2015/mis-crystal-design-system-datepicker.mjs +0 -14950
- package/fesm2015/mis-crystal-design-system-datepicker.mjs.map +0 -1
- package/fesm2020/mis-crystal-design-system-datepicker.mjs +0 -14572
- package/fesm2020/mis-crystal-design-system-datepicker.mjs.map +0 -1
|
@@ -38,6 +38,7 @@ export declare class DropdownComponent implements OnInit {
|
|
|
38
38
|
selectElement: ElementRef;
|
|
39
39
|
popupContainer: TemplateRef<Element>;
|
|
40
40
|
viewPort: CdkVirtualScrollViewport;
|
|
41
|
+
customItem: TemplateRef<Element>;
|
|
41
42
|
private overlayRef;
|
|
42
43
|
constructor(eRef: ElementRef, overlay: Overlay, viewContainerRef: ViewContainerRef);
|
|
43
44
|
ngOnInit(): void;
|
|
@@ -56,7 +57,7 @@ export declare class DropdownComponent implements OnInit {
|
|
|
56
57
|
onCancel(): void;
|
|
57
58
|
closeOnEsc(event: KeyboardEvent): void;
|
|
58
59
|
static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>;
|
|
59
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "mis-dropdown", never, { "data": "data"; "height": "height"; "width": "width"; "label": "label"; "itemSizeForCdk": "itemSizeForCdk"; "showOnlyIcon": "showOnlyIcon"; "higlightSelectedValue": "higlightSelectedValue"; "dropdownListHeight": "dropdownListHeight"; "dropdownListWidth": "dropdownListWidth"; "dropdownListPosition": "dropdownListPosition"; "config": "config"; "searchEnabled": "searchEnabled"; "selectedItem": "selectedItem"; "noDataMessage": "noDataMessage"; "multiLine": "multiLine"; "additionalInfoMessage": "additionalInfoMessage"; "scrollIntoView": "scrollIntoView"; "searchLabel": "searchLabel"; "customStyles": "customStyles"; "activeItem": "activeItem"; }, { "onChange": "onChange"; },
|
|
60
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "mis-dropdown", never, { "data": "data"; "height": "height"; "width": "width"; "label": "label"; "itemSizeForCdk": "itemSizeForCdk"; "showOnlyIcon": "showOnlyIcon"; "higlightSelectedValue": "higlightSelectedValue"; "dropdownListHeight": "dropdownListHeight"; "dropdownListWidth": "dropdownListWidth"; "dropdownListPosition": "dropdownListPosition"; "config": "config"; "searchEnabled": "searchEnabled"; "selectedItem": "selectedItem"; "noDataMessage": "noDataMessage"; "multiLine": "multiLine"; "additionalInfoMessage": "additionalInfoMessage"; "scrollIntoView": "scrollIntoView"; "searchLabel": "searchLabel"; "customStyles": "customStyles"; "activeItem": "activeItem"; }, { "onChange": "onChange"; }, ["customItem"], never, false>;
|
|
60
61
|
}
|
|
61
62
|
export interface DropdownItem {
|
|
62
63
|
label: any;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventEmitter, OnDestroy, OnInit } from "@angular/core";
|
|
1
|
+
import { EventEmitter, OnDestroy, OnInit, TemplateRef } from "@angular/core";
|
|
2
2
|
import { NsDynamicForm } from "./dynamic-form.namespace";
|
|
3
3
|
import { UntypedFormArray, UntypedFormControl, UntypedFormGroup, ValidatorFn } from "@angular/forms";
|
|
4
4
|
import "moment-timezone";
|
|
@@ -37,6 +37,14 @@ export declare class DynamicFormComponent implements OnInit, OnDestroy {
|
|
|
37
37
|
*/
|
|
38
38
|
formInitialized: EventEmitter<any>;
|
|
39
39
|
fieldRemoved: EventEmitter<NsDynamicForm.IDynamicField>;
|
|
40
|
+
customInputTextNumber: TemplateRef<Element>;
|
|
41
|
+
customInputTextarea: TemplateRef<Element>;
|
|
42
|
+
customInputDate: TemplateRef<Element>;
|
|
43
|
+
customBooleanToggle: TemplateRef<Element>;
|
|
44
|
+
customSingleSelectDropdown: TemplateRef<Element>;
|
|
45
|
+
customSingleSelectRadio: TemplateRef<Element>;
|
|
46
|
+
customMultiSelectCheckbox: TemplateRef<Element>;
|
|
47
|
+
customMultiSelectDropdown: TemplateRef<Element>;
|
|
40
48
|
dynamicFormAPI: NsDynamicForm.IDynamicFormAPI;
|
|
41
49
|
valueChangesSubscription$: Subscription;
|
|
42
50
|
constructor();
|
|
@@ -69,6 +77,6 @@ export declare class DynamicFormComponent implements OnInit, OnDestroy {
|
|
|
69
77
|
mapFormValueToFormField(formField: NsDynamicForm.IDynamicField, formValue: any): any;
|
|
70
78
|
mapFormFieldToFormValue(formField: NsDynamicForm.IDynamicField, formValue: any): any;
|
|
71
79
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
|
|
72
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "mis-dynamic-form", never, { "formFields": "formFields"; "formValues": "formValues"; "activeBtnIconUrl": "activeBtnIconUrl"; "calendarIconUrl": "calendarIconUrl"; "removeIconUrl": "removeIconUrl"; "removeSepratorForSubFields": "removeSepratorForSubFields"; }, { "formUpdated": "formUpdated"; "formValid": "formValid"; "formInitialized": "formInitialized"; "fieldRemoved": "fieldRemoved"; },
|
|
80
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "mis-dynamic-form", never, { "formFields": "formFields"; "formValues": "formValues"; "activeBtnIconUrl": "activeBtnIconUrl"; "calendarIconUrl": "calendarIconUrl"; "removeIconUrl": "removeIconUrl"; "removeSepratorForSubFields": "removeSepratorForSubFields"; }, { "formUpdated": "formUpdated"; "formValid": "formValid"; "formInitialized": "formInitialized"; "fieldRemoved": "fieldRemoved"; }, ["customInputTextNumber", "customInputTextarea", "customInputDate", "customBooleanToggle", "customSingleSelectDropdown", "customSingleSelectRadio", "customMultiSelectCheckbox", "customMultiSelectDropdown"], never, false>;
|
|
73
81
|
}
|
|
74
82
|
export declare const dynamicFieldValidator: (validators: Array<NsDynamicForm.IDynamicFieldValidator>) => ValidatorFn;
|
|
@@ -498,4 +498,4 @@ AsyncDropdownComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Asyn
|
|
|
498
498
|
type: HostListener,
|
|
499
499
|
args: ['document:keydown', ['$event']]
|
|
500
500
|
}] }); })();
|
|
501
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvYXN5bmMtc2VhcmNoLWRyb3Bkb3duL2FzeW5jLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2FzeW5jLXNlYXJjaC1kcm9wZG93bi9hc3luYy1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sRUFHTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQVUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDcEI3RSwrQkFBc0gsZUFBQTtJQUMxQixZQUFvQjtJQUFBLGlCQUFPO0lBQ3JILGdDQUF1TTtJQUF4SyxxT0FBUyxlQUFBLDJCQUFnQixDQUFBLElBQUMsb09BQTZCLGVBQUEsMkJBQWdCLENBQUEsSUFBN0M7SUFBOEksaUJBQU8sRUFBQTs7OztJQUY5TCxnR0FBZ0U7SUFDMUUsZUFBd0Q7SUFBeEQsZ0dBQXdEO0lBQTRCLGVBQW9CO0lBQXBCLGdEQUFvQjtJQUNOLGVBQXlEO0lBQXpELDZGQUF5RDs7O0lBSHJLLDhCQUFnRTtJQUM5RCwrRUFHTTtJQUNSLGlCQUFNOzs7SUFKZ0csZUFBZ0I7SUFBaEIsOENBQWdCOzs7OztJQU9wSCxxQ0FBZ1c7SUFBNUQsc0tBQVMsZUFBQSxxQkFBYSxDQUFBLElBQUMscUtBQWdCLGVBQUEsMEJBQWtCLENBQUEsSUFBbEM7SUFBM1QsaUJBQWdXOzs7SUFBMVMsZ0dBQTRELG1DQUFBLG1DQUFBOzs7O0lBRWhILHFDQUErTztJQUE3RCw0S0FBUyxlQUFBLHFCQUFhLENBQUEsSUFBQywyS0FBZ0IsZUFBQSwwQkFBa0IsQ0FBQSxJQUFsQztJQUF6TSxpQkFBK087OztJQUF4TyxnR0FBNEQsbUNBQUEsbUNBQUE7Ozs7SUFFckUsK0JBQXFLO0lBQWhFLGtLQUFTLGVBQUEsMEJBQWtCLENBQUEsSUFBQyxpS0FBZ0IsZUFBQSwwQkFBa0IsQ0FBQSxJQUFsQztJQUFvQyxpQkFBTTs7O0lBT3pLLDRCQUdnQjs7O0lBRGQsdURBQWlDOzs7SUFHakMsK0JBQStEO0lBQzdELGlDQUE2QztJQUMvQyxpQkFBTTs7SUFEUSxlQUFtQjtJQUFuQixpQ0FBbUI7OztJQURqQyxtSEFFTTs7O0lBRnlCLCtEQUE4Qjs7O0lBTmpFLDZCQUE4QjtJQUM1Qix1SEFHZ0I7SUFDaEIsc0pBSWM7SUFDaEIsMEJBQWU7Ozs7SUFSVixlQUFvQjtJQUFwQiwyQ0FBb0Isa0JBQUE7OztJQVN6Qiw2QkFBNEI7SUFDMUIsK0JBQThCLFFBQUE7SUFDekIsNENBQTRCO0lBQUEscUJBQUk7SUFBQyx3Q0FBdUI7SUFBQSxpQkFBSSxFQUFBO0lBRW5FLDBCQUFlOzs7O0lBS1QsK0JBR0Q7SUFDQyw0QkFHZ0I7SUFDbEIsaUJBQU07Ozs7SUFQSiwwREFBb0M7SUFJbEMsZUFBK0I7SUFBL0IscURBQStCLGlFQUFBOzs7O0lBSy9CLDBCQUF5QztJQUN6QywrQkFBaUk7SUFBL0csNlBBQVMsZUFBQSw2QkFBaUIsS0FBSyxDQUFDLENBQUEsSUFBQyw0UEFBcUQsZUFBQSw2QkFBaUIsS0FBSyxDQUFDLENBQUEsSUFBNUU7SUFDakQsK0JBQW1CLGNBQUE7SUFFZixZQUNGO0lBQUEsaUJBQU07SUFDTiwrQkFBdUI7SUFDckIsWUFDRjtJQUFBLGlCQUFNLEVBQUEsRUFBQTs7OztJQVAwQyxlQUFvQztJQUFwQywwREFBb0M7SUFHbEYsZUFDRjtJQURFLDZEQUNGO0lBRUUsZUFDRjtJQURFLHNFQUNGOzs7O0lBckJWLDZCQUF3QztJQUN0QywrQkFBK0U7SUFBMUUsNFBBQVMsZUFBQSw2QkFBaUIsS0FBSyxDQUFDLENBQUEsSUFBQywyUEFBZ0IsZUFBQSw2QkFBaUIsS0FBSyxDQUFDLENBQUEsSUFBdkM7SUFDcEMsMEJBQXlDO0lBQ3pDLDJHQVFJO0lBQ0osNEpBWWM7SUFDaEIsaUJBQU07SUFDUiwwQkFBZTs7OztJQXJCVixlQUFrQjtJQUFsQix5Q0FBa0Isa0JBQUE7OztJQU56QiwyQkFBbUQ7SUFDakQsOEdBMEJlO0lBQ2pCLGlCQUFNOzs7SUEzQjJCLGVBQU87SUFBUCxzQ0FBTzs7O0lBNEJ4QywyQkFBMEUsY0FBQTtJQUM1QyxpQ0FBaUI7SUFBQSxpQkFBTSxFQUFBOzs7OztJQS9DdkQsK0JBQTBLO0lBQ3hLLHdHQVVlO0lBQ2Ysd0dBSWU7SUFDZixzRkE0Qk07SUFDTixzRkFFSTtJQUNOLGlCQUFNOzs7SUFqRGUsb0VBQWlDLGtFQUFBLGtEQUFBO0lBQ3JDLGVBQWE7SUFBYixxQ0FBYTtJQVdiLGVBQVc7SUFBWCxtQ0FBVztJQUtwQixlQUEyQztJQUEzQyxpRkFBMkM7SUE2QjNDLGVBQWtFO0lBQWxFLCtHQUFrRTs7O0FEaEM1RSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQW9CLE9BQWdCLEVBQVUsZ0JBQWtDLEVBQVUsT0FBZTtRQUFyRixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFFaEcsU0FBSSxHQUFnQixJQUFJLENBQUE7UUFJeEIsZ0JBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyx3QkFBd0I7UUFDaEQsaUJBQVksR0FBRyxHQUFHLENBQUMsQ0FBQywwQ0FBMEM7UUFDOUQsbUJBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQywwQ0FBMEM7UUFDOUQsVUFBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLGdDQUFnQztRQUsvQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFRM0MsMkJBQTJCO1FBQ2pCLGFBQVEsR0FBMEMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx1QkFBdUI7UUFDM0csZ0JBQVcsR0FBdUIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzNELFNBQUksR0FBZ0IsRUFBRSxDQUFDO1FBQ3ZCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsMkJBQTJCO1FBQ2xCLGVBQVUsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQU14QyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFBO1FBQzlDLFVBQUssR0FBMEIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFBO1FBQzVDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQTtRQTZEN0MseUJBQW9CLEdBQUcsQ0FBQyxNQUFtQixFQUFFLEVBQUU7WUFDckQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7WUFDSCwyQkFBMkI7UUFDN0IsQ0FBQyxDQUFDO0lBMUcyRyxDQUFDO0lBeUM5RyxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVk7YUFDcEQsSUFBSTtRQUNILDJEQUEyRDtRQUMzRCxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDOUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDL0Isb0JBQW9CLEVBQUUsQ0FDdkI7YUFDQSxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BCLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRTtvQkFDckQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUNyQixPQUFPO2lCQUNSO3FCQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO29CQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztvQkFDbkIsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFO3dCQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQzt3QkFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7NEJBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO3lCQUN2RDtvQkFDSCxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7d0JBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7d0JBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO29CQUNwQixDQUFDLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxJQUFJLE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFO1lBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDL0Q7UUFDRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzVCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQVNPLFlBQVksQ0FBQyxRQUE4QixFQUFFLE1BQW1CO1FBQ3RFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDbEMsUUFBUSxFQUFFO2FBQ1YsbUJBQW1CLENBQUMsTUFBTSxDQUFDO2FBQzNCLGFBQWEsQ0FBQztZQUNiLElBQUksc0JBQXNCLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQzNHLElBQUksc0JBQXNCLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO1NBQzVHLENBQUM7YUFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDaEMsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLGtDQUFrQztZQUNqRCxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUU7WUFDMUQsZ0JBQWdCO1lBQ2hCLEtBQUssRUFBRSxNQUFNLENBQUMsV0FBVztTQUMxQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBR0QsYUFBYSxDQUFDLEtBQW9CO1FBQ2hDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUlEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLElBQWUsRUFBRSxtQkFBbUIsR0FBRyxJQUFJO1FBQ3BELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO2dCQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2pEO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUN4QixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDNUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ1I7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNoQjtRQUNELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLElBQWU7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBZ0I7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxhQUFhO1FBQ2YsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDNUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUN2RDtZQUNILENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDVCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7OzRGQXZPVSxzQkFBc0I7eUVBQXRCLHNCQUFzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7NkdBQXRCLHlCQUFxQjs7UUNoQ2xDLGlDQUFzRztRQUNwRyx1RUFLTTtRQUNOLDhCQUEwQjtRQUN4QiwwQkFBOEM7UUFDOUMsMkVBQWdXO1FBQ2hXLHdIQUVjO1FBQ2QsdUVBQTJLO1FBQzdLLGlCQUFNLEVBQUE7UUFHUix5SEFtRGM7OztRQXBFVSw2RkFBc0U7UUFDaEUsZUFBa0M7UUFBbEMsMkRBQWtDO1FBUXBELGVBQXdCO1FBQXhCLDJDQUF3QixpQkFBQTtRQUlzQixlQUFnQztRQUFoQywySEFBZ0M7O3VGRG1CN0Usc0JBQXNCO2NBTGxDLFNBQVM7MkJBQ0UsMkJBQTJCOzhHQU01QixNQUFNO2tCQUFkLEtBQUs7WUFDRyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLG1CQUFtQjtrQkFBM0IsS0FBSztZQUNHLFdBQVc7a0JBQW5CLEtBQUs7WUFDRyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLEtBQUs7a0JBQWIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLGdCQUFnQjtrQkFBeEIsS0FBSztZQUNpQyxNQUFNO2tCQUE1QyxTQUFTO21CQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDRSxLQUFLO2tCQUEzQyxTQUFTO21CQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDRCxFQUFFO2tCQUFyQyxTQUFTO21CQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFFbEMsVUFBVTtrQkFEVCxZQUFZO21CQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFHaEQsWUFBWTtrQkFEWCxZQUFZO21CQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztZQUd6QyxRQUFRO2tCQUFqQixNQUFNO1lBUUUsVUFBVTtrQkFBbEIsS0FBSztZQUtHLFdBQVc7a0JBQW5CLEtBQUs7WUFDSSxpQkFBaUI7a0JBQTFCLE1BQU07WUFDRyxLQUFLO2tCQUFkLE1BQU07WUFDRyxZQUFZO2tCQUFyQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQTJHUCxhQUFhO2tCQURaLFlBQVk7bUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbnR5cGUgSUxpc3REYXRhID0gYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWlzLWFzeW5jLXNlYXJjaC1kcm9wZG93blwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2FzeW5jLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9hc3luYy1kcm9wZG93bi5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBBc3luY0Ryb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSkgeyB9XG4gIEBJbnB1dCgpIGhlaWdodDtcbiAgQElucHV0KCkgc2l6ZTogJ21kJyB8ICdzbScgPSAnbWQnXG4gIEBJbnB1dCgpIGh0dHBTdHJlYW0hOiAoc2VhcmNoS2V5OiBzdHJpbmcpID0+IE9ic2VydmFibGU8SUxpc3REYXRhPjsgLy8gZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGh0dHBvYnNlcnZhYmxlXG4gIEBJbnB1dCgpIGRpc3BsYXlLZXkhOiBzdHJpbmc7IC8vIHN0cmluZyB0byBzaG93IHZhbHVlIGluIGxpc3RcbiAgQElucHV0KCkgc2Vjb25kYXJ5RGlzcGxheUtleSE6IHN0cmluZzsgLy8gc3RyaW5nIHRvIGRpc3BsYXkgc2Vjb25kYXJ5IHZhbHVlXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJTZWxlY3RcIjsgLy8gcGxhY2Vob2xkZXIgZm9yIGlucHV0XG4gIEBJbnB1dCgpIGRlYm91bmNlVGltZSA9IDQwMDsgLy8gd2FpdCB0aW1lIHRpbGwgd2hpY2ggQVBJIGNhbGwgaXMgcGF1c2VkXG4gIEBJbnB1dCgpIG1pbklucHV0TGVuZ3RoID0gMjsgLy8gbWluIGxlbmd0aCBhZnRlciB3aGljaCBBUEkgY2FsbCBpcyBtYWRlXG4gIEBJbnB1dCgpIG11bHRpID0gZmFsc2U7IC8vIG1haW50YWluIGEgbGlzdCBvciBlbWl0IHZhbHVlXG4gIEBJbnB1dCgpIHVuaXF1ZUtleTogc3RyaW5nOyAvLyBmb3IgaWRlbnRpZnlpbmcgdW5pcXVlIHZhbHVlc1xuICBASW5wdXQoKSBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsOyAvLyBmb3JtIGNvbnRyb2wgZm9yIHJlYWN0aXZlIGZvcm1zXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuOyAvLyBkaXNhYmxlIGFjdGlvbnMgb24gY29tcG9uZW50XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuOyAvLyBtYWtlIGNvbXBvbmVudCByZWFkb25seVxuICBASW5wdXQoKSBkaXNhYmxlQ29weVBhc3RlOiBib29sZWFuID0gZmFsc2U7XG4gIEBWaWV3Q2hpbGQoXCJkZEJ0blwiLCB7IHN0YXRpYzogZmFsc2UgfSkgb3JpZ2luOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKFwiaW5wdXRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGlucHV0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKFwiZGRcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIGRkOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgQENvbnRlbnRDaGlsZChcIm1pc0N1c3RvbUl0ZW1cIiwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGN1c3RvbUl0ZW06IFRlbXBsYXRlUmVmPEVsZW1lbnQ+O1xuICBAQ29udGVudENoaWxkKFwiYXN5bmNDdXN0b21Mb2FkZXJcIiwgeyBzdGF0aWM6IGZhbHNlfSlcbiAgY3VzdG9tTG9hZGVyOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gIEBPdXRwdXQoKSBvblNlbGVjdDogRXZlbnRFbWl0dGVyPElMaXN0RGF0YSB8IElMaXN0RGF0YVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIodHJ1ZSk7IC8vIGVtaXQgc2VsZWN0ZWQgdmFsdWVzXG4gIHNlYXJjaElucHV0OiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIGRhdGE6IElMaXN0RGF0YVtdID0gW107XG4gIG9wZW5lZCA9IGZhbHNlO1xuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yOiBib29sZWFuID0gZmFsc2U7XG4gIG9wZW5Qb3BVcE9uVGFiOiBib29sZWFuID0gZmFsc2U7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICBASW5wdXQoKSBzZWxlY3Rpb25zOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIHNlYXJjaFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRlZmF1bHRDYWxsU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcbiAgY29udHJvbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzZWFyY2hWYWx1ZTtcbiAgQE91dHB1dCgpIHNlYXJjaFF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KClcbiAgQE91dHB1dCgpIGNsZWFyOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKGZhbHNlKTtcbiAgQE91dHB1dCgpIGl0ZW1TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUxpc3REYXRhPigpXG4gIEBPdXRwdXQoKSBpdGVtUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUxpc3REYXRhPigpXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11bHRpICYmICF0aGlzLnVuaXF1ZUtleSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiW3VuaXF1ZUtleV0gcmVxdWlyZWQgaW4gbXVsdGkgbW9kZS5cIik7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0LmRpc2FibGUoKTtcbiAgICB9XG4gICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24gPSB0aGlzLnNlYXJjaElucHV0LnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIGZpbHRlcih2YWwgPT4gdmFsICYmIHZhbC5sZW5ndGggPj0gdGhpcy5taW5JbnB1dExlbmd0aCksXG4gICAgICAgIHRhcCgodmFsKSA9PiB0aGlzLnNlYXJjaFF1ZXJ5Q2hhbmdlLmVtaXQodmFsKSksXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKHJlcz8ubGVuZ3RoIDwgdGhpcy5taW5JbnB1dExlbmd0aCB8fCAhcmVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0gZWxzZSBpZiAocmVzPy5sZW5ndGggPiB0aGlzLm1pbklucHV0TGVuZ3RoICYmIHRoaXMuaHR0cFN0cmVhbSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmKCF0aGlzLm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkpXG4gICAgICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKHRoaXMuZGQsIHRoaXMub3JpZ2luLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5odHRwU3RyZWFtKHJlcykuc3Vic2NyaWJlKGxpc3QgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5kYXRhID0gbGlzdDtcbiAgICAgICAgICAgICAgaWYgKCF0aGlzLm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkgJiYgbGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24odGhpcy5kZCwgdGhpcy5vcmlnaW4ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgaWYgKHRoaXMuY29udHJvbD8udmFsdWUpIHtcbiAgICAgIHRoaXMuaGFuZGxlQ29udHJvbENoYW5nZXModGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5jb250cm9sU3Vic2NyaXB0aW9uID0gdGhpcy5jb250cm9sPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHRoaXMuaGFuZGxlQ29udHJvbENoYW5nZXMpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXM/LnNlYXJjaFZhbHVlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQucGF0Y2hWYWx1ZShjaGFuZ2VzLnNlYXJjaFZhbHVlLmN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzICYmIGNoYW5nZXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQuZW5hYmxlKCk7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLnNlYXJjaElucHV0LmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmRlZmF1bHRDYWxsU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDb250cm9sQ2hhbmdlcyA9ICh2YWx1ZXM6IElMaXN0RGF0YVtdKSA9PiB7XG4gICAgdmFsdWVzLmZvckVhY2goZWwgPT4ge1xuICAgICAgdGhpcy5zZWxlY3REYXRhKGVsLCB0cnVlKTtcbiAgICB9KTtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgfTtcblxuICBwcml2YXRlIG9wZW5Ecm9wZG93bih0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8RWxlbWVudD4sIG9yaWdpbjogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8ob3JpZ2luKVxuICAgICAgLndpdGhQb3NpdGlvbnMoW1xuICAgICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwic3RhcnRcIiwgb3JpZ2luWTogXCJib3R0b21cIiB9LCB7IG92ZXJsYXlYOiBcInN0YXJ0XCIsIG92ZXJsYXlZOiBcInRvcFwiIH0pLFxuICAgICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcih7IG9yaWdpblg6IFwic3RhcnRcIiwgb3JpZ2luWTogXCJ0b3BcIiB9LCB7IG92ZXJsYXlYOiBcInN0YXJ0XCIsIG92ZXJsYXlZOiBcImJvdHRvbVwiIH0pXG4gICAgICBdKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuXG4gICAgY29uc3QgY29uZmlncyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogXCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICB3aWR0aDogb3JpZ2luLmNsaWVudFdpZHRoXG4gICAgfSk7XG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShjb25maWdzKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGNsb3NlcyB0aGUgZHJvcGRvd25cbiAgICovXG4gIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcbiAgICB0aGlzLm9wZW5Qb3BVcE9uVGFiID0gZmFsc2U7XG4gICAgdGhpcy5vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLmRhdGEgPSBbXTtcbiAgfVxuXG4gIGVuYWJsZVBvcFVwT25UYWIoKXtcbiAgICB0aGlzLm9wZW5Qb3BVcE9uVGFiID0gdHJ1ZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQucGF0Y2hWYWx1ZShcIlwiKTtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG5cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGl0ZW0gaXRlbSB0byBzZWxlY3RcbiAgICogaWYgaXRlbSBwcm9wZXJ0eSBkaXNhYmxlZCBpcyBzZXQgdG8gdHJ1ZSwgc2VsZWN0aW9uIHdpbGwgYmUgZGlzYWJsZWRcbiAgICogQHBhcmFtIGVmZmVjdGVkRnJvbU91dHNpZGUgc2V0IHRvIHRydWUgaWYgY2FsbGluZyBmcm9tIHBhcmVudCBjb21wb25lbnQsIGlmIHRydWUgd2lsbCBmb2N1cyBvbiBzZWFyY2ggaW5wdXRcbiAgICovXG4gIHNlbGVjdERhdGEoaXRlbTogSUxpc3REYXRhLCBlZmZlY3RlZEZyb21PdXRzaWRlID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChpdGVtLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoaXRlbSlcbiAgICBpZiAoIXRoaXMubXVsdGkpIHtcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQucGF0Y2hWYWx1ZShpdGVtW3RoaXMuZGlzcGxheUtleV0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMuc2VsZWN0aW9ucy5oYXMoaXRlbVt0aGlzLnVuaXF1ZUtleV0pKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9ucy5zZXQoaXRlbVt0aGlzLnVuaXF1ZUtleV0sIGl0ZW0pO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAgIGlmICghZWZmZWN0ZWRGcm9tT3V0c2lkZSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcbiAgICAgICAgfSwgMTApO1xuICAgICAgfVxuICAgICAgdGhpcy5zZWFyY2hJbnB1dC5wYXRjaFZhbHVlKFwiXCIpO1xuICAgICAgdGhpcy5kYXRhID0gW107XG4gICAgfVxuICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtIHJlbW92ZSBpdGVtIGZyb20gc2VsZWN0ZWQgbGlzdFxuICAgKi9cbiAgcmVtb3ZlSXRlbShpdGVtOiBJTGlzdERhdGEpOiB2b2lkIHtcbiAgICB0aGlzLml0ZW1SZW1vdmVkLmVtaXQoaXRlbSlcbiAgICB0aGlzLnNlbGVjdGlvbnMuZGVsZXRlKGl0ZW1bdGhpcy51bmlxdWVLZXldKTtcbiAgICB0aGlzLnNldENvbnRyb2xWYWx1ZSh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgIHRoaXMuaW5wdXRbXCJuYXRpdmVFbGVtZW50XCJdLmZvY3VzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbnRyb2xWYWx1ZSh2YWx1ZTogSUxpc3REYXRhKTogdm9pZCB7XG4gICAgdGhpcy5vblNlbGVjdC5lbWl0KHZhbHVlKTtcbiAgICB0aGlzLmNvbnRyb2w/LnBhdGNoVmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBsaXN0IG9mIHNlbGVjdGVkIGl0ZW1zXG4gICAqL1xuICBnZXQgc2VsZWN0ZWRJdGVtcygpOiBBcnJheTxJTGlzdERhdGE+IHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnNlbGVjdGlvbnMudmFsdWVzKCkpO1xuICB9XG5cbiAgcmVtb3ZlSW5wdXRWYWx1ZSgpIHtcbiAgICB0aGlzLnNlYXJjaElucHV0LnJlc2V0KCk7XG4gICAgdGhpcy5kYXRhID0gW107XG4gICAgdGhpcy5jbGVhci5lbWl0KHRydWUpO1xuICB9XG4gIGRlZmF1bHRDYWxsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1pbklucHV0TGVuZ3RoID09PSAtMSkge1xuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZGVmYXVsdENhbGxTdWJzY3JpcHRpb24gPSB0aGlzLmh0dHBTdHJlYW0odGhpcy5zZWFyY2hJbnB1dC52YWx1ZSB8fCAnJykuc3Vic2NyaWJlKGxpc3QgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5kYXRhID0gbGlzdDtcbiAgICAgICAgaWYgKCF0aGlzLm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCkgJiYgdGhpcy5kYXRhPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24odGhpcy5kZCwgdGhpcy5vcmlnaW4ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH0sIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXJyb3IgPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGQtd3JhcHBlclwiIFtuZ0NsYXNzXT1cInsgb3BlbmVkOiBvcGVuZWQsIGRpc2FibGVkOiBkaXNhYmxlZCwgcmVhZG9ubHk6IHJlYWRvbmx5IH1cIiAjZGRCdG4+XG4gIDxkaXYgY2xhc3M9XCJzZWxlY3RlZC1saXN0XCIgKm5nSWY9XCJtdWx0aSAmJiBzZWxlY3Rpb25zLnNpemUgPiAwXCI+XG4gICAgPGRpdiBjbGFzcz1cImNoaXBcIiBbbmdDbGFzc109XCJ7J2NoaXAtbWQnOiBzaXplID09PSAnbWQnLCAnY2hpcC1zbSc6IHNpemUgPT09ICdzbSd9XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0ZWRJdGVtc1wiPlxuICAgICAgPHNwYW4gW25nQ2xhc3NdPVwieydoNic6IHNpemUgPT09ICdtZCcsICdoOC1iJzogc2l6ZSA9PT0gJ3NtJ31cIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogNHB4O1wiPnt7aXRlbVtkaXNwbGF5S2V5XX19PC9zcGFuPlxuICAgICAgPHNwYW4gc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oaXRlbSlcIiB0YWJpbmRleD1cIjBcIiAoa2V5dXAuZW50ZXIpPVwicmVtb3ZlSXRlbShpdGVtKVwiIFtuZ1N0eWxlXT1cInsnZm9udC1zaXplJzogc2l6ZSA9PT0gJ3NtJyA/ICcxMnB4JzogJzE0cHgnfVwiIGNsYXNzPVwiaWNvbi1pYy1uYXZpZ2F0aW9uLWNhbmNlbC0yNFwiPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIj5cbiAgICA8c3BhbiBjbGFzcz1cImljb24taWMtYWN0aW9uLXNlYXJjaC0yNFwiPjwvc3Bhbj5cbiAgICA8aW5wdXQgKm5nSWY9XCJkaXNhYmxlQ29weVBhc3RlOyBlbHNlIGVuYWJsZUNvcHlQYXN0ZVwiIFtuZ0NsYXNzXT1cInsnaXAtbWQnOiBzaXplID09PSAnbWQnLCAnaXAtc20nOiBzaXplID09PSAnc20nfVwiIG9uY29weT1cInJldHVybiBmYWxzZTtcIiBvbnBhc3RlPVwicmV0dXJuIGZhbHNlXCIgb25jdXQ9XCJyZXR1cm4gZmFsc2VcIiB0YWJpbmRleD1cIjBcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYmxhY2stdGV4dCBoNlwiICNpbnB1dCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoSW5wdXRcIiAoZm9jdXMpPVwiZGVmYXVsdENhbGwoKVwiIChrZXl1cC5lbnRlcik9XCJlbmFibGVQb3BVcE9uVGFiKClcIi8+XG4gICAgPG5nLXRlbXBsYXRlICNlbmFibGVDb3B5UGFzdGU+XG4gICAgICA8aW5wdXQgW25nQ2xhc3NdPVwieydpcC1tZCc6IHNpemUgPT09ICdtZCcsICdpcC1zbSc6IHNpemUgPT09ICdzbSd9XCIgdGFiaW5kZXg9XCIwXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImJsYWNrLXRleHQgaDZcIiAjaW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cInNlYXJjaElucHV0XCIgKGZvY3VzKT1cImRlZmF1bHRDYWxsKClcIiAoa2V5dXAuZW50ZXIpPVwiZW5hYmxlUG9wVXBPblRhYigpXCIgLz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJpY29uLWljLW5hdmlnYXRpb24tY2FuY2VsLTI0IGNyb29zLWljb25cIiAqbmdJZj1cInNlYXJjaElucHV0Py52YWx1ZT8ubGVuZ3RoXCIgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cInJlbW92ZUlucHV0VmFsdWUoKVwiIChrZXl1cC5lbnRlcik9XCJyZW1vdmVJbnB1dFZhbHVlKClcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNkZD5cbiAgPGRpdiBjbGFzcz1cImRkLWxpc3RcIiBbbmdTdHlsZV09XCJ7J21heC1oZWlnaHQnOmhlaWdodH1cIiAgW25nQ2xhc3NdPVwieydkZC1saXN0LXBkJzpkYXRhLmxlbmd0aCA9PT0gMH1cIiB0YWJpbmRleD1cIjBcIiBjZGtUcmFwRm9jdXMgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cIm9wZW5Qb3BVcE9uVGFiXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJjdXN0b21Mb2FkZXI7IGVsc2UgZGVmYXVsdExvYWRlclwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImN1c3RvbUxvYWRlclwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMb2FkZXI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtY29udGFpbmVyXCIgKm5nSWY9XCJsb2FkaW5nICYmICFjdXN0b21Mb2FkZXJcIj5cbiAgICAgICAgICA8bWlzLWxvYWRlciBbbW9iaWxlVmlld109XCJ0cnVlXCI+PC9taXMtbG9hZGVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVycm9yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWNvbnRhaW5lclwiPlxuICAgICAgICA8cD5Vbmtub3duIGVycm9yIGhhcyBvY2N1cnJlZCwgPGJyPiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZyAmJiAhZXJyb3IgJiYgZGF0YS5sZW5ndGggPiAwXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFcIj5cbiAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0RGF0YShpdGVtLCBmYWxzZSlcIiAoa2V5dXAuZW50ZXIpPVwic2VsZWN0RGF0YShpdGVtLCBmYWxzZSlcIj4gXG4gICAgICAgICAgPGRpdiB0YWJpbmRleD1cIi0xXCIgY2RrRm9jdXNJbml0aWFsPjwvZGl2PiAgXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgIFt0YWJpbmRleF09XCJvcGVuUG9wVXBPblRhYiA/IDAgOiAtMVwiXG4gICAgICAgICAgKm5nSWY9XCJjdXN0b21JdGVtOyBlbHNlIHN0YW5kYXJkSXRlbVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21JdGVtXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RhbmRhcmRJdGVtPlxuICAgICAgICAgICAgPGRpdiB0YWJpbmRleD1cIi0xXCIgY2RrRm9jdXNJbml0aWFsPjwvZGl2PiAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiIChjbGljayk9XCJzZWxlY3REYXRhKGl0ZW0sIGZhbHNlKVwiIFt0YWJpbmRleF09XCJvcGVuUG9wVXBPblRhYiA/IDAgOiAtMVwiIChrZXl1cC5lbnRlcik9XCJzZWxlY3REYXRhKGl0ZW0sIGZhbHNlKVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJpbWFyeVwiPlxuICAgICAgICAgICAgICAgICAge3sgaXRlbVtkaXNwbGF5S2V5XSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW1bc2Vjb25kYXJ5RGlzcGxheUtleV0gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZyAmJiAhZXJyb3IgJiYgZGF0YS5sZW5ndGggPT09IDAgJiYgc2VhcmNoSW5wdXQudmFsdWVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRhLW5vdC1mb3VuZFwiPk5vIERhdGEgQXZhaWxhYmxlPC9kaXY+XG4gIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
501
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvYXN5bmMtc2VhcmNoLWRyb3Bkb3duL2FzeW5jLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2FzeW5jLXNlYXJjaC1kcm9wZG93bi9hc3luYy1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUVaLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sRUFHTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDbkJyRSwrQkFBc0gsZUFBQTtJQUMxQixZQUFvQjtJQUFBLGlCQUFPO0lBQ3JILGdDQUF1TTtJQUF4SyxxT0FBUyxlQUFBLDJCQUFnQixDQUFBLElBQUMsb09BQTZCLGVBQUEsMkJBQWdCLENBQUEsSUFBN0M7SUFBOEksaUJBQU8sRUFBQTs7OztJQUY5TCxnR0FBZ0U7SUFDMUUsZUFBd0Q7SUFBeEQsZ0dBQXdEO0lBQTRCLGVBQW9CO0lBQXBCLGdEQUFvQjtJQUNOLGVBQXlEO0lBQXpELDZGQUF5RDs7O0lBSHJLLDhCQUFnRTtJQUM5RCwrRUFHTTtJQUNSLGlCQUFNOzs7SUFKZ0csZUFBZ0I7SUFBaEIsOENBQWdCOzs7OztJ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QUFNO1lBUUUsVUFBVTtrQkFBbEIsS0FBSztZQUtHLFdBQVc7a0JBQW5CLEtBQUs7WUFDSSxpQkFBaUI7a0JBQTFCLE1BQU07WUFDRyxLQUFLO2tCQUFkLE1BQU07WUFDRyxZQUFZO2tCQUFyQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQTJHUCxhQUFhO2tCQURaLFlBQVk7bUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25uZWN0aW9uUG9zaXRpb25QYWlyLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG50eXBlIElMaXN0RGF0YSA9IGFueTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1pcy1hc3luYy1zZWFyY2gtZHJvcGRvd25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9hc3luYy1kcm9wZG93bi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vYXN5bmMtZHJvcGRvd24uY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgQXN5bmNEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUpIHsgfVxuICBASW5wdXQoKSBoZWlnaHQ7XG4gIEBJbnB1dCgpIHNpemU6ICdtZCcgfCAnc20nID0gJ21kJ1xuICBASW5wdXQoKSBodHRwU3RyZWFtITogKHNlYXJjaEtleTogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPElMaXN0RGF0YT47IC8vIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBodHRwb2JzZXJ2YWJsZVxuICBASW5wdXQoKSBkaXNwbGF5S2V5ITogc3RyaW5nOyAvLyBzdHJpbmcgdG8gc2hvdyB2YWx1ZSBpbiBsaXN0XG4gIEBJbnB1dCgpIHNlY29uZGFyeURpc3BsYXlLZXkhOiBzdHJpbmc7IC8vIHN0cmluZyB0byBkaXNwbGF5IHNlY29uZGFyeSB2YWx1ZVxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiU2VsZWN0XCI7IC8vIHBsYWNlaG9sZGVyIGZvciBpbnB1dFxuICBASW5wdXQoKSBkZWJvdW5jZVRpbWUgPSA0MDA7IC8vIHdhaXQgdGltZSB0aWxsIHdoaWNoIEFQSSBjYWxsIGlzIHBhdXNlZFxuICBASW5wdXQoKSBtaW5JbnB1dExlbmd0aCA9IDI7IC8vIG1pbiBsZW5ndGggYWZ0ZXIgd2hpY2ggQVBJIGNhbGwgaXMgbWFkZVxuICBASW5wdXQoKSBtdWx0aSA9IGZhbHNlOyAvLyBtYWludGFpbiBhIGxpc3Qgb3IgZW1pdCB2YWx1ZVxuICBASW5wdXQoKSB1bmlxdWVLZXk6IHN0cmluZzsgLy8gZm9yIGlkZW50aWZ5aW5nIHVuaXF1ZSB2YWx1ZXNcbiAgQElucHV0KCkgY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbDsgLy8gZm9ybSBjb250cm9sIGZvciByZWFjdGl2ZSBmb3Jtc1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjsgLy8gZGlzYWJsZSBhY3Rpb25zIG9uIGNvbXBvbmVudFxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjsgLy8gbWFrZSBjb21wb25lbnQgcmVhZG9ubHlcbiAgQElucHV0KCkgZGlzYWJsZUNvcHlQYXN0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBAVmlld0NoaWxkKFwiZGRCdG5cIiwgeyBzdGF0aWM6IGZhbHNlIH0pIG9yaWdpbjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZChcImlucHV0XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBpbnB1dDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZChcImRkXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBkZDogVGVtcGxhdGVSZWY8RWxlbWVudD47XG4gIEBDb250ZW50Q2hpbGQoXCJtaXNDdXN0b21JdGVtXCIsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBjdXN0b21JdGVtOiBUZW1wbGF0ZVJlZjxFbGVtZW50PjtcbiAgQENvbnRlbnRDaGlsZChcImFzeW5jQ3VzdG9tTG9hZGVyXCIsIHsgc3RhdGljOiBmYWxzZX0pXG4gIGN1c3RvbUxvYWRlcjogVGVtcGxhdGVSZWY8RWxlbWVudD47XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICBAT3V0cHV0KCkgb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxJTGlzdERhdGEgfCBJTGlzdERhdGFbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKHRydWUpOyAvLyBlbWl0IHNlbGVjdGVkIHZhbHVlc1xuICBzZWFyY2hJbnB1dDogVW50eXBlZEZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICBkYXRhOiBJTGlzdERhdGFbXSA9IFtdO1xuICBvcGVuZWQgPSBmYWxzZTtcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBlcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuICBvcGVuUG9wVXBPblRhYjogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgQElucHV0KCkgc2VsZWN0aW9uczogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSBzZWFyY2hTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBkZWZhdWx0Q2FsbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIGNvbnRyb2xTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2VhcmNoVmFsdWU7XG4gIEBPdXRwdXQoKSBzZWFyY2hRdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXG4gIEBPdXRwdXQoKSBjbGVhcjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcihmYWxzZSk7XG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElMaXN0RGF0YT4oKVxuICBAT3V0cHV0KCkgaXRlbVJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElMaXN0RGF0YT4oKVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tdWx0aSAmJiAhdGhpcy51bmlxdWVLZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlt1bmlxdWVLZXldIHJlcXVpcmVkIGluIG11bHRpIG1vZGUuXCIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWFyY2hJbnB1dC5kaXNhYmxlKCk7XG4gICAgfVxuICAgIHRoaXMuc2VhcmNoU3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hJbnB1dC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBmaWx0ZXIodmFsID0+IHZhbCAmJiB2YWwubGVuZ3RoID49IHRoaXMubWluSW5wdXRMZW5ndGgpLFxuICAgICAgICB0YXAoKHZhbCkgPT4gdGhpcy5zZWFyY2hRdWVyeUNoYW5nZS5lbWl0KHZhbCkpLFxuICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChyZXM/Lmxlbmd0aCA8IHRoaXMubWluSW5wdXRMZW5ndGggfHwgIXJlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcz8ubGVuZ3RoID4gdGhpcy5taW5JbnB1dExlbmd0aCAmJiB0aGlzLmh0dHBTdHJlYW0pIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmVycm9yID0gZmFsc2U7XG4gICAgICAgICAgICBpZighdGhpcy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpKVxuICAgICAgICAgICAgICB0aGlzLm9wZW5Ecm9wZG93bih0aGlzLmRkLCB0aGlzLm9yaWdpbi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIHRoaXMuaHR0cFN0cmVhbShyZXMpLnN1YnNjcmliZShsaXN0ID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuZGF0YSA9IGxpc3Q7XG4gICAgICAgICAgICAgIGlmICghdGhpcy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpICYmIGxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKHRoaXMuZGQsIHRoaXMub3JpZ2luLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlKSB7XG4gICAgICB0aGlzLmhhbmRsZUNvbnRyb2xDaGFuZ2VzKHRoaXMuY29udHJvbC52YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbiA9IHRoaXMuY29udHJvbD8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh0aGlzLmhhbmRsZUNvbnRyb2xDaGFuZ2VzKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzPy5zZWFyY2hWYWx1ZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0LnBhdGNoVmFsdWUoY2hhbmdlcy5zZWFyY2hWYWx1ZS5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0LmVuYWJsZSgpO1xuICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dC5kaXNhYmxlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5kZWZhdWx0Q2FsbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29udHJvbENoYW5nZXMgPSAodmFsdWVzOiBJTGlzdERhdGFbXSkgPT4ge1xuICAgIHZhbHVlcy5mb3JFYWNoKGVsID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0RGF0YShlbCwgdHJ1ZSk7XG4gICAgfSk7XG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gIH07XG5cbiAgcHJpdmF0ZSBvcGVuRHJvcGRvd24odGVtcGxhdGU6IFRlbXBsYXRlUmVmPEVsZW1lbnQ+LCBvcmlnaW46IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKG9yaWdpbilcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwiYm90dG9tXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJ0b3BcIiB9KSxcbiAgICAgICAgbmV3IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIoeyBvcmlnaW5YOiBcInN0YXJ0XCIsIG9yaWdpblk6IFwidG9wXCIgfSwgeyBvdmVybGF5WDogXCJzdGFydFwiLCBvdmVybGF5WTogXCJib3R0b21cIiB9KVxuICAgICAgXSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKTtcblxuICAgIGNvbnN0IGNvbmZpZ3MgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIixcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgd2lkdGg6IG9yaWdpbi5jbGllbnRXaWR0aFxuICAgIH0pO1xuICAgIHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlncyk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjbG9zZXMgdGhlIGRyb3Bkb3duXG4gICAqL1xuICBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XG4gICAgdGhpcy5vcGVuUG9wVXBPblRhYiA9IGZhbHNlO1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgdGhpcy5kYXRhID0gW107XG4gIH1cblxuICBlbmFibGVQb3BVcE9uVGFiKCl7XG4gICAgdGhpcy5vcGVuUG9wVXBPblRhYiA9IHRydWU7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0LnBhdGNoVmFsdWUoXCJcIik7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtIGl0ZW0gdG8gc2VsZWN0XG4gICAqIGlmIGl0ZW0gcHJvcGVydHkgZGlzYWJsZWQgaXMgc2V0IHRvIHRydWUsIHNlbGVjdGlvbiB3aWxsIGJlIGRpc2FibGVkXG4gICAqIEBwYXJhbSBlZmZlY3RlZEZyb21PdXRzaWRlIHNldCB0byB0cnVlIGlmIGNhbGxpbmcgZnJvbSBwYXJlbnQgY29tcG9uZW50LCBpZiB0cnVlIHdpbGwgZm9jdXMgb24gc2VhcmNoIGlucHV0XG4gICAqL1xuICBzZWxlY3REYXRhKGl0ZW06IElMaXN0RGF0YSwgZWZmZWN0ZWRGcm9tT3V0c2lkZSA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAoaXRlbS5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLml0ZW1TZWxlY3RlZC5lbWl0KGl0ZW0pXG4gICAgaWYgKCF0aGlzLm11bHRpKSB7XG4gICAgICB0aGlzLnNlYXJjaElucHV0LnBhdGNoVmFsdWUoaXRlbVt0aGlzLmRpc3BsYXlLZXldLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbnMuaGFzKGl0ZW1bdGhpcy51bmlxdWVLZXldKSkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbnMuc2V0KGl0ZW1bdGhpcy51bmlxdWVLZXldLCBpdGVtKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICBpZiAoIWVmZmVjdGVkRnJvbU91dHNpZGUpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgIH0sIDEwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQucGF0Y2hWYWx1ZShcIlwiKTtcbiAgICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaXRlbSByZW1vdmUgaXRlbSBmcm9tIHNlbGVjdGVkIGxpc3RcbiAgICovXG4gIHJlbW92ZUl0ZW0oaXRlbTogSUxpc3REYXRhKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtUmVtb3ZlZC5lbWl0KGl0ZW0pXG4gICAgdGhpcy5zZWxlY3Rpb25zLmRlbGV0ZShpdGVtW3RoaXMudW5pcXVlS2V5XSk7XG4gICAgdGhpcy5zZXRDb250cm9sVmFsdWUodGhpcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB0aGlzLmlucHV0W1wibmF0aXZlRWxlbWVudFwiXS5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb250cm9sVmFsdWUodmFsdWU6IElMaXN0RGF0YSk6IHZvaWQge1xuICAgIHRoaXMub25TZWxlY3QuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5jb250cm9sPy5wYXRjaFZhbHVlKHZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgbGlzdCBvZiBzZWxlY3RlZCBpdGVtc1xuICAgKi9cbiAgZ2V0IHNlbGVjdGVkSXRlbXMoKTogQXJyYXk8SUxpc3REYXRhPiB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5zZWxlY3Rpb25zLnZhbHVlcygpKTtcbiAgfVxuXG4gIHJlbW92ZUlucHV0VmFsdWUoKSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dC5yZXNldCgpO1xuICAgIHRoaXMuZGF0YSA9IFtdO1xuICAgIHRoaXMuY2xlYXIuZW1pdCh0cnVlKTtcbiAgfVxuICBkZWZhdWx0Q2FsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5taW5JbnB1dExlbmd0aCA9PT0gLTEpIHtcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmRlZmF1bHRDYWxsU3Vic2NyaXB0aW9uID0gdGhpcy5odHRwU3RyZWFtKHRoaXMuc2VhcmNoSW5wdXQudmFsdWUgfHwgJycpLnN1YnNjcmliZShsaXN0ID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZGF0YSA9IGxpc3Q7XG4gICAgICAgIGlmICghdGhpcy5vdmVybGF5UmVmPy5oYXNBdHRhY2hlZCgpICYmIHRoaXMuZGF0YT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMub3BlbkRyb3Bkb3duKHRoaXMuZGQsIHRoaXMub3JpZ2luLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9LCBlcnJvciA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmVycm9yID0gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRkLXdyYXBwZXJcIiBbbmdDbGFzc109XCJ7IG9wZW5lZDogb3BlbmVkLCBkaXNhYmxlZDogZGlzYWJsZWQsIHJlYWRvbmx5OiByZWFkb25seSB9XCIgI2RkQnRuPlxuICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQtbGlzdFwiICpuZ0lmPVwibXVsdGkgJiYgc2VsZWN0aW9ucy5zaXplID4gMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjaGlwXCIgW25nQ2xhc3NdPVwieydjaGlwLW1kJzogc2l6ZSA9PT0gJ21kJywgJ2NoaXAtc20nOiBzaXplID09PSAnc20nfVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNlbGVjdGVkSXRlbXNcIj5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsnaDYnOiBzaXplID09PSAnbWQnLCAnaDgtYic6IHNpemUgPT09ICdzbSd9XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDRweDtcIj57e2l0ZW1bZGlzcGxheUtleV19fTwvc3Bhbj5cbiAgICAgIDxzcGFuIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJyZW1vdmVJdGVtKGl0ZW0pXCIgdGFiaW5kZXg9XCIwXCIgKGtleXVwLmVudGVyKT1cInJlbW92ZUl0ZW0oaXRlbSlcIiBbbmdTdHlsZV09XCJ7J2ZvbnQtc2l6ZSc6IHNpemUgPT09ICdzbScgPyAnMTJweCc6ICcxNHB4J31cIiBjbGFzcz1cImljb24taWMtbmF2aWdhdGlvbi1jYW5jZWwtMjRcIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0XCI+XG4gICAgPHNwYW4gY2xhc3M9XCJpY29uLWljLWFjdGlvbi1zZWFyY2gtMjRcIj48L3NwYW4+XG4gICAgPGlucHV0ICpuZ0lmPVwiZGlzYWJsZUNvcHlQYXN0ZTsgZWxzZSBlbmFibGVDb3B5UGFzdGVcIiBbbmdDbGFzc109XCJ7J2lwLW1kJzogc2l6ZSA9PT0gJ21kJywgJ2lwLXNtJzogc2l6ZSA9PT0gJ3NtJ31cIiBvbmNvcHk9XCJyZXR1cm4gZmFsc2U7XCIgb25wYXN0ZT1cInJldHVybiBmYWxzZVwiIG9uY3V0PVwicmV0dXJuIGZhbHNlXCIgdGFiaW5kZXg9XCIwXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImJsYWNrLXRleHQgaDZcIiAjaW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cInNlYXJjaElucHV0XCIgKGZvY3VzKT1cImRlZmF1bHRDYWxsKClcIiAoa2V5dXAuZW50ZXIpPVwiZW5hYmxlUG9wVXBPblRhYigpXCIvPlxuICAgIDxuZy10ZW1wbGF0ZSAjZW5hYmxlQ29weVBhc3RlPlxuICAgICAgPGlucHV0IFtuZ0NsYXNzXT1cInsnaXAtbWQnOiBzaXplID09PSAnbWQnLCAnaXAtc20nOiBzaXplID09PSAnc20nfVwiIHRhYmluZGV4PVwiMFwiIHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJibGFjay10ZXh0IGg2XCIgI2lucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJzZWFyY2hJbnB1dFwiIChmb2N1cyk9XCJkZWZhdWx0Q2FsbCgpXCIgKGtleXVwLmVudGVyKT1cImVuYWJsZVBvcFVwT25UYWIoKVwiIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1pYy1uYXZpZ2F0aW9uLWNhbmNlbC0yNCBjcm9vcy1pY29uXCIgKm5nSWY9XCJzZWFyY2hJbnB1dD8udmFsdWU/Lmxlbmd0aFwiIHRhYmluZGV4PVwiMFwiIChjbGljayk9XCJyZW1vdmVJbnB1dFZhbHVlKClcIiAoa2V5dXAuZW50ZXIpPVwicmVtb3ZlSW5wdXRWYWx1ZSgpXCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGQ+XG4gIDxkaXYgY2xhc3M9XCJkZC1saXN0XCIgW25nU3R5bGVdPVwieydtYXgtaGVpZ2h0JzpoZWlnaHR9XCIgIFtuZ0NsYXNzXT1cInsnZGQtbGlzdC1wZCc6ZGF0YS5sZW5ndGggPT09IDB9XCIgdGFiaW5kZXg9XCIwXCIgY2RrVHJhcEZvY3VzIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJvcGVuUG9wVXBPblRhYlwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0lmPVwiY3VzdG9tTG9hZGVyOyBlbHNlIGRlZmF1bHRMb2FkZXJcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21Mb2FkZXJcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWNvbnRhaW5lclwiICpuZ0lmPVwibG9hZGluZyAmJiAhY3VzdG9tTG9hZGVyXCI+XG4gICAgICAgICAgPG1pcy1sb2FkZXIgW21vYmlsZVZpZXddPVwidHJ1ZVwiPjwvbWlzLWxvYWRlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlcnJvclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1jb250YWluZXJcIj5cbiAgICAgICAgPHA+VW5rbm93biBlcnJvciBoYXMgb2NjdXJyZWQsIDxicj4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci48L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIWVycm9yICYmIGRhdGEubGVuZ3RoID4gMFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhXCI+XG4gICAgICAgIDxkaXYgKGNsaWNrKT1cInNlbGVjdERhdGEoaXRlbSwgZmFsc2UpXCIgKGtleXVwLmVudGVyKT1cInNlbGVjdERhdGEoaXRlbSwgZmFsc2UpXCI+IFxuICAgICAgICAgIDxkaXYgdGFiaW5kZXg9XCItMVwiIGNka0ZvY3VzSW5pdGlhbD48L2Rpdj4gIFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICBbdGFiaW5kZXhdPVwib3BlblBvcFVwT25UYWIgPyAwIDogLTFcIlxuICAgICAgICAgICpuZ0lmPVwiY3VzdG9tSXRlbTsgZWxzZSBzdGFuZGFyZEl0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tSXRlbVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3N0YW5kYXJkSXRlbT5cbiAgICAgICAgICAgIDxkaXYgdGFiaW5kZXg9XCItMVwiIGNka0ZvY3VzSW5pdGlhbD48L2Rpdj4gIFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAoY2xpY2spPVwic2VsZWN0RGF0YShpdGVtLCBmYWxzZSlcIiBbdGFiaW5kZXhdPVwib3BlblBvcFVwT25UYWIgPyAwIDogLTFcIiAoa2V5dXAuZW50ZXIpPVwic2VsZWN0RGF0YShpdGVtLCBmYWxzZSlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW1bZGlzcGxheUtleV0gfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtW3NlY29uZGFyeURpc3BsYXlLZXldIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIWVycm9yICYmIGRhdGEubGVuZ3RoID09PSAwICYmIHNlYXJjaElucHV0LnZhbHVlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0YS1ub3QtZm91bmRcIj5ObyBEYXRhIEF2YWlsYWJsZTwvZGl2PlxuICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|