ngx-tethys 18.0.0 → 18.0.1
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/CHANGELOG.md +22 -0
- package/action/styles/action.scss +1 -1
- package/action/styles/mixin.scss +8 -3
- package/alert/styles/mixin.scss +3 -10
- package/back-top/examples/custom/custom.scss +3 -1
- package/badge/examples/basic/basic.component.scss +3 -1
- package/badge/examples/custom-color/custom-color.component.scss +3 -1
- package/badge/examples/overflow/overflow.component.scss +3 -1
- package/badge/examples/state-point/state-point.component.scss +3 -1
- package/badge/examples/type/type.component.scss +3 -1
- package/badge/styles/badge.scss +1 -1
- package/badge/styles/mixin.scss +2 -16
- package/button/styles/button.scss +8 -7
- package/button/styles/mixin.scss +22 -15
- package/carousel/styles/variables.scss +1 -1
- package/cascader/cascader.service.d.ts +1 -1
- package/cascader/styles/cascader.scss +3 -6
- package/collapse/examples/custom/custom.component.scss +3 -1
- package/color-picker/parts/inputs/inputs.component.d.ts +1 -0
- package/color-picker/styles/inputs.scss +8 -1
- package/color-picker/styles/saturation.scss +3 -3
- package/core/debounce-time.d.ts +8 -0
- package/core/index.d.ts +1 -0
- package/date-picker/styles/decade-panel.scss +1 -1
- package/date-picker/styles/mixin.scss +1 -1
- package/date-picker/styles/picker.scss +3 -0
- package/date-picker/styles/variables.scss +1 -4
- package/date-picker/styles/year-panel.scss +1 -1
- package/drag-drop/examples/tree-drag/tree-drag.component.scss +0 -1
- package/dropdown/styles/dropdown.scss +1 -1
- package/esm2022/action/action.component.mjs +4 -4
- package/esm2022/action/action.module.mjs +4 -4
- package/esm2022/action/actions.component.mjs +3 -3
- package/esm2022/affix/affix.component.mjs +4 -4
- package/esm2022/affix/affix.module.mjs +4 -4
- package/esm2022/alert/alert.component.mjs +3 -3
- package/esm2022/alert/alert.directive.mjs +3 -3
- package/esm2022/alert/alert.module.mjs +4 -4
- package/esm2022/anchor/anchor-link.component.mjs +4 -4
- package/esm2022/anchor/anchor.component.mjs +4 -4
- package/esm2022/anchor/anchor.module.mjs +4 -4
- package/esm2022/arrow-switcher/arrow-switcher.component.mjs +3 -3
- package/esm2022/arrow-switcher/module.mjs +4 -4
- package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
- package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +3 -3
- package/esm2022/autocomplete/module.mjs +4 -4
- package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +3 -3
- package/esm2022/autocomplete/overlay/autocomplete.service.mjs +3 -3
- package/esm2022/avatar/avatar-list/avatar-list.component.mjs +3 -3
- package/esm2022/avatar/avatar.component.mjs +4 -4
- package/esm2022/avatar/avatar.module.mjs +4 -4
- package/esm2022/avatar/avatar.pipe.mjs +9 -9
- package/esm2022/avatar/avatar.service.mjs +3 -3
- package/esm2022/back-top/back-top.component.mjs +3 -3
- package/esm2022/back-top/back-top.module.mjs +4 -4
- package/esm2022/badge/badge.component.mjs +3 -3
- package/esm2022/badge/badge.module.mjs +4 -4
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +4 -4
- package/esm2022/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/breadcrumb/module.mjs +4 -4
- package/esm2022/button/button-group.component.mjs +3 -3
- package/esm2022/button/button-icon.component.mjs +3 -3
- package/esm2022/button/button.component.mjs +4 -4
- package/esm2022/button/button.module.mjs +4 -4
- package/esm2022/calendar/calendar-cells.mjs +6 -6
- package/esm2022/calendar/calendar-header.component.mjs +3 -3
- package/esm2022/calendar/calendar.component.mjs +3 -3
- package/esm2022/calendar/module.mjs +4 -4
- package/esm2022/card/card.component.mjs +3 -3
- package/esm2022/card/card.module.mjs +4 -4
- package/esm2022/card/content.component.mjs +3 -3
- package/esm2022/card/header.component.mjs +3 -3
- package/esm2022/carousel/carousel-item.directive.mjs +4 -4
- package/esm2022/carousel/carousel.component.mjs +7 -7
- package/esm2022/carousel/carousel.service.mjs +4 -4
- package/esm2022/carousel/module.mjs +4 -4
- package/esm2022/cascader/cascader-li.component.mjs +3 -3
- package/esm2022/cascader/cascader-search-option.component.mjs +3 -3
- package/esm2022/cascader/cascader.component.mjs +7 -7
- package/esm2022/cascader/cascader.service.mjs +9 -21
- package/esm2022/cascader/module.mjs +4 -4
- package/esm2022/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/checkbox/module.mjs +4 -4
- package/esm2022/collapse/collapse-item.component.mjs +4 -4
- package/esm2022/collapse/collapse.component.mjs +3 -3
- package/esm2022/collapse/module.mjs +4 -4
- package/esm2022/color-picker/color-picker-custom-panel.component.mjs +3 -3
- package/esm2022/color-picker/color-picker-panel.component.mjs +3 -3
- package/esm2022/color-picker/color-picker.component.mjs +4 -4
- package/esm2022/color-picker/coordinates.directive.mjs +3 -3
- package/esm2022/color-picker/helpers/rgba.class.mjs +1 -1
- package/esm2022/color-picker/module.mjs +4 -4
- package/esm2022/color-picker/parts/alpha/alpha.component.mjs +3 -3
- package/esm2022/color-picker/parts/hue/hue.component.mjs +3 -3
- package/esm2022/color-picker/parts/indicator/indicator.component.mjs +3 -3
- package/esm2022/color-picker/parts/inputs/inputs.component.mjs +20 -10
- package/esm2022/color-picker/parts/saturation/saturation.component.mjs +3 -3
- package/esm2022/comment/comment-actions.directive.mjs +3 -3
- package/esm2022/comment/comment-content.directive.mjs +3 -3
- package/esm2022/comment/comment.component.mjs +3 -3
- package/esm2022/comment/comment.module.mjs +4 -4
- package/esm2022/copy/copy.directive.mjs +3 -3
- package/esm2022/copy/module.mjs +4 -4
- package/esm2022/core/click-positioner.mjs +3 -3
- package/esm2022/core/debounce-time.mjs +11 -0
- package/esm2022/core/index.mjs +2 -1
- package/esm2022/core/overlay/abstract-overlay-container.mjs +1 -1
- package/esm2022/core/overlay/overlay.directive.mjs +1 -1
- package/esm2022/core/overlay/portal-directives.mjs +3 -3
- package/esm2022/core/scroll.mjs +4 -4
- package/esm2022/core/store/store.mjs +3 -3
- package/esm2022/core/translate.mjs +3 -3
- package/esm2022/core/update-host-class.service.mjs +3 -3
- package/esm2022/date-picker/abstract-picker.component.mjs +3 -3
- package/esm2022/date-picker/abstract-picker.directive.mjs +4 -4
- package/esm2022/date-picker/base-picker.component.mjs +4 -4
- package/esm2022/date-picker/date-helper.service.mjs +3 -3
- package/esm2022/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/date-picker/date-picker.directive.mjs +3 -3
- package/esm2022/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/date-picker/date-picker.service.mjs +3 -3
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +3 -3
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -3
- package/esm2022/date-picker/lib/date/date-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +3 -3
- package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +3 -3
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/decade/decade-table.component.mjs +3 -3
- package/esm2022/date-picker/lib/lib-packer.module.mjs +4 -4
- package/esm2022/date-picker/lib/month/month-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -3
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +4 -4
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +3 -3
- package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +3 -3
- package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
- package/esm2022/date-picker/lib/year/year-table.component.mjs +3 -3
- package/esm2022/date-picker/month-picker.component.mjs +4 -4
- package/esm2022/date-picker/picker.component.mjs +5 -5
- package/esm2022/date-picker/picker.pipes.mjs +12 -12
- package/esm2022/date-picker/picker.validators.mjs +6 -6
- package/esm2022/date-picker/quarter-picker.component.mjs +4 -4
- package/esm2022/date-picker/range-picker.component.mjs +4 -4
- package/esm2022/date-picker/range-picker.directive.mjs +3 -3
- package/esm2022/date-picker/week-picker.component.mjs +4 -4
- package/esm2022/date-picker/year-picker.component.mjs +4 -4
- package/esm2022/date-range/date-range.component.mjs +4 -4
- package/esm2022/date-range/module.mjs +4 -4
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +3 -3
- package/esm2022/dialog/body/dialog-body.component.mjs +3 -3
- package/esm2022/dialog/confirm/confirm.component.mjs +3 -3
- package/esm2022/dialog/dialog-container.component.mjs +3 -3
- package/esm2022/dialog/dialog.module.mjs +4 -4
- package/esm2022/dialog/dialog.service.mjs +3 -3
- package/esm2022/dialog/footer/dialog-footer.component.mjs +3 -3
- package/esm2022/dialog/header/dialog-header.component.mjs +3 -3
- package/esm2022/divider/divider.component.mjs +3 -3
- package/esm2022/divider/divider.module.mjs +4 -4
- package/esm2022/dot/dot.component.mjs +4 -4
- package/esm2022/dot/dot.module.mjs +4 -4
- package/esm2022/drag-drop/drag-content.directive.mjs +4 -4
- package/esm2022/drag-drop/drag-drop.service.mjs +3 -3
- package/esm2022/drag-drop/drag-handle.directive.mjs +4 -4
- package/esm2022/drag-drop/drag.directive.mjs +3 -3
- package/esm2022/drag-drop/drop-container.directive.mjs +3 -3
- package/esm2022/drag-drop/module.mjs +4 -4
- package/esm2022/dropdown/dropdown-active.directive.mjs +4 -4
- package/esm2022/dropdown/dropdown-menu-item.directive.mjs +21 -21
- package/esm2022/dropdown/dropdown-menu.component.mjs +12 -12
- package/esm2022/dropdown/dropdown-submenu.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.directive.mjs +3 -3
- package/esm2022/dropdown/module.mjs +4 -4
- package/esm2022/empty/empty.component.mjs +3 -3
- package/esm2022/empty/empty.config.mjs +3 -3
- package/esm2022/empty/empty.module.mjs +4 -4
- package/esm2022/flexible-text/flexible-text.component.mjs +3 -3
- package/esm2022/flexible-text/flexible-text.module.mjs +4 -4
- package/esm2022/form/form-group-error/form-group-error.component.mjs +3 -3
- package/esm2022/form/form-group-label.directive.mjs +3 -3
- package/esm2022/form/form-group.component.mjs +4 -4
- package/esm2022/form/form-submit.directive.mjs +3 -3
- package/esm2022/form/form-validator-loader.mjs +3 -3
- package/esm2022/form/form-validator.service.mjs +3 -3
- package/esm2022/form/form.directive.mjs +3 -3
- package/esm2022/form/from-group-footer/form-group-footer.component.mjs +4 -4
- package/esm2022/form/module.mjs +4 -4
- package/esm2022/form/validator/confirm-validator.directive.mjs +3 -3
- package/esm2022/form/validator/max-validator.directive.mjs +3 -3
- package/esm2022/form/validator/min-validator.directive.mjs +3 -3
- package/esm2022/form/validator/unique-validator.directive.mjs +4 -4
- package/esm2022/fullscreen/fullscreen-launch.directive.mjs +3 -3
- package/esm2022/fullscreen/fullscreen-ref.mjs +3 -2
- package/esm2022/fullscreen/fullscreen.component.mjs +4 -4
- package/esm2022/fullscreen/fullscreen.module.mjs +4 -4
- package/esm2022/fullscreen/fullscreen.service.mjs +4 -4
- package/esm2022/grid/flex.mjs +12 -12
- package/esm2022/grid/module.mjs +4 -4
- package/esm2022/grid/thy-col.directive.mjs +3 -3
- package/esm2022/grid/thy-grid-item.component.mjs +4 -4
- package/esm2022/grid/thy-grid.component.mjs +7 -7
- package/esm2022/grid/thy-row.directive.mjs +3 -3
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +3 -3
- package/esm2022/guider/guider-manager.mjs +3 -3
- package/esm2022/guider/guider.directive.mjs +4 -4
- package/esm2022/guider/guider.module.mjs +4 -4
- package/esm2022/guider/guider.service.mjs +3 -3
- package/esm2022/icon/icon-registry.mjs +4 -4
- package/esm2022/icon/icon.component.mjs +4 -4
- package/esm2022/icon/icon.module.mjs +4 -4
- package/esm2022/image/image-group.component.mjs +4 -4
- package/esm2022/image/image.directive.mjs +4 -4
- package/esm2022/image/image.service.mjs +3 -3
- package/esm2022/image/module.mjs +4 -4
- package/esm2022/image/preview/image-preview.component.mjs +4 -4
- package/esm2022/input/input-count.component.mjs +4 -4
- package/esm2022/input/input-group.component.mjs +4 -4
- package/esm2022/input/input-search.component.mjs +4 -4
- package/esm2022/input/input.component.mjs +4 -4
- package/esm2022/input/input.directive.mjs +4 -4
- package/esm2022/input/module.mjs +4 -4
- package/esm2022/input-number/input-number.component.mjs +3 -3
- package/esm2022/input-number/module.mjs +4 -4
- package/esm2022/layout/content-main.component.mjs +6 -6
- package/esm2022/layout/content-section.component.mjs +6 -6
- package/esm2022/layout/content.component.mjs +6 -6
- package/esm2022/layout/header.component.mjs +6 -6
- package/esm2022/layout/layout.component.mjs +6 -6
- package/esm2022/layout/layout.module.mjs +4 -4
- package/esm2022/layout/sidebar-content.component.mjs +6 -6
- package/esm2022/layout/sidebar-footer.component.mjs +6 -6
- package/esm2022/layout/sidebar-header.component.mjs +6 -6
- package/esm2022/layout/sidebar.component.mjs +7 -7
- package/esm2022/list/list-item-meta.component.mjs +3 -3
- package/esm2022/list/list-item.component.mjs +3 -3
- package/esm2022/list/list.component.mjs +3 -3
- package/esm2022/list/list.module.mjs +4 -4
- package/esm2022/list/selection/selection-list.mjs +3 -3
- package/esm2022/loading/loading.component.mjs +3 -3
- package/esm2022/loading/loading.module.mjs +4 -4
- package/esm2022/mention/mention.directive.mjs +3 -3
- package/esm2022/mention/mention.module.mjs +4 -4
- package/esm2022/mention/suggestions/suggestions.component.mjs +4 -4
- package/esm2022/menu/divider/menu-divider.component.mjs +3 -3
- package/esm2022/menu/group/menu-group.component.mjs +3 -3
- package/esm2022/menu/item/action/menu-item-action.component.mjs +4 -4
- package/esm2022/menu/item/icon/menu-item-icon.component.mjs +3 -3
- package/esm2022/menu/item/menu-item.component.mjs +3 -3
- package/esm2022/menu/item/name/menu-item-name.component.mjs +3 -3
- package/esm2022/menu/menu.component.mjs +3 -3
- package/esm2022/menu/menu.module.mjs +4 -4
- package/esm2022/message/abstract/abstract-message-container.component.mjs +4 -4
- package/esm2022/message/abstract/abstract-message.component.mjs +4 -4
- package/esm2022/message/abstract/abstract-message.service.mjs +1 -1
- package/esm2022/message/message-container.component.mjs +3 -3
- package/esm2022/message/message-queue.service.mjs +3 -3
- package/esm2022/message/message.component.mjs +3 -3
- package/esm2022/message/message.service.mjs +3 -3
- package/esm2022/message/module.mjs +4 -4
- package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +3 -3
- package/esm2022/nav/icon-nav/icon-nav.component.mjs +3 -3
- package/esm2022/nav/nav-ink-bar.directive.mjs +3 -3
- package/esm2022/nav/nav-item.directive.mjs +4 -4
- package/esm2022/nav/nav.component.mjs +3 -3
- package/esm2022/nav/nav.module.mjs +4 -4
- package/esm2022/nav/nav.pipe.mjs +3 -3
- package/esm2022/notify/module.mjs +4 -4
- package/esm2022/notify/notify-container.component.mjs +3 -3
- package/esm2022/notify/notify-queue.service.mjs +3 -3
- package/esm2022/notify/notify.component.mjs +5 -5
- package/esm2022/notify/notify.service.mjs +3 -3
- package/esm2022/pagination/pagination.component.mjs +29 -29
- package/esm2022/pagination/pagination.module.mjs +4 -4
- package/esm2022/pagination/pagination.pipe.mjs +3 -3
- package/esm2022/popover/body/popover-body.component.mjs +3 -3
- package/esm2022/popover/header/popover-header.component.mjs +4 -4
- package/esm2022/popover/module.mjs +4 -4
- package/esm2022/popover/popover-container.component.mjs +3 -3
- package/esm2022/popover/popover.directive.mjs +3 -3
- package/esm2022/popover/popover.service.mjs +3 -3
- package/esm2022/progress/progress-circle.component.mjs +3 -3
- package/esm2022/progress/progress-strip.component.mjs +3 -3
- package/esm2022/progress/progress.component.mjs +3 -3
- package/esm2022/progress/progress.module.mjs +4 -4
- package/esm2022/property/module.mjs +4 -4
- package/esm2022/property/properties.component.mjs +3 -3
- package/esm2022/property/property-item.component.mjs +4 -4
- package/esm2022/property-operation/group/property-operation-group.component.mjs +3 -3
- package/esm2022/property-operation/module.mjs +4 -4
- package/esm2022/property-operation/property-operation.component.mjs +4 -4
- package/esm2022/radio/button/radio-button.component.mjs +3 -3
- package/esm2022/radio/group/radio-group.component.mjs +3 -3
- package/esm2022/radio/module.mjs +4 -4
- package/esm2022/radio/radio.component.mjs +3 -3
- package/esm2022/rate/module.mjs +4 -4
- package/esm2022/rate/rate-item.component.mjs +3 -3
- package/esm2022/rate/rate.component.mjs +3 -3
- package/esm2022/resizable/module.mjs +4 -4
- package/esm2022/resizable/resizable.directive.mjs +3 -3
- package/esm2022/resizable/resizable.service.mjs +4 -4
- package/esm2022/resizable/resize-handle.component.mjs +4 -4
- package/esm2022/resizable/resize-handles.component.mjs +3 -3
- package/esm2022/result/result.component.mjs +3 -3
- package/esm2022/result/result.module.mjs +4 -4
- package/esm2022/segment/segment-item.component.mjs +3 -3
- package/esm2022/segment/segment.component.mjs +4 -4
- package/esm2022/segment/segment.module.mjs +4 -4
- package/esm2022/select/custom-select/custom-select.component.mjs +3 -3
- package/esm2022/select/module.mjs +4 -4
- package/esm2022/select/native-select/native-select.component.mjs +3 -3
- package/esm2022/shared/base-form-check.component.mjs +4 -4
- package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-autofocus.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-contextmenu.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-drag-drop.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-enter.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-scroll.directive.mjs +4 -4
- package/esm2022/shared/directives/thy-show.mjs +4 -4
- package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +3 -3
- package/esm2022/shared/directives/view-outlet.directive.mjs +4 -4
- package/esm2022/shared/ng-transclude.directive.mjs +3 -3
- package/esm2022/shared/option/group/option-group.component.mjs +4 -4
- package/esm2022/shared/option/list-option/list-option.component.mjs +3 -3
- package/esm2022/shared/option/module.mjs +4 -4
- package/esm2022/shared/option/option-group.component.mjs +3 -3
- package/esm2022/shared/option/option.component.mjs +4 -4
- package/esm2022/shared/option/options-container.component.mjs +3 -3
- package/esm2022/shared/select/module.mjs +4 -4
- package/esm2022/shared/select/select-control/select-control.component.mjs +3 -3
- package/esm2022/shared/shared.module.mjs +4 -4
- package/esm2022/skeleton/module.mjs +4 -4
- package/esm2022/skeleton/skeleton-circle.component.mjs +3 -3
- package/esm2022/skeleton/skeleton-rectangle.component.mjs +3 -3
- package/esm2022/skeleton/skeleton.component.mjs +3 -3
- package/esm2022/skeleton/stylized/bullet-list.component.mjs +3 -3
- package/esm2022/skeleton/stylized/list.component.mjs +3 -3
- package/esm2022/skeleton/stylized/paragraph.component.mjs +3 -3
- package/esm2022/slide/drawer/drawer-container.directive.mjs +3 -3
- package/esm2022/slide/slide-body/slide-body-section.component.mjs +3 -3
- package/esm2022/slide/slide-body/slide-body.component.mjs +3 -3
- package/esm2022/slide/slide-container.component.mjs +3 -3
- package/esm2022/slide/slide-footer/slide-footer.component.mjs +3 -3
- package/esm2022/slide/slide-header/slide-header.component.mjs +3 -3
- package/esm2022/slide/slide-layout/slide-layout.component.mjs +3 -3
- package/esm2022/slide/slide-ref.service.mjs +3 -3
- package/esm2022/slide/slide.module.mjs +4 -4
- package/esm2022/slide/slide.service.mjs +3 -3
- package/esm2022/slider/slider.component.mjs +4 -4
- package/esm2022/slider/slider.module.mjs +4 -4
- package/esm2022/space/space.component.mjs +6 -6
- package/esm2022/space/space.module.mjs +4 -4
- package/esm2022/statistic/statistic.component.mjs +3 -3
- package/esm2022/statistic/statistic.module.mjs +4 -4
- package/esm2022/stepper/step-header.component.mjs +3 -3
- package/esm2022/stepper/step.component.mjs +3 -3
- package/esm2022/stepper/stepper-button.directive.mjs +6 -6
- package/esm2022/stepper/stepper.component.mjs +3 -3
- package/esm2022/stepper/stepper.module.mjs +4 -4
- package/esm2022/strength/strength.component.mjs +3 -3
- package/esm2022/strength/strength.module.mjs +4 -4
- package/esm2022/switch/switch.component.mjs +3 -3
- package/esm2022/switch/switch.module.mjs +4 -4
- package/esm2022/table/pipes/drag.pipe.mjs +3 -3
- package/esm2022/table/pipes/table.pipe.mjs +3 -3
- package/esm2022/table/table-column.component.mjs +3 -3
- package/esm2022/table/table-skeleton.component.mjs +3 -3
- package/esm2022/table/table.component.mjs +5 -5
- package/esm2022/table/table.module.mjs +4 -4
- package/esm2022/tabs/tab-content.component.mjs +3 -3
- package/esm2022/tabs/tab.component.mjs +3 -3
- package/esm2022/tabs/tabs.component.mjs +4 -4
- package/esm2022/tabs/tabs.module.mjs +4 -4
- package/esm2022/tag/tag.component.mjs +3 -3
- package/esm2022/tag/tag.module.mjs +4 -4
- package/esm2022/tag/tags.component.mjs +3 -3
- package/esm2022/testing/data-transfer.mjs +1 -1
- package/esm2022/time-picker/inner/inner-time-picker.component.mjs +4 -4
- package/esm2022/time-picker/inner/inner-time-picker.config.mjs +3 -3
- package/esm2022/time-picker/inner/inner-time-picker.store.mjs +3 -3
- package/esm2022/time-picker/time-picker-panel.component.mjs +4 -4
- package/esm2022/time-picker/time-picker.component.mjs +4 -4
- package/esm2022/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/timeline/timeline-item.component.mjs +4 -4
- package/esm2022/timeline/timeline.component.mjs +4 -4
- package/esm2022/timeline/timeline.module.mjs +4 -4
- package/esm2022/timeline/timeline.service.mjs +3 -3
- package/esm2022/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/tooltip/tooltip.directive.mjs +3 -3
- package/esm2022/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/tooltip/tooltip.service.mjs +3 -3
- package/esm2022/transfer/transfer-list.component.mjs +4 -4
- package/esm2022/transfer/transfer.component.mjs +3 -3
- package/esm2022/transfer/transfer.module.mjs +4 -4
- package/esm2022/tree/tree-node.component.mjs +4 -4
- package/esm2022/tree/tree.component.mjs +5 -5
- package/esm2022/tree/tree.module.mjs +4 -4
- package/esm2022/tree/tree.pipe.mjs +3 -3
- package/esm2022/tree/tree.service.mjs +3 -3
- package/esm2022/tree-select/module.mjs +4 -4
- package/esm2022/tree-select/tree-select.component.mjs +13 -12
- package/esm2022/typography/bg-color.directive.mjs +3 -3
- package/esm2022/typography/module.mjs +4 -4
- package/esm2022/typography/text/text.component.mjs +3 -3
- package/esm2022/typography/text-color.directive.mjs +3 -3
- package/esm2022/upload/file-drop.directive.mjs +3 -3
- package/esm2022/upload/file-select-base.mjs +3 -3
- package/esm2022/upload/file-select.component.mjs +4 -4
- package/esm2022/upload/module.mjs +4 -4
- package/esm2022/upload/upload.service.mjs +3 -3
- package/esm2022/util/logger/logger.mjs +1 -1
- package/esm2022/version.mjs +2 -2
- package/esm2022/vote/vote.component.mjs +3 -3
- package/esm2022/vote/vote.module.mjs +4 -4
- package/esm2022/watermark/watermark.directive.mjs +3 -3
- package/esm2022/watermark/watermark.module.mjs +4 -4
- package/fesm2022/ngx-tethys-action.mjs +10 -10
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +7 -7
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +10 -10
- package/fesm2022/ngx-tethys-anchor.mjs +10 -10
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-autocomplete.mjs +16 -16
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +22 -22
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +13 -13
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +16 -16
- package/fesm2022/ngx-tethys-card.mjs +13 -13
- package/fesm2022/ngx-tethys-carousel.mjs +16 -16
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +23 -35
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs +10 -10
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +47 -37
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +13 -13
- package/fesm2022/ngx-tethys-copy.mjs +7 -7
- package/fesm2022/ngx-tethys-core.mjs +30 -20
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +117 -117
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +10 -10
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +22 -22
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-dot.mjs +7 -7
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +19 -19
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +46 -46
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +10 -10
- package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
- package/fesm2022/ngx-tethys-form.mjs +40 -40
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +15 -14
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +31 -31
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +16 -16
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +10 -10
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +16 -16
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +7 -7
- package/fesm2022/ngx-tethys-input.mjs +19 -19
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +58 -58
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +16 -16
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-mention.mjs +10 -10
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +25 -25
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +22 -22
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +22 -22
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +17 -17
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +34 -34
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +19 -19
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +13 -13
- package/fesm2022/ngx-tethys-property-operation.mjs +10 -10
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +10 -10
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +13 -13
- package/fesm2022/ngx-tethys-rate.mjs +10 -10
- package/fesm2022/ngx-tethys-resizable.mjs +16 -16
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +7 -7
- package/fesm2022/ngx-tethys-segment.mjs +10 -10
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +10 -10
- package/fesm2022/ngx-tethys-shared.mjs +66 -66
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +31 -31
- package/fesm2022/ngx-tethys-slider.mjs +7 -7
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +10 -10
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-stepper.mjs +19 -19
- package/fesm2022/ngx-tethys-strength.mjs +7 -7
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-table.mjs +20 -20
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +13 -13
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +10 -10
- package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +19 -19
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +13 -13
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +13 -13
- package/fesm2022/ngx-tethys-transfer.mjs +10 -10
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +16 -15
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +17 -17
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +13 -13
- package/fesm2022/ngx-tethys-upload.mjs +16 -16
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/examples/placement/placement.component.scss +3 -1
- package/form/styles/form-check.scss +2 -3
- package/form/styles/mixin.scss +1 -1
- package/grid/examples/basic/basic.component.scss +5 -3
- package/grid/examples/flex/flex.component.scss +5 -3
- package/grid/examples/gap/gap.component.scss +5 -3
- package/grid/examples/offset/offset.component.scss +5 -3
- package/grid/examples/responsive/responsive.component.scss +6 -4
- package/grid/examples/row-col/row-col.component.scss +5 -3
- package/grid/examples/span/span.component.scss +5 -3
- package/guider/styles/guider-tip.scss +6 -6
- package/loading/styles/loading.scss +3 -3
- package/menu/examples/basic/basic.component.scss +3 -1
- package/menu/examples/divider/divider.component.scss +3 -1
- package/menu/examples/group/group.component.scss +3 -1
- package/menu/examples/theme/theme.component.scss +2 -2
- package/nav/examples/basic/basic.component.scss +3 -5
- package/nav/examples/extra/extra.component.scss +3 -1
- package/nav/examples/fill/fill.component.scss +3 -1
- package/nav/examples/lite/lite.component.scss +3 -1
- package/nav/examples/pills/pills.component.scss +3 -1
- package/nav/examples/responsive/responsive.component.scss +3 -1
- package/nav/examples/size/size.component.scss +3 -1
- package/nav/examples/tabs/tabs.component.scss +3 -1
- package/nav/examples/type/type.component.scss +3 -4
- package/nav/examples/vertical/vertical.component.scss +3 -1
- package/nav/nav.component.d.ts +1 -1
- package/nav/styles/mixin.scss +26 -10
- package/notify/styles/notify.scss +2 -2
- package/package.json +1 -1
- package/pagination/pagination.component.d.ts +3 -3
- package/pagination/styles/pagination.scss +1 -0
- package/progress/styles/progress-strip.scss +1 -1
- package/property-operation/styles/property-operation.scss +1 -15
- package/resizable/examples/layout/layout.style.scss +7 -5
- package/resizable/examples/table/table.style.scss +3 -1
- package/resizable/resize-handle.component.d.ts +4 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/styles/mixin.scss +8 -5
- package/segment/styles/segment.scss +1 -1
- package/shared/option/styles/option.mixin.scss +6 -6
- package/shared/option/styles/select-dropdown.scss +3 -1
- package/shared/select/select-control/select-control.scss +1 -1
- package/space/examples/align/align.component.scss +3 -2
- package/statistic/examples/prefix-suffix/prefix-suffix.component.scss +3 -1
- package/styles/bootstrap/_type.scss +8 -8
- package/styles/bootstrap/mixins/_transition.scss +3 -1
- package/styles/mixins/close.scss +4 -1
- package/styles/mixins/shadow.scss +3 -1
- package/styles/mixins/tables.scss +3 -166
- package/styles/modules/cdk/drag-drop.scss +1 -1
- package/styles/modules/link.scss +1 -1
- package/styles/modules/tables.scss +0 -1
- package/styles/variables.scss +73 -41
- package/switch/styles/mixin.scss +1 -1
- package/table/styles/table.scss +1 -1
- package/tabs/styles/tabs.scss +1 -0
- package/tag/styles/mixin.scss +10 -5
- package/tag/styles/tag.scss +4 -4
- package/tree/styles/tree.scss +0 -8
- package/tree-select/styles/tree-select.scss +4 -1
- package/tree-select/tree-select.component.d.ts +3 -3
- package/watermark/examples/basic/basic.component.scss +3 -1
- package/watermark/examples/custom/custom.component.scss +8 -0
- package/watermark/styles/watermark.scss +1 -2
- package/tabs/examples/basic/basic.component.scss +0 -5
|
@@ -185,10 +185,10 @@ export class ThyButton {
|
|
|
185
185
|
}
|
|
186
186
|
});
|
|
187
187
|
}
|
|
188
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
189
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.
|
|
188
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButton, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
189
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyButton, isStandalone: true, selector: "thy-button,[thy-button],[thyButton]", inputs: { thyButton: "thyButton", thyType: "thyType", thyLoading: ["thyLoading", "thyLoading", coerceBooleanProperty], thyLoadingText: "thyLoadingText", thySize: "thySize", thyIcon: "thyIcon", thyBlock: ["thyBlock", "thyBlock", coerceBooleanProperty] }, host: { properties: { "class.btn-block": "this.thyBlock" }, classAttribute: "thy-btn btn" }, ngImport: i0, template: "<thy-icon *ngIf=\"svgIconName; else iconFont\" [thyIconName]=\"svgIconName\"></thy-icon>\n<ng-template #iconFont>\n <i [ngClass]=\"iconClass\" *ngIf=\"iconClass\"></i>\n</ng-template>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
190
190
|
}
|
|
191
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
191
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButton, decorators: [{
|
|
192
192
|
type: Component,
|
|
193
193
|
args: [{ selector: 'thy-button,[thy-button],[thyButton]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
194
194
|
class: 'thy-btn btn'
|
|
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
|
213
213
|
type: Input,
|
|
214
214
|
args: [{ transform: coerceBooleanProperty }]
|
|
215
215
|
}] } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFFcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFxQmhELE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3hCLFNBQVMsRUFBRSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7SUFDcEMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO0lBQ2xCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN4QixNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFDdEIsaUJBQWlCLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztJQUMxQyxpQkFBaUIsRUFBRSxDQUFDLHFCQUFxQixDQUFDO0lBQzFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU87SUFDM0IsV0FBVyxFQUFFLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxFQUFFLFNBQVM7SUFDckQsZ0JBQWdCLEVBQUUsQ0FBQyxVQUFVLEVBQUUsdUJBQXVCLENBQUMsRUFBRSxTQUFTO0lBQ2xFLGtC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QUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsYUFBYTtxQkFDdkIsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQzt1R0FvQzdCLFNBQVM7c0JBRFosS0FBSztnQkFVRixPQUFPO3NCQURWLEtBQUs7Z0JBVUYsVUFBVTtzQkFEYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQWlCdkMsY0FBYztzQkFEakIsS0FBSztnQkFnQkYsT0FBTztzQkFEVixLQUFLO2dCQVlGLE9BQU87c0JBRFYsS0FBSztnQkEwQk4sUUFBUTtzQkFGUCxXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQzdCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQWZ0ZXJWaWV3SW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgYXNzZXJ0SWNvbk9ubHksIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGh5QnV0dG9uVHlwZSA9XG4gICAgfCAncHJpbWFyeSdcbiAgICB8ICdzZWNvbmRhcnknXG4gICAgfCAnaW5mbydcbiAgICB8ICdvdXRsaW5lLXByaW1hcnknXG4gICAgfCAnb3V0bGluZS1kZWZhdWx0J1xuICAgIHwgJ2RhbmdlcidcbiAgICB8ICdsaW5rJ1xuICAgIHwgJ2xpbmstc2Vjb25kYXJ5J1xuICAgIHwgJ3dhcm5pbmcnXG4gICAgfCAnb3V0bGluZS13YXJuaW5nJ1xuICAgIHwgJ3N1Y2Nlc3MnXG4gICAgfCAnb3V0bGluZS1zdWNjZXNzJ1xuICAgIHwgJ291dGxpbmUtaW5mbydcbiAgICB8ICdvdXRsaW5lLWRhbmdlcidcbiAgICB8ICdsaW5rLWRhbmdlci13ZWFrJ1xuICAgIHwgJ2xpbmstZGFuZ2VyJ1xuICAgIHwgJ2xpbmstc3VjY2Vzcyc7XG5cbmNvbnN0IGJ0blR5cGVDbGFzc2VzTWFwID0ge1xuICAgIHByaW1hcnk6IFsnYnRuLXByaW1hcnknXSxcbiAgICBzZWNvbmRhcnk6IFsnYnRuLXByaW1hcnknLCAnYnRuLW1kJ10sXG4gICAgaW5mbzogWydidG4taW5mbyddLFxuICAgIHdhcm5pbmc6IFsnYnRuLXdhcm5pbmcnXSxcbiAgICBkYW5nZXI6IFsnYnRuLWRhbmdlciddLFxuICAgICdvdXRsaW5lLXByaW1hcnknOiBbJ2J0bi1vdXRsaW5lLXByaW1hcnknXSxcbiAgICAnb3V0bGluZS1kZWZhdWx0JzogWydidG4tb3V0bGluZS1kZWZhdWx0J10sXG4gICAgbGluazogWydidG4tbGluayddLCAvLyDpk77mjqXmjInpkq5cbiAgICAnbGluay1pbmZvJzogWydidG4tbGluaycsICdidG4tbGluay1pbmZvJ10sIC8vIOW5veeBtemTvuaOpeaMiemSrlxuICAgICdsaW5rLXNlY29uZGFyeSc6IFsnYnRuLWxpbmsnLCAnYnRuLWxpbmstcHJpbWFyeS13ZWFrJ10sIC8vIOW5veeBtemTvuaOpeaMiemSrlxuICAgICdsaW5rLWRhbmdlci13ZWFrJzogWydidG4tbGluaycsICdidG4tbGluay1kYW5nZXItd2VhayddLCAvLyDlub3ngbXljbHpmanmjInpkq5cbiAgICAnbGluay1kYW5nZXInOiBbJ2J0bi1saW5rJywgJ2J0bi1saW5rLWRhbmdlciddLCAvLyDljbHpmanmjInpkq5cbiAgICAnbGluay1zdWNjZXNzJzogWydidG4tbGluaycsICdidG4tbGluay1zdWNjZXNzJ10gLy8g5oiQ5Yqf5oyJ6ZKuXG59O1xuXG5jb25zdCBpY29uT25seUNsYXNzID0gJ3RoeS1idG4taWNvbi1vbmx5JztcblxuLyoqXG4gKiDmk43kvZzmjInpkq7vvIzmlK/mjIHnu4Tku7ZgdGh5LWJ1dHRvbmDlkoxgdGh5QnV0dG9uYOaMh+S7pOS4pOenjeW9ouW8j1xuICogQG5hbWUgdGh5LWJ1dHRvbixbdGh5LWJ1dHRvbl0sW3RoeUJ1dHRvbl1cbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1idXR0b24sW3RoeS1idXR0b25dLFt0aHlCdXR0b25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktYnRuIGJ0bidcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUljb24sIE5nQ2xhc3NdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUJ1dHRvbiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX29yaWdpbmFsVGV4dDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfdHlwZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfaWNvbjogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfbG9hZGluZzogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgX2xvYWRpbmdUZXh0OiBzdHJpbmc7XG5cbiAgICAvLyDlnIbop5LmlrnlvaJcbiAgICBfaXNSYWRpdXNTcXVhcmUgPSBmYWxzZTtcblxuICAgIGljb25DbGFzczogc3RyaW5nW107XG5cbiAgICBzdmdJY29uTmFtZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgLyoqXG4gICAgICog5oyJ6ZKu57G75Z6L77yM5pSv5oyB5re75Yqg5YmN57yAYG91dGxpbmUtYOWunueOsOe6v+ahhuaMiemSru+8jOaUr+aMgea3u+WKoOWJjee8gGBsaW5rLWDlrp7njrDmjInpkq7pk77mjqVcbiAgICAgKiBAdHlwZSBwcmltYXJ5IHwgaW5mbyB8IHdhcm5pbmcgfCBkYW5nZXIgfCBzdWNjZXNzXG4gICAgICogQGRlZmF1bHQgcHJpbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUJ1dHRvbih2YWx1ZTogVGh5QnV0dG9uVHlwZSkge1xuICAgICAgICB0aGlzLnNldEJ0blR5cGUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWSjGB0aHlCdXR0b25g5Y+C5pWw5LiA5qC377yM5LiA6Iis5L2/55SoYHRoeUJ1dHRvbmDvvIzkuLrkuoblh4/lsJHlj4LmlbDovpPlhaUsIOW9k+mAmui/h2B0aHktYnV0dG9uYOS9v+eUqOaXtu+8jOWPquiDveS9v+eUqOivpeWPguaVsOaOp+WItuexu+Wei1xuICAgICAqIEBkZWZhdWx0IHByaW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlUeXBlKHZhbHVlOiBUaHlCdXR0b25UeXBlKSB7XG4gICAgICAgIHRoaXMuc2V0QnRuVHlwZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Yqg6L2954q25oCBXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlMb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5fbG9hZGluZyAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGluZyA9IHZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcignc3BhbicpO1xuICAgICAgICAgICAgdGhpcy5fb3JpZ2luYWxUZXh0ID0gdGV4dEVsZW1lbnQgPyB0ZXh0RWxlbWVudC5pbm5lclRleHQgOiAnJztcbiAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZ1N0YXR1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGluZyA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zZXRMb2FkaW5nU3RhdHVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDliqDovb3nirbmgIHml7bmmL7npLrnmoTmlofmoYhcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlMb2FkaW5nVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9sb2FkaW5nVGV4dCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdUZXh0ID0gdmFsdWU7XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9hZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZ1RleHQodGhpcy5fbG9hZGluZ1RleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oyJ6ZKu5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgZGVmYXVsdCB8IGxnXG4gICAgICogQGRlZmF1bHQgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVNpemUoc2l6ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NpemUgPSBzaXplO1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oyJ6ZKu5Lit5pi+56S655qE5Zu+5qCH77yM5pSv5oyBU1ZH5Zu+5qCH5ZCN56ew77yM5q+U5aaCYGFuZ2xlLWxlZnRg77yM5Lmf5pSv5oyB5Lyg5LmL5YmN55qEIHd0ZiDlrZfkvZPvvIzmr5TlpoI6IHd0Zi1wbHVzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5SWNvbihpY29uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5faWNvbiA9IGljb247XG4gICAgICAgIGlmICh0aGlzLl9pY29uKSB7XG4gICAgICAgICAgICBpZiAoaWNvbi5pbmNsdWRlcygnd3RmJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGFzc2VzID0gdGhpcy5faWNvbi5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgIGlmIChjbGFzc2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLnVuc2hpZnQoJ3d0ZicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmljb25DbGFzcyA9IGNsYXNzZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5zdmdJY29uTmFtZSA9IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ZnSWNvbk5hbWUgPSBpY29uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pY29uQ2xhc3MgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5zdmdJY29uTmFtZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmjInpkq7mlbTlnZflsZXnpLpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuYnRuLWJsb2NrYClcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHRoeUJsb2NrOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBzZXRCdG5UeXBlKHZhbHVlOiBUaHlCdXR0b25UeXBlKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlLmluY2x1ZGVzKCctc3F1YXJlJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90eXBlID0gdmFsdWUucmVwbGFjZSgnLXNxdWFyZScsICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9pc1JhZGl1c1NxdWFyZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDbGFzc2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExvYWRpbmdUZXh0KHRleHQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBzcGFuRWxlbWVudCA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzcGFuJyk7XG4gICAgICAgIGlmIChzcGFuRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShzcGFuRWxlbWVudCwgJ2lubmVyVGV4dCcsIHRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMb2FkaW5nU3RhdHVzKCkge1xuICAgICAgICBjb25zdCBpbm5lclRleHQgPSB0aGlzLl9sb2FkaW5nID8gdGhpcy5fbG9hZGluZ1RleHQgOiB0aGlzLl9vcmlnaW5hbFRleHQ7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgICAgICBpZiAoaW5uZXJUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLnNldExvYWRpbmdUZXh0KGlubmVyVGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNsYXNzZXMoKSB7XG4gICAgICAgIGxldCBjbGFzc05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAoYnRuVHlwZUNsYXNzZXNNYXBbdGhpcy5fdHlwZV0pIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMgPSBbLi4uYnRuVHlwZUNsYXNzZXNNYXBbdGhpcy5fdHlwZV1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3R5cGUpIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWVzLnB1c2goYGJ0bi0ke3RoaXMuX3R5cGV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3NpemUpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaChgYnRuLSR7dGhpcy5fc2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faXNSYWRpdXNTcXVhcmUpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaCgnYnRuLXNxdWFyZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9sb2FkaW5nKSB7XG4gICAgICAgICAgICBjbGFzc05hbWVzLnB1c2goJ2xvYWRpbmcnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhjbGFzc05hbWVzKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXMoKTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKGFzc2VydEljb25Pbmx5KHRoaXMubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLmFkZENsYXNzKGljb25Pbmx5Q2xhc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ob3N0UmVuZGVyZXIucmVtb3ZlQ2xhc3MoaWNvbk9ubHlDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53cmFwU3BhbkZvclRleHQodGhpcy5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgd3JhcFNwYW5Gb3JUZXh0KG5vZGVzOiBOb2RlTGlzdCk6IHZvaWQge1xuICAgICAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT09ICcjdGV4dCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGFuID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKG5vZGUpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3Moc3BhbiwgJ3RoeS1idG4td3JhcC1zcGFuJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5pbnNlcnRCZWZvcmUocGFyZW50LCBzcGFuLCBub2RlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHNwYW4sIG5vZGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8dGh5LWljb24gKm5nSWY9XCJzdmdJY29uTmFtZTsgZWxzZSBpY29uRm9udFwiIFt0aHlJY29uTmFtZV09XCJzdmdJY29uTmFtZVwiPjwvdGh5LWljb24+XG48bmctdGVtcGxhdGUgI2ljb25Gb250PlxuICA8aSBbbmdDbGFzc109XCJpY29uQ2xhc3NcIiAqbmdJZj1cImljb25DbGFzc1wiPjwvaT5cbjwvbmctdGVtcGxhdGU+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFFcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFxQmhELE1BQU0saUJBQWlCLEdBQUc7SUFDdEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3hCLFNBQVMsRUFBRSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7SUFDcEMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO0lBQ2xCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN4QixNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFDdEIsaUJBQWlCLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztJQUMxQyxpQkFBaUIsRUFBRSxDQUFDLHFCQUFxQixDQUFDO0lBQzFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU87SUFDM0IsV0FBVyxFQUFFLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxFQUFFLFNBQVM7SUFDckQsZ0JBQWdCLEVBQUUsQ0FBQyxVQUFVLEVBQUUsdUJBQXVCLENBQUMsRUFBRSxTQUFTO0lBQ2xFLGtC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QUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsYUFBYTtxQkFDdkIsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQzt1R0FvQzdCLFNBQVM7c0JBRFosS0FBSztnQkFVRixPQUFPO3NCQURWLEtBQUs7Z0JBVUYsVUFBVTtzQkFEYixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQWlCdkMsY0FBYztzQkFEakIsS0FBSztnQkFnQkYsT0FBTztzQkFEVixLQUFLO2dCQVlGLE9BQU87c0JBRFYsS0FBSztnQkEwQk4sUUFBUTtzQkFGUCxXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQzdCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQWZ0ZXJWaWV3SW5pdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgYXNzZXJ0SWNvbk9ubHksIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyB1c2VIb3N0UmVuZGVyZXIgfSBmcm9tICdAdGV0aHlzL2Nkay9kb20nO1xuaW1wb3J0IHsgVGh5SWNvbiB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IHR5cGUgVGh5QnV0dG9uVHlwZSA9XG4gICAgfCAncHJpbWFyeSdcbiAgICB8ICdzZWNvbmRhcnknXG4gICAgfCAnaW5mbydcbiAgICB8ICdvdXRsaW5lLXByaW1hcnknXG4gICAgfCAnb3V0bGluZS1kZWZhdWx0J1xuICAgIHwgJ2RhbmdlcidcbiAgICB8ICdsaW5rJ1xuICAgIHwgJ2xpbmstc2Vjb25kYXJ5J1xuICAgIHwgJ3dhcm5pbmcnXG4gICAgfCAnb3V0bGluZS13YXJuaW5nJ1xuICAgIHwgJ3N1Y2Nlc3MnXG4gICAgfCAnb3V0bGluZS1zdWNjZXNzJ1xuICAgIHwgJ291dGxpbmUtaW5mbydcbiAgICB8ICdvdXRsaW5lLWRhbmdlcidcbiAgICB8ICdsaW5rLWRhbmdlci13ZWFrJ1xuICAgIHwgJ2xpbmstZGFuZ2VyJ1xuICAgIHwgJ2xpbmstc3VjY2Vzcyc7XG5cbmNvbnN0IGJ0blR5cGVDbGFzc2VzTWFwID0ge1xuICAgIHByaW1hcnk6IFsnYnRuLXByaW1hcnknXSxcbiAgICBzZWNvbmRhcnk6IFsnYnRuLXByaW1hcnknLCAnYnRuLW1kJ10sXG4gICAgaW5mbzogWydidG4taW5mbyddLFxuICAgIHdhcm5pbmc6IFsnYnRuLXdhcm5pbmcnXSxcbiAgICBkYW5nZXI6IFsnYnRuLWRhbmdlciddLFxuICAgICdvdXRsaW5lLXByaW1hcnknOiBbJ2J0bi1vdXRsaW5lLXByaW1hcnknXSxcbiAgICAnb3V0bGluZS1kZWZhdWx0JzogWydidG4tb3V0bGluZS1kZWZhdWx0J10sXG4gICAgbGluazogWydidG4tbGluayddLCAvLyDpk77mjqXmjInpkq5cbiAgICAnbGluay1pbmZvJzogWydidG4tbGluaycsICdidG4tbGluay1pbmZvJ10sIC8vIOW5veeBtemTvuaOpeaMiemSrlxuICAgICdsaW5rLXNlY29uZGFyeSc6IFsnYnRuLWxpbmsnLCAnYnRuLWxpbmstcHJpbWFyeS13ZWFrJ10sIC8vIOW5veeBtemTvuaOpeaMiemSrlxuICAgICdsaW5rLWRhbmdlci13ZWFrJzogWydidG4tbGluaycsICdidG4tbGluay1kYW5nZXItd2VhayddLCAvLyDlub3ngbXljbHpmanmjInpkq5cbiAgICAnbGluay1kYW5nZXInOiBbJ2J0bi1saW5rJywgJ2J0bi1saW5rLWRhbmdlciddLCAvLyDljbHpmanmjInpkq5cbiAgICAnbGluay1zdWNjZXNzJzogWydidG4tbGluaycsICdidG4tbGluay1zdWNjZXNzJ10gLy8g5oiQ5Yqf5oyJ6ZKuXG59O1xuXG5jb25zdCBpY29uT25seUNsYXNzID0gJ3RoeS1idG4taWNvbi1vbmx5JztcblxuLyoqXG4gKiDmk43kvZzmjInpkq7vvIzmlK/mjIHnu4Tku7ZgdGh5LWJ1dHRvbmDlkoxgdGh5QnV0dG9uYOaMh+S7pOS4pOenjeW9ouW8j1xuICogQG5hbWUgdGh5LWJ1dHRvbixbdGh5LWJ1dHRvbl0sW3RoeUJ1dHRvbl1cbiAqIEBvcmRlciAxMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1idXR0b24sW3RoeS1idXR0b25dLFt0aHlCdXR0b25dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktYnRuIGJ0bidcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIFRoeUljb24sIE5nQ2xhc3NdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUJ1dHRvbiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX29yaWdpbmFsVGV4dDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfdHlwZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfaWNvbjogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBfbG9hZGluZzogYm9vbGVhbjtcblxuICAgIHByaXZhdGUgX2xvYWRpbmdUZXh0OiBzdHJpbmc7XG5cbiAgICAvLyDlnIbop5LmlrnlvaJcbiAgICBfaXNSYWRpdXNTcXVhcmUgPSBmYWxzZTtcblxuICAgIGljb25DbGFzczogc3RyaW5nW107XG5cbiAgICBzdmdJY29uTmFtZTogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBnZXQgbmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhvc3RSZW5kZXJlciA9IHVzZUhvc3RSZW5kZXJlcigpO1xuXG4gICAgLyoqXG4gICAgICog5oyJ6ZKu57G75Z6L77yM5pSv5oyB5re75Yqg5YmN57yAYG91dGxpbmUtYOWunueOsOe6v+ahhuaMiemSru+8jOaUr+aMgea3u+WKoOWJjee8gGBsaW5rLWDlrp7njrDmjInpkq7pk77mjqVcbiAgICAgKiBAdHlwZSBwcmltYXJ5IHwgaW5mbyB8IHdhcm5pbmcgfCBkYW5nZXIgfCBzdWNjZXNzXG4gICAgICogQGRlZmF1bHQgcHJpbWFyeVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeUJ1dHRvbih2YWx1ZTogVGh5QnV0dG9uVHlwZSkge1xuICAgICAgICB0aGlzLnNldEJ0blR5cGUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWSjGB0aHlCdXR0b25g5Y+C5pWw5LiA5qC377yM5LiA6Iis5L2/55SoYHRoeUJ1dHRvbmDvvIzkuLrkuoblh4/lsJHlj4LmlbDovpPlhaUsIOW9k+mAmui/h2B0aHktYnV0dG9uYOS9v+eUqOaXtu+8jOWPquiDveS9v+eUqOivpeWPguaVsOaOp+WItuexu+Wei1xuICAgICAqIEBkZWZhdWx0IHByaW1hcnlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlUeXBlKHZhbHVlOiBUaHlCdXR0b25UeXBlKSB7XG4gICAgICAgIHRoaXMuc2V0QnRuVHlwZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Yqg6L2954q25oCBXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHNldCB0aHlMb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5fbG9hZGluZyAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGluZyA9IHZhbHVlO1xuICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3Rvcignc3BhbicpO1xuICAgICAgICAgICAgdGhpcy5fb3JpZ2luYWxUZXh0ID0gdGV4dEVsZW1lbnQgPyB0ZXh0RWxlbWVudC5pbm5lclRleHQgOiAnJztcbiAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZ1N0YXR1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGluZyA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5zZXRMb2FkaW5nU3RhdHVzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDliqDovb3nirbmgIHml7bmmL7npLrnmoTmlofmoYhcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aHlMb2FkaW5nVGV4dCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9sb2FkaW5nVGV4dCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdUZXh0ID0gdmFsdWU7XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9hZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZ1RleHQodGhpcy5fbG9hZGluZ1RleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oyJ6ZKu5aSn5bCPXG4gICAgICogQHR5cGUgeHMgfCBzbSB8IG1kIHwgZGVmYXVsdCB8IGxnXG4gICAgICogQGRlZmF1bHQgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRoeVNpemUoc2l6ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3NpemUgPSBzaXplO1xuICAgICAgICBpZiAodGhpcy5faW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oyJ6ZKu5Lit5pi+56S655qE5Zu+5qCH77yM5pSv5oyBU1ZH5Zu+5qCH5ZCN56ew77yM5q+U5aaCYGFuZ2xlLWxlZnRg77yM5Lmf5pSv5oyB5Lyg5LmL5YmN55qEIHd0ZiDlrZfkvZPvvIzmr5TlpoI6IHd0Zi1wbHVzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgdGh5SWNvbihpY29uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5faWNvbiA9IGljb247XG4gICAgICAgIGlmICh0aGlzLl9pY29uKSB7XG4gICAgICAgICAgICBpZiAoaWNvbi5pbmNsdWRlcygnd3RmJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGFzc2VzID0gdGhpcy5faWNvbi5zcGxpdCgnICcpO1xuICAgICAgICAgICAgICAgIGlmIChjbGFzc2VzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc2VzLnVuc2hpZnQoJ3d0ZicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmljb25DbGFzcyA9IGNsYXNzZXM7XG4gICAgICAgICAgICAgICAgdGhpcy5zdmdJY29uTmFtZSA9IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ZnSWNvbk5hbWUgPSBpY29uO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pY29uQ2xhc3MgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5zdmdJY29uTmFtZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmjInpkq7mlbTlnZflsZXnpLpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZyhgY2xhc3MuYnRuLWJsb2NrYClcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KVxuICAgIHRoeUJsb2NrOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBzZXRCdG5UeXBlKHZhbHVlOiBUaHlCdXR0b25UeXBlKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHZhbHVlLmluY2x1ZGVzKCctc3F1YXJlJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90eXBlID0gdmFsdWUucmVwbGFjZSgnLXNxdWFyZScsICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9pc1JhZGl1c1NxdWFyZSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDbGFzc2VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExvYWRpbmdUZXh0KHRleHQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBzcGFuRWxlbWVudCA9IHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzcGFuJyk7XG4gICAgICAgIGlmIChzcGFuRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShzcGFuRWxlbWVudCwgJ2lubmVyVGV4dCcsIHRleHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMb2FkaW5nU3RhdHVzKCkge1xuICAgICAgICBjb25zdCBpbm5lclRleHQgPSB0aGlzLl9sb2FkaW5nID8gdGhpcy5fbG9hZGluZ1RleHQgOiB0aGlzLl9vcmlnaW5hbFRleHQ7XG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NlcygpO1xuICAgICAgICBpZiAoaW5uZXJUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLnNldExvYWRpbmdUZXh0KGlubmVyVGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUNsYXNzZXMoKSB7XG4gICAgICAgIGxldCBjbGFzc05hbWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAoYnRuVHlwZUNsYXNzZXNNYXBbdGhpcy5fdHlwZV0pIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMgPSBbLi4uYnRuVHlwZUNsYXNzZXNNYXBbdGhpcy5fdHlwZV1dO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3R5cGUpIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWVzLnB1c2goYGJ0bi0ke3RoaXMuX3R5cGV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX3NpemUpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaChgYnRuLSR7dGhpcy5fc2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faXNSYWRpdXNTcXVhcmUpIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZXMucHVzaCgnYnRuLXNxdWFyZScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9sb2FkaW5nKSB7XG4gICAgICAgICAgICBjbGFzc05hbWVzLnB1c2goJ2xvYWRpbmcnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci51cGRhdGVDbGFzcyhjbGFzc05hbWVzKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDbGFzc2VzKCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmIChhc3NlcnRJY29uT25seSh0aGlzLm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RSZW5kZXJlci5hZGRDbGFzcyhpY29uT25seUNsYXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFJlbmRlcmVyLnJlbW92ZUNsYXNzKGljb25Pbmx5Q2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMud3JhcFNwYW5Gb3JUZXh0KHRoaXMubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHdyYXBTcGFuRm9yVGV4dChub2RlczogTm9kZUxpc3QpOiB2b2lkIHtcbiAgICAgICAgbm9kZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICAgIGlmIChub2RlLm5vZGVOYW1lID09PSAnI3RleHQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZShub2RlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHNwYW4sICd0aHktYnRuLXdyYXAtc3BhbicpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHBhcmVudCwgc3Bhbiwgbm9kZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChzcGFuLCBub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPHRoeS1pY29uICpuZ0lmPVwic3ZnSWNvbk5hbWU7IGVsc2UgaWNvbkZvbnRcIiBbdGh5SWNvbk5hbWVdPVwic3ZnSWNvbk5hbWVcIj48L3RoeS1pY29uPlxuPG5nLXRlbXBsYXRlICNpY29uRm9udD5cbiAgPGkgW25nQ2xhc3NdPVwiaWNvbkNsYXNzXCIgKm5nSWY9XCJpY29uQ2xhc3NcIj48L2k+XG48L25nLXRlbXBsYXRlPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
|
|
@@ -6,11 +6,11 @@ import { ThyButtonIcon } from './button-icon.component';
|
|
|
6
6
|
import { ThyButton } from './button.component';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class ThyButtonModule {
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
|
11
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
10
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyButtonModule, imports: [CommonModule, ThyIconModule, ThyButton, ThyButtonIcon, ThyButtonGroup], exports: [ThyButton, ThyButtonIcon, ThyButtonGroup] }); }
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButtonModule, imports: [CommonModule, ThyIconModule, ThyButton, ThyButtonIcon] }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyButtonModule, decorators: [{
|
|
14
14
|
type: NgModule,
|
|
15
15
|
args: [{
|
|
16
16
|
imports: [CommonModule, ThyIconModule, ThyButton, ThyButtonIcon, ThyButtonGroup],
|
|
@@ -5,10 +5,10 @@ import * as i0 from "@angular/core";
|
|
|
5
5
|
* @name thyDateCell
|
|
6
6
|
*/
|
|
7
7
|
export class ThyDateCellDirective {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyDateCellDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyDateCellDirective, isStandalone: true, selector: "[thyDateCell]", exportAs: ["thyDateCell"], ngImport: i0 }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyDateCellDirective, decorators: [{
|
|
12
12
|
type: Directive,
|
|
13
13
|
args: [{
|
|
14
14
|
selector: '[thyDateCell]',
|
|
@@ -21,10 +21,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
|
21
21
|
* @name thyCalendarHeaderOperation
|
|
22
22
|
*/
|
|
23
23
|
export class ThyCalendarHeaderOperationDirective {
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
25
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendarHeaderOperationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
25
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyCalendarHeaderOperationDirective, isStandalone: true, selector: "[thyCalendarHeaderOperation]", exportAs: ["thyCalendarHeaderOperation"], ngImport: i0 }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendarHeaderOperationDirective, decorators: [{
|
|
28
28
|
type: Directive,
|
|
29
29
|
args: [{
|
|
30
30
|
selector: '[thyCalendarHeaderOperation]',
|
|
@@ -90,10 +90,10 @@ export class ThyCalendarHeader {
|
|
|
90
90
|
isCurrentDate(currentDate) {
|
|
91
91
|
this.isCurrent = currentDate.getMonth() !== getMonth(new Date()) || currentDate.getYear() !== getYear(new Date());
|
|
92
92
|
}
|
|
93
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendarHeader, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyCalendarHeader, isStandalone: true, selector: "thy-calendar-header", inputs: { currentDate: "currentDate", operationRender: "operationRender" }, outputs: { yearChange: "yearChange", monthChange: "monthChange", dateRangeChange: "dateRangeChange" }, host: { properties: { "class.thy-calendar-full-header-container": "this.className" } }, ngImport: i0, template: "<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n (ngModelChange)=\"onChangeRange($event)\"></thy-date-range>\n <button *ngIf=\"isCurrent\" thyButton=\"outline-default-square\" thySize=\"md\" (click)=\"backToday()\">\u4ECA\u5929</button>\n</div>\n<div class=\"thy-calendar-full-header-right\">\n <ng-container *ngTemplateOutlet=\"$any(operationRender); context: { $implicit: operationRender }\">\n <span>{{ operationRender | json }}</span>\n </ng-container>\n</div>\n", dependencies: [{ kind: "component", type: ThyDateRange, selector: "thy-date-range", inputs: ["thyOptionalDateRanges", "thyHiddenMenu", "thyDisabledSwitch", "thyCustomTextValue", "thyMinDate", "thyMaxDate", "thyCustomKey", "thyPickerFormat", "thyDisabledDate"], outputs: ["thyOnCalendarChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: JsonPipe, name: "json" }] }); }
|
|
95
95
|
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendarHeader, decorators: [{
|
|
97
97
|
type: Component,
|
|
98
98
|
args: [{ selector: 'thy-calendar-header', standalone: true, imports: [ThyDateRange, FormsModule, NgIf, ThyButton, NgTemplateOutlet, JsonPipe], template: "<div class=\"thy-calendar-full-header-left\">\n <thy-date-range\n class=\"select-date-range\"\n [ngModel]=\"date\"\n [thyHiddenMenu]=\"true\"\n [thyCustomKey]=\"'exception'\"\n [thyPickerFormat]=\"pickerFormat\"\n (ngModelChange)=\"onChangeRange($event)\"></thy-date-range>\n <button *ngIf=\"isCurrent\" thyButton=\"outline-default-square\" thySize=\"md\" (click)=\"backToday()\">\u4ECA\u5929</button>\n</div>\n<div class=\"thy-calendar-full-header-right\">\n <ng-container *ngTemplateOutlet=\"$any(operationRender); context: { $implicit: operationRender }\">\n <span>{{ operationRender | json }}</span>\n </ng-container>\n</div>\n" }]
|
|
99
99
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { className: [{
|
|
@@ -85,10 +85,10 @@ export class ThyCalendar {
|
|
|
85
85
|
this.updateDate(new TinyDate(this.thyValue), false);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
89
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
88
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendar, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
89
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyCalendar, isStandalone: true, selector: "thy-calendar", inputs: { thyMode: "thyMode", thyValue: "thyValue", thyDisabledDate: "thyDisabledDate", thyDateCell: "thyDateCell", thyCalendarHeaderOperation: "thyCalendarHeaderOperation" }, outputs: { thySelectChange: "thySelectChange", thyValueChange: "thyValueChange", thyDateRangeChange: "thyDateRangeChange" }, host: { properties: { "class.thy-calendar-container": "this.className", "class.thy-calendar-full": "this.className1" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ThyCalendar), multi: true }], queries: [{ propertyName: "thyDateCellChild", first: true, predicate: DateCell, descendants: true, read: TemplateRef }, { propertyName: "thyCalendarHeaderOperationChild", first: true, predicate: HeaderOperation, descendants: true, read: TemplateRef }], usesOnChanges: true, ngImport: i0, template: "<thy-calendar-header\n [operationRender]=\"headerOperation\"\n (monthChange)=\"onMonthSelect($event)\"\n (yearChange)=\"onYearSelect($event)\"\n (dateRangeChange)=\"onDateRangeSelect($event)\"\n [currentDate]=\"currentDate\"\n></thy-calendar-header>\n\n<div class=\"thy-calendar-panel\">\n <div class=\"thy-calendar-{{ thyMode === 'month' ? 'date' : 'month' }}-panel\">\n <div class=\"thy-calendar-body\">\n <ng-container *ngIf=\"thyMode === 'month'; then monthModeTable; else yearModeTable\"></ng-container>\n </div>\n </div>\n</div>\n<ng-template #monthModeTable>\n <date-table\n [prefixCls]=\"prefixCls\"\n [value]=\"currentDate\"\n [activeDate]=\"currentDate\"\n [selectedValue]=\"currentDate\"\n [cellRender]=\"dateCell\"\n [disabledDate]=\"thyDisabledDate\"\n (valueChange)=\"onDateSelect($event)\"\n ></date-table>\n</ng-template>\n\n<ng-template #yearModeTable>\n <month-table [value]=\"currentDate\" [disabledDate]=\"thyDisabledDate\" (valueChange)=\"onDateSelect($event)\"></month-table>\n</ng-template>\n", dependencies: [{ kind: "component", type: ThyCalendarHeader, selector: "thy-calendar-header", inputs: ["currentDate", "operationRender"], outputs: ["yearChange", "monthChange", "dateRangeChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DateTable, selector: "date-table", outputs: ["dayHover"], exportAs: ["dateTable"] }, { kind: "component", type: MonthTable, selector: "month-table", exportAs: ["monthTable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
90
90
|
}
|
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendar, decorators: [{
|
|
92
92
|
type: Component,
|
|
93
93
|
args: [{ selector: 'thy-calendar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => ThyCalendar), multi: true }], standalone: true, imports: [ThyCalendarHeader, NgIf, DateTable, MonthTable], template: "<thy-calendar-header\n [operationRender]=\"headerOperation\"\n (monthChange)=\"onMonthSelect($event)\"\n (yearChange)=\"onYearSelect($event)\"\n (dateRangeChange)=\"onDateRangeSelect($event)\"\n [currentDate]=\"currentDate\"\n></thy-calendar-header>\n\n<div class=\"thy-calendar-panel\">\n <div class=\"thy-calendar-{{ thyMode === 'month' ? 'date' : 'month' }}-panel\">\n <div class=\"thy-calendar-body\">\n <ng-container *ngIf=\"thyMode === 'month'; then monthModeTable; else yearModeTable\"></ng-container>\n </div>\n </div>\n</div>\n<ng-template #monthModeTable>\n <date-table\n [prefixCls]=\"prefixCls\"\n [value]=\"currentDate\"\n [activeDate]=\"currentDate\"\n [selectedValue]=\"currentDate\"\n [cellRender]=\"dateCell\"\n [disabledDate]=\"thyDisabledDate\"\n (valueChange)=\"onDateSelect($event)\"\n ></date-table>\n</ng-template>\n\n<ng-template #yearModeTable>\n <month-table [value]=\"currentDate\" [disabledDate]=\"thyDisabledDate\" (valueChange)=\"onDateSelect($event)\"></month-table>\n</ng-template>\n" }]
|
|
94
94
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { className: [{
|
|
@@ -13,8 +13,8 @@ import { ThyButtonModule } from 'ngx-tethys/button';
|
|
|
13
13
|
import { ThyDateRangeModule } from 'ngx-tethys/date-range';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
export class ThyCalendarModule {
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
17
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
17
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendarModule, imports: [CommonModule,
|
|
18
18
|
FormsModule,
|
|
19
19
|
ThySharedModule,
|
|
20
20
|
ThyIconModule,
|
|
@@ -27,7 +27,7 @@ export class ThyCalendarModule {
|
|
|
27
27
|
ThyCalendar,
|
|
28
28
|
ThyDateCellDirective,
|
|
29
29
|
ThyCalendarHeaderOperationDirective], exports: [ThyCalendarHeader, ThyCalendar, ThyDateCellDirective, ThyCalendarHeaderOperationDirective] }); }
|
|
30
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.
|
|
30
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendarModule, imports: [CommonModule,
|
|
31
31
|
FormsModule,
|
|
32
32
|
ThySharedModule,
|
|
33
33
|
ThyIconModule,
|
|
@@ -39,7 +39,7 @@ export class ThyCalendarModule {
|
|
|
39
39
|
ThyCalendarHeader,
|
|
40
40
|
ThyCalendar] }); }
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCalendarModule, decorators: [{
|
|
43
43
|
type: NgModule,
|
|
44
44
|
args: [{
|
|
45
45
|
imports: [
|
|
@@ -14,10 +14,10 @@ export class ThyCard {
|
|
|
14
14
|
*/
|
|
15
15
|
this.thyHasLeftRightPadding = true;
|
|
16
16
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyCard, isStandalone: true, selector: "thy-card", inputs: { thyHasLeftRightPadding: ["thyHasLeftRightPadding", "thyHasLeftRightPadding", coerceBooleanProperty], thyDivided: ["thyDivided", "thyDivided", coerceBooleanProperty], thyBordered: ["thyBordered", "thyBordered", coerceBooleanProperty], thySize: "thySize" }, host: { properties: { "class.thy-card--divided": "!!thyDivided", "class.thy-card--bordered": "!!thyBordered", "class.thy-card--clear-left-right-padding": "!thyHasLeftRightPadding", "class.thy-card-sm": "thySize === \"sm\"", "class.thy-card-lg": "thySize === \"lg\"" }, classAttribute: "thy-card" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCard, decorators: [{
|
|
21
21
|
type: Component,
|
|
22
22
|
args: [{
|
|
23
23
|
selector: 'thy-card',
|
|
@@ -5,11 +5,11 @@ import { ThyCardHeader } from './header.component';
|
|
|
5
5
|
import { ThyCardContent } from './content.component';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class ThyCardModule {
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
|
10
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyCardModule, imports: [CommonModule, ThyCard, ThyCardHeader, ThyCardContent], exports: [ThyCard, ThyCardHeader, ThyCardContent] }); }
|
|
10
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCardModule, imports: [CommonModule] }); }
|
|
11
11
|
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCardModule, decorators: [{
|
|
13
13
|
type: NgModule,
|
|
14
14
|
args: [{
|
|
15
15
|
imports: [CommonModule, ThyCard, ThyCardHeader, ThyCardContent],
|
|
@@ -27,10 +27,10 @@ export class ThyCardContent {
|
|
|
27
27
|
this._thySizeSm = value === 'sm';
|
|
28
28
|
}
|
|
29
29
|
ngOnInit() { }
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCardContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyCardContent, isStandalone: true, selector: "thy-card-content", inputs: { thyScroll: ["thyScroll", "thyScroll", coerceBooleanProperty], thySize: "thySize" }, host: { properties: { "class.thy-card-content--scroll": "this.scrollClassName", "class.thy-card-content--sm": "this._thySizeSm" }, classAttribute: "thy-card-content" }, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCardContent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{
|
|
36
36
|
selector: 'thy-card-content',
|
|
@@ -9,10 +9,10 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
export class ThyCardHeader {
|
|
10
10
|
constructor() { }
|
|
11
11
|
ngOnInit() { }
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCardHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: ThyCardHeader, isStandalone: true, selector: "thy-card-header", inputs: { thyTitle: "thyTitle", thyDescription: "thyDescription", thySize: "thySize" }, host: { properties: { "class.thy-card-header--sm": "thySize === \"sm\"", "class.thy-card-header--lg": "thySize === \"lg\"", "class.thy-card-header--md": "thySize === \"md\"" }, classAttribute: "thy-card-header" }, queries: [{ propertyName: "titleTemplateRef", first: true, predicate: ["headerTitle"], descendants: true }, { propertyName: "descriptionTemplateRef", first: true, predicate: ["headerDescription"], descendants: true }, { propertyName: "operationTemplateRef", first: true, predicate: ["headerOperation"], descendants: true }], ngImport: i0, template: "<div class=\"card-header-title\">\n <ng-template [ngTemplateOutlet]=\"titleTemplateRef\"></ng-template>\n <ng-container *ngIf=\"!titleTemplateRef\">\n <span>{{ thyTitle }}</span>\n </ng-container>\n</div>\n<div class=\"card-header-description\">\n <ng-template [ngTemplateOutlet]=\"descriptionTemplateRef\"></ng-template>\n <ng-container *ngIf=\"!descriptionTemplateRef\">\n <span>{{ thyDescription }}</span>\n </ng-container>\n</div>\n<div class=\"card-header-operation\">\n <ng-template [ngTemplateOutlet]=\"operationTemplateRef\"></ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCardHeader, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
17
|
args: [{ selector: 'thy-card-header', preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
18
18
|
class: 'thy-card-header',
|
|
@@ -22,10 +22,10 @@ export class ThyCarouselItemDirective {
|
|
|
22
22
|
this.el = elementRef.nativeElement;
|
|
23
23
|
this.renderer.addClass(elementRef.nativeElement, 'thy-carousel-item');
|
|
24
24
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCarouselItemDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: ThyCarouselItemDirective, isStandalone: true, selector: "[thyCarouselItem],[thy-carousel-item]", exportAs: ["thyCarouseItem"], ngImport: i0 }); }
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCarouselItemDirective, decorators: [{
|
|
29
29
|
type: Directive,
|
|
30
30
|
args: [{
|
|
31
31
|
selector: '[thyCarouselItem],[thy-carousel-item]',
|
|
@@ -33,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
|
33
33
|
standalone: true
|
|
34
34
|
}]
|
|
35
35
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2Fyb3VzZWwvY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVqRTs7R0FFRztBQU1ILE1BQU0sT0FBTyx3QkFBd0I7SUFLakMsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDaEUsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDbkUsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQ0ksVUFBc0IsRUFDZCxRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBbkJ2QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBcUJwQixJQUFJLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFFLENBQUM7OEdBeEJRLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1Q0FBdUM7b0JBQ2pELFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdGh5Q2Fyb3VzZWxJdGVtXSxbdGh5LWNhcm91c2VsLWl0ZW1dJyxcbiAgICBleHBvcnRBczogJ3RoeUNhcm91c2VJdGVtJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRoeUNhcm91c2VsSXRlbURpcmVjdGl2ZSB7XG4gICAgcHJpdmF0ZSBfYWN0aXZlID0gZmFsc2U7XG5cbiAgICByZWFkb25seSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgICBzZXQgaXNBY3RpdmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlID0gdmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwsICd0aHktY2Fyb3VzZWwtaXRlbS1hY3RpdmUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbCwgJ3RoeS1jYXJvdXNlbC1pdGVtLWFjdGl2ZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgICApIHtcbiAgICAgICAgdGhpcy5lbCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0aHktY2Fyb3VzZWwtaXRlbScpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -8,7 +8,7 @@ import { ThyCarouselService } from './carousel.service';
|
|
|
8
8
|
import { ThyIcon } from 'ngx-tethys/icon';
|
|
9
9
|
import { ThyDot } from 'ngx-tethys/dot';
|
|
10
10
|
import { NgIf, NgTemplateOutlet, NgFor } from '@angular/common';
|
|
11
|
-
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
11
|
+
import { coerceBooleanProperty, isNumber } from 'ngx-tethys/util';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "./carousel.service";
|
|
14
14
|
import * as i2 from "@angular/cdk/platform";
|
|
@@ -231,22 +231,22 @@ export class ThyCarousel {
|
|
|
231
231
|
}
|
|
232
232
|
ngAfterContentInit() {
|
|
233
233
|
this._trigger$.pipe(takeUntil(this._destroy$), debounceTime(this.playTime)).subscribe(index => {
|
|
234
|
-
if (
|
|
234
|
+
if (isNumber(index)) {
|
|
235
235
|
this.moveTo(index);
|
|
236
236
|
}
|
|
237
237
|
});
|
|
238
238
|
}
|
|
239
239
|
ngOnDestroy() {
|
|
240
240
|
this.clearScheduledTransition();
|
|
241
|
-
this._trigger$.next();
|
|
241
|
+
this._trigger$.next(null);
|
|
242
242
|
this._trigger$.complete();
|
|
243
243
|
this._destroy$.next();
|
|
244
244
|
this._destroy$.complete();
|
|
245
245
|
}
|
|
246
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
247
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.
|
|
246
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCarousel, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.ThyCarouselService }, { token: i2.Platform }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
247
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyCarousel, isStandalone: true, selector: "thy-carousel", inputs: { thyAutoPlay: ["thyAutoPlay", "thyAutoPlay", coerceBooleanProperty], thyAutoPlayInterval: ["thyAutoPlayInterval", "thyAutoPlayInterval", numberAttribute], thyEffect: "thyEffect", thyIndicators: ["thyIndicators", "thyIndicators", coerceBooleanProperty], thyIndicatorRender: "thyIndicatorRender", thyControls: ["thyControls", "thyControls", coerceBooleanProperty], thyControlPrev: "thyControlPrev", thyControlNext: "thyControlNext", thyTouchable: ["thyTouchable", "thyTouchable", coerceBooleanProperty], thyTrigger: "thyTrigger", thyPause: "thyPause" }, outputs: { thyBeforeChange: "thyBeforeChange", thyAfterChange: "thyAfterChange" }, host: { classAttribute: "thy-carousel" }, queries: [{ propertyName: "carouselItems", predicate: ThyCarouselItemDirective }], viewQueries: [{ propertyName: "carouselWrapper", first: true, predicate: ["carouselWrapper"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"thy-carousel thy-carousel-initialized thy-carousel-point-events\">\n <div #carouselWrapper class=\"thy-carousel-wrapper\" (mousedown)=\"onDrag($event)\" (touchstart)=\"onDrag($event)\">\n <ng-content></ng-content>\n </div>\n <ng-container *ngIf=\"thyControls && carouselItems.length > 1\">\n <div class=\"thy-carousel-control-pre-wrapper\" (click)=\"pre()\">\n <ng-container *ngTemplateOutlet=\"thyControlPrev || defaultControlPrev\"></ng-container>\n </div>\n <div class=\"thy-carousel-control-next-wrapper\" (click)=\"next()\">\n <ng-container *ngTemplateOutlet=\"thyControlNext || defaultControlNext\"></ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"thyIndicators\">\n <div class=\"thy-carousel-indicators\">\n <span\n *ngFor=\"let content of carouselItems; let i = index\"\n class=\"thy-carousel-indicator\"\n (mouseenter)=\"indicatorHandleTrigger(i)\"\n (mouseleave)=\"indicatorHandleLeave()\"\n (click)=\"indicatorHandleClick(i)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"thyIndicatorRender || defaultIndicatorRender\"\n [ngTemplateOutletContext]=\"{ $implicit: i === activeIndex }\"\n ></ng-template>\n </span>\n </div>\n </ng-container>\n</div>\n\n<ng-template #defaultIndicatorRender let-active>\n <thy-dot thyColor=\"#fff\" [class.active]=\"active\"></thy-dot>\n</ng-template>\n\n<ng-template #defaultControlPrev>\n <div class=\"thy-carousel-control thy-carousel-control-pre\">\n <thy-icon thyIconName=\"angle-left-bold\"></thy-icon>\n </div>\n</ng-template>\n\n<ng-template #defaultControlNext>\n <div class=\"thy-carousel-control thy-carousel-control-next\">\n <thy-icon thyIconName=\"angle-right-bold\"></thy-icon>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ThyDot, selector: "thy-dot,[thy-dot],[thyDot]", inputs: ["thyColor", "thySize", "thyTheme", "thyShape"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
248
248
|
}
|
|
249
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyCarousel, decorators: [{
|
|
250
250
|
type: Component,
|
|
251
251
|
args: [{ selector: 'thy-carousel', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
|
|
252
252
|
class: 'thy-carousel'
|
|
@@ -289,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
|
289
289
|
}], thyAfterChange: [{
|
|
290
290
|
type: Output
|
|
291
291
|
}] } });
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBSWpCLE1BQU0sRUFFTixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFeEQ7OztHQUdH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LG1IQUFFLE1BQU0sZ0lBQUUsT0FBTzs7MkZBRS9DLFdBQVc7a0JBWnZCLFNBQVM7K0JBQ0ksY0FBYyxtQkFFUCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLHVCQUNoQixLQUFLLFFBQ3BCO3dCQUNGLEtBQUssRUFBRSxjQUFjO3FCQUN4QixjQUNXLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQzsyTEFNZCxhQUFhO3NCQUF2RCxlQUFlO3VCQUFDLHdCQUF3QjtnQkFLTyxlQUFlO3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLRCxXQUFXO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQUtKLG1CQUFtQjtzQkFBekQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBTTVCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS3VDLGFBQWE7c0JBQXpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBS2xDLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFLdUMsV0FBVztzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFLbEMsY0FBYztzQkFBdEIsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUt1QyxZQUFZO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQU1sQyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS2EsZUFBZTtzQkFBakMsTUFBTTtnQkFLWSxjQUFjO3NCQUFoQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgUmVuZGVyZXIyLFxuICAgIFZpZXdDaGlsZCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgbnVtYmVyQXR0cmlidXRlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgVGh5Q2Fyb3VzZWxJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIFRoeUNhcm91c2VsRW5naW5lLFxuICAgIFRoeURpc3RhbmNlVmVjdG9yLFxuICAgIFRoeUNhcm91c2VsU3dpdGNoRGF0YSxcbiAgICBUaHlDYXJvdXNlbEVmZmVjdCxcbiAgICBUaHlDYXJvdXNlbFRyaWdnZXIsXG4gICAgVGh5Q2Fyb3VzZWxQYXVzZVxufSBmcm9tICcuL3R5cGluZ3MnO1xuaW1wb3J0IHsgVGh5Q2Fyb3VzZWxTbGlkZUVuZ2luZSwgVGh5Q2Fyb3VzZWxOb29wRW5naW5lLCBUaHlDYXJvdXNlbEZhZGVFbmdpbmUgfSBmcm9tICcuL2VuZ2luZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGh5Q2Fyb3VzZWxTZXJ2aWNlIH0gZnJvbSAnLi9jYXJvdXNlbC5zZXJ2aWNlJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGh5RG90IH0gZnJvbSAnbmd4LXRldGh5cy9kb3QnO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcblxuLyoqXG4gKiDotbDpqaznga/nu4Tku7ZcbiAqIEBuYW1lIHRoeS1jYXJvdXNlbFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3RoeS1jYXJvdXNlbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0aHktY2Fyb3VzZWwnXG4gICAgfSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0ZvciwgVGh5RG90LCBUaHlJY29uXVxufSlcbmV4cG9ydCBjbGFzcyBUaHlDYXJvdXNlbCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihUaHlDYXJvdXNlbEl0ZW1EaXJlY3RpdmUpIGNhcm91c2VsSXRlbXMhOiBRdWVyeUxpc3Q8VGh5Q2Fyb3VzZWxJdGVtRGlyZWN0aXZlPjtcblxuICAgIC8qKlxuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnY2Fyb3VzZWxXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSkgY2Fyb3VzZWxXcmFwcGVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuiHquWKqOWIh+aNou+8jOm7mOiupCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUF1dG9QbGF5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiDoh6rliqjliIfmjaLml7bpl7Tpl7TpmpQo5q+r56eSKVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRoeUF1dG9QbGF5SW50ZXJ2YWw6IG51bWJlciA9IDMwMDA7XG5cbiAgICAvKipcbiAgICAgKiDliIfmjaLliqjnlLvmoLflvI9cbiAgICAgKiBAdHlwZSBzbGlkZSB8IGZhZGUgfCBub29wXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5RWZmZWN0OiBUaHlDYXJvdXNlbEVmZmVjdCA9ICdzbGlkZSc7XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmmL7npLrliIfmjaLmjIfnpLrlmahcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlJbmRpY2F0b3JzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOaMh+ekuuWZqCBJdGVtIOeahOa4suafk+aooeadv1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeUluZGljYXRvclJlbmRlcj86IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBib29sZWFuIH0+O1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pi+56S65bem5Y+z5YiH5o2iXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5Q29udHJvbHMgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5LiK5LiA5Liq5o6n5Yi25Zmo5riy5p+T5qih5p2/XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29udHJvbFByZXY/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICog5LiL5LiA5Liq5o6n5Yi25Zmo5riy5p+T5qih5p2/XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5Q29udHJvbE5leHQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm5pSv5oyB5omL5Yq/5ruR5YqoXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5VG91Y2hhYmxlID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOaMh+ekuueCueWIh+aNoueahOinpuWPkeadoeS7tlxuICAgICAqIEB0eXBlIGNsaWNrIHwgaG92ZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlUcmlnZ2VyOiBUaHlDYXJvdXNlbFRyaWdnZXIgPSAnY2xpY2snO1xuXG4gICAgLyoqXG4gICAgICog6byg5qCH56e75Yqo5Yiw5oyH56S65Zmo5pe25piv5ZCm5pqC5YGc5pKt5pS+XG4gICAgICogQHR5cGUgZmFsc2UgfCBob3ZlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVBhdXNlOiBUaHlDYXJvdXNlbFBhdXNlID0gJ2hvdmVyJztcblxuICAgIC8qKlxuICAgICAqIOinpuWPkeWIh+aNouW4p+S5i+WJje+8jOi/lOWbniBge2Zyb206IG51bWJlciwgdG86IG51bWJlcn1gXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeUJlZm9yZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGh5Q2Fyb3VzZWxTd2l0Y2hEYXRhPigpO1xuXG4gICAgLyoqXG4gICAgICog5YiH5o2i5bin5LmL5ZCO55qE5Zue6LCD77yM6L+U5Zue5b2T5YmN5bin57Si5byVXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHRoeUFmdGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBwcml2YXRlIGlzRHJhZ2dpbmcgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgaXNUcmFuc2l0aW9uaW5nID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHBvaW50ZXJWZWN0b3I6IFRoeURpc3RhbmNlVmVjdG9yID0geyB4OiAwLCB5OiAwIH07XG5cbiAgICBwcml2YXRlIGVuZ2luZTogVGh5Q2Fyb3VzZWxFbmdpbmU7XG5cbiAgICBwcml2YXRlIF90cmlnZ2VyJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICAgIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHdyYXBwZXJEb21SZWN0OiBET01SZWN0O1xuXG4gICAgYWN0aXZlSW5kZXggPSAwO1xuXG4gICAgd3JhcHBlckVsOiBIVE1MRWxlbWVudDtcblxuICAgIHRyYW5zaXRpb25UaW1lcjogYW55ID0gbnVsbDtcblxuICAgIHBsYXlUaW1lOiBudW1iZXIgPSA0MDA7XG5cbiAgICBpc1BhdXNlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjYXJvdXNlbFNlcnZpY2U6IFRoeUNhcm91c2VsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybTogUGxhdGZvcm1cbiAgICApIHt9XG5cbiAgICBwcml2YXRlIG1vdmVUbyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhcm91c2VsSXRlbXMgJiYgdGhpcy5jYXJvdXNlbEl0ZW1zLmxlbmd0aCAmJiAhdGhpcy5pc1RyYW5zaXRpb25pbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0SW5pdGlhbFZhbHVlKCk7XG4gICAgICAgICAgICBjb25zdCBsZW4gPSB0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgZnJvbSA9IHRoaXMuYWN0aXZlSW5kZXg7XG4gICAgICAgICAgICBjb25zdCB0byA9IChpbmRleCArIGxlbikgJSBsZW47XG4gICAgICAgICAgICB0aGlzLnRoeUJlZm9yZUNoYW5nZS5lbWl0KHsgZnJvbSwgdG8gfSk7XG4gICAgICAgICAgICB0aGlzLmlzVHJhbnNpdGlvbmluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmVuZ2luZT8uc3dpdGNoKGluZGV4LCB0aGlzLmFjdGl2ZUluZGV4KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gdG87XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRlbnRBY3RpdmUodGhpcy5hY3RpdmVJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVOZXh0VHJhbnNpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeUFmdGVyQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVJbmRleCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7fSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNUcmFuc2l0aW9uaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzd2l0Y2hFbmdpbmUoKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50aHlFZmZlY3QpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NsaWRlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZSA9IG5ldyBUaHlDYXJvdXNlbFNsaWRlRW5naW5lKHRoaXMsIHRoaXMuY2RyLCB0aGlzLnJlbmRlcmVyLCB0aGlzLnBsYXRmb3JtKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZhZGUnOlxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lID0gbmV3IFRoeUNhcm91c2VsRmFkZUVuZ2luZSh0aGlzLCB0aGlzLmNkciwgdGhpcy5yZW5kZXJlciwgdGhpcy5wbGF0Zm9ybSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lID0gbmV3IFRoeUNhcm91c2VsTm9vcEVuZ2luZSh0aGlzLCB0aGlzLmNkciwgdGhpcy5yZW5kZXJlciwgdGhpcy5wbGF0Zm9ybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcmtDb250ZW50QWN0aXZlKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmNhcm91c2VsSXRlbXMuZm9yRWFjaCgoY2Fyb3VzZWxDb250ZW50OiBUaHlDYXJvdXNlbEl0ZW1EaXJlY3RpdmUsIGk6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgY2Fyb3VzZWxDb250ZW50LmlzQWN0aXZlID0gaW5kZXggPT09IGk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRJbml0aWFsVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVuZ2luZSkge1xuICAgICAgICAgICAgdGhpcy5lbmdpbmUuaW5pdGlhbGl6ZUNhcm91c2VsQ29udGVudHModGhpcy5jYXJvdXNlbEl0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2NoZWR1bGVOZXh0VHJhbnNpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhclNjaGVkdWxlZFRyYW5zaXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMudGh5QXV0b1BsYXkgJiYgIXRoaXMuaXNQYXVzZSkge1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmVUbyh0aGlzLmFjdGl2ZUluZGV4ICsgMSk7XG4gICAgICAgICAgICB9LCB0aGlzLnRoeUF1dG9QbGF5SW50ZXJ2YWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhclNjaGVkdWxlZFRyYW5zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRyYW5zaXRpb25UaW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudHJhbnNpdGlvblRpbWVyKTtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvblRpbWVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRHJhZyhldmVudDogVG91Y2hFdmVudCB8IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRHJhZ2dpbmcgJiYgIXRoaXMuaXNUcmFuc2l0aW9uaW5nICYmIHRoaXMudGh5VG91Y2hhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCBtb3VzZURvd25UaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgICAgICBsZXQgbW91c2VVcFRpbWU6IG51bWJlcjtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTY2hlZHVsZWRUcmFuc2l0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLndyYXBwZXJEb21SZWN0ID0gdGhpcy53cmFwcGVyRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsU2VydmljZS5yZWdpc3RlckRyYWcoZXZlbnQpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBwb2ludGVyVmVjdG9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXJFbCwgJ2N1cnNvcicsICdncmFiYmluZycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvaW50ZXJWZWN0b3IgPSBwb2ludGVyVmVjdG9yO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZT8uZHJhZ2dpbmcodGhpcy5wb2ludGVyVmVjdG9yLCB0aGlzLndyYXBwZXJEb21SZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICgpID0+IHt9LFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNEcmFnZ2luZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VVcFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhvbGREb3duVGltZSA9IG1vdXNlVXBUaW1lIC0gbW91c2VEb3duVGltZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhc3QgZW5vdWdoIHRvIHN3aXRjaCB0byB0aGUgbmV4dCBmcmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwb2ludGVyVmVjdG9yIGlzIG1vcmUgdGhhbiBvbmUgdGhpcmQgc3dpdGNoIHRvIHRoZSBuZXh0IGZyYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5hYnModGhpcy5wb2ludGVyVmVjdG9yLngpID4gdGhpcy53cmFwcGVyRG9tUmVjdC53aWR0aCAvIDMgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicyh0aGlzLnBvaW50ZXJWZWN0b3IueCkgLyBob2xkRG93blRpbWUgPj0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlVG8odGhpcy5wb2ludGVyVmVjdG9yLnggPiAwID8gdGhpcy5hY3RpdmVJbmRleCAtIDEgOiB0aGlzLmFjdGl2ZUluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVRvKHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlckVsLCAnY3Vyc29yJywgJ2dyYWInKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5kaWNhdG9ySGFuZGxlQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aHlUcmlnZ2VyID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICB0aGlzLm1vdmVUbyhpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbmRpY2F0b3JIYW5kbGVUcmlnZ2VyKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGh5UGF1c2UgPT09ICdob3ZlcicpIHtcbiAgICAgICAgICAgIHRoaXMuaXNQYXVzZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU2NoZWR1bGVkVHJhbnNpdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeVRyaWdnZXIgPT09ICdob3ZlcicpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIkLm5leHQoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5kaWNhdG9ySGFuZGxlTGVhdmUoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeVBhdXNlID09PSAnaG92ZXInKSB7XG4gICAgICAgICAgICB0aGlzLmlzUGF1c2UgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVOZXh0VHJhbnNpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlVG8odGhpcy5hY3RpdmVJbmRleCArIDEpO1xuICAgIH1cblxuICAgIHByZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlVG8odGhpcy5hY3RpdmVJbmRleCAtIDEpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyYXBwZXJFbCA9IHRoaXMuY2Fyb3VzZWxXcmFwcGVyIS5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMTAwKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmdpbmU/LmNvcnJlY3Rpb25PZmZzZXQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgY29uc3QgeyB0aHlFZmZlY3QsIHRoeVRvdWNoYWJsZSB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKHRoeUVmZmVjdCAmJiAhdGh5RWZmZWN0LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy5zd2l0Y2hFbmdpbmUoKTtcbiAgICAgICAgICAgIHRoaXMubWFya0NvbnRlbnRBY3RpdmUoMCk7XG4gICAgICAgICAgICB0aGlzLnNldEluaXRpYWxWYWx1ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoeVRvdWNoYWJsZSAmJiAhdGh5VG91Y2hhYmxlLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXJFbCwgJ2N1cnNvcicsIHRoeVRvdWNoYWJsZS5jdXJyZW50VmFsdWUgPyAnZ3JhYicgOiAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnRoeUF1dG9QbGF5IHx8ICF0aGlzLnRoeUF1dG9QbGF5SW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTY2hlZHVsZWRUcmFuc2l0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlTmV4dFRyYW5zaXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbEl0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubWFya0NvbnRlbnRBY3RpdmUoMCk7XG4gICAgICAgICAgICB0aGlzLnNldEluaXRpYWxWYWx1ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zd2l0Y2hFbmdpbmUoKTtcbiAgICAgICAgdGhpcy5tYXJrQ29udGVudEFjdGl2ZSgwKTtcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsVmFsdWUoKTtcblxuICAgICAgICBpZiAoIXRoaXMudGh5VG91Y2hhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlckVsLCAnY3Vyc29yJywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlciQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUodGhpcy5wbGF5VGltZSkpLnN1YnNjcmliZShpbmRleCA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTmFOKGluZGV4KSkge1xuICAgICAgICAgICAgICAgIHRoaXMubW92ZVRvKGluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2xlYXJTY2hlZHVsZWRUcmFuc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXIkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlciQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktY2Fyb3VzZWwgdGh5LWNhcm91c2VsLWluaXRpYWxpemVkIHRoeS1jYXJvdXNlbC1wb2ludC1ldmVudHNcIj5cbiAgPGRpdiAjY2Fyb3VzZWxXcmFwcGVyIGNsYXNzPVwidGh5LWNhcm91c2VsLXdyYXBwZXJcIiAobW91c2Vkb3duKT1cIm9uRHJhZygkZXZlbnQpXCIgKHRvdWNoc3RhcnQpPVwib25EcmFnKCRldmVudClcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidGh5Q29udHJvbHMgJiYgY2Fyb3VzZWxJdGVtcy5sZW5ndGggPiAxXCI+XG4gICAgPGRpdiBjbGFzcz1cInRoeS1jYXJvdXNlbC1jb250cm9sLXByZS13cmFwcGVyXCIgKGNsaWNrKT1cInByZSgpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGh5Q29udHJvbFByZXYgfHwgZGVmYXVsdENvbnRyb2xQcmV2XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRoeS1jYXJvdXNlbC1jb250cm9sLW5leHQtd3JhcHBlclwiIChjbGljayk9XCJuZXh0KClcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aHlDb250cm9sTmV4dCB8fCBkZWZhdWx0Q29udHJvbE5leHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aHlJbmRpY2F0b3JzXCI+XG4gICAgPGRpdiBjbGFzcz1cInRoeS1jYXJvdXNlbC1pbmRpY2F0b3JzXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdGb3I9XCJsZXQgY29udGVudCBvZiBjYXJvdXNlbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgY2xhc3M9XCJ0aHktY2Fyb3VzZWwtaW5kaWNhdG9yXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiaW5kaWNhdG9ySGFuZGxlVHJpZ2dlcihpKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cImluZGljYXRvckhhbmRsZUxlYXZlKClcIlxuICAgICAgICAoY2xpY2spPVwiaW5kaWNhdG9ySGFuZGxlQ2xpY2soaSlcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlJbmRpY2F0b3JSZW5kZXIgfHwgZGVmYXVsdEluZGljYXRvclJlbmRlclwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpID09PSBhY3RpdmVJbmRleCB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEluZGljYXRvclJlbmRlciBsZXQtYWN0aXZlPlxuICA8dGh5LWRvdCB0aHlDb2xvcj1cIiNmZmZcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVwiPjwvdGh5LWRvdD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRyb2xQcmV2PlxuICA8ZGl2IGNsYXNzPVwidGh5LWNhcm91c2VsLWNvbnRyb2wgdGh5LWNhcm91c2VsLWNvbnRyb2wtcHJlXCI+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtbGVmdC1ib2xkXCI+PC90aHktaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRDb250cm9sTmV4dD5cbiAgPGRpdiBjbGFzcz1cInRoeS1jYXJvdXNlbC1jb250cm9sIHRoeS1jYXJvdXNlbC1jb250cm9sLW5leHRcIj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodC1ib2xkXCI+PC90aHktaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxXQUFXLEVBQ1gsaUJBQWlCLEVBSWpCLE1BQU0sRUFFTixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVNyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7O0FB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QkFBZ0Isb0pBQUUsS0FBSyxtSEFBRSxNQUFNLGdJQUFFLE9BQU87OzJGQUUvQyxXQUFXO2tCQVp2QixTQUFTOytCQUNJLGNBQWMsbUJBRVAsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxRQUNwQjt3QkFDRixLQUFLLEVBQUUsY0FBYztxQkFDeEIsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUM7MkxBTWQsYUFBYTtzQkFBdkQsZUFBZTt1QkFBQyx3QkFBd0I7Z0JBS08sZUFBZTtzQkFBOUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS0QsV0FBVztzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFLSixtQkFBbUI7c0JBQXpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU01QixTQUFTO3NCQUFqQixLQUFLO2dCQUt1QyxhQUFhO3NCQUF6RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO2dCQUtsQyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS3VDLFdBQVc7c0JBQXZELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7Z0JBS2xDLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLdUMsWUFBWTtzQkFBeEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtnQkFNbEMsVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUthLGVBQWU7c0JBQWpDLE1BQU07Z0JBS1ksY0FBYztzQkFBaEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIG51bWJlckF0dHJpYnV0ZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IFRoeUNhcm91c2VsSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBUaHlDYXJvdXNlbEVuZ2luZSxcbiAgICBUaHlEaXN0YW5jZVZlY3RvcixcbiAgICBUaHlDYXJvdXNlbFN3aXRjaERhdGEsXG4gICAgVGh5Q2Fyb3VzZWxFZmZlY3QsXG4gICAgVGh5Q2Fyb3VzZWxUcmlnZ2VyLFxuICAgIFRoeUNhcm91c2VsUGF1c2Vcbn0gZnJvbSAnLi90eXBpbmdzJztcbmltcG9ydCB7IFRoeUNhcm91c2VsU2xpZGVFbmdpbmUsIFRoeUNhcm91c2VsTm9vcEVuZ2luZSwgVGh5Q2Fyb3VzZWxGYWRlRW5naW5lIH0gZnJvbSAnLi9lbmdpbmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRoeUNhcm91c2VsU2VydmljZSB9IGZyb20gJy4vY2Fyb3VzZWwuc2VydmljZSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeURvdCB9IGZyb20gJ25neC10ZXRoeXMvZG90JztcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgaXNOdW1iZXIgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG4vKipcbiAqIOi1sOmprOeBr+e7hOS7tlxuICogQG5hbWUgdGh5LWNhcm91c2VsXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LWNhcm91c2VsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RoeS1jYXJvdXNlbCdcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIE5nRm9yLCBUaHlEb3QsIFRoeUljb25dXG59KVxuZXhwb3J0IGNsYXNzIFRoeUNhcm91c2VsIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFRoeUNhcm91c2VsSXRlbURpcmVjdGl2ZSkgY2Fyb3VzZWxJdGVtcyE6IFF1ZXJ5TGlzdDxUaHlDYXJvdXNlbEl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdjYXJvdXNlbFdyYXBwZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBjYXJvdXNlbFdyYXBwZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICog5piv5ZCm6Ieq5Yqo5YiH5o2i77yM6buY6K6kIGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSkgdGh5QXV0b1BsYXk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIOiHquWKqOWIh+aNouaXtumXtOmXtOmalCjmr6vnp5IpXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgdGh5QXV0b1BsYXlJbnRlcnZhbDogbnVtYmVyID0gMzAwMDtcblxuICAgIC8qKlxuICAgICAqIOWIh+aNouWKqOeUu+agt+W8j1xuICAgICAqIEB0eXBlIHNsaWRlIHwgZmFkZSB8IG5vb3BcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlFZmZlY3Q6IFRoeUNhcm91c2VsRWZmZWN0ID0gJ3NsaWRlJztcblxuICAgIC8qKlxuICAgICAqIOaYr+WQpuaYvuekuuWIh+aNouaMh+ekuuWZqFxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogY29lcmNlQm9vbGVhblByb3BlcnR5IH0pIHRoeUluZGljYXRvcnMgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5oyH56S65ZmoIEl0ZW0g55qE5riy5p+T5qih5p2/XG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SW5kaWNhdG9yUmVuZGVyPzogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IGJvb2xlYW4gfT47XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmmL7npLrlt6blj7PliIfmjaJcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlDb250cm9scyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDkuIrkuIDkuKrmjqfliLblmajmuLLmn5PmqKHmnb9cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlDb250cm9sUHJldj86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDkuIvkuIDkuKrmjqfliLblmajmuLLmn5PmqKHmnb9cbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlDb250cm9sTmV4dD86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiDmmK/lkKbmlK/mjIHmiYvlir/mu5HliqhcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlUb3VjaGFibGUgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog5oyH56S654K55YiH5o2i55qE6Kem5Y+R5p2h5Lu2XG4gICAgICogQHR5cGUgY2xpY2sgfCBob3ZlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRoeVRyaWdnZXI6IFRoeUNhcm91c2VsVHJpZ2dlciA9ICdjbGljayc7XG5cbiAgICAvKipcbiAgICAgKiDpvKDmoIfnp7vliqjliLDmjIfnpLrlmajml7bmmK/lkKbmmoLlgZzmkq3mlL5cbiAgICAgKiBAdHlwZSBmYWxzZSB8IGhvdmVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5UGF1c2U6IFRoeUNhcm91c2VsUGF1c2UgPSAnaG92ZXInO1xuXG4gICAgLyoqXG4gICAgICog6Kem5Y+R5YiH5o2i5bin5LmL5YmN77yM6L+U5ZueIGB7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfWBcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5QmVmb3JlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaHlDYXJvdXNlbFN3aXRjaERhdGE+KCk7XG5cbiAgICAvKipcbiAgICAgKiDliIfmjaLluKfkuYvlkI7nmoTlm57osIPvvIzov5Tlm57lvZPliY3luKfntKLlvJVcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdGh5QWZ0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIHByaXZhdGUgaXNEcmFnZ2luZyA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpc1RyYW5zaXRpb25pbmcgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcG9pbnRlclZlY3RvcjogVGh5RGlzdGFuY2VWZWN0b3IgPSB7IHg6IDAsIHk6IDAgfTtcblxuICAgIHByaXZhdGUgZW5naW5lOiBUaHlDYXJvdXNlbEVuZ2luZTtcblxuICAgIHByaXZhdGUgX3RyaWdnZXIkID0gbmV3IFN1YmplY3Q8bnVtYmVyIHwgbnVsbD4oKTtcblxuICAgIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHdyYXBwZXJEb21SZWN0OiBET01SZWN0O1xuXG4gICAgYWN0aXZlSW5kZXggPSAwO1xuXG4gICAgd3JhcHBlckVsOiBIVE1MRWxlbWVudDtcblxuICAgIHRyYW5zaXRpb25UaW1lcjogYW55ID0gbnVsbDtcblxuICAgIHBsYXlUaW1lOiBudW1iZXIgPSA0MDA7XG5cbiAgICBpc1BhdXNlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjYXJvdXNlbFNlcnZpY2U6IFRoeUNhcm91c2VsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybTogUGxhdGZvcm1cbiAgICApIHt9XG5cbiAgICBwcml2YXRlIG1vdmVUbyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhcm91c2VsSXRlbXMgJiYgdGhpcy5jYXJvdXNlbEl0ZW1zLmxlbmd0aCAmJiAhdGhpcy5pc1RyYW5zaXRpb25pbmcpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0SW5pdGlhbFZhbHVlKCk7XG4gICAgICAgICAgICBjb25zdCBsZW4gPSB0aGlzLmNhcm91c2VsSXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgZnJvbSA9IHRoaXMuYWN0aXZlSW5kZXg7XG4gICAgICAgICAgICBjb25zdCB0byA9IChpbmRleCArIGxlbikgJSBsZW47XG4gICAgICAgICAgICB0aGlzLnRoeUJlZm9yZUNoYW5nZS5lbWl0KHsgZnJvbSwgdG8gfSk7XG4gICAgICAgICAgICB0aGlzLmlzVHJhbnNpdGlvbmluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmVuZ2luZT8uc3dpdGNoKGluZGV4LCB0aGlzLmFjdGl2ZUluZGV4KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gdG87XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFya0NvbnRlbnRBY3RpdmUodGhpcy5hY3RpdmVJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVOZXh0VHJhbnNpdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoeUFmdGVyQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVJbmRleCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7fSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNUcmFuc2l0aW9uaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzd2l0Y2hFbmdpbmUoKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50aHlFZmZlY3QpIHtcbiAgICAgICAgICAgIGNhc2UgJ3NsaWRlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZSA9IG5ldyBUaHlDYXJvdXNlbFNsaWRlRW5naW5lKHRoaXMsIHRoaXMuY2RyLCB0aGlzLnJlbmRlcmVyLCB0aGlzLnBsYXRmb3JtKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZhZGUnOlxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lID0gbmV3IFRoeUNhcm91c2VsRmFkZUVuZ2luZSh0aGlzLCB0aGlzLmNkciwgdGhpcy5yZW5kZXJlciwgdGhpcy5wbGF0Zm9ybSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuZW5naW5lID0gbmV3IFRoeUNhcm91c2VsTm9vcEVuZ2luZSh0aGlzLCB0aGlzLmNkciwgdGhpcy5yZW5kZXJlciwgdGhpcy5wbGF0Zm9ybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcmtDb250ZW50QWN0aXZlKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmNhcm91c2VsSXRlbXMuZm9yRWFjaCgoY2Fyb3VzZWxDb250ZW50OiBUaHlDYXJvdXNlbEl0ZW1EaXJlY3RpdmUsIGk6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgY2Fyb3VzZWxDb250ZW50LmlzQWN0aXZlID0gaW5kZXggPT09IGk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRJbml0aWFsVmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVuZ2luZSkge1xuICAgICAgICAgICAgdGhpcy5lbmdpbmUuaW5pdGlhbGl6ZUNhcm91c2VsQ29udGVudHModGhpcy5jYXJvdXNlbEl0ZW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2NoZWR1bGVOZXh0VHJhbnNpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhclNjaGVkdWxlZFRyYW5zaXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMudGh5QXV0b1BsYXkgJiYgIXRoaXMuaXNQYXVzZSkge1xuICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmVUbyh0aGlzLmFjdGl2ZUluZGV4ICsgMSk7XG4gICAgICAgICAgICB9LCB0aGlzLnRoeUF1dG9QbGF5SW50ZXJ2YWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhclNjaGVkdWxlZFRyYW5zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRyYW5zaXRpb25UaW1lcikge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudHJhbnNpdGlvblRpbWVyKTtcbiAgICAgICAgICAgIHRoaXMudHJhbnNpdGlvblRpbWVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRHJhZyhldmVudDogVG91Y2hFdmVudCB8IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRHJhZ2dpbmcgJiYgIXRoaXMuaXNUcmFuc2l0aW9uaW5nICYmIHRoaXMudGh5VG91Y2hhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCBtb3VzZURvd25UaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICAgICAgICBsZXQgbW91c2VVcFRpbWU6IG51bWJlcjtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTY2hlZHVsZWRUcmFuc2l0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLndyYXBwZXJEb21SZWN0ID0gdGhpcy53cmFwcGVyRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsU2VydmljZS5yZWdpc3RlckRyYWcoZXZlbnQpLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICBwb2ludGVyVmVjdG9yID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXJFbCwgJ2N1cnNvcicsICdncmFiYmluZycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvaW50ZXJWZWN0b3IgPSBwb2ludGVyVmVjdG9yO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVuZ2luZT8uZHJhZ2dpbmcodGhpcy5wb2ludGVyVmVjdG9yLCB0aGlzLndyYXBwZXJEb21SZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICgpID0+IHt9LFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNEcmFnZ2luZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VVcFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhvbGREb3duVGltZSA9IG1vdXNlVXBUaW1lIC0gbW91c2VEb3duVGltZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhc3QgZW5vdWdoIHRvIHN3aXRjaCB0byB0aGUgbmV4dCBmcmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3JcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBwb2ludGVyVmVjdG9yIGlzIG1vcmUgdGhhbiBvbmUgdGhpcmQgc3dpdGNoIHRvIHRoZSBuZXh0IGZyYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5hYnModGhpcy5wb2ludGVyVmVjdG9yLngpID4gdGhpcy53cmFwcGVyRG9tUmVjdC53aWR0aCAvIDMgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmFicyh0aGlzLnBvaW50ZXJWZWN0b3IueCkgLyBob2xkRG93blRpbWUgPj0gMVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlVG8odGhpcy5wb2ludGVyVmVjdG9yLnggPiAwID8gdGhpcy5hY3RpdmVJbmRleCAtIDEgOiB0aGlzLmFjdGl2ZUluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVRvKHRoaXMuYWN0aXZlSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlckVsLCAnY3Vyc29yJywgJ2dyYWInKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5kaWNhdG9ySGFuZGxlQ2xpY2soaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aHlUcmlnZ2VyID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICB0aGlzLm1vdmVUbyhpbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbmRpY2F0b3JIYW5kbGVUcmlnZ2VyKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGh5UGF1c2UgPT09ICdob3ZlcicpIHtcbiAgICAgICAgICAgIHRoaXMuaXNQYXVzZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU2NoZWR1bGVkVHJhbnNpdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnRoeVRyaWdnZXIgPT09ICdob3ZlcicpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIkLm5leHQoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5kaWNhdG9ySGFuZGxlTGVhdmUoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoeVBhdXNlID09PSAnaG92ZXInKSB7XG4gICAgICAgICAgICB0aGlzLmlzUGF1c2UgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVOZXh0VHJhbnNpdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlVG8odGhpcy5hY3RpdmVJbmRleCArIDEpO1xuICAgIH1cblxuICAgIHByZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3ZlVG8odGhpcy5hY3RpdmVJbmRleCAtIDEpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyYXBwZXJFbCA9IHRoaXMuY2Fyb3VzZWxXcmFwcGVyIS5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMTAwKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmdpbmU/LmNvcnJlY3Rpb25PZmZzZXQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgY29uc3QgeyB0aHlFZmZlY3QsIHRoeVRvdWNoYWJsZSB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKHRoeUVmZmVjdCAmJiAhdGh5RWZmZWN0LmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy5zd2l0Y2hFbmdpbmUoKTtcbiAgICAgICAgICAgIHRoaXMubWFya0NvbnRlbnRBY3RpdmUoMCk7XG4gICAgICAgICAgICB0aGlzLnNldEluaXRpYWxWYWx1ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoeVRvdWNoYWJsZSAmJiAhdGh5VG91Y2hhYmxlLmlzRmlyc3RDaGFuZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXJFbCwgJ2N1cnNvcicsIHRoeVRvdWNoYWJsZS5jdXJyZW50VmFsdWUgPyAnZ3JhYicgOiAnZGVmYXVsdCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLnRoeUF1dG9QbGF5IHx8ICF0aGlzLnRoeUF1dG9QbGF5SW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJTY2hlZHVsZWRUcmFuc2l0aW9uKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlTmV4dFRyYW5zaXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbEl0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubWFya0NvbnRlbnRBY3RpdmUoMCk7XG4gICAgICAgICAgICB0aGlzLnNldEluaXRpYWxWYWx1ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zd2l0Y2hFbmdpbmUoKTtcbiAgICAgICAgdGhpcy5tYXJrQ29udGVudEFjdGl2ZSgwKTtcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsVmFsdWUoKTtcblxuICAgICAgICBpZiAoIXRoaXMudGh5VG91Y2hhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlckVsLCAnY3Vyc29yJywgJ2RlZmF1bHQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlciQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUodGhpcy5wbGF5VGltZSkpLnN1YnNjcmliZShpbmRleCA9PiB7XG4gICAgICAgICAgICBpZiAoaXNOdW1iZXIoaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3ZlVG8oaW5kZXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGVhclNjaGVkdWxlZFRyYW5zaXRpb24oKTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlciQubmV4dChudWxsKTtcbiAgICAgICAgdGhpcy5fdHJpZ2dlciQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0aHktY2Fyb3VzZWwgdGh5LWNhcm91c2VsLWluaXRpYWxpemVkIHRoeS1jYXJvdXNlbC1wb2ludC1ldmVudHNcIj5cbiAgPGRpdiAjY2Fyb3VzZWxXcmFwcGVyIGNsYXNzPVwidGh5LWNhcm91c2VsLXdyYXBwZXJcIiAobW91c2Vkb3duKT1cIm9uRHJhZygkZXZlbnQpXCIgKHRvdWNoc3RhcnQpPVwib25EcmFnKCRldmVudClcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidGh5Q29udHJvbHMgJiYgY2Fyb3VzZWxJdGVtcy5sZW5ndGggPiAxXCI+XG4gICAgPGRpdiBjbGFzcz1cInRoeS1jYXJvdXNlbC1jb250cm9sLXByZS13cmFwcGVyXCIgKGNsaWNrKT1cInByZSgpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGh5Q29udHJvbFByZXYgfHwgZGVmYXVsdENvbnRyb2xQcmV2XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRoeS1jYXJvdXNlbC1jb250cm9sLW5leHQtd3JhcHBlclwiIChjbGljayk9XCJuZXh0KClcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aHlDb250cm9sTmV4dCB8fCBkZWZhdWx0Q29udHJvbE5leHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aHlJbmRpY2F0b3JzXCI+XG4gICAgPGRpdiBjbGFzcz1cInRoeS1jYXJvdXNlbC1pbmRpY2F0b3JzXCI+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdGb3I9XCJsZXQgY29udGVudCBvZiBjYXJvdXNlbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgY2xhc3M9XCJ0aHktY2Fyb3VzZWwtaW5kaWNhdG9yXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiaW5kaWNhdG9ySGFuZGxlVHJpZ2dlcihpKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cImluZGljYXRvckhhbmRsZUxlYXZlKClcIlxuICAgICAgICAoY2xpY2spPVwiaW5kaWNhdG9ySGFuZGxlQ2xpY2soaSlcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0aHlJbmRpY2F0b3JSZW5kZXIgfHwgZGVmYXVsdEluZGljYXRvclJlbmRlclwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpID09PSBhY3RpdmVJbmRleCB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEluZGljYXRvclJlbmRlciBsZXQtYWN0aXZlPlxuICA8dGh5LWRvdCB0aHlDb2xvcj1cIiNmZmZcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVwiPjwvdGh5LWRvdD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbnRyb2xQcmV2PlxuICA8ZGl2IGNsYXNzPVwidGh5LWNhcm91c2VsLWNvbnRyb2wgdGh5LWNhcm91c2VsLWNvbnRyb2wtcHJlXCI+XG4gICAgPHRoeS1pY29uIHRoeUljb25OYW1lPVwiYW5nbGUtbGVmdC1ib2xkXCI+PC90aHktaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRDb250cm9sTmV4dD5cbiAgPGRpdiBjbGFzcz1cInRoeS1jYXJvdXNlbC1jb250cm9sIHRoeS1jYXJvdXNlbC1jb250cm9sLW5leHRcIj5cbiAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodC1ib2xkXCI+PC90aHktaWNvbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|