@bizdoc/core 1.16.31 → 1.16.32
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/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +7 -2
- package/assets/themes/deep-purple-light-blue.min.css +1 -1
- package/assets/themes/deep-purple-teal.min.css +1 -1
- package/assets/themes/default.min.css +1 -1
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo.min.css +1 -1
- package/bizdoc-core.d.ts.map +1 -0
- package/esm2020/lib/admin/admin-dismiss.service.mjs +4 -4
- package/esm2020/lib/admin/admin-menu.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +13 -13
- package/esm2020/lib/admin/configuration-designer/designer-privileges.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/designer.base.mjs +10 -10
- package/esm2020/lib/admin/configuration-designer/designer.component.mjs +7 -6
- package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/cube-index-utility.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/node.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/policy.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/return-to-role-action.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/state.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +4 -4
- package/esm2020/lib/admin/configuration-designer/icon-picker.component.mjs +4 -4
- package/esm2020/lib/admin/core/ace.input.mjs +4 -4
- package/esm2020/lib/admin/core/color-picker.input.mjs +4 -4
- package/esm2020/lib/admin/core/search.input.mjs +4 -4
- package/esm2020/lib/admin/diff/configuration-diff.component.mjs +4 -4
- package/esm2020/lib/admin/document-trace/document-trace.component.mjs +5 -5
- package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +4 -4
- package/esm2020/lib/admin/document-trace/trace-element.component.mjs +4 -4
- package/esm2020/lib/admin/form/designer/designer.component.mjs +4 -4
- package/esm2020/lib/admin/form/form.resolve.service.mjs +4 -4
- package/esm2020/lib/admin/form/workflow/node.component.mjs +4 -4
- package/esm2020/lib/admin/form/workflow/role-node.component.mjs +4 -4
- package/esm2020/lib/admin/form/workflow/workflow.component.mjs +4 -4
- package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +4 -4
- package/esm2020/lib/admin/localized-string.component.mjs +4 -4
- package/esm2020/lib/admin/patterns/patterns.component.mjs +4 -4
- package/esm2020/lib/admin/permissions/permissions.component.mjs +4 -4
- package/esm2020/lib/admin/positions/positions-popup.component.mjs +4 -4
- package/esm2020/lib/admin/positions/positions.component.mjs +4 -4
- package/esm2020/lib/admin/profiler/outofoffice.component.mjs +4 -4
- package/esm2020/lib/admin/profiler/profiler.component.mjs +4 -4
- package/esm2020/lib/admin/system.service.mjs +8 -5
- package/esm2020/lib/admin/utility-wrapper.component.mjs +4 -4
- package/esm2020/lib/admin/utility.pane.component.mjs +4 -4
- package/esm2020/lib/app.component.mjs +7 -7
- package/esm2020/lib/bizdoc.module.mjs +5 -5
- package/esm2020/lib/browse/browse-items.component.mjs +4 -4
- package/esm2020/lib/browse/browse.mobile.component.mjs +4 -4
- package/esm2020/lib/browse/browse.pane.component.mjs +4 -4
- package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +4 -4
- package/esm2020/lib/browse/filter/filter.component.mjs +4 -4
- package/esm2020/lib/browse/folders-menu.component.mjs +4 -4
- package/esm2020/lib/chat/chat-info.mjs +4 -4
- package/esm2020/lib/chat/chat.mobile.component.mjs +4 -4
- package/esm2020/lib/chat/chat.service.mjs +4 -4
- package/esm2020/lib/chat/contacts.component.mjs +7 -7
- package/esm2020/lib/chat/contacts.pane.component.mjs +4 -4
- package/esm2020/lib/chat/conversation.component.mjs +4 -4
- package/esm2020/lib/chat/conversation.pane.component.mjs +4 -4
- package/esm2020/lib/compose/action/action-picker.component.mjs +4 -4
- package/esm2020/lib/compose/action/action.dialog.mjs +4 -4
- package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +4 -4
- package/esm2020/lib/compose/action/assign-action.component.mjs +4 -4
- package/esm2020/lib/compose/action/moveto-action.component.mjs +4 -4
- package/esm2020/lib/compose/action/return-action.component.mjs +4 -4
- package/esm2020/lib/compose/attachments/attachments.component.mjs +4 -4
- package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +4 -4
- package/esm2020/lib/compose/attachments/progress-button.directive.mjs +4 -4
- package/esm2020/lib/compose/box/box.component.mjs +4 -4
- package/esm2020/lib/compose/can-deactivate-changes.service.mjs +4 -4
- package/esm2020/lib/compose/comments/comment.component.mjs +4 -4
- package/esm2020/lib/compose/comments/comments.component.mjs +4 -4
- package/esm2020/lib/compose/comments/comments.pane.component.mjs +4 -4
- package/esm2020/lib/compose/comments/edit-comment.component.mjs +4 -4
- package/esm2020/lib/compose/comments/edits.component.mjs +4 -4
- package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +4 -4
- package/esm2020/lib/compose/comments/votes.component.mjs +4 -4
- package/esm2020/lib/compose/compose-resolve.service.mjs +7 -7
- package/esm2020/lib/compose/compose.mobile.component.mjs +4 -4
- package/esm2020/lib/compose/compose.pane.component.mjs +4 -4
- package/esm2020/lib/compose/copy/copy.dialog.mjs +4 -4
- package/esm2020/lib/compose/dismiss.service.mjs +4 -4
- package/esm2020/lib/compose/document-resolver.service.mjs +4 -4
- package/esm2020/lib/compose/document.component.mjs +4 -4
- package/esm2020/lib/compose/document.mobile.component.mjs +4 -4
- package/esm2020/lib/compose/document.pane.component.mjs +4 -4
- package/esm2020/lib/compose/events/events.component.mjs +4 -4
- package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +4 -4
- package/esm2020/lib/compose/form.component.mjs +4 -4
- package/esm2020/lib/compose/new-menu.component.mjs +4 -4
- package/esm2020/lib/compose/privilage.directive.mjs +7 -7
- package/esm2020/lib/compose/recipient-resolver.service.mjs +4 -4
- package/esm2020/lib/compose/state.component.mjs +4 -4
- package/esm2020/lib/compose/tag/tags.component.mjs +4 -4
- package/esm2020/lib/compose/trace/flow.component.mjs +4 -4
- package/esm2020/lib/compose/trace/people.component.mjs +4 -4
- package/esm2020/lib/compose/trace/trace.base.mjs +4 -4
- package/esm2020/lib/compose/trace/trace.component.mjs +4 -4
- package/esm2020/lib/compose/trace/trace.pane.component.mjs +4 -4
- package/esm2020/lib/compose/version-compare/version-compare.component.mjs +4 -4
- package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +10 -10
- package/esm2020/lib/compose/version-compare/version.pane.component.mjs +4 -4
- package/esm2020/lib/core/NgComponentOutlet.mjs +4 -4
- package/esm2020/lib/core/account.service.mjs +4 -4
- package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +4 -4
- package/esm2020/lib/core/avatar/avatar.component.mjs +4 -4
- package/esm2020/lib/core/component-factory-resolver.mjs +4 -4
- package/esm2020/lib/core/controls/address.input.mjs +4 -4
- package/esm2020/lib/core/controls/auto-complete.input.mjs +4 -4
- package/esm2020/lib/core/controls/combination-picker-body.mjs +4 -4
- package/esm2020/lib/core/controls/combination-picker.mjs +4 -4
- package/esm2020/lib/core/controls/combination-pool.mjs +4 -4
- package/esm2020/lib/core/controls/file.input.mjs +4 -4
- package/esm2020/lib/core/controls/select.input.mjs +4 -4
- package/esm2020/lib/core/controls/signature.input.mjs +4 -4
- package/esm2020/lib/core/controls/time-picker.mjs +4 -4
- package/esm2020/lib/core/controls/timespan.input.mjs +4 -4
- package/esm2020/lib/core/datasource.service.mjs +4 -4
- package/esm2020/lib/core/guide/guide.component.mjs +4 -4
- package/esm2020/lib/core/guide/guide.service.mjs +4 -4
- package/esm2020/lib/core/guide/help-tip.component.mjs +4 -4
- package/esm2020/lib/core/http.interceptor.mjs +4 -4
- package/esm2020/lib/core/hub.service.mjs +4 -4
- package/esm2020/lib/core/identity/identity.component.mjs +4 -4
- package/esm2020/lib/core/info/attachment-info.service.mjs +4 -4
- package/esm2020/lib/core/info/document-info.service.mjs +4 -4
- package/esm2020/lib/core/info/location-info.component.mjs +4 -4
- package/esm2020/lib/core/info/map-info.mjs +4 -4
- package/esm2020/lib/core/layout/autocomplete.field.mjs +4 -4
- package/esm2020/lib/core/layout/checkbox.field.mjs +4 -4
- package/esm2020/lib/core/layout/checkbox.mjs +4 -4
- package/esm2020/lib/core/layout/date-range.field.mjs +4 -4
- package/esm2020/lib/core/layout/date.field.mjs +4 -4
- package/esm2020/lib/core/layout/expression.field.mjs +4 -4
- package/esm2020/lib/core/layout/file.field.mjs +4 -4
- package/esm2020/lib/core/layout/html.field.mjs +4 -4
- package/esm2020/lib/core/layout/input.base.mjs +4 -4
- package/esm2020/lib/core/layout/input.field.mjs +4 -4
- package/esm2020/lib/core/layout/layout.component.mjs +4 -4
- package/esm2020/lib/core/layout/numeric.field.mjs +4 -4
- package/esm2020/lib/core/layout/select.field.mjs +4 -4
- package/esm2020/lib/core/layout/switch.field.mjs +4 -4
- package/esm2020/lib/core/layout/textarea.field.mjs +4 -4
- package/esm2020/lib/core/layout/timespan.field.mjs +4 -4
- package/esm2020/lib/core/lottie-animation.mjs +4 -4
- package/esm2020/lib/core/mailbox.service.mjs +4 -4
- package/esm2020/lib/core/none.component.mjs +4 -4
- package/esm2020/lib/core/pipes/action.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/calendar.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/date-format.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/daterange.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/difference.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/duration-format.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/duration.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/form.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/join.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/localized-string.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/role.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/sort.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/state.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/time-ago.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/translate.pipe.mjs +7 -7
- package/esm2020/lib/core/pipes/type-value.pipe.mjs +4 -4
- package/esm2020/lib/core/pipes/user-name.pipe.mjs +4 -4
- package/esm2020/lib/core/popup/popup.component.mjs +4 -4
- package/esm2020/lib/core/popup/popup.service.mjs +4 -4
- package/esm2020/lib/core/popup/tooltip.directive.mjs +7 -7
- package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +4 -4
- package/esm2020/lib/core/prompt/mask/mask.component.mjs +4 -4
- package/esm2020/lib/core/prompt.service.mjs +4 -4
- package/esm2020/lib/core/router.mjs +7 -7
- package/esm2020/lib/core/save-changes.dialog.mjs +4 -4
- package/esm2020/lib/core/session.service.mjs +4 -4
- package/esm2020/lib/core/slots/router.directive.mjs +4 -4
- package/esm2020/lib/core/slots/router.service.mjs +4 -4
- package/esm2020/lib/core/slots/slots.component.mjs +4 -4
- package/esm2020/lib/core/tagging/documents.component.mjs +4 -4
- package/esm2020/lib/core/tagging/edit-input.component.mjs +4 -4
- package/esm2020/lib/core/tagging/emoji.component.mjs +4 -4
- package/esm2020/lib/core/tagging/tagging-item.directive.mjs +4 -4
- package/esm2020/lib/core/tagging/tagging.component-base.mjs +4 -4
- package/esm2020/lib/core/tagging/tagging.directive.mjs +4 -4
- package/esm2020/lib/core/tagging/tagging.pipe.mjs +4 -4
- package/esm2020/lib/core/tagging/users.component.mjs +4 -4
- package/esm2020/lib/core/translate.service.mjs +4 -4
- package/esm2020/lib/core/window-title.service.mjs +4 -4
- package/esm2020/lib/cube/accum/accum.component.mjs +4 -4
- package/esm2020/lib/cube/chart/chart.component.mjs +4 -4
- package/esm2020/lib/cube/cube-info.service.mjs +4 -4
- package/esm2020/lib/cube/cube-menu.component.mjs +4 -4
- package/esm2020/lib/cube/cube-view.component.mjs +4 -4
- package/esm2020/lib/cube/cube.service.mjs +4 -4
- package/esm2020/lib/cube/explore/document-item.component.mjs +4 -4
- package/esm2020/lib/cube/explore/explore-item.component.mjs +4 -4
- package/esm2020/lib/cube/explore/explore-items.component.mjs +4 -4
- package/esm2020/lib/cube/explore/explore.pane.component.mjs +4 -4
- package/esm2020/lib/cube/explore/item-resolver.service.mjs +7 -7
- package/esm2020/lib/cube/explore/item.pane.component.mjs +4 -4
- package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +4 -4
- package/esm2020/lib/cube/filter/filter.component.mjs +4 -4
- package/esm2020/lib/cube/grid/grid.component.mjs +4 -4
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +4 -4
- package/esm2020/lib/cube/matrix/matrix.base.mjs +4 -4
- package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +4 -4
- package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +4 -4
- package/esm2020/lib/cube/matrix/popup.component.mjs +4 -4
- package/esm2020/lib/cube/matrix/table.component.mjs +4 -4
- package/esm2020/lib/cube/parallel/parallel.component.mjs +4 -4
- package/esm2020/lib/cube/pivot/pivot.component.mjs +4 -4
- package/esm2020/lib/cube/sum/sum.component.mjs +4 -4
- package/esm2020/lib/cube/view-base.mjs +4 -4
- package/esm2020/lib/cube/view.mobile.component.mjs +4 -4
- package/esm2020/lib/cube/view.pane.component.mjs +4 -4
- package/esm2020/lib/dashboard/actions/actions.widget.mjs +4 -4
- package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +4 -4
- package/esm2020/lib/dashboard/cube/compare.widget.mjs +4 -4
- package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +4 -4
- package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +4 -4
- package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +4 -4
- package/esm2020/lib/dashboard/cube/documents.widget.mjs +4 -4
- package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +4 -4
- package/esm2020/lib/dashboard/dashboard.component.mjs +4 -4
- package/esm2020/lib/dashboard/dashboard.pane.component.mjs +4 -4
- package/esm2020/lib/dashboard/recents/recents.widget.mjs +4 -4
- package/esm2020/lib/dashboard/score/activity.widget.mjs +4 -4
- package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +4 -4
- package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +4 -4
- package/esm2020/lib/dashboard/score/pending-results.widget.mjs +4 -4
- package/esm2020/lib/dashboard/score/personal-score.widget.mjs +4 -4
- package/esm2020/lib/dashboard/widget-item.component.mjs +4 -4
- package/esm2020/lib/desktop.module.mjs +5 -5
- package/esm2020/lib/home/about/about.dialog.mjs +4 -4
- package/esm2020/lib/home/home-base.component.mjs +4 -4
- package/esm2020/lib/home/home.desktop.component.mjs +4 -4
- package/esm2020/lib/home/home.mobile.component.mjs +4 -4
- package/esm2020/lib/home/notifications/notifications.component.mjs +4 -4
- package/esm2020/lib/home/options/options.component.mjs +4 -4
- package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +4 -4
- package/esm2020/lib/home/sign/sign.component.mjs +4 -4
- package/esm2020/lib/home/tools.component.mjs +4 -4
- package/esm2020/lib/impersonate/impersonate.component.mjs +4 -4
- package/esm2020/lib/mobile.module.mjs +5 -5
- package/esm2020/lib/modules/chart.module.mjs +5 -5
- package/esm2020/lib/modules/circular-gauge.module.mjs +5 -5
- package/esm2020/lib/modules/datepicker.intl.mjs +4 -4
- package/esm2020/lib/modules/dayjs.module.mjs +5 -5
- package/esm2020/lib/modules/diagram.module.mjs +5 -5
- package/esm2020/lib/modules/gantt.module.mjs +5 -5
- package/esm2020/lib/modules/grid.module.mjs +5 -5
- package/esm2020/lib/modules/material.module.mjs +5 -5
- package/esm2020/lib/modules/paginator.intl.mjs +4 -4
- package/esm2020/lib/modules/pivot.module.mjs +5 -5
- package/esm2020/lib/modules/schedule.module.mjs +5 -5
- package/esm2020/lib/modules/spreadsheet.module.mjs +5 -5
- package/esm2020/lib/modules/stepper.intl.mjs +4 -4
- package/esm2020/lib/modules/texteditor.module.mjs +5 -5
- package/esm2020/lib/notifications/filter.component.mjs +4 -4
- package/esm2020/lib/notifications/notifications-table.component.mjs +4 -4
- package/esm2020/lib/notifications/notifications.mobile.component.mjs +4 -4
- package/esm2020/lib/notifications/notifications.pane.component.mjs +4 -4
- package/esm2020/lib/notifications/notifications.service.mjs +4 -4
- package/esm2020/lib/notifications/types/commented.notification.mjs +4 -4
- package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +4 -4
- package/esm2020/lib/notifications/types/escalated.notification.mjs +4 -4
- package/esm2020/lib/notifications/types/liked.notification.mjs +4 -4
- package/esm2020/lib/notifications/types/long-running-task.notification.mjs +4 -4
- package/esm2020/lib/notifications/types/notification-base.mjs +4 -4
- package/esm2020/lib/notifications/types/nudge.notification.mjs +4 -4
- package/esm2020/lib/notifications/types/state-changed.notification.mjs +4 -4
- package/esm2020/lib/notifications/types/tagged.notification.mjs +4 -4
- package/esm2020/lib/notifications/types/text.notification.mjs +4 -4
- package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +4 -4
- package/esm2020/lib/options/options.component.mjs +4 -4
- package/esm2020/lib/options/options.service.mjs +4 -4
- package/esm2020/lib/reports/arguments-component.mjs +4 -4
- package/esm2020/lib/reports/cube/documents.component.mjs +4 -4
- package/esm2020/lib/reports/cube/grid-documents.component.mjs +4 -4
- package/esm2020/lib/reports/cube/table-documents.component.mjs +4 -4
- package/esm2020/lib/reports/cube/usage-args.component.mjs +4 -4
- package/esm2020/lib/reports/cube/usage-base.mjs +4 -4
- package/esm2020/lib/reports/cube/usage-chart.component.mjs +4 -4
- package/esm2020/lib/reports/cube/usage-pivot.component.mjs +4 -4
- package/esm2020/lib/reports/cube/usage.component.mjs +4 -4
- package/esm2020/lib/reports/report-viewer.component.mjs +4 -4
- package/esm2020/lib/reports/report.mobile.component.mjs +4 -4
- package/esm2020/lib/reports/report.pane.component.mjs +4 -4
- package/esm2020/lib/reports/reports-menu.component.mjs +4 -4
- package/esm2020/lib/reports/substitution/substitution.component.mjs +4 -4
- package/esm2020/lib/reports/table/table-view.component.mjs +4 -4
- package/esm2020/lib/reports/tasks/tasks.component.mjs +4 -4
- package/esm2020/lib/scheduler/schedule.component.mjs +4 -4
- package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +4 -4
- package/esm2020/lib/scheduler/scheduler.pane.component.mjs +4 -4
- package/esm2020/lib/search/cube.component.mjs +4 -4
- package/esm2020/lib/search/document.component.mjs +4 -4
- package/esm2020/lib/search/guide.component.mjs +4 -4
- package/esm2020/lib/search/path.component.mjs +4 -4
- package/esm2020/lib/search/search.service.mjs +4 -4
- package/esm2020/lib/shared.module.mjs +5 -5
- package/esm2020/lib/system.module.mjs +5 -5
- package/esm2020/lib/views/cube/chart.component.mjs +4 -4
- package/esm2020/lib/views/cube/cube-base.mjs +4 -4
- package/esm2020/lib/views/cube/explore.component.mjs +4 -4
- package/esm2020/lib/views/cube/matrix.component.mjs +4 -4
- package/esm2020/lib/views/cube/parallel.component.mjs +4 -4
- package/esm2020/lib/views/cube/pivot.component.mjs +4 -4
- package/esm2020/lib/views/cube/sum.component.mjs +4 -4
- package/esm2020/lib/views/cube/view.component.mjs +4 -4
- package/esm2020/lib/views/timeline/timeline.component.exp.mjs +4 -4
- package/esm2020/lib/views/view-item.component.mjs +4 -4
- package/esm2020/lib/views/views.component.mjs +4 -4
- package/esm2020/lib/views/views.mobile.component.mjs +4 -4
- package/esm2020/lib/views/views.pane.component.mjs +4 -4
- package/fesm2015/bizdoc-core.mjs +1080 -1076
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +1080 -1076
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/admin-dismiss.service.d.ts.map +1 -0
- package/lib/admin/admin-menu.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/cube-axes-filter.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/declarations.d.ts.map +1 -0
- package/lib/admin/configuration-designer/designer-element.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/designer-privileges.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/designer.base.d.ts.map +1 -0
- package/lib/admin/configuration-designer/designer.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/action.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/box-form.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/configuration-datasource.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/cube-index-utility.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/cube-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/cube.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/documents-report.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/explore-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/folder.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/form.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/guide.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/node.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/pivot-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/policy.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/report.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/role.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/rule.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/state.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/sum-view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/type.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/usage-report.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/utility.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/view.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/elements/widget.component.d.ts.map +1 -0
- package/lib/admin/configuration-designer/icon-picker.component.d.ts.map +1 -0
- package/lib/admin/core/ace.input.d.ts.map +1 -0
- package/lib/admin/core/color-picker.input.d.ts.map +1 -0
- package/lib/admin/core/search.input.d.ts.map +1 -0
- package/lib/admin/diff/configuration-diff.component.d.ts.map +1 -0
- package/lib/admin/document-trace/document-trace.component.d.ts.map +1 -0
- package/lib/admin/document-trace/reassign.dialog.d.ts.map +1 -0
- package/lib/admin/document-trace/timeline.d.ts.map +1 -0
- package/lib/admin/document-trace/trace-element.component.d.ts.map +1 -0
- package/lib/admin/form/designer/designer.component.d.ts.map +1 -0
- package/lib/admin/form/form.resolve.service.d.ts.map +1 -0
- package/lib/admin/form/workflow/node-ref.d.ts.map +1 -0
- package/lib/admin/form/workflow/node.component.d.ts.map +1 -0
- package/lib/admin/form/workflow/role-node.component.d.ts.map +1 -0
- package/lib/admin/form/workflow/workflow.component.d.ts.map +1 -0
- package/lib/admin/indices/manage-cube-index.component.d.ts.map +1 -0
- package/lib/admin/localized-string.component.d.ts.map +1 -0
- package/lib/admin/patterns/patterns.component.d.ts.map +1 -0
- package/lib/admin/permissions/permissions.component.d.ts.map +1 -0
- package/lib/admin/positions/positions-popup.component.d.ts.map +1 -0
- package/lib/admin/positions/positions.component.d.ts.map +1 -0
- package/lib/admin/profiler/outofoffice.component.d.ts.map +1 -0
- package/lib/admin/profiler/profiler.component.d.ts.map +1 -0
- package/lib/admin/system.service.d.ts.map +1 -0
- package/lib/admin/utility-ref.d.ts.map +1 -0
- package/lib/admin/utility-wrapper.component.d.ts.map +1 -0
- package/lib/admin/utility.pane.component.d.ts.map +1 -0
- package/lib/app.component.d.ts.map +1 -0
- package/lib/bizdoc.module.d.ts.map +1 -0
- package/lib/browse/browse-items.component.d.ts.map +1 -0
- package/lib/browse/browse.mobile.component.d.ts.map +1 -0
- package/lib/browse/browse.pane.component.d.ts.map +1 -0
- package/lib/browse/expanded-item/expanded-item.component.d.ts.map +1 -0
- package/lib/browse/filter/filter.component.d.ts.map +1 -0
- package/lib/browse/folders-menu.component.d.ts.map +1 -0
- package/lib/chat/chat-info.d.ts.map +1 -0
- package/lib/chat/chat.mobile.component.d.ts.map +1 -0
- package/lib/chat/chat.service.d.ts.map +1 -0
- package/lib/chat/contacts.component.d.ts.map +1 -0
- package/lib/chat/contacts.pane.component.d.ts.map +1 -0
- package/lib/chat/conversation.component.d.ts.map +1 -0
- package/lib/chat/conversation.pane.component.d.ts.map +1 -0
- package/lib/compose/action/action-picker.component.d.ts.map +1 -0
- package/lib/compose/action/action-ref.d.ts.map +1 -0
- package/lib/compose/action/action.base.d.ts.map +1 -0
- package/lib/compose/action/action.dialog.d.ts.map +1 -0
- package/lib/compose/action/action.pane.dialog.exp.d.ts.map +1 -0
- package/lib/compose/action/assign-action.component.d.ts.map +1 -0
- package/lib/compose/action/moveto-action.component.d.ts.map +1 -0
- package/lib/compose/action/return-action.component.d.ts.map +1 -0
- package/lib/compose/attachments/attachments.component.d.ts.map +1 -0
- package/lib/compose/attachments/preview/attachment-preview.component.d.ts.map +1 -0
- package/lib/compose/attachments/progress-button.directive.d.ts.map +1 -0
- package/lib/compose/box/box.component.d.ts.map +1 -0
- package/lib/compose/can-deactivate-changes.service.d.ts.map +1 -0
- package/lib/compose/comments/comment.component.d.ts.map +1 -0
- package/lib/compose/comments/comments.component.d.ts.map +1 -0
- package/lib/compose/comments/comments.pane.component.d.ts.map +1 -0
- package/lib/compose/comments/edit-comment.component.d.ts.map +1 -0
- package/lib/compose/comments/edits.component.d.ts.map +1 -0
- package/lib/compose/comments/quick-comment.component.exp.d.ts.map +1 -0
- package/lib/compose/comments/votes.component.d.ts.map +1 -0
- package/lib/compose/compose-resolve.service.d.ts.map +1 -0
- package/lib/compose/compose.mobile.component.d.ts.map +1 -0
- package/lib/compose/compose.pane.component.d.ts.map +1 -0
- package/lib/compose/copy/copy.dialog.d.ts.map +1 -0
- package/lib/compose/dismiss.service.d.ts.map +1 -0
- package/lib/compose/document-resolver.service.d.ts.map +1 -0
- package/lib/compose/document.component.d.ts.map +1 -0
- package/lib/compose/document.mobile.component.d.ts.map +1 -0
- package/lib/compose/document.pane.component.d.ts.map +1 -0
- package/lib/compose/events/events.component.d.ts.map +1 -0
- package/lib/compose/form-ref.d.ts.map +1 -0
- package/lib/compose/form-selector/form-selector.sheet.d.ts.map +1 -0
- package/lib/compose/form.component.d.ts.map +1 -0
- package/lib/compose/new-menu.component.d.ts.map +1 -0
- package/lib/compose/privilage.directive.d.ts.map +1 -0
- package/lib/compose/recipient-resolver.service.d.ts.map +1 -0
- package/lib/compose/state.component.d.ts.map +1 -0
- package/lib/compose/tag/tags.component.d.ts.map +1 -0
- package/lib/compose/trace/flow.component.d.ts.map +1 -0
- package/lib/compose/trace/people.component.d.ts.map +1 -0
- package/lib/compose/trace/trace.base.d.ts.map +1 -0
- package/lib/compose/trace/trace.component.d.ts.map +1 -0
- package/lib/compose/trace/trace.pane.component.d.ts.map +1 -0
- package/lib/compose/version-compare/version-compare.component.d.ts.map +1 -0
- package/lib/compose/version-compare/version-compare.directive.d.ts.map +1 -0
- package/lib/compose/version-compare/version.pane.component.d.ts.map +1 -0
- package/lib/core/NgComponentOutlet.d.ts.map +1 -0
- package/lib/core/account.service.d.ts.map +1 -0
- package/lib/core/animated-icon/animated-icon.directive.d.ts.map +1 -0
- package/lib/core/animations.d.ts.map +1 -0
- package/lib/core/authentication.d.ts.map +1 -0
- package/lib/core/avatar/avatar.component.d.ts.map +1 -0
- package/lib/core/base.d.ts.map +1 -0
- package/lib/core/colors.d.ts.map +1 -0
- package/lib/core/component-factory-resolver.d.ts.map +1 -0
- package/lib/core/configuration.d.ts.map +1 -0
- package/lib/core/controls/address.input.d.ts.map +1 -0
- package/lib/core/controls/auto-complete.input.d.ts.map +1 -0
- package/lib/core/controls/combination-picker-body.d.ts.map +1 -0
- package/lib/core/controls/combination-picker.d.ts.map +1 -0
- package/lib/core/controls/combination-pool.d.ts.map +1 -0
- package/lib/core/controls/file.input.d.ts.map +1 -0
- package/lib/core/controls/select.input.d.ts.map +1 -0
- package/lib/core/controls/signature.input.d.ts.map +1 -0
- package/lib/core/controls/time-picker.d.ts.map +1 -0
- package/lib/core/controls/timespan.input.d.ts.map +1 -0
- package/lib/core/datasource.service.d.ts.map +1 -0
- package/lib/core/decorators.d.ts.map +1 -0
- package/lib/core/firebase.service.d.ts.map +1 -0
- package/lib/core/functions.d.ts.map +1 -0
- package/lib/core/guide/guide.component.d.ts.map +1 -0
- package/lib/core/guide/guide.service.d.ts.map +1 -0
- package/lib/core/guide/help-tip.component.d.ts.map +1 -0
- package/lib/core/http.interceptor.d.ts.map +1 -0
- package/lib/core/hub.service.d.ts.map +1 -0
- package/lib/core/identity/identity.component.d.ts.map +1 -0
- package/lib/core/info/attachment-info.service.d.ts.map +1 -0
- package/lib/core/info/document-info.service.d.ts.map +1 -0
- package/lib/core/info/location-info.component.d.ts.map +1 -0
- package/lib/core/info/map-info.d.ts.map +1 -0
- package/lib/core/layout/autocomplete.field.d.ts.map +1 -0
- package/lib/core/layout/checkbox.d.ts.map +1 -0
- package/lib/core/layout/checkbox.field.d.ts.map +1 -0
- package/lib/core/layout/date-range.field.d.ts.map +1 -0
- package/lib/core/layout/date.field.d.ts.map +1 -0
- package/lib/core/layout/expression.field.d.ts.map +1 -0
- package/lib/core/layout/file.field.d.ts.map +1 -0
- package/lib/core/layout/html.field.d.ts.map +1 -0
- package/lib/core/layout/input.base.d.ts.map +1 -0
- package/lib/core/layout/input.field.d.ts.map +1 -0
- package/lib/core/layout/layout.component.d.ts.map +1 -0
- package/lib/core/layout/numeric.field.d.ts.map +1 -0
- package/lib/core/layout/select.field.d.ts.map +1 -0
- package/lib/core/layout/switch.field.d.ts.map +1 -0
- package/lib/core/layout/textarea.field.d.ts.map +1 -0
- package/lib/core/layout/timespan.field.d.ts.map +1 -0
- package/lib/core/lottie-animation.d.ts.map +1 -0
- package/lib/core/mailbox.service.d.ts.map +1 -0
- package/lib/core/models.d.ts.map +1 -0
- package/lib/core/none.component.d.ts.map +1 -0
- package/lib/core/pipes/action.pipe.d.ts.map +1 -0
- package/lib/core/pipes/calendar.pipe.d.ts.map +1 -0
- package/lib/core/pipes/date-format.pipe.d.ts.map +1 -0
- package/lib/core/pipes/daterange.pipe.d.ts.map +1 -0
- package/lib/core/pipes/difference.pipe.d.ts.map +1 -0
- package/lib/core/pipes/duration-format.pipe.d.ts.map +1 -0
- package/lib/core/pipes/duration.pipe.d.ts.map +1 -0
- package/lib/core/pipes/form.pipe.d.ts.map +1 -0
- package/lib/core/pipes/join.pipe.d.ts.map +1 -0
- package/lib/core/pipes/localized-string.pipe.d.ts.map +1 -0
- package/lib/core/pipes/role.pipe.d.ts.map +1 -0
- package/lib/core/pipes/sanitize-html.pipe.d.ts.map +1 -0
- package/lib/core/pipes/sort.pipe.d.ts.map +1 -0
- package/lib/core/pipes/state.pipe.d.ts.map +1 -0
- package/lib/core/pipes/time-ago.pipe.d.ts.map +1 -0
- package/lib/core/pipes/translate.pipe.d.ts.map +1 -0
- package/lib/core/pipes/type-value.pipe.d.ts.map +1 -0
- package/lib/core/pipes/user-name.pipe.d.ts.map +1 -0
- package/lib/core/popup/popup-ref.d.ts.map +1 -0
- package/lib/core/popup/popup.component.d.ts.map +1 -0
- package/lib/core/popup/popup.service.d.ts.map +1 -0
- package/lib/core/popup/tooltip.directive.d.ts.map +1 -0
- package/lib/core/prompt/ask/ask.dialog.d.ts.map +1 -0
- package/lib/core/prompt/mask/mask.component.d.ts.map +1 -0
- package/lib/core/prompt.service.d.ts.map +1 -0
- package/lib/core/router.d.ts.map +1 -0
- package/lib/core/save-changes.dialog.d.ts.map +1 -0
- package/lib/core/session.service.d.ts.map +1 -0
- package/lib/core/slots/pane-ref.d.ts.map +1 -0
- package/lib/core/slots/router.directive.d.ts.map +1 -0
- package/lib/core/slots/router.service.d.ts.map +1 -0
- package/lib/core/slots/slots.component.d.ts.map +1 -0
- package/lib/core/tagging/documents.component.d.ts.map +1 -0
- package/lib/core/tagging/edit-input.component.d.ts.map +1 -0
- package/lib/core/tagging/emoji.component.d.ts.map +1 -0
- package/lib/core/tagging/tagging-item.directive.d.ts.map +1 -0
- package/lib/core/tagging/tagging.component-base.d.ts.map +1 -0
- package/lib/core/tagging/tagging.directive.d.ts.map +1 -0
- package/lib/core/tagging/tagging.pipe.d.ts.map +1 -0
- package/lib/core/tagging/users.component.d.ts.map +1 -0
- package/lib/core/translate.service.d.ts.map +1 -0
- package/lib/core/translations.d.ts.map +1 -0
- package/lib/core/window-title.service.d.ts.map +1 -0
- package/lib/cube/accum/accum.component.d.ts.map +1 -0
- package/lib/cube/chart/chart.component.d.ts.map +1 -0
- package/lib/cube/cube-info.service.d.ts.map +1 -0
- package/lib/cube/cube-menu.component.d.ts.map +1 -0
- package/lib/cube/cube-view.component.d.ts.map +1 -0
- package/lib/cube/cube.service.d.ts.map +1 -0
- package/lib/cube/declarations.d.ts.map +1 -0
- package/lib/cube/explore/document-item.component.d.ts.map +1 -0
- package/lib/cube/explore/explore-item.component.d.ts.map +1 -0
- package/lib/cube/explore/explore-items.component.d.ts.map +1 -0
- package/lib/cube/explore/explore.pane.component.d.ts.map +1 -0
- package/lib/cube/explore/item-resolver.service.d.ts.map +1 -0
- package/lib/cube/explore/item.pane.component.d.ts.map +1 -0
- package/lib/cube/filter/filter-tags.component.exp.d.ts.map +1 -0
- package/lib/cube/filter/filter.component.d.ts.map +1 -0
- package/lib/cube/grid/grid.component.d.ts.map +1 -0
- package/lib/cube/grid/spreadsheet.component.d.ts.map +1 -0
- package/lib/cube/matrix/matrix.base.d.ts.map +1 -0
- package/lib/cube/matrix/matrix.mobile.component.d.ts.map +1 -0
- package/lib/cube/matrix/matrix.pane.component.d.ts.map +1 -0
- package/lib/cube/matrix/popup.component.d.ts.map +1 -0
- package/lib/cube/matrix/table.component.d.ts.map +1 -0
- package/lib/cube/parallel/item.d.ts.map +1 -0
- package/lib/cube/parallel/parallel.component.d.ts.map +1 -0
- package/lib/cube/pivot/pivot.component.d.ts.map +1 -0
- package/lib/cube/sum/sum.component.d.ts.map +1 -0
- package/lib/cube/view-base.d.ts.map +1 -0
- package/lib/cube/view.mobile.component.d.ts.map +1 -0
- package/lib/cube/view.pane.component.d.ts.map +1 -0
- package/lib/dashboard/actions/actions.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/accum-cube.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/compare.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/cube-analysis.base.d.ts.map +1 -0
- package/lib/dashboard/cube/cube-analysis.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/cube-chart.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/documents.widget.d.ts.map +1 -0
- package/lib/dashboard/cube/filter/filter.component.d.ts.map +1 -0
- package/lib/dashboard/dashboard.component.d.ts.map +1 -0
- package/lib/dashboard/dashboard.pane.component.d.ts.map +1 -0
- package/lib/dashboard/recents/recents.widget.d.ts.map +1 -0
- package/lib/dashboard/score/activity.widget.d.ts.map +1 -0
- package/lib/dashboard/score/compare-groups.widget.d.ts.map +1 -0
- package/lib/dashboard/score/peers-performance.widget.d.ts.map +1 -0
- package/lib/dashboard/score/pending-results.widget.d.ts.map +1 -0
- package/lib/dashboard/score/personal-score.widget.d.ts.map +1 -0
- package/lib/dashboard/widget-item.component.d.ts.map +1 -0
- package/lib/dashboard/widget-ref.d.ts.map +1 -0
- package/lib/desktop.module.d.ts.map +1 -0
- package/lib/home/about/about.dialog.d.ts.map +1 -0
- package/lib/home/home-base.component.d.ts.map +1 -0
- package/lib/home/home.desktop.component.d.ts.map +1 -0
- package/lib/home/home.mobile.component.d.ts.map +1 -0
- package/lib/home/notifications/notifications.component.d.ts.map +1 -0
- package/lib/home/options/options.component.d.ts.map +1 -0
- package/lib/home/outofoffice/outofoffice.component.d.ts.map +1 -0
- package/lib/home/sign/sign.component.d.ts.map +1 -0
- package/lib/home/tools.component.d.ts.map +1 -0
- package/lib/impersonate/impersonate.component.d.ts.map +1 -0
- package/lib/mobile.module.d.ts.map +1 -0
- package/lib/modules/chart.module.d.ts.map +1 -0
- package/lib/modules/circular-gauge.module.d.ts.map +1 -0
- package/lib/modules/date.adapter.d.ts.map +1 -0
- package/lib/modules/datepicker.intl.d.ts.map +1 -0
- package/lib/modules/dayjs.module.d.ts.map +1 -0
- package/lib/modules/diagram.module.d.ts.map +1 -0
- package/lib/modules/gantt.module.d.ts.map +1 -0
- package/lib/modules/grid.module.d.ts.map +1 -0
- package/lib/modules/material.module.d.ts.map +1 -0
- package/lib/modules/paginator.intl.d.ts.map +1 -0
- package/lib/modules/pivot.module.d.ts.map +1 -0
- package/lib/modules/schedule.module.d.ts.map +1 -0
- package/lib/modules/spreadsheet.module.d.ts.map +1 -0
- package/lib/modules/stepper.intl.d.ts.map +1 -0
- package/lib/modules/texteditor.module.d.ts.map +1 -0
- package/lib/notifications/filter.component.d.ts.map +1 -0
- package/lib/notifications/notifications-table.component.d.ts.map +1 -0
- package/lib/notifications/notifications.component-base.d.ts.map +1 -0
- package/lib/notifications/notifications.mobile.component.d.ts.map +1 -0
- package/lib/notifications/notifications.pane.component.d.ts.map +1 -0
- package/lib/notifications/notifications.service.d.ts.map +1 -0
- package/lib/notifications/types/commented.notification.d.ts.map +1 -0
- package/lib/notifications/types/cube-anomaly.notification.d.ts.map +1 -0
- package/lib/notifications/types/escalated.notification.d.ts.map +1 -0
- package/lib/notifications/types/liked.notification.d.ts.map +1 -0
- package/lib/notifications/types/long-running-task.notification.d.ts.map +1 -0
- package/lib/notifications/types/notification-base.d.ts.map +1 -0
- package/lib/notifications/types/nudge.notification.d.ts.map +1 -0
- package/lib/notifications/types/state-changed.notification.d.ts.map +1 -0
- package/lib/notifications/types/tagged.notification.d.ts.map +1 -0
- package/lib/notifications/types/text.notification.d.ts.map +1 -0
- package/lib/notifications/types/upcoming-event.notification.d.ts.map +1 -0
- package/lib/options/options.component.d.ts.map +1 -0
- package/lib/options/options.service.d.ts.map +1 -0
- package/lib/reports/arguments-component.d.ts.map +1 -0
- package/lib/reports/cube/documents.component.d.ts.map +1 -0
- package/lib/reports/cube/grid-documents.component.d.ts.map +1 -0
- package/lib/reports/cube/table-documents.component.d.ts.map +1 -0
- package/lib/reports/cube/usage-args.component.d.ts.map +1 -0
- package/lib/reports/cube/usage-base.d.ts.map +1 -0
- package/lib/reports/cube/usage-chart.component.d.ts.map +1 -0
- package/lib/reports/cube/usage-pivot.component.d.ts.map +1 -0
- package/lib/reports/cube/usage.component.d.ts.map +1 -0
- package/lib/reports/report-ref.d.ts.map +1 -0
- package/lib/reports/report-viewer.component.d.ts.map +1 -0
- package/lib/reports/report.mobile.component.d.ts.map +1 -0
- package/lib/reports/report.pane.component.d.ts.map +1 -0
- package/lib/reports/reports-menu.component.d.ts.map +1 -0
- package/lib/reports/substitution/substitution.component.d.ts.map +1 -0
- package/lib/reports/table/table-view.component.d.ts.map +1 -0
- package/lib/reports/tasks/tasks.component.d.ts.map +1 -0
- package/lib/routes.desktop.d.ts.map +1 -0
- package/lib/routes.mobile.d.ts.map +1 -0
- package/lib/scheduler/schedule.component.d.ts.map +1 -0
- package/lib/scheduler/scheduler.mobile.component.d.ts.map +1 -0
- package/lib/scheduler/scheduler.pane.component.d.ts.map +1 -0
- package/lib/search/cube.component.d.ts.map +1 -0
- package/lib/search/declarations.d.ts.map +1 -0
- package/lib/search/document.component.d.ts.map +1 -0
- package/lib/search/guide.component.d.ts.map +1 -0
- package/lib/search/path.component.d.ts.map +1 -0
- package/lib/search/search.service.d.ts.map +1 -0
- package/lib/shared.module.d.ts.map +1 -0
- package/lib/system.module.d.ts.map +1 -0
- package/lib/views/cube/chart.component.d.ts.map +1 -0
- package/lib/views/cube/cube-base.d.ts.map +1 -0
- package/lib/views/cube/explore.component.d.ts.map +1 -0
- package/lib/views/cube/matrix.component.d.ts.map +1 -0
- package/lib/views/cube/parallel.component.d.ts.map +1 -0
- package/lib/views/cube/pivot.component.d.ts.map +1 -0
- package/lib/views/cube/sum.component.d.ts.map +1 -0
- package/lib/views/cube/view.component.d.ts.map +1 -0
- package/lib/views/document-view-ref.d.ts.map +1 -0
- package/lib/views/timeline/timeline.component.exp.d.ts.map +1 -0
- package/lib/views/view-item.component.d.ts.map +1 -0
- package/lib/views/views.component.d.ts.map +1 -0
- package/lib/views/views.mobile.component.d.ts.map +1 -0
- package/lib/views/views.pane.component.d.ts.map +1 -0
- package/package.json +1 -1
- package/public-api.d.ts.map +1 -0
@@ -446,9 +446,9 @@ export class CubeMatrixComponent {
|
|
446
446
|
}
|
447
447
|
}
|
448
448
|
}
|
449
|
-
CubeMatrixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
450
|
-
CubeMatrixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
451
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
449
|
+
CubeMatrixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CubeMatrixComponent, deps: [{ token: i1.PromptService }, { token: i2.CubeService }, { token: i3.SessionService }, { token: i4.TranslateService }, { token: i5.DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
|
450
|
+
CubeMatrixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: { seriesTotalLabel: "seriesTotalLabel", xAxisTotalLabel: "xAxisTotalLabel", _cube: ["cube", "_cube"], _xAxis: ["xAxis", "_xAxis"], _series: ["series", "_series"], _indices: ["indices", "_indices"], indexAt: "indexAt", placeAt: "placeAt", scope: "scope", sum: "sum", filters: "filters", loading: "loading", interactive: "interactive" }, outputs: { onExplore: "explore", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "tableElement", first: true, predicate: ["table"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<table #table class=\"mat-table cube-table\" (mouseleave)=\"_move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-header-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\"\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th class=\"mat-header-cell\">{{xAxisTotalLabel}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\"\r\n [class.cube-index]=\"row.index\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"_move(-2, y )\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\"\r\n (mouseenter)=\"_move(x + 1, y )\">\r\n <span *ngIf=\"data[row.key][column.key] !== '0'; else zero\" \r\n [class.explorable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (click)=\"explore(column, row)\">\r\n {{ data[row.key][column.key] }}\r\n </span>\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"_move(-1, y )\">\r\n {{ data[row.key]['_total'] }}\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- footer -->\r\n <tr class=\"mat-footer-row\">\r\n <td class=\"mat-footer-cell\">{{seriesTotalLabel}}</td>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-footer-cell figure\"\r\n (mouseenter)=\"_move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key].startsWith('-')\">\r\n <ng-container *ngIf=\"totals[column.key] !== undefined\">\r\n {{ totals[column.key] }}\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-footer-cell figure\">{{ totals['_grand'] }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n<ng-template #zero>0</ng-template>\r\n", styles: [".explorable{cursor:pointer}.cube-table{width:100%;table-layout:fixed}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td,.cube-table th{padding-right:8px}.cube-table tfoot tr td{border-bottom:none}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [matrixAnimation] });
|
451
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CubeMatrixComponent, decorators: [{
|
452
452
|
type: Component,
|
453
453
|
args: [{ selector: 'bizdoc-cube-matrix', animations: [matrixAnimation], template: "<table #table class=\"mat-table cube-table\" (mouseleave)=\"_move(-1, -1)\" *ngIf=\"data\">\r\n <thead>\r\n <!-- headers -->\r\n <tr class=\"mat-header-row\">\r\n <th></th>\r\n <th *ngFor=\"let column of columns; let x = index\"\r\n (mouseenter)=\"_move(x + 1, -2)\" class=\"mat-header-cell\">\r\n {{ column.value }}\r\n </th>\r\n <th class=\"mat-header-cell\">{{xAxisTotalLabel}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <!-- rows -->\r\n <tr *ngFor=\"let row of rows; let y = index\" class=\"mat-row\"\r\n [class.cube-index]=\"row.index\">\r\n <th class=\"mat-header-cell\" (mouseenter)=\"_move(-2, y )\">{{ row.value }}</th>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-cell figure\"\r\n (mouseenter)=\"_move(x + 1, y )\">\r\n <span *ngIf=\"data[row.key][column.key] !== '0'; else zero\" \r\n [class.explorable]=\"interactive && column.explorable !== false && row.explorable !== false\"\r\n (click)=\"explore(column, row)\">\r\n {{ data[row.key][column.key] }}\r\n </span>\r\n </td>\r\n <th class=\"mat-cell figure\" (mouseenter)=\"_move(-1, y )\">\r\n {{ data[row.key]['_total'] }}\r\n </th>\r\n </tr>\r\n </tbody>\r\n <tfoot>\r\n <!-- footer -->\r\n <tr class=\"mat-footer-row\">\r\n <td class=\"mat-footer-cell\">{{seriesTotalLabel}}</td>\r\n <td *ngFor=\"let column of columns; let x = index\" class=\"mat-footer-cell figure\"\r\n (mouseenter)=\"_move(x + 1, -2)\"\r\n [class.negative-figure]=\"totals[column.key].startsWith('-')\">\r\n <ng-container *ngIf=\"totals[column.key] !== undefined\">\r\n {{ totals[column.key] }}\r\n </ng-container>\r\n </td>\r\n <th class=\"mat-footer-cell figure\">{{ totals['_grand'] }}</th>\r\n </tr>\r\n </tfoot>\r\n</table>\r\n<ng-template #zero>0</ng-template>\r\n", styles: [".explorable{cursor:pointer}.cube-table{width:100%;table-layout:fixed}.cube-table th{cursor:default}.cube-table th.figure{font-weight:500}.cube-table td,.cube-table th{padding-right:8px}.cube-table tfoot tr td{border-bottom:none}\n"] }]
|
454
454
|
}], ctorParameters: function () { return [{ type: i1.PromptService }, { type: i2.CubeService }, { type: i3.SessionService }, { type: i4.TranslateService }, { type: i5.DatasourceService }]; }, propDecorators: { tableElement: [{
|
@@ -490,4 +490,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
490
490
|
}], loadingChange: [{
|
491
491
|
type: Output
|
492
492
|
}] } });
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL21hdHJpeC90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvbWF0cml4L3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUEwQixNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFlLFdBQVcsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBS25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFNeEQsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFLFVBQVUsR0FBRyxNQUFNLENBQUM7QUFFL0MsMkJBQTJCO0FBTzNCLE1BQU0sT0FBTyxtQkFBbUI7SUFtRTlCLFlBQ1UsR0FBa0IsRUFDbEIsUUFBcUIsRUFDckIsUUFBd0IsRUFDeEIsVUFBNEIsRUFDNUIsR0FBc0I7UUFKdEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNs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LElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUNBQWlDLENBQUM7WUFDekUsSUFBSSxDQUFDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZJLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxD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QUNULGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNTLEtBQUs7c0JBQW5CLEtBQUs7dUJBQUMsTUFBTTtnQkFDRyxNQUFNO3NCQUFyQixLQUFLO3VCQUFDLE9BQU87Z0JBQ0csT0FBTztzQkFBdkIsS0FBSzt1QkFBQyxRQUFRO2dCQUVmLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxTQUFTO2dCQUdoQixPQUFPO3NCQUROLEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFTyxHQUFHO3NCQUFmLEtBQUs7Z0JBMEJHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0ssV0FBVztzQkFEckIsS0FBSztnQkFJc0IsU0FBUztzQkFBcEMsTUFBTTt1QkFBQyxTQUFTO2dCQUNFLGFBQWE7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ybWF0Q3VycmVuY3ksIGZvcm1hdFBlcmNlbnQsIGZvcm1hdE51bWJlciwgZ2V0Q3VycmVuY3lTeW1ib2wgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgV29ya2Jvb2ssIFdvcmtzaGVldCwgUm93LCBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBpc0FycmF5LCBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSwgZXJyUmVzb3VyY2UsIFNlcmllcyB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBeGVzTWFwLCBBeGlzVmFsdWUsIEN1YmUsIEN1YmVBeGlzLCBDdWJlSW5kZXggfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IG1hdHJpeEFuaW1hdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFNjb3BlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQgfSBmcm9tICcuLi9kZWNsYXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBBeGlzUGxhY2UsIEF4aXNUeXBlIH0gZnJvbSAnLi4vZGVjbGFyYXRpb25zJztcclxuXHJcbmNvbnN0IExPQURJTkdfREVMQVkgPSAyMDAsIFNVTV9QUkVGSVggPSAnX3N1bSc7XHJcblxyXG4vKiogY3ViZSBtYXRyaXggY29tcG9uZW50Ki9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1tYXRyaXgnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbbWF0cml4QW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZU1hdHJpeENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgcmVhZG9ubHkgUFJFQ0lTSU9OID0gdGhpcy5fc2VydmljZS5kaWdpdHNJbmZvO1xyXG4gIHJlYWRvbmx5IExBTkdVQUdFID0gdGhpcy5fc2Vzc2lvbi5sYW5ndWFnZTtcclxuICBDVVJSRU5DWTogc3RyaW5nO1xyXG4gIFNZTUJPTDogc3RyaW5nO1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGVFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUYWJsZUVsZW1lbnQ+O1xyXG4gIEBJbnB1dCgpIHNlcmllc1RvdGFsTGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSB4QXhpc1RvdGFsTGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoJ2N1YmUnKSBfY3ViZT86IHN0cmluZztcclxuICBASW5wdXQoJ3hBeGlzJykgX3hBeGlzITogc3RyaW5nO1xyXG4gIEBJbnB1dCgnc2VyaWVzJykgX3NlcmllcyE6IHN0cmluZztcclxuICBASW5wdXQoJ2luZGljZXMnKVxyXG4gIF9pbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBpbmRleEF0OiBBeGlzVHlwZSA9ICdTZXJpZXMnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGxhY2VBdDogQXhpc1BsYWNlID0gJ0xlYWRpbmcnO1xyXG4gIEBJbnB1dCgpIHNjb3BlOiBTY29wZVR5cGU7XHJcbiAgcHJpdmF0ZSBfc3VtOiBTdW1TZXR0aW5nc1tdO1xyXG4gIEBJbnB1dCgpIHNldCBzdW0odmFsOiBTdW1TZXR0aW5ncyB8IFN1bVNldHRpbmdzW10pIHtcclxuICAgIGlmICh2YWwpIHRoaXMuX3N1bSA9IChpc0FycmF5KHZhbCkgPyB2YWwgOiBbdmFsXSkuXHJcbiAgICAgIG1hcChzdW0gPT4ge1xyXG4gICAgICAgIGxldCB2YWx1ZTtcclxuICAgICAgICBpZiAoc3VtLnZhbHVlKVxyXG4gICAgICAgICAgdmFsdWUgPSBzdW0udmFsdWUudG9TdHJpbmcoKTtcclxuICAgICAgICBlbHNlIGlmIChzdW0uY2FsY3VsYXRlKVxyXG4gICAgICAgICAgc3dpdGNoIChzdW0uY2FsY3VsYXRlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ01vbnRoJzpcclxuICAgICAgICAgICAgICB2YWx1ZSA9ICdNJyArICgnMCcgKyAobmV3IERhdGUoKS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKSkuc2xpY2UoLTIpO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdZZWFyJzpcclxuICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdRdWFydGVyJzpcclxuICAgICAgICAgICAgICB2YWx1ZSA9IE1hdGguY2VpbCgobmV3IERhdGUoKS5nZXRNb250aCgpICsgMSkgLyAzKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdTdW0nOlxyXG4gICAgICAgICAgICAgIHZhbHVlID0gJ34nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5zdW0sXHJcbiAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKSBmaWx0ZXJzOiBBeGVzTWFwO1xyXG4gIHByaXZhdGUgX2ludGVyYWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIHB1YmxpYyBnZXQgaW50ZXJhY3RpdmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faW50ZXJhY3RpdmU7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBpbnRlcmFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faW50ZXJhY3RpdmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuICBAT3V0cHV0KCdleHBsb3JlJykgcmVhZG9ubHkgb25FeHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICByb3dzOiBIZWFkZXJJbmZvW107XHJcbiAgY29sdW1uczogSGVhZGVySW5mb1tdO1xyXG4gIGluZGljZXM6IEN1YmVJbmRleFtdID0gW107XHJcbiAgZGF0YTogeyBbc2VyaWVzOiBzdHJpbmddOiB7IFt4QXhpczogc3RyaW5nXTogc3RyaW5nOyB9OyB9O1xyXG4gIHRvdGFsczogeyBbeEF4aXM6IHN0cmluZ106IG51bWJlciB9O1xyXG4gIGN1YmU6IEN1YmU7XHJcbiAgeEF4aXM6IEN1YmVBeGlzO1xyXG4gIHNlcmllczogQ3ViZUF4aXM7XHJcbiAgcHJpdmF0ZSBfZGF0YTogRGF0YU1hcDtcclxuICBwcml2YXRlIF9wcmVwYXJlOiBQcm9taXNlPGFueT47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kczogRGF0YXNvdXJjZVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydfY3ViZSddKSB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLl9jdWJlKTtcclxuICAgICAgdGhpcy5DVVJSRU5DWSA9IHRoaXMuY3ViZS5jdXJyZW5jeUNvZGUgLyp8fCB0aGlzLl9zZXJ2aWNlLmN1cnJlbmN5Q29kZSovO1xyXG4gICAgICB0aGlzLlNZTUJPTCA9IGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuQ1VSUkVOQ1ksICduYXJyb3cnKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jdWJlKSB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgICAgdGhpcy5DVVJSRU5DWSA9IHRoaXMuY3ViZS5jdXJyZW5jeUNvZGUgLyp8fCB0aGlzLl9zZXJ2aWNlLmN1cnJlbmN5Q29kZSovO1xyXG4gICAgICB0aGlzLlNZTUJPTCA9IGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuQ1VSUkVOQ1ksICduYXJyb3cnKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydfaW5kaWNlcyddICYmIHRoaXMuX2luZGljZXMpXHJcbiAgICAgIHRoaXMuaW5kaWNlcyA9IHRoaXMuY3ViZS5pbmRpY2VzLmZpbHRlcihpID0+IGlzQXJyYXkodGhpcy5faW5kaWNlcykgPyB0aGlzLl9pbmRpY2VzLmluZGV4T2YoaS5uYW1lKSA+IC0xIDogdGhpcy5faW5kaWNlcyA9PT0gaS5uYW1lKTtcclxuICAgIGlmIChjaGFuZ2VzWydfeEF4aXMnXSB8fCBjaGFuZ2VzWydfc2VyaWVzJ10pIHtcclxuICAgICAgdGhpcy54QXhpcyA9IHRoaXMuY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IHRoaXMuX3hBeGlzKTtcclxuICAgICAgdGhpcy5zZXJpZXMgPSB0aGlzLmN1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB0aGlzLl9zZXJpZXMpO1xyXG4gICAgICB0aGlzLmRhdGEgPSBudWxsO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlID0gZm9ya0pvaW4odGhpcy5fZHMuYWxsKHRoaXMuc2VyaWVzLmRhdGFUeXBlKS5waXBlKHRhcChyID0+XHJcbiAgICAgICAgdGhpcy5yb3dzID0gclxyXG4gICAgICApKSxcclxuICAgICAgICB0aGlzLl9kcy5hbGwodGhpcy54QXhpcy5kYXRhVHlwZSkucGlwZSh0YXAoYyA9PlxyXG4gICAgICAgICAgdGhpcy5jb2x1bW5zID0gY1xyXG4gICAgICAgICkpKS50b1Byb21pc2UoKS50aGVuKFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2FkZGluZGljZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5fc3VtICYmIHRoaXMuX2FkZHN1bWhlYWRlcnMoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNoYW5nZXNbJ2ZpbHRlcnMnXSlcclxuICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FkZGluZGljZXMoKSB7XHJcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5pbmRleEF0ID09PSAnWEF4aXMnID8gdGhpcy5jb2x1bW5zIDogdGhpcy5yb3dzO1xyXG4gICAgdGhpcy5pbmRpY2VzLmZvckVhY2goKHgsIGkpID0+IHtcclxuICAgICAgY29uc3QgaGVhZGVyID0ge1xyXG4gICAgICAgIGtleTogeC5uYW1lLFxyXG4gICAgICAgIHZhbHVlOiB4LnRpdGxlLFxyXG4gICAgICAgIGluZGV4OiB4LFxyXG4gICAgICAgIGFjY3VtdWxhdGU6IHguYWNjdW11bGF0ZVxyXG4gICAgICB9IGFzIEhlYWRlckluZm87XHJcbiAgICAgIGlmICh0aGlzLnBsYWNlQXQgPT09ICdUcmFpbGluZycpXHJcbiAgICAgICAgY29sbGVjdGlvbi5wdXNoKGhlYWRlcik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBjb2xsZWN0aW9uLnNwbGljZShpLCAwLCBoZWFkZXIpO1xyXG4gICAgfSlcclxuICB9XHJcbiAgcHJpdmF0ZSBfYWRkc3VtaGVhZGVycygpIHtcclxuICAgIHRoaXMuX3N1bS5mb3JFYWNoKChzLCBpKSA9PiB7XHJcbiAgICAgIGxldCB7IHZhbHVlLCBheGlzIH0gPSBzO1xyXG4gICAgICBjb25zdCBoZWFkZXIgPSB7XHJcbiAgICAgICAga2V5OiBTVU1fUFJFRklYICsgaSxcclxuICAgICAgICB2YWx1ZTogcy50aXRsZSxcclxuICAgICAgICBhY2N1bXVsYXRlOiAhaXNGdW5jdGlvbihzLmNhbGN1bGF0ZSkgJiYgcy5jYWxjdWxhdGUgIT09ICdTdW0nLFxyXG4gICAgICAgIGV4cGxvcmFibGU6ICFpc0Z1bmN0aW9uKHMuY2FsY3VsYXRlKSAmJiBzLmV4cGxvcmFibGUgIT09IGZhbHNlLFxyXG4gICAgICAgIHByZWNpc2lvbjogcy5wcmVjaXNpb24sXHJcbiAgICAgICAgc3VtOiBzXHJcbiAgICAgIH0gYXMgSGVhZGVySW5mbztcclxuICAgICAgbGV0IGogPSAwO1xyXG4gICAgICBpZiAoYXhpcyA9PT0gJ1hBeGlzJykge1xyXG4gICAgICAgIHdoaWxlIChqIDwgdGhpcy5jb2x1bW5zLmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY29sdW1uc1tqXS5rZXkgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucy5zcGxpY2UoaiArIDEsIDAsIGhlYWRlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaisrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaiA9PT0gdGhpcy5jb2x1bW5zLmxlbmd0aClcclxuICAgICAgICAgIHRoaXMuY29sdW1ucy5wdXNoKGhlYWRlcik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgd2hpbGUgKGogPCB0aGlzLnJvd3MubGVuZ3RoKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5yb3dzW2pdLmtleSA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5yb3dzLnNwbGljZShqICsgMSwgMCwgaGVhZGVyKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBqKys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChqID09PSB0aGlzLnJvd3MubGVuZ3RoKVxyXG4gICAgICAgICAgdGhpcy5yb3dzLnB1c2goaGVhZGVyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgY29uc3QgcHJvZ3Jlc3NUYXNrID0gc2V0VGltZW91dCgoKSA9PlxyXG4gICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UubmV4dCh0aGlzLmxvYWRpbmcgPSB0cnVlKVxyXG4gICAgICAsIExPQURJTkdfREVMQVkpO1xyXG4gICAgdGhpcy5fcHJlcGFyZS50aGVuKCgpID0+XHJcbiAgICAgIHRoaXMuX3NlcnZpY2Uuc2VyaWVzKHRoaXMuY3ViZS5uYW1lLCB0aGlzLl94QXhpcywge1xyXG4gICAgICAgIHNlcmllczogdGhpcy5fc2VyaWVzLFxyXG4gICAgICAgIGluZGljZXM6IHRoaXMuX2luZGljZXMsXHJcbiAgICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxyXG4gICAgICAgIGludmVyc2VJbmRpY2VzOiB0aGlzLmluZGV4QXQgPT09ICdYQXhpcycsXHJcbiAgICAgICAgc2NvcGU6IHRoaXMuc2NvcGVcclxuICAgICAgfSkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9zZXJpYWxpemUocik7XHJcbiAgICAgICAgdGhpcy5fY2xvbmUoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5fc3VtICYmIHRoaXMuX2NhbGN1bGF0ZXN1bShkYXRhKTtcclxuICAgICAgICB0aGlzLl90b3RhbHMoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5fc3RyaW5naWZ5KGRhdGEpO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEgYXMgYW55O1xyXG4gICAgICAgIGNsZWFyVGltZW91dChwcm9ncmVzc1Rhc2spO1xyXG4gICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5uZXh0KHRoaXMubG9hZGluZyA9IGZhbHNlKTtcclxuICAgICAgfSxcclxuICAgICAgICAoZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKGVyclJlc291cmNlKGUpKTtcclxuICAgICAgICAgIGNsZWFyVGltZW91dChwcm9ncmVzc1Rhc2spO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLm5leHQodGhpcy5sb2FkaW5nID0gZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVycm9yKGUpO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZXJpYWxpemUoc2VyaWVzOiBTZXJpZXNbXSkge1xyXG4gICAgY29uc3QgZCA9IHt9O1xyXG4gICAgc2VyaWVzLmZvckVhY2gocyA9PiB7XHJcbiAgICAgIGlmIChzLmluZGV4KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5kZXhBdCA9PT0gJ1hBeGlzJylcclxuICAgICAgICAgIHMucG9pbnRzLmZvckVhY2gocCA9PiB7XHJcbiAgICAgICAgICAgIGxldCByb3cgPSBkW3AueF07XHJcbiAgICAgICAgICAgIGlmICghcm93KVxyXG4gICAgICAgICAgICAgIHJvdyA9IGRbcC54XSA9IHt9O1xyXG4gICAgICAgICAgICByb3dbcy5pbmRleF0gPSBwLnk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHJvdyA9IGRbcy5pbmRleF0gPSB7fTtcclxuICAgICAgICAgIHMucG9pbnRzLmZvckVhY2gocCA9PiByb3dbcC54XSA9IHAueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCByb3cgPSBkW3MubmFtZV0gPSB7fTtcclxuICAgICAgICBzLnBvaW50cy5mb3JFYWNoKHAgPT4gcm93W3AueF0gPSBwLnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2xvbmUoZGF0YSkge1xyXG4gICAgdGhpcy5fZGF0YSA9IHt9O1xyXG4gICAgdGhpcy5yb3dzLmZvckVhY2gociA9PiB7XHJcbiAgICAgIGNvbnN0IGtleSA9IHIua2V5O1xyXG4gICAgICBpZiAoIWRhdGFba2V5XSkgZGF0YVtrZXldID0ge307XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fZGF0YVtrZXldID0ge30sIGRhdGFba2V5XSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdG90YWxzKGRhdGE6IERhdGFNYXApIHtcclxuICAgIGxldCBncmFuZCA9IDA7XHJcbiAgICB0aGlzLnJvd3MuZm9yRWFjaChyID0+IHtcclxuICAgICAgY29uc3QgZGF0YXJvdyA9IGRhdGFbci5rZXldO1xyXG4gICAgICBpZiAoZGF0YXJvdykge1xyXG4gICAgICAgIGxldCBjb2x1bW5Ub3RhbCA9IDA7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICBpZiAoYy5hY2N1bXVsYXRlID09PSBmYWxzZSB8fCBjLnN1bSAhPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcbiAgICAgICAgICBsZXQgdmFsID0gZGF0YXJvd1tjLmtleV07XHJcbiAgICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIGNvbHVtblRvdGFsICs9IHRoaXMuaW5kaWNlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5pbmRleEF0ICE9PSAnWEF4aXMnIHx8XHJcbiAgICAgICAgICAgICAgYy5pbmRleCAhPT0gdW5kZWZpbmVkID8gdmFsIDogLXZhbDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBkYXRhcm93WydfdG90YWwnXSA9IHRoaXMuX2Zvcm1hdChjb2x1bW5Ub3RhbCwgcik7XHJcbiAgICAgICAgaWYgKCFyLnN1bSlcclxuICAgICAgICAgIGdyYW5kICs9IHRoaXMuaW5kaWNlcy5sZW5ndGggPT09IDAgfHxcclxuICAgICAgICAgICAgdGhpcy5pbmRleEF0ID09PSAnWEF4aXMnIHx8XHJcbiAgICAgICAgICAgIHIuaW5kZXggIT09IHVuZGVmaW5lZCA/IGNvbHVtblRvdGFsIDogLWNvbHVtblRvdGFsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBkYXRhW3Iua2V5XSA9IHtcclxuICAgICAgICAgICdfdG90YWwnOiAnMCcgYXMgYW55XHJcbiAgICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdG90YWxzID0gZGF0YVsnX3RvdGFsJ10gPSB0aGlzLnRvdGFscyA9IHt9O1xyXG4gICAgdG90YWxzWydfZ3JhbmQnXSA9IHRoaXMuX2Zvcm1hdChncmFuZCk7XHJcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgbGV0IHJvd1RvdGFsID0gMDtcclxuICAgICAgdGhpcy5yb3dzLmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICBpZiAocm93LmFjY3VtdWxhdGUgPT09IGZhbHNlIHx8IHJvdy5zdW0gIT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IGRhdGFbcm93LmtleV1bYy5rZXldO1xyXG4gICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIHJvd1RvdGFsICs9IHRoaXMuaW5kaWNlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5pbmRleEF0ID09PSAnWEF4aXMnIHx8XHJcbiAgICAgICAgICAgIHJvdy5pbmRleCAhPT0gdW5kZWZpbmVkID8gdmFsIDogLXZhbDtcclxuICAgICAgfSk7XHJcbiAgICAgIHRvdGFsc1tjLmtleV0gPSB0aGlzLl9mb3JtYXQocm93VG90YWwsIGMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NhbGN1bGF0ZXN1bShkYXRhOiBEYXRhTWFwKSB7XHJcbiAgICB0aGlzLl9zdW0uZm9yRWFjaCgocywgaSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGF4aXMsIHZhbHVlLCBjYWxjdWxhdGUgfSA9IHM7XHJcbiAgICAgIGNvbnN0IG5hbWUgPSBTVU1fUFJFRklYICsgaTtcclxuICAgICAgaWYgKGF4aXMgPT09ICdYQXhpcycpIHtcclxuICAgICAgICB0aGlzLnJvd3MuZm9yRWFjaChyID0+IHtcclxuICAgICAgICAgIGlmIChyLmFjY3VtdWxhdGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgICAgICBjb25zdCBkYXRhcm93ID0gZGF0YVtyLmtleV07XHJcbiAgICAgICAgICBpZiAoIWRhdGFyb3cpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIGxldCBzdW0gPSAwO1xyXG4gICAgICAgICAgZm9yIChsZXQgY29sdW1uIG9mIHRoaXMuY29sdW1ucykge1xyXG4gICAgICAgICAgICBpZiAoY29sdW1uLmluZGV4KSBjb250aW51ZTtcclxuICAgICAgICAgICAgbGV0IGtleSA9IGNvbHVtbi5rZXk7XHJcbiAgICAgICAgICAgIGlmIChjb2x1bW4uc3VtKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oY2FsY3VsYXRlKSkge1xyXG4gICAgICAgICAgICAgIGxldCB2YWwgPSAoY2FsY3VsYXRlIGFzIENhbGN1bGF0ZUZuKShyLmtleSwgdGhpcy5fZGF0YSk7XHJcbiAgICAgICAgICAgICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHN1bSArPSB2YWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IHZhbCA9IGRhdGFyb3dba2V5XTtcclxuICAgICAgICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICBzdW0gKz0gdmFsO1xyXG4gICAgICAgICAgICAgIGlmIChrZXkgPT09IHZhbHVlKVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRhdGFyb3dbbmFtZV0gPSBzdW07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IGRhdGFyb3cgPSBkYXRhW25hbWVdID0ge307XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcclxuICAgICAgICAgIGxldCBzdW0gPSAwO1xyXG4gICAgICAgICAgZm9yIChsZXQgcm93IG9mIHRoaXMucm93cykge1xyXG4gICAgICAgICAgICBpZiAocm93LmluZGV4KSBjb250aW51ZTtcclxuICAgICAgICAgICAgbGV0IGtleSA9IHJvdy5rZXk7XHJcbiAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKGNhbGN1bGF0ZSkpIHtcclxuICAgICAgICAgICAgICBsZXQgdmFsID0gKGNhbGN1bGF0ZSBhcyBDYWxjdWxhdGVGbikocm93LmtleSwgdGhpcy5fZGF0YSk7XHJcbiAgICAgICAgICAgICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHN1bSArPSB2YWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IGRhdGFyb3cgPSBkYXRhW2tleV07XHJcbiAgICAgICAgICAgICAgaWYgKCFkYXRhcm93KSBjb250aW51ZTtcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uLnN1bSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IGRhdGFyb3dbY29sdW1uLmtleV07XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsICE9IHVuZGVmaW5lZCkgc3VtICs9IHZhbDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdmFsID0gZGF0YXJvd1tjb2x1bW4ua2V5XTtcclxuICAgICAgICAgICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgICAgICAgc3VtICs9IHZhbDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gdmFsdWUpXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGF0YXJvd1tjb2x1bW4ua2V5XSA9IHN1bTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3N0cmluZ2lmeShkYXRhOiBEYXRhTWFwKSB7XHJcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgdGhpcy5yb3dzLmZvckVhY2gociA9PiB7XHJcbiAgICAgICAgY29uc3QgeEF4aXMgPSByLmtleSwgc2VyaWVzID0gYy5rZXk7XHJcbiAgICAgICAgaWYgKGMuc3VtKSBkYXRhW3hBeGlzXVtzZXJpZXNdID0gdGhpcy5fZm9ybWF0KGRhdGFbeEF4aXNdW3Nlcmllc10sIGMuc3VtKTtcclxuICAgICAgICBlbHNlIGlmIChyLnN1bSkgZGF0YVt4QXhpc11bc2VyaWVzXSA9IHRoaXMuX2Zvcm1hdChkYXRhW3hBeGlzXVtzZXJpZXNdLCByLnN1bSk7XHJcbiAgICAgICAgZWxzZSBkYXRhW3hBeGlzXVtzZXJpZXNdID1cclxuICAgICAgICAgIGZvcm1hdE51bWJlcihkYXRhW3hBeGlzXVtzZXJpZXNdIHx8IDAsIHRoaXMuTEFOR1VBR0UsIHRoaXMuUFJFQ0lTSU9OKSBhcyBhbnk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Zvcm1hdCh2YWwsIG9wdGlvbnM/OiB7IGZvcm1hdD86IEZvcm1hdFR5cGUsIHByZWNpc2lvbj86IHN0cmluZyB9KTogYW55IHtcclxuICAgIGlmICh2YWwgPT09IDApIHJldHVybiAnMCc7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdQZXJjZW50JylcclxuICAgICAgICByZXR1cm4gZm9ybWF0UGVyY2VudCh2YWwsIHRoaXMuTEFOR1VBR0UsIG9wdGlvbnMucHJlY2lzaW9uIHx8IHRoaXMuUFJFQ0lTSU9OKTtcclxuICAgICAgZWxzZSBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdDdXJyZW5jeScpXHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdEN1cnJlbmN5KHZhbCwgdGhpcy5MQU5HVUFHRSwgdGhpcy5TWU1CT0wsIHRoaXMuQ1VSUkVOQ1ksIG9wdGlvbnMucHJlY2lzaW9uIHx8IHRoaXMuUFJFQ0lTSU9OKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLkNVUlJFTkNZKVxyXG4gICAgICByZXR1cm4gZm9ybWF0Q3VycmVuY3kodmFsLCB0aGlzLkxBTkdVQUdFLCB0aGlzLlNZTUJPTCwgdGhpcy5DVVJSRU5DWSwgdGhpcy5QUkVDSVNJT04pO1xyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKHZhbCwgdGhpcy5MQU5HVUFHRSwgdGhpcy5QUkVDSVNJT04pO1xyXG4gIH1cclxuICBleHBsb3JlKGNvbHVtbjogSGVhZGVySW5mbywgcm93OiBIZWFkZXJJbmZvKSB7XHJcbiAgICBpZiAoIXRoaXMuaW50ZXJhY3RpdmUgfHwgY29sdW1uLmV4cGxvcmFibGUgPT09IGZhbHNlIHx8IHJvdy5leHBsb3JhYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgbGV0IHg6IEF4aXNWYWx1ZSwgc2VyaWVzOiBBeGlzVmFsdWUsIGluZGV4O1xyXG4gICAgY29uc3QgYXhlcyA9IHsgLi4udGhpcy5maWx0ZXJzIH0gYXMgQXhlc01hcDtcclxuICAgIGlmICghY29sdW1uLnN1bSlcclxuICAgICAgeCA9IGNvbHVtbi5rZXk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IHsgdmFsdWUsIGNhbGN1bGF0ZSB9ID0gY29sdW1uLnN1bTtcclxuICAgICAgaWYgKGlzRnVuY3Rpb24oY2FsY3VsYXRlKSkgcmV0dXJuO1xyXG4gICAgICB4ID0gW10gYXMgc3RyaW5nW107XHJcbiAgICAgIGZvciAobGV0IGNvbHVtbiBvZiB0aGlzLmNvbHVtbnMpIHtcclxuICAgICAgICBpZiAoY29sdW1uLnN1bSlcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIGxldCBrZXkgPSBjb2x1bW4ua2V5O1xyXG4gICAgICAgIHgucHVzaChrZXkpO1xyXG4gICAgICAgIGlmIChrZXkgPT09IHZhbHVlKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGF4ZXNbdGhpcy54QXhpcy5uYW1lXSA9IHg7XHJcbiAgICBpZiAocm93LmluZGV4KVxyXG4gICAgICBpbmRleCA9IHJvdy5pbmRleC5uYW1lO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChyb3cuc3VtKSB7XHJcbiAgICAgICAgbGV0IHsgdmFsdWUsIGNhbGN1bGF0ZSB9ID0gcm93LnN1bTtcclxuICAgICAgICBpZiAoaXNGdW5jdGlvbihjYWxjdWxhdGUpKSByZXR1cm47XHJcbiAgICAgICAgc2VyaWVzID0gW10gYXMgc3RyaW5nW107XHJcbiAgICAgICAgZm9yIChsZXQgcm93IG9mIHRoaXMucm93cykge1xyXG4gICAgICAgICAgaWYgKHJvdy5zdW0pXHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgbGV0IGtleSA9IHJvdy5rZXk7XHJcbiAgICAgICAgICBzZXJpZXMucHVzaChrZXkpO1xyXG4gICAgICAgICAgaWYgKGtleSA9PT0gdmFsdWUpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgc2VyaWVzID0gcm93LmtleTtcclxuICAgICAgYXhlc1t0aGlzLnNlcmllcy5uYW1lXSA9IHNlcmllcztcclxuICAgICAgaW5kZXggPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkV4cGxvcmUuZW1pdCh7IGF4ZXMsIGluZGV4IH0pO1xyXG4gIH1cclxuICBleHBvcnQoKSB7XHJcbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSB0aGlzLl9zZXJ2aWNlLm51bWJlckZvcm1hdCxcclxuICAgICAgY29sdW1ucyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiAhYy5zdW0pLFxyXG4gICAgICBjZWxscyA9IFtdIGFzIENlbGxbXSxcclxuICAgICAgcm93cyA9IFt7IGluZGV4OiAxLCBjZWxscyB9XTtcclxuICAgIGNvbHVtbnMuZm9yRWFjaCgoYywgaikgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgIGluZGV4OiBqICsgMixcclxuICAgICAgdmFsdWU6IGMudmFsdWUsIHN0eWxlOiB7IGJvbGQ6IHRydWUgfVxyXG4gICAgfSkpO1xyXG5cclxuICAgIHRoaXMucm93cy5maWx0ZXIociA9PiAhci5zdW0pLmZvckVhY2goKHIsIGkpID0+IHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuX2RhdGFbci5rZXldLFxyXG4gICAgICAgIGNlbGxzID0gW3sgaW5kZXg6IDEsIHZhbHVlOiByLnZhbHVlLCBzdHlsZTogeyBib2xkOiB0cnVlIH0gfV0gYXMgQ2VsbFtdO1xyXG4gICAgICBjb2x1bW5zLmZvckVhY2goKGMsIGopID0+IGNlbGxzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgIGluZGV4OiBqICsgMixcclxuICAgICAgICB2YWx1ZTogZGF0YSAmJiBkYXRhW2Mua2V5XSAhPT0gdW5kZWZpbmVkID8gZGF0YVtjLmtleV0gOiAwLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICBoQWxpZ246ICdyaWdodCcsXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGFzIENlbGwpKTtcclxuICAgICAgcm93cy5wdXNoKHtcclxuICAgICAgICBpbmRleDogaSArIDIsXHJcbiAgICAgICAgY2VsbHNcclxuICAgICAgfSBhcyBSb3cpO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBib29rID0gbmV3IFdvcmtib29rKFxyXG4gICAgICB7XHJcbiAgICAgICAgd29ya3NoZWV0czogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBlbmFibGVSdGw6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZSxcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnU2hlZXROJywgMSksXHJcbiAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAxNTAgfSBhcyBDb2x1bW4pKSxcclxuICAgICAgICAgICAgcm93cyxcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIHRoaXMuX3NlcnZpY2UubmFtZU9mKHRoaXMuZmlsdGVycywgdGhpcy5jdWJlLm5hbWUpLnN1YnNjcmliZShuID0+XHJcbiAgICAgIGJvb2suc2F2ZShgJHtuIHx8IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ01hdHJpeCcpfS54bHN4YCkpO1xyXG4gIH1cclxuICBfbW92ZSh4LCB5KSB7XHJcbiAgICBsZXQgcm93SW5kZXggPSAwO1xyXG4gICAgZm9yIChsZXQgYiA9IDA7IGIgPCB0aGlzLnRhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50LnRCb2RpZXMubGVuZ3RoOyBiKyspIHtcclxuICAgICAgbGV0IHRCb2R5ID0gdGhpcy50YWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudC50Qm9kaWVzLml0ZW0oYik7XHJcbiAgICAgIGZvciAobGV0IHIgPSAwOyByIDwgdEJvZHkucm93cy5sZW5ndGg7IHIrKykge1xyXG4gICAgICAgIGxldCByb3cgPSB0Qm9keS5yb3dzLml0ZW0ocik7XHJcbiAgICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCByb3cuY2VsbHMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICAgIGxldCBjZWxsID0gcm93LmNlbGxzLml0ZW0oYyk7XHJcbiAgICAgICAgICBpZiAoYyA9PT0geClcclxuICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3QuYWRkKCdjZWxsLXgnKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3QucmVtb3ZlKCdjZWxsLXgnKTtcclxuICAgICAgICAgIGlmIChyb3dJbmRleCA9PT0geSlcclxuICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3QuYWRkKCdjZWxsLXknKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3QucmVtb3ZlKCdjZWxsLXknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcm93SW5kZXgrKztcclxuICAgICAgfVxyXG4gICAgICBsZXQgdEZvb3QgPSB0aGlzLnRhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50LnRGb290LCByb3cgPSB0Rm9vdC5yb3dzWzBdO1xyXG4gICAgICBmb3IgKGxldCBjID0gMDsgYyA8IHJvdy5jZWxscy5sZW5ndGg7IGMrKykge1xyXG4gICAgICAgIGxldCBjZWxsID0gcm93LmNlbGxzLml0ZW0oYyk7XHJcbiAgICAgICAgaWYgKGMgPT09IHgpXHJcbiAgICAgICAgICBjZWxsLmNsYXNzTGlzdC5hZGQoJ2NlbGwteCcpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LnJlbW92ZSgnY2VsbC14Jyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxudHlwZSBEYXRhTWFwID0geyBbc2VyaWVzOiBzdHJpbmddOiB7IFt4QXhpczogc3RyaW5nXTogbnVtYmVyOyB9OyB9O1xyXG5cclxuZXhwb3J0IHR5cGUgU3VtU2V0dGluZ3MgPSB7XHJcbiAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgYXhpczogQXhpc1R5cGU7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBmb3JtYXQ/OiBGb3JtYXRUeXBlO1xyXG4gIHByZWNpc2lvbj86IHN0cmluZztcclxuICBleHBsb3JhYmxlPzogYm9vbGVhbjtcclxuICBwbGFjZT86IEF4aXNQbGFjZTtcclxuICBjYWxjdWxhdGU/OiBDYWxjdWxhdGVUeXBlO1xyXG59XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRm9ybWF0VHlwZSA9ICdQZXJjZW50JyB8ICdDdXJyZW5jeScgfCAnTnVtYmVyJztcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBDYWxjdWxhdGVUeXBlID0gJ1F1YXJ0ZXInIHwgJ1llYXInIHwgJ01vbnRoJyB8ICdTdW0nIHwgQ2FsY3VsYXRlRm47XHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDYWxjdWxhdGVGbiB7XHJcbiAgKHZhbHVlOiBzdHJpbmcsIGRhdGE6IHsgW3Nlcmllczogc3RyaW5nXTogeyBbeEF4aXM6IHN0cmluZ106IG51bWJlcjsgfTsgfSk6IG51bWJlcjtcclxufVxyXG5cclxudHlwZSBIZWFkZXJJbmZvID0ge1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgcHJlY2lzaW9uPzogc3RyaW5nO1xyXG4gIGV4cGxvcmFibGU/OiBib29sZWFuO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIHN1bT86IFN1bVNldHRpbmdzO1xyXG4gIGluZGV4PzogQ3ViZUluZGV4O1xyXG59O1xyXG5pbnRlcmZhY2UgQ2VsbCB7IH1cclxuIiwiPHRhYmxlICN0YWJsZSBjbGFzcz1cIm1hdC10YWJsZSBjdWJlLXRhYmxlXCIgKG1vdXNlbGVhdmUpPVwiX21vdmUoLTEsIC0xKVwiICpuZ0lmPVwiZGF0YVwiPlxyXG4gIDx0aGVhZD5cclxuICAgIDwhLS0gaGVhZGVycyAtLT5cclxuICAgIDx0ciBjbGFzcz1cIm1hdC1oZWFkZXItcm93XCI+XHJcbiAgICAgIDx0aD48L3RoPlxyXG4gICAgICA8dGggKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgeCA9IGluZGV4XCJcclxuICAgICAgICAgIChtb3VzZWVudGVyKT1cIl9tb3ZlKHggKyAxLCAtMilcIiBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPlxyXG4gICAgICAgIHt7IGNvbHVtbi52YWx1ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGggY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIj57e3hBeGlzVG90YWxMYWJlbH19PC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC90aGVhZD5cclxuICA8dGJvZHk+XHJcbiAgICA8IS0tIHJvd3MgLS0+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgeSA9IGluZGV4XCIgY2xhc3M9XCJtYXQtcm93XCJcclxuICAgICAgICBbY2xhc3MuY3ViZS1pbmRleF09XCJyb3cuaW5kZXhcIj5cclxuICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCIgKG1vdXNlZW50ZXIpPVwiX21vdmUoLTIsIHkgKVwiPnt7IHJvdy52YWx1ZSB9fTwvdGg+XHJcbiAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCB4ID0gaW5kZXhcIiBjbGFzcz1cIm1hdC1jZWxsIGZpZ3VyZVwiXHJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJfbW92ZSh4ICsgMSwgeSApXCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhW3Jvdy5rZXldW2NvbHVtbi5rZXldICE9PSAnMCc7IGVsc2UgemVyb1wiIFxyXG4gICAgICAgICAgW2NsYXNzLmV4cGxvcmFibGVdPVwiaW50ZXJhY3RpdmUgJiYgY29sdW1uLmV4cGxvcmFibGUgIT09IGZhbHNlICYmIHJvdy5leHBsb3JhYmxlICE9PSBmYWxzZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZXhwbG9yZShjb2x1bW4sIHJvdylcIj5cclxuICAgICAgICAgIHt7IGRhdGFbcm93LmtleV1bY29sdW1uLmtleV0gfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1jZWxsIGZpZ3VyZVwiIChtb3VzZWVudGVyKT1cIl9tb3ZlKC0xLCB5IClcIj5cclxuICAgICAgICB7eyBkYXRhW3Jvdy5rZXldWydfdG90YWwnXSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgPC90cj5cclxuICA8L3Rib2R5PlxyXG4gIDx0Zm9vdD5cclxuICAgIDwhLS0gZm9vdGVyIC0tPlxyXG4gICAgPHRyIGNsYXNzPVwibWF0LWZvb3Rlci1yb3dcIj5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWZvb3Rlci1jZWxsXCI+e3tzZXJpZXNUb3RhbExhYmVsfX08L3RkPlxyXG4gICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgeCA9IGluZGV4XCIgY2xhc3M9XCJtYXQtZm9vdGVyLWNlbGwgZmlndXJlXCJcclxuICAgICAgICAgIChtb3VzZWVudGVyKT1cIl9tb3ZlKHggKyAxLCAtMilcIlxyXG4gICAgICAgICAgW2NsYXNzLm5lZ2F0aXZlLWZpZ3VyZV09XCJ0b3RhbHNbY29sdW1uLmtleV0uc3RhcnRzV2l0aCgnLScpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvdGFsc1tjb2x1bW4ua2V5XSAhPT0gdW5kZWZpbmVkXCI+XHJcbiAgICAgICAgICB7eyB0b3RhbHNbY29sdW1uLmtleV0gfX1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRoIGNsYXNzPVwibWF0LWZvb3Rlci1jZWxsIGZpZ3VyZVwiPnt7IHRvdGFsc1snX2dyYW5kJ10gfX08L3RoPlxyXG4gICAgPC90cj5cclxuICA8L3Rmb290PlxyXG48L3RhYmxlPlxyXG48bmctdGVtcGxhdGUgI3plcm8+MDwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
493
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL21hdHJpeC90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvbWF0cml4L3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUEwQixNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFlLFdBQVcsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBS25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7QUFNeEQsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFLFVBQVUsR0FBRyxNQUFNLENBQUM7QUFFL0MsMkJBQTJCO0FBTzNCLE1BQU0sT0FBTyxtQkFBbUI7SUFtRTlCLFlBQ1UsR0FBa0IsRUFDbEIsUUFBcUIsRUFDckIsUUFBd0IsRUFDeEIsVUFBNEIsRUFDNUIsR0FBc0I7UUFKdEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNs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LElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUNBQWlDLENBQUM7WUFDekUsSUFBSSxDQUFDLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZJLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxD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QUNULGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNTLEtBQUs7c0JBQW5CLEtBQUs7dUJBQUMsTUFBTTtnQkFDRyxNQUFNO3NCQUFyQixLQUFLO3VCQUFDLE9BQU87Z0JBQ0csT0FBTztzQkFBdkIsS0FBSzt1QkFBQyxRQUFRO2dCQUVmLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxTQUFTO2dCQUdoQixPQUFPO3NCQUROLEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFTyxHQUFHO3NCQUFmLEtBQUs7Z0JBMEJHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0ssV0FBVztzQkFEckIsS0FBSztnQkFJc0IsU0FBUztzQkFBcEMsTUFBTTt1QkFBQyxTQUFTO2dCQUNFLGFBQWE7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ybWF0Q3VycmVuY3ksIGZvcm1hdFBlcmNlbnQsIGZvcm1hdE51bWJlciwgZ2V0Q3VycmVuY3lTeW1ib2wgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgV29ya2Jvb2ssIFdvcmtzaGVldCwgUm93LCBDb2x1bW4gfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZXhjZWwtZXhwb3J0JztcclxuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBpc0FycmF5LCBpc0Z1bmN0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSwgZXJyUmVzb3VyY2UsIFNlcmllcyB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBeGVzTWFwLCBBeGlzVmFsdWUsIEN1YmUsIEN1YmVBeGlzLCBDdWJlSW5kZXggfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IG1hdHJpeEFuaW1hdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFNjb3BlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQgfSBmcm9tICcuLi9kZWNsYXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBBeGlzUGxhY2UsIEF4aXNUeXBlIH0gZnJvbSAnLi4vZGVjbGFyYXRpb25zJztcclxuXHJcbmNvbnN0IExPQURJTkdfREVMQVkgPSAyMDAsIFNVTV9QUkVGSVggPSAnX3N1bSc7XHJcblxyXG4vKiogY3ViZSBtYXRyaXggY29tcG9uZW50Ki9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY3ViZS1tYXRyaXgnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbbWF0cml4QW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZU1hdHJpeENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgcmVhZG9ubHkgUFJFQ0lTSU9OID0gdGhpcy5fc2VydmljZS5kaWdpdHNJbmZvO1xyXG4gIHJlYWRvbmx5IExBTkdVQUdFID0gdGhpcy5fc2Vzc2lvbi5sYW5ndWFnZTtcclxuICBDVVJSRU5DWTogc3RyaW5nO1xyXG4gIFNZTUJPTDogc3RyaW5nO1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGVFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUYWJsZUVsZW1lbnQ+O1xyXG4gIEBJbnB1dCgpIHNlcmllc1RvdGFsTGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSB4QXhpc1RvdGFsTGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoJ2N1YmUnKSBfY3ViZT86IHN0cmluZztcclxuICBASW5wdXQoJ3hBeGlzJykgX3hBeGlzITogc3RyaW5nO1xyXG4gIEBJbnB1dCgnc2VyaWVzJykgX3NlcmllcyE6IHN0cmluZztcclxuICBASW5wdXQoJ2luZGljZXMnKVxyXG4gIF9pbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBpbmRleEF0OiBBeGlzVHlwZSA9ICdTZXJpZXMnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcGxhY2VBdDogQXhpc1BsYWNlID0gJ0xlYWRpbmcnO1xyXG4gIEBJbnB1dCgpIHNjb3BlOiBTY29wZVR5cGU7XHJcbiAgcHJpdmF0ZSBfc3VtOiBTdW1TZXR0aW5nc1tdO1xyXG4gIEBJbnB1dCgpIHNldCBzdW0odmFsOiBTdW1TZXR0aW5ncyB8IFN1bVNldHRpbmdzW10pIHtcclxuICAgIGlmICh2YWwpIHRoaXMuX3N1bSA9IChpc0FycmF5KHZhbCkgPyB2YWwgOiBbdmFsXSkuXHJcbiAgICAgIG1hcChzdW0gPT4ge1xyXG4gICAgICAgIGxldCB2YWx1ZTtcclxuICAgICAgICBpZiAoc3VtLnZhbHVlKVxyXG4gICAgICAgICAgdmFsdWUgPSBzdW0udmFsdWUudG9TdHJpbmcoKTtcclxuICAgICAgICBlbHNlIGlmIChzdW0uY2FsY3VsYXRlKVxyXG4gICAgICAgICAgc3dpdGNoIChzdW0uY2FsY3VsYXRlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ01vbnRoJzpcclxuICAgICAgICAgICAgICB2YWx1ZSA9ICdNJyArICgnMCcgKyAobmV3IERhdGUoKS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKSkuc2xpY2UoLTIpO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdZZWFyJzpcclxuICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdRdWFydGVyJzpcclxuICAgICAgICAgICAgICB2YWx1ZSA9IE1hdGguY2VpbCgobmV3IERhdGUoKS5nZXRNb250aCgpICsgMSkgLyAzKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdTdW0nOlxyXG4gICAgICAgICAgICAgIHZhbHVlID0gJ34nO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5zdW0sXHJcbiAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKSBmaWx0ZXJzOiBBeGVzTWFwO1xyXG4gIHByaXZhdGUgX2ludGVyYWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuO1xyXG4gIHB1YmxpYyBnZXQgaW50ZXJhY3RpdmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faW50ZXJhY3RpdmU7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBpbnRlcmFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faW50ZXJhY3RpdmUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuICBAT3V0cHV0KCdleHBsb3JlJykgcmVhZG9ubHkgb25FeHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxBeGlzQ2xpY2tFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICByb3dzOiBIZWFkZXJJbmZvW107XHJcbiAgY29sdW1uczogSGVhZGVySW5mb1tdO1xyXG4gIGluZGljZXM6IEN1YmVJbmRleFtdID0gW107XHJcbiAgZGF0YTogeyBbc2VyaWVzOiBzdHJpbmddOiB7IFt4QXhpczogc3RyaW5nXTogc3RyaW5nOyB9OyB9O1xyXG4gIHRvdGFsczogeyBbeEF4aXM6IHN0cmluZ106IG51bWJlciB9O1xyXG4gIGN1YmU6IEN1YmU7XHJcbiAgeEF4aXM6IEN1YmVBeGlzO1xyXG4gIHNlcmllczogQ3ViZUF4aXM7XHJcbiAgcHJpdmF0ZSBfZGF0YTogRGF0YU1hcDtcclxuICBwcml2YXRlIF9wcmVwYXJlOiBQcm9taXNlPGFueT47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kczogRGF0YXNvdXJjZVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydfY3ViZSddKSB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLl9jdWJlKTtcclxuICAgICAgdGhpcy5DVVJSRU5DWSA9IHRoaXMuY3ViZS5jdXJyZW5jeUNvZGUgLyp8fCB0aGlzLl9zZXJ2aWNlLmN1cnJlbmN5Q29kZSovO1xyXG4gICAgICB0aGlzLlNZTUJPTCA9IGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuQ1VSUkVOQ1ksICduYXJyb3cnKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5jdWJlKSB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgICAgdGhpcy5DVVJSRU5DWSA9IHRoaXMuY3ViZS5jdXJyZW5jeUNvZGUgLyp8fCB0aGlzLl9zZXJ2aWNlLmN1cnJlbmN5Q29kZSovO1xyXG4gICAgICB0aGlzLlNZTUJPTCA9IGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuQ1VSUkVOQ1ksICduYXJyb3cnKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydfaW5kaWNlcyddICYmIHRoaXMuX2luZGljZXMpXHJcbiAgICAgIHRoaXMuaW5kaWNlcyA9IHRoaXMuY3ViZS5pbmRpY2VzLmZpbHRlcihpID0+IGlzQXJyYXkodGhpcy5faW5kaWNlcykgPyB0aGlzLl9pbmRpY2VzLmluZGV4T2YoaS5uYW1lKSA+IC0xIDogdGhpcy5faW5kaWNlcyA9PT0gaS5uYW1lKTtcclxuICAgIGlmIChjaGFuZ2VzWydfeEF4aXMnXSB8fCBjaGFuZ2VzWydfc2VyaWVzJ10pIHtcclxuICAgICAgdGhpcy54QXhpcyA9IHRoaXMuY3ViZS5heGVzLmZpbmQoYSA9PiBhLm5hbWUgPT09IHRoaXMuX3hBeGlzKTtcclxuICAgICAgdGhpcy5zZXJpZXMgPSB0aGlzLmN1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSB0aGlzLl9zZXJpZXMpO1xyXG4gICAgICB0aGlzLmRhdGEgPSBudWxsO1xyXG4gICAgICB0aGlzLl9wcmVwYXJlID0gZm9ya0pvaW4odGhpcy5fZHMuYWxsKHRoaXMuc2VyaWVzLmRhdGFUeXBlKS5waXBlKHRhcChyID0+XHJcbiAgICAgICAgdGhpcy5yb3dzID0gclxyXG4gICAgICApKSxcclxuICAgICAgICB0aGlzLl9kcy5hbGwodGhpcy54QXhpcy5kYXRhVHlwZSkucGlwZSh0YXAoYyA9PlxyXG4gICAgICAgICAgdGhpcy5jb2x1bW5zID0gY1xyXG4gICAgICAgICkpKS50b1Byb21pc2UoKS50aGVuKFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9pbmRpY2VzICYmIHRoaXMuX2FkZGluZGljZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5fc3VtICYmIHRoaXMuX2FkZHN1bWhlYWRlcnMoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGNoYW5nZXNbJ2ZpbHRlcnMnXSlcclxuICAgICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FkZGluZGljZXMoKSB7XHJcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5pbmRleEF0ID09PSAnWEF4aXMnID8gdGhpcy5jb2x1bW5zIDogdGhpcy5yb3dzO1xyXG4gICAgdGhpcy5pbmRpY2VzLmZvckVhY2goKHgsIGkpID0+IHtcclxuICAgICAgY29uc3QgaGVhZGVyID0ge1xyXG4gICAgICAgIGtleTogeC5uYW1lLFxyXG4gICAgICAgIHZhbHVlOiB4LnRpdGxlLFxyXG4gICAgICAgIGluZGV4OiB4LFxyXG4gICAgICAgIGFjY3VtdWxhdGU6IHguYWNjdW11bGF0ZVxyXG4gICAgICB9IGFzIEhlYWRlckluZm87XHJcbiAgICAgIGlmICh0aGlzLnBsYWNlQXQgPT09ICdUcmFpbGluZycpXHJcbiAgICAgICAgY29sbGVjdGlvbi5wdXNoKGhlYWRlcik7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBjb2xsZWN0aW9uLnNwbGljZShpLCAwLCBoZWFkZXIpO1xyXG4gICAgfSlcclxuICB9XHJcbiAgcHJpdmF0ZSBfYWRkc3VtaGVhZGVycygpIHtcclxuICAgIHRoaXMuX3N1bS5mb3JFYWNoKChzLCBpKSA9PiB7XHJcbiAgICAgIGxldCB7IHZhbHVlLCBheGlzIH0gPSBzO1xyXG4gICAgICBjb25zdCBoZWFkZXIgPSB7XHJcbiAgICAgICAga2V5OiBTVU1fUFJFRklYICsgaSxcclxuICAgICAgICB2YWx1ZTogcy50aXRsZSxcclxuICAgICAgICBhY2N1bXVsYXRlOiAhaXNGdW5jdGlvbihzLmNhbGN1bGF0ZSkgJiYgcy5jYWxjdWxhdGUgIT09ICdTdW0nLFxyXG4gICAgICAgIGV4cGxvcmFibGU6ICFpc0Z1bmN0aW9uKHMuY2FsY3VsYXRlKSAmJiBzLmV4cGxvcmFibGUgIT09IGZhbHNlLFxyXG4gICAgICAgIHByZWNpc2lvbjogcy5wcmVjaXNpb24sXHJcbiAgICAgICAgc3VtOiBzXHJcbiAgICAgIH0gYXMgSGVhZGVySW5mbztcclxuICAgICAgbGV0IGogPSAwO1xyXG4gICAgICBpZiAoYXhpcyA9PT0gJ1hBeGlzJykge1xyXG4gICAgICAgIHdoaWxlIChqIDwgdGhpcy5jb2x1bW5zLmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuY29sdW1uc1tqXS5rZXkgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29sdW1ucy5zcGxpY2UoaiArIDEsIDAsIGhlYWRlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaisrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaiA9PT0gdGhpcy5jb2x1bW5zLmxlbmd0aClcclxuICAgICAgICAgIHRoaXMuY29sdW1ucy5wdXNoKGhlYWRlcik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgd2hpbGUgKGogPCB0aGlzLnJvd3MubGVuZ3RoKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5yb3dzW2pdLmtleSA9PT0gdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5yb3dzLnNwbGljZShqICsgMSwgMCwgaGVhZGVyKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBqKys7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChqID09PSB0aGlzLnJvd3MubGVuZ3RoKVxyXG4gICAgICAgICAgdGhpcy5yb3dzLnB1c2goaGVhZGVyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgY29uc3QgcHJvZ3Jlc3NUYXNrID0gc2V0VGltZW91dCgoKSA9PlxyXG4gICAgICB0aGlzLmxvYWRpbmdDaGFuZ2UubmV4dCh0aGlzLmxvYWRpbmcgPSB0cnVlKVxyXG4gICAgICAsIExPQURJTkdfREVMQVkpO1xyXG4gICAgdGhpcy5fcHJlcGFyZS50aGVuKCgpID0+XHJcbiAgICAgIHRoaXMuX3NlcnZpY2Uuc2VyaWVzKHRoaXMuY3ViZS5uYW1lLCB0aGlzLl94QXhpcywge1xyXG4gICAgICAgIHNlcmllczogdGhpcy5fc2VyaWVzLFxyXG4gICAgICAgIGluZGljZXM6IHRoaXMuX2luZGljZXMsXHJcbiAgICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzLFxyXG4gICAgICAgIGludmVyc2VJbmRpY2VzOiB0aGlzLmluZGV4QXQgPT09ICdYQXhpcycsXHJcbiAgICAgICAgc2NvcGU6IHRoaXMuc2NvcGVcclxuICAgICAgfSkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9zZXJpYWxpemUocik7XHJcbiAgICAgICAgdGhpcy5fY2xvbmUoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5fc3VtICYmIHRoaXMuX2NhbGN1bGF0ZXN1bShkYXRhKTtcclxuICAgICAgICB0aGlzLl90b3RhbHMoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5fc3RyaW5naWZ5KGRhdGEpO1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEgYXMgYW55O1xyXG4gICAgICAgIGNsZWFyVGltZW91dChwcm9ncmVzc1Rhc2spO1xyXG4gICAgICAgIHRoaXMubG9hZGluZ0NoYW5nZS5uZXh0KHRoaXMubG9hZGluZyA9IGZhbHNlKTtcclxuICAgICAgfSxcclxuICAgICAgICAoZTogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKGVyclJlc291cmNlKGUpKTtcclxuICAgICAgICAgIGNsZWFyVGltZW91dChwcm9ncmVzc1Rhc2spO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLm5leHQodGhpcy5sb2FkaW5nID0gZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nQ2hhbmdlLmVycm9yKGUpO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZXJpYWxpemUoc2VyaWVzOiBTZXJpZXNbXSkge1xyXG4gICAgY29uc3QgZCA9IHt9O1xyXG4gICAgc2VyaWVzLmZvckVhY2gocyA9PiB7XHJcbiAgICAgIGlmIChzLmluZGV4KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5kZXhBdCA9PT0gJ1hBeGlzJylcclxuICAgICAgICAgIHMucG9pbnRzLmZvckVhY2gocCA9PiB7XHJcbiAgICAgICAgICAgIGxldCByb3cgPSBkW3AueF07XHJcbiAgICAgICAgICAgIGlmICghcm93KVxyXG4gICAgICAgICAgICAgIHJvdyA9IGRbcC54XSA9IHt9O1xyXG4gICAgICAgICAgICByb3dbcy5pbmRleF0gPSBwLnk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHJvdyA9IGRbcy5pbmRleF0gPSB7fTtcclxuICAgICAgICAgIHMucG9pbnRzLmZvckVhY2gocCA9PiByb3dbcC54XSA9IHAueSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zdCByb3cgPSBkW3MubmFtZV0gPSB7fTtcclxuICAgICAgICBzLnBvaW50cy5mb3JFYWNoKHAgPT4gcm93W3AueF0gPSBwLnkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2xvbmUoZGF0YSkge1xyXG4gICAgdGhpcy5fZGF0YSA9IHt9O1xyXG4gICAgdGhpcy5yb3dzLmZvckVhY2gociA9PiB7XHJcbiAgICAgIGNvbnN0IGtleSA9IHIua2V5O1xyXG4gICAgICBpZiAoIWRhdGFba2V5XSkgZGF0YVtrZXldID0ge307XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fZGF0YVtrZXldID0ge30sIGRhdGFba2V5XSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdG90YWxzKGRhdGE6IERhdGFNYXApIHtcclxuICAgIGxldCBncmFuZCA9IDA7XHJcbiAgICB0aGlzLnJvd3MuZm9yRWFjaChyID0+IHtcclxuICAgICAgY29uc3QgZGF0YXJvdyA9IGRhdGFbci5rZXldO1xyXG4gICAgICBpZiAoZGF0YXJvdykge1xyXG4gICAgICAgIGxldCBjb2x1bW5Ub3RhbCA9IDA7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICBpZiAoYy5hY2N1bXVsYXRlID09PSBmYWxzZSB8fCBjLnN1bSAhPT0gdW5kZWZpbmVkKSByZXR1cm47XHJcbiAgICAgICAgICBsZXQgdmFsID0gZGF0YXJvd1tjLmtleV07XHJcbiAgICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIGNvbHVtblRvdGFsICs9IHRoaXMuaW5kaWNlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5pbmRleEF0ICE9PSAnWEF4aXMnIHx8XHJcbiAgICAgICAgICAgICAgYy5pbmRleCAhPT0gdW5kZWZpbmVkID8gdmFsIDogLXZhbDtcclxuICAgICAgICB9KTtcclxuICAgICAgICBkYXRhcm93WydfdG90YWwnXSA9IHRoaXMuX2Zvcm1hdChjb2x1bW5Ub3RhbCwgcik7XHJcbiAgICAgICAgaWYgKCFyLnN1bSlcclxuICAgICAgICAgIGdyYW5kICs9IHRoaXMuaW5kaWNlcy5sZW5ndGggPT09IDAgfHxcclxuICAgICAgICAgICAgdGhpcy5pbmRleEF0ID09PSAnWEF4aXMnIHx8XHJcbiAgICAgICAgICAgIHIuaW5kZXggIT09IHVuZGVmaW5lZCA/IGNvbHVtblRvdGFsIDogLWNvbHVtblRvdGFsO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICBkYXRhW3Iua2V5XSA9IHtcclxuICAgICAgICAgICdfdG90YWwnOiAnMCcgYXMgYW55XHJcbiAgICAgICAgfTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdG90YWxzID0gZGF0YVsnX3RvdGFsJ10gPSB0aGlzLnRvdGFscyA9IHt9O1xyXG4gICAgdG90YWxzWydfZ3JhbmQnXSA9IHRoaXMuX2Zvcm1hdChncmFuZCk7XHJcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgbGV0IHJvd1RvdGFsID0gMDtcclxuICAgICAgdGhpcy5yb3dzLmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICBpZiAocm93LmFjY3VtdWxhdGUgPT09IGZhbHNlIHx8IHJvdy5zdW0gIT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IGRhdGFbcm93LmtleV1bYy5rZXldO1xyXG4gICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIHJvd1RvdGFsICs9IHRoaXMuaW5kaWNlcy5sZW5ndGggPT09IDAgfHwgdGhpcy5pbmRleEF0ID09PSAnWEF4aXMnIHx8XHJcbiAgICAgICAgICAgIHJvdy5pbmRleCAhPT0gdW5kZWZpbmVkID8gdmFsIDogLXZhbDtcclxuICAgICAgfSk7XHJcbiAgICAgIHRvdGFsc1tjLmtleV0gPSB0aGlzLl9mb3JtYXQocm93VG90YWwsIGMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NhbGN1bGF0ZXN1bShkYXRhOiBEYXRhTWFwKSB7XHJcbiAgICB0aGlzLl9zdW0uZm9yRWFjaCgocywgaSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGF4aXMsIHZhbHVlLCBjYWxjdWxhdGUgfSA9IHM7XHJcbiAgICAgIGNvbnN0IG5hbWUgPSBTVU1fUFJFRklYICsgaTtcclxuICAgICAgaWYgKGF4aXMgPT09ICdYQXhpcycpIHtcclxuICAgICAgICB0aGlzLnJvd3MuZm9yRWFjaChyID0+IHtcclxuICAgICAgICAgIGlmIChyLmFjY3VtdWxhdGUgPT09IGZhbHNlKSByZXR1cm47XHJcbiAgICAgICAgICBjb25zdCBkYXRhcm93ID0gZGF0YVtyLmtleV07XHJcbiAgICAgICAgICBpZiAoIWRhdGFyb3cpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIGxldCBzdW0gPSAwO1xyXG4gICAgICAgICAgZm9yIChsZXQgY29sdW1uIG9mIHRoaXMuY29sdW1ucykge1xyXG4gICAgICAgICAgICBpZiAoY29sdW1uLmluZGV4KSBjb250aW51ZTtcclxuICAgICAgICAgICAgbGV0IGtleSA9IGNvbHVtbi5rZXk7XHJcbiAgICAgICAgICAgIGlmIChjb2x1bW4uc3VtKSBjb250aW51ZTtcclxuICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24oY2FsY3VsYXRlKSkge1xyXG4gICAgICAgICAgICAgIGxldCB2YWwgPSAoY2FsY3VsYXRlIGFzIENhbGN1bGF0ZUZuKShyLmtleSwgdGhpcy5fZGF0YSk7XHJcbiAgICAgICAgICAgICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHN1bSArPSB2YWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IHZhbCA9IGRhdGFyb3dba2V5XTtcclxuICAgICAgICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgICAgICBzdW0gKz0gdmFsO1xyXG4gICAgICAgICAgICAgIGlmIChrZXkgPT09IHZhbHVlKVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRhdGFyb3dbbmFtZV0gPSBzdW07XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgbGV0IGRhdGFyb3cgPSBkYXRhW25hbWVdID0ge307XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcclxuICAgICAgICAgIGxldCBzdW0gPSAwO1xyXG4gICAgICAgICAgZm9yIChsZXQgcm93IG9mIHRoaXMucm93cykge1xyXG4gICAgICAgICAgICBpZiAocm93LmluZGV4KSBjb250aW51ZTtcclxuICAgICAgICAgICAgbGV0IGtleSA9IHJvdy5rZXk7XHJcbiAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKGNhbGN1bGF0ZSkpIHtcclxuICAgICAgICAgICAgICBsZXQgdmFsID0gKGNhbGN1bGF0ZSBhcyBDYWxjdWxhdGVGbikocm93LmtleSwgdGhpcy5fZGF0YSk7XHJcbiAgICAgICAgICAgICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbClcclxuICAgICAgICAgICAgICAgIHN1bSArPSB2YWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgbGV0IGRhdGFyb3cgPSBkYXRhW2tleV07XHJcbiAgICAgICAgICAgICAgaWYgKCFkYXRhcm93KSBjb250aW51ZTtcclxuICAgICAgICAgICAgICBpZiAoY29sdW1uLnN1bSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IGRhdGFyb3dbY29sdW1uLmtleV07XHJcbiAgICAgICAgICAgICAgICBpZiAodmFsICE9IHVuZGVmaW5lZCkgc3VtICs9IHZhbDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdmFsID0gZGF0YXJvd1tjb2x1bW4ua2V5XTtcclxuICAgICAgICAgICAgICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgICAgICAgc3VtICs9IHZhbDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gdmFsdWUpXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGF0YXJvd1tjb2x1bW4ua2V5XSA9IHN1bTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3N0cmluZ2lmeShkYXRhOiBEYXRhTWFwKSB7XHJcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgdGhpcy5yb3dzLmZvckVhY2gociA9PiB7XHJcbiAgICAgICAgY29uc3QgeEF4aXMgPSByLmtleSwgc2VyaWVzID0gYy5rZXk7XHJcbiAgICAgICAgaWYgKGMuc3VtKSBkYXRhW3hBeGlzXVtzZXJpZXNdID0gdGhpcy5fZm9ybWF0KGRhdGFbeEF4aXNdW3Nlcmllc10sIGMuc3VtKTtcclxuICAgICAgICBlbHNlIGlmIChyLnN1bSkgZGF0YVt4QXhpc11bc2VyaWVzXSA9IHRoaXMuX2Zvcm1hdChkYXRhW3hBeGlzXVtzZXJpZXNdLCByLnN1bSk7XHJcbiAgICAgICAgZWxzZSBkYXRhW3hBeGlzXVtzZXJpZXNdID1cclxuICAgICAgICAgIGZvcm1hdE51bWJlcihkYXRhW3hBeGlzXVtzZXJpZXNdIHx8IDAsIHRoaXMuTEFOR1VBR0UsIHRoaXMuUFJFQ0lTSU9OKSBhcyBhbnk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Zvcm1hdCh2YWwsIG9wdGlvbnM/OiB7IGZvcm1hdD86IEZvcm1hdFR5cGUsIHByZWNpc2lvbj86IHN0cmluZyB9KTogYW55IHtcclxuICAgIGlmICh2YWwgPT09IDApIHJldHVybiAnMCc7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdQZXJjZW50JylcclxuICAgICAgICByZXR1cm4gZm9ybWF0UGVyY2VudCh2YWwsIHRoaXMuTEFOR1VBR0UsIG9wdGlvbnMucHJlY2lzaW9uIHx8IHRoaXMuUFJFQ0lTSU9OKTtcclxuICAgICAgZWxzZSBpZiAob3B0aW9ucy5mb3JtYXQgPT09ICdDdXJyZW5jeScpXHJcbiAgICAgICAgcmV0dXJuIGZvcm1hdEN1cnJlbmN5KHZhbCwgdGhpcy5MQU5HVUFHRSwgdGhpcy5TWU1CT0wsIHRoaXMuQ1VSUkVOQ1ksIG9wdGlvbnMucHJlY2lzaW9uIHx8IHRoaXMuUFJFQ0lTSU9OKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLkNVUlJFTkNZKVxyXG4gICAgICByZXR1cm4gZm9ybWF0Q3VycmVuY3kodmFsLCB0aGlzLkxBTkdVQUdFLCB0aGlzLlNZTUJPTCwgdGhpcy5DVVJSRU5DWSwgdGhpcy5QUkVDSVNJT04pO1xyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKHZhbCwgdGhpcy5MQU5HVUFHRSwgdGhpcy5QUkVDSVNJT04pO1xyXG4gIH1cclxuICBleHBsb3JlKGNvbHVtbjogSGVhZGVySW5mbywgcm93OiBIZWFkZXJJbmZvKSB7XHJcbiAgICBpZiAoIXRoaXMuaW50ZXJhY3RpdmUgfHwgY29sdW1uLmV4cGxvcmFibGUgPT09IGZhbHNlIHx8IHJvdy5leHBsb3JhYmxlID09PSBmYWxzZSkgcmV0dXJuO1xyXG4gICAgbGV0IHg6IEF4aXNWYWx1ZSwgc2VyaWVzOiBBeGlzVmFsdWUsIGluZGV4O1xyXG4gICAgY29uc3QgYXhlcyA9IHsgLi4udGhpcy5maWx0ZXJzIH0gYXMgQXhlc01hcDtcclxuICAgIGlmICghY29sdW1uLnN1bSlcclxuICAgICAgeCA9IGNvbHVtbi5rZXk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IHsgdmFsdWUsIGNhbGN1bGF0ZSB9ID0gY29sdW1uLnN1bTtcclxuICAgICAgaWYgKGlzRnVuY3Rpb24oY2FsY3VsYXRlKSkgcmV0dXJuO1xyXG4gICAgICB4ID0gW10gYXMgc3RyaW5nW107XHJcbiAgICAgIGZvciAobGV0IGNvbHVtbiBvZiB0aGlzLmNvbHVtbnMpIHtcclxuICAgICAgICBpZiAoY29sdW1uLnN1bSlcclxuICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgIGxldCBrZXkgPSBjb2x1bW4ua2V5O1xyXG4gICAgICAgIHgucHVzaChrZXkpO1xyXG4gICAgICAgIGlmIChrZXkgPT09IHZhbHVlKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGF4ZXNbdGhpcy54QXhpcy5uYW1lXSA9IHg7XHJcbiAgICBpZiAocm93LmluZGV4KVxyXG4gICAgICBpbmRleCA9IHJvdy5pbmRleC5uYW1lO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChyb3cuc3VtKSB7XHJcbiAgICAgICAgbGV0IHsgdmFsdWUsIGNhbGN1bGF0ZSB9ID0gcm93LnN1bTtcclxuICAgICAgICBpZiAoaXNGdW5jdGlvbihjYWxjdWxhdGUpKSByZXR1cm47XHJcbiAgICAgICAgc2VyaWVzID0gW10gYXMgc3RyaW5nW107XHJcbiAgICAgICAgZm9yIChsZXQgcm93IG9mIHRoaXMucm93cykge1xyXG4gICAgICAgICAgaWYgKHJvdy5zdW0pXHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgbGV0IGtleSA9IHJvdy5rZXk7XHJcbiAgICAgICAgICBzZXJpZXMucHVzaChrZXkpO1xyXG4gICAgICAgICAgaWYgKGtleSA9PT0gdmFsdWUpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgc2VyaWVzID0gcm93LmtleTtcclxuICAgICAgYXhlc1t0aGlzLnNlcmllcy5uYW1lXSA9IHNlcmllcztcclxuICAgICAgaW5kZXggPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkV4cGxvcmUuZW1pdCh7IGF4ZXMsIGluZGV4IH0pO1xyXG4gIH1cclxuICBleHBvcnQoKSB7XHJcbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSB0aGlzLl9zZXJ2aWNlLm51bWJlckZvcm1hdCxcclxuICAgICAgY29sdW1ucyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiAhYy5zdW0pLFxyXG4gICAgICBjZWxscyA9IFtdIGFzIENlbGxbXSxcclxuICAgICAgcm93cyA9IFt7IGluZGV4OiAxLCBjZWxscyB9XTtcclxuICAgIGNvbHVtbnMuZm9yRWFjaCgoYywgaikgPT4gY2VsbHMucHVzaCh7XHJcbiAgICAgIGluZGV4OiBqICsgMixcclxuICAgICAgdmFsdWU6IGMudmFsdWUsIHN0eWxlOiB7IGJvbGQ6IHRydWUgfVxyXG4gICAgfSkpO1xyXG5cclxuICAgIHRoaXMucm93cy5maWx0ZXIociA9PiAhci5zdW0pLmZvckVhY2goKHIsIGkpID0+IHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuX2RhdGFbci5rZXldLFxyXG4gICAgICAgIGNlbGxzID0gW3sgaW5kZXg6IDEsIHZhbHVlOiByLnZhbHVlLCBzdHlsZTogeyBib2xkOiB0cnVlIH0gfV0gYXMgQ2VsbFtdO1xyXG4gICAgICBjb2x1bW5zLmZvckVhY2goKGMsIGopID0+IGNlbGxzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgIGluZGV4OiBqICsgMixcclxuICAgICAgICB2YWx1ZTogZGF0YSAmJiBkYXRhW2Mua2V5XSAhPT0gdW5kZWZpbmVkID8gZGF0YVtjLmtleV0gOiAwLFxyXG4gICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICBudW1iZXJGb3JtYXQsXHJcbiAgICAgICAgICBoQWxpZ246ICdyaWdodCcsXHJcbiAgICAgICAgfVxyXG4gICAgICB9IGFzIENlbGwpKTtcclxuICAgICAgcm93cy5wdXNoKHtcclxuICAgICAgICBpbmRleDogaSArIDIsXHJcbiAgICAgICAgY2VsbHNcclxuICAgICAgfSBhcyBSb3cpO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBib29rID0gbmV3IFdvcmtib29rKFxyXG4gICAgICB7XHJcbiAgICAgICAgd29ya3NoZWV0czogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBlbmFibGVSdGw6IHRoaXMuX3Nlc3Npb24uaW52ZXJzZSxcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnU2hlZXROJywgMSksXHJcbiAgICAgICAgICAgIGNvbHVtbnM6IGNvbHVtbnMubWFwKChfLCBpKSA9PiAoeyBpbmRleDogaSArIDEsIHdpZHRoOiAxNTAgfSBhcyBDb2x1bW4pKSxcclxuICAgICAgICAgICAgcm93cyxcclxuICAgICAgICAgIH0gYXMgV29ya3NoZWV0LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuICAgIHRoaXMuX3NlcnZpY2UubmFtZU9mKHRoaXMuZmlsdGVycywgdGhpcy5jdWJlLm5hbWUpLnN1YnNjcmliZShuID0+XHJcbiAgICAgIGJvb2suc2F2ZShgJHtuIHx8IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ01hdHJpeCcpfS54bHN4YCkpO1xyXG4gIH1cclxuICBfbW92ZSh4LCB5KSB7XHJcbiAgICBsZXQgcm93SW5kZXggPSAwO1xyXG4gICAgZm9yIChsZXQgYiA9IDA7IGIgPCB0aGlzLnRhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50LnRCb2RpZXMubGVuZ3RoOyBiKyspIHtcclxuICAgICAgbGV0IHRCb2R5ID0gdGhpcy50YWJsZUVsZW1lbnQubmF0aXZlRWxlbWVudC50Qm9kaWVzLml0ZW0oYik7XHJcbiAgICAgIGZvciAobGV0IHIgPSAwOyByIDwgdEJvZHkucm93cy5sZW5ndGg7IHIrKykge1xyXG4gICAgICAgIGxldCByb3cgPSB0Qm9keS5yb3dzLml0ZW0ocik7XHJcbiAgICAgICAgZm9yIChsZXQgYyA9IDA7IGMgPCByb3cuY2VsbHMubGVuZ3RoOyBjKyspIHtcclxuICAgICAgICAgIGxldCBjZWxsID0gcm93LmNlbGxzLml0ZW0oYyk7XHJcbiAgICAgICAgICBpZiAoYyA9PT0geClcclxuICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3QuYWRkKCdjZWxsLXgnKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3QucmVtb3ZlKCdjZWxsLXgnKTtcclxuICAgICAgICAgIGlmIChyb3dJbmRleCA9PT0geSlcclxuICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3QuYWRkKCdjZWxsLXknKTtcclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgY2VsbC5jbGFzc0xpc3QucmVtb3ZlKCdjZWxsLXknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcm93SW5kZXgrKztcclxuICAgICAgfVxyXG4gICAgICBsZXQgdEZvb3QgPSB0aGlzLnRhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50LnRGb290LCByb3cgPSB0Rm9vdC5yb3dzWzBdO1xyXG4gICAgICBmb3IgKGxldCBjID0gMDsgYyA8IHJvdy5jZWxscy5sZW5ndGg7IGMrKykge1xyXG4gICAgICAgIGxldCBjZWxsID0gcm93LmNlbGxzLml0ZW0oYyk7XHJcbiAgICAgICAgaWYgKGMgPT09IHgpXHJcbiAgICAgICAgICBjZWxsLmNsYXNzTGlzdC5hZGQoJ2NlbGwteCcpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIGNlbGwuY2xhc3NMaXN0LnJlbW92ZSgnY2VsbC14Jyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxudHlwZSBEYXRhTWFwID0geyBbc2VyaWVzOiBzdHJpbmddOiB7IFt4QXhpczogc3RyaW5nXTogbnVtYmVyOyB9OyB9O1xyXG5cclxuZXhwb3J0IHR5cGUgU3VtU2V0dGluZ3MgPSB7XHJcbiAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgYXhpczogQXhpc1R5cGU7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBmb3JtYXQ/OiBGb3JtYXRUeXBlO1xyXG4gIHByZWNpc2lvbj86IHN0cmluZztcclxuICBleHBsb3JhYmxlPzogYm9vbGVhbjtcclxuICBwbGFjZT86IEF4aXNQbGFjZTtcclxuICBjYWxjdWxhdGU/OiBDYWxjdWxhdGVUeXBlO1xyXG59XHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgRm9ybWF0VHlwZSA9ICdQZXJjZW50JyB8ICdDdXJyZW5jeScgfCAnTnVtYmVyJztcclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBDYWxjdWxhdGVUeXBlID0gJ1F1YXJ0ZXInIHwgJ1llYXInIHwgJ01vbnRoJyB8ICdTdW0nIHwgQ2FsY3VsYXRlRm47XHJcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBDYWxjdWxhdGVGbiB7XHJcbiAgKHZhbHVlOiBzdHJpbmcsIGRhdGE6IHsgW3Nlcmllczogc3RyaW5nXTogeyBbeEF4aXM6IHN0cmluZ106IG51bWJlcjsgfTsgfSk6IG51bWJlcjtcclxufVxyXG5cclxudHlwZSBIZWFkZXJJbmZvID0ge1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgcHJlY2lzaW9uPzogc3RyaW5nO1xyXG4gIGV4cGxvcmFibGU/OiBib29sZWFuO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIHN1bT86IFN1bVNldHRpbmdzO1xyXG4gIGluZGV4PzogQ3ViZUluZGV4O1xyXG59O1xyXG5pbnRlcmZhY2UgQ2VsbCB7IH1cclxuIiwiPHRhYmxlICN0YWJsZSBjbGFzcz1cIm1hdC10YWJsZSBjdWJlLXRhYmxlXCIgKG1vdXNlbGVhdmUpPVwiX21vdmUoLTEsIC0xKVwiICpuZ0lmPVwiZGF0YVwiPlxyXG4gIDx0aGVhZD5cclxuICAgIDwhLS0gaGVhZGVycyAtLT5cclxuICAgIDx0ciBjbGFzcz1cIm1hdC1oZWFkZXItcm93XCI+XHJcbiAgICAgIDx0aD48L3RoPlxyXG4gICAgICA8dGggKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgeCA9IGluZGV4XCJcclxuICAgICAgICAgIChtb3VzZWVudGVyKT1cIl9tb3ZlKHggKyAxLCAtMilcIiBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPlxyXG4gICAgICAgIHt7IGNvbHVtbi52YWx1ZSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGggY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIj57e3hBeGlzVG90YWxMYWJlbH19PC90aD5cclxuICAgIDwvdHI+XHJcbiAgPC90aGVhZD5cclxuICA8dGJvZHk+XHJcbiAgICA8IS0tIHJvd3MgLS0+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgeSA9IGluZGV4XCIgY2xhc3M9XCJtYXQtcm93XCJcclxuICAgICAgICBbY2xhc3MuY3ViZS1pbmRleF09XCJyb3cuaW5kZXhcIj5cclxuICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCIgKG1vdXNlZW50ZXIpPVwiX21vdmUoLTIsIHkgKVwiPnt7IHJvdy52YWx1ZSB9fTwvdGg+XHJcbiAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IGxldCB4ID0gaW5kZXhcIiBjbGFzcz1cIm1hdC1jZWxsIGZpZ3VyZVwiXHJcbiAgICAgICAgICAobW91c2VlbnRlcik9XCJfbW92ZSh4ICsgMSwgeSApXCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRhW3Jvdy5rZXldW2NvbHVtbi5rZXldICE9PSAnMCc7IGVsc2UgemVyb1wiIFxyXG4gICAgICAgICAgW2NsYXNzLmV4cGxvcmFibGVdPVwiaW50ZXJhY3RpdmUgJiYgY29sdW1uLmV4cGxvcmFibGUgIT09IGZhbHNlICYmIHJvdy5leHBsb3JhYmxlICE9PSBmYWxzZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZXhwbG9yZShjb2x1bW4sIHJvdylcIj5cclxuICAgICAgICAgIHt7IGRhdGFbcm93LmtleV1bY29sdW1uLmtleV0gfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0aCBjbGFzcz1cIm1hdC1jZWxsIGZpZ3VyZVwiIChtb3VzZWVudGVyKT1cIl9tb3ZlKC0xLCB5IClcIj5cclxuICAgICAgICB7eyBkYXRhW3Jvdy5rZXldWydfdG90YWwnXSB9fVxyXG4gICAgICA8L3RoPlxyXG4gICAgPC90cj5cclxuICA8L3Rib2R5PlxyXG4gIDx0Zm9vdD5cclxuICAgIDwhLS0gZm9vdGVyIC0tPlxyXG4gICAgPHRyIGNsYXNzPVwibWF0LWZvb3Rlci1yb3dcIj5cclxuICAgICAgPHRkIGNsYXNzPVwibWF0LWZvb3Rlci1jZWxsXCI+e3tzZXJpZXNUb3RhbExhYmVsfX08L3RkPlxyXG4gICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyBsZXQgeCA9IGluZGV4XCIgY2xhc3M9XCJtYXQtZm9vdGVyLWNlbGwgZmlndXJlXCJcclxuICAgICAgICAgIChtb3VzZWVudGVyKT1cIl9tb3ZlKHggKyAxLCAtMilcIlxyXG4gICAgICAgICAgW2NsYXNzLm5lZ2F0aXZlLWZpZ3VyZV09XCJ0b3RhbHNbY29sdW1uLmtleV0uc3RhcnRzV2l0aCgnLScpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvdGFsc1tjb2x1bW4ua2V5XSAhPT0gdW5kZWZpbmVkXCI+XHJcbiAgICAgICAgICB7eyB0b3RhbHNbY29sdW1uLmtleV0gfX1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRoIGNsYXNzPVwibWF0LWZvb3Rlci1jZWxsIGZpZ3VyZVwiPnt7IHRvdGFsc1snX2dyYW5kJ10gfX08L3RoPlxyXG4gICAgPC90cj5cclxuICA8L3Rmb290PlxyXG48L3RhYmxlPlxyXG48bmctdGVtcGxhdGUgI3plcm8+MDwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
@@ -129,9 +129,9 @@ export class CubeParallelComponent {
|
|
129
129
|
this._loading.complete();
|
130
130
|
}
|
131
131
|
}
|
132
|
-
CubeParallelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.
|
133
|
-
CubeParallelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.
|
132
|
+
CubeParallelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CubeParallelComponent, deps: [{ token: i1.PromptService }, { token: i2.CubeService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Component });
|
133
|
+
CubeParallelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CubeParallelComponent, selector: "bizdoc-cube-parallel", inputs: { filters: "filters", xAxis: "xAxis", series: "series", indices: "indices", cube: "cube", size: "size", chartType: "chartType", scope: "scope", palettes: "palettes" }, outputs: { onExplore: "explore" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"items.length\" class=\"row\">\r\n <div *ngFor=\"let s of items\" class=\"element\">\r\n <ejs-sparkline [width]='width' height='100px'\r\n [type]='s.chartType'\r\n [id]=\"s.data.name\"\r\n [dataSource]=\"s.data.points\"\r\n xName=\"name\"\r\n yName=\"y\" [palette]=\"s.palette\"\r\n [format]=\"format\"\r\n valueType=\"Category\"\r\n [enableRtl]=\"enableRtl\"\r\n [border]=\"s.border\"\r\n [fill]=\"s.fill\"\r\n [theme]=\"theme\"\r\n [axisSettings]=\"axisSettings\"\r\n [markerSettings]=\"s.markerSettings\"\r\n (pointRegionMouseClick)=\"sprklineClick(s, $event)\"\r\n [tooltipSettings]=\"s.tooltipSettings\">\r\n </ejs-sparkline>\r\n <h4 class=\"mat-h4\">{{s.data.title}}</h4>\r\n </div>\r\n</div>\r\n", styles: [":host{padding:8px}.element{display:flex;flex-direction:column;align-items:center;flex:1 1 auto}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.SparklineComponent, selector: "ejs-sparkline", inputs: ["axisSettings", "border", "containerArea", "dataLabelSettings", "dataSource", "enablePersistence", "enableRtl", "endPointColor", "fill", "format", "height", "highPointColor", "lineWidth", "locale", "lowPointColor", "markerSettings", "negativePointColor", "opacity", "padding", "palette", "query", "rangeBandSettings", "rangePadding", "startPointColor", "theme", "tiePointColor", "tooltipSettings", "type", "useGroupingSeparator", "valueType", "width", "xName", "yName"], outputs: ["axisRendering", "dataLabelRendering", "load", "loaded", "markerRendering", "pointRegionMouseClick", "pointRegionMouseMove", "pointRendering", "resize", "seriesRendering", "sparklineMouseClick", "sparklineMouseMove", "tooltipInitialize"] }] });
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CubeParallelComponent, decorators: [{
|
135
135
|
type: Component,
|
136
136
|
args: [{ selector: 'bizdoc-cube-parallel', template: "<div *ngIf=\"items.length\" class=\"row\">\r\n <div *ngFor=\"let s of items\" class=\"element\">\r\n <ejs-sparkline [width]='width' height='100px'\r\n [type]='s.chartType'\r\n [id]=\"s.data.name\"\r\n [dataSource]=\"s.data.points\"\r\n xName=\"name\"\r\n yName=\"y\" [palette]=\"s.palette\"\r\n [format]=\"format\"\r\n valueType=\"Category\"\r\n [enableRtl]=\"enableRtl\"\r\n [border]=\"s.border\"\r\n [fill]=\"s.fill\"\r\n [theme]=\"theme\"\r\n [axisSettings]=\"axisSettings\"\r\n [markerSettings]=\"s.markerSettings\"\r\n (pointRegionMouseClick)=\"sprklineClick(s, $event)\"\r\n [tooltipSettings]=\"s.tooltipSettings\">\r\n </ejs-sparkline>\r\n <h4 class=\"mat-h4\">{{s.data.title}}</h4>\r\n </div>\r\n</div>\r\n", styles: [":host{padding:8px}.element{display:flex;flex-direction:column;align-items:center;flex:1 1 auto}\n"] }]
|
137
137
|
}], ctorParameters: function () { return [{ type: i1.PromptService }, { type: i2.CubeService }, { type: i3.SessionService }]; }, propDecorators: { filters: [{
|
@@ -156,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
156
156
|
}], palettes: [{
|
157
157
|
type: Input
|
158
158
|
}] } });
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL3BhcmFsbGVsL3BhcmFsbGVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9wYXJhbGxlbC9wYXJhbGxlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBZSxXQUFXLEVBQVUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7OztBQUU5QixNQUFNO0FBTU4sTUFBTSxPQUNFLHFCQUFxQjtJQTBDM0IsWUFDVSxHQUFrQixFQUNsQixRQUFxQixFQUNyQixRQUF3QjtRQUZ4QixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUEzQnpCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUN0RCxVQUFLLEdBQWdDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDcEYsY0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBUWhELFVBQUssR0FBVyxFQUFFLENBQUM7UUFFVixp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UUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBeGlzU2V0dGluZ3NNb2RlbCwgSVBvaW50UmVnaW9uRXZlbnRBcmdzLCBMaW5lU2V0dGluZ3NNb2RlbCwgU3BhcmtsaW5lVHlwZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFYRVNfQ09ERV9ESVZJREVSLCBDdWJlU2VydmljZSwgZXJyUmVzb3VyY2UsIFNlcmllcyB9IGZyb20gJy4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQXhlc01hcCwgQ3ViZSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4vaXRlbSc7XHJcbmltcG9ydCB7IFNjb3BlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbi8qKiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLXBhcmFsbGVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFyYWxsZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydwYXJhbGxlbC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEN1YmVQYXJhbGxlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVyczogQXhlc01hcDtcclxuICBASW5wdXQoKVxyXG4gIHhBeGlzITogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgQElucHV0KClcclxuICBzZXJpZXMhOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBASW5wdXQoKVxyXG4gIGluZGljZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBASW5wdXQoKVxyXG4gIGN1YmU6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHNpemU6IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIGNoYXJ0VHlwZT86IFNwYXJrbGluZVR5cGU7XHJcbiAgQElucHV0KClcclxuICBzY29wZT86IFNjb3BlVHlwZTtcclxuICBAT3V0cHV0KCdleHBsb3JlJylcclxuICByZWFkb25seSBvbkV4cGxvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPEV4cGxvcmVFdmVudD4oKTtcclxuICB0aGVtZTogJ01hdGVyaWFsJyB8ICdNYXRlcmlhbERhcmsnID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gIHByaXZhdGUgX3BhbGV0dGVzID0gdGhpcy5fc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gIHB1YmxpYyBnZXQgcGFsZXR0ZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFsZXR0ZXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBwYWxldHRlcyh2YWx1ZSkge1xyXG4gICAgdGhpcy5fcGFsZXR0ZXMgPSB2YWx1ZTtcclxuICB9XHJcbiAgaXRlbXM6IEl0ZW1bXSA9IFtdO1xyXG4gIGZvcm1hdDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IGF4aXNTZXR0aW5ncyA9IHtcclxuICAgIGxpbmVTZXR0aW5nczoge1xyXG4gICAgfSBhcyBMaW5lU2V0dGluZ3NNb2RlbCxcclxuICB9IGFzIEF4aXNTZXR0aW5nc01vZGVsO1xyXG4gIHdpZHRoOiBzdHJpbmcgPSAnMTUwcHgnO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfZGF0YTogU2VyaWVzW107XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICByZWFkb25seSBlbmFibGVSdGwgPSB0aGlzLl9zZXNzaW9uLmludmVyc2U7XHJcbiAgcHJpdmF0ZSBfcHJpbWFyeSA9IHRoaXMuX3Nlc3Npb24ucHJpbWVyeVBhbGV0dGU7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHtcclxuICAgIHRoaXMuX2xvYWRpbmcucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKG9rID0+IHRoaXMubG9hZGluZyA9IG9rKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIHx8IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIHRoaXMuZm9ybWF0ID0gKHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlID8gJ2MnIDogJ24nKSArIHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHM7XHJcbiAgICBpZiAoY2hhbmdlc1snZmlsdGVycyddKSB0aGlzLl9pbml0aWFsaXplKCk7XHJcbiAgICBlbHNlIGlmIChjaGFuZ2VzWydzaXplJ10gJiYgdGhpcy5pdGVtcy5sZW5ndGgpIHRoaXMud2lkdGggPSBNYXRoLnJvdW5kKHRoaXMuc2l6ZSAvIHRoaXMuaXRlbXMubGVuZ3RoKSArICdweCc7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICAgIHRoaXMuX3ByaW1hcnkgPSB0aGlzLl9zZXNzaW9uLnByaW1lcnlQYWxldHRlO1xyXG4gICAgICAgIHRoaXMuX3BhbGV0dGVzID0gdGhpcy5fc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gICAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luaXRpYWxpemUoKSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nLm5leHQodHJ1ZSk7XHJcbiAgICBjb25zdCBmaWx0ZXJzID0geyAuLi50aGlzLmZpbHRlcnMgfTtcclxuXHJcbiAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLl9jdWJlLm5hbWUsIHRoaXMueEF4aXMsIHtcclxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgaW5kaWNlczogdGhpcy5pbmRpY2VzLFxyXG4gICAgICBncm91cEluZGljZXM6IHRydWUsXHJcbiAgICAgIHNjb3BlOiB0aGlzLnNjb3BlXHJcbiAgICB9KS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIHRoaXMuX2RhdGEgPSByO1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgIGlmICh0aGlzLml0ZW1zLmxlbmd0aCkgdGhpcy53aWR0aCA9IE1hdGgubWF4KE1hdGgucm91bmQodGhpcy5zaXplIC8gdGhpcy5pdGVtcy5sZW5ndGgpLCAxNTApICsgJ3B4JztcclxuICAgICAgdGhpcy5fbG9hZGluZy5uZXh0KGZhbHNlKTtcclxuICAgIH0sIChlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5lcnJvcihlcnJSZXNvdXJjZShlKSk7XHJcbiAgICAgIHRoaXMuX2xvYWRpbmcubmV4dChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5pdGVtcyA9IFtdO1xyXG4gICAgY29uc3QgY29sb3JNYXAgPSB7fTtcclxuICAgIGxldCBjb2xvckluZGV4ID0gMDtcclxuXHJcbiAgICBsZXQgb3JpZ2luYWxYQXhpcyA9IHRoaXMuZmlsdGVyc1tpc0FycmF5KHRoaXMueEF4aXMpID8gdGhpcy54QXhpc1swXSA6IHRoaXMueEF4aXNdIGFzIHN0cmluZyB8IHN0cmluZ1tdLFxyXG4gICAgICBvcmlnaW5hbFNlcmllcyA9IHRoaXMuZmlsdGVyc1tpc0FycmF5KHRoaXMuc2VyaWVzKSA/IHRoaXMuc2VyaWVzWzBdIDogdGhpcy5zZXJpZXNdIGFzIHN0cmluZyB8IHN0cmluZ1tdO1xyXG5cclxuICAgIGlmICghaXNBcnJheShvcmlnaW5hbFhBeGlzKSlcclxuICAgICAgb3JpZ2luYWxYQXhpcyA9IFtvcmlnaW5hbFhBeGlzXTtcclxuICAgIGlmICghaXNBcnJheShvcmlnaW5hbFNlcmllcykpXHJcbiAgICAgIG9yaWdpbmFsU2VyaWVzID0gW29yaWdpbmFsU2VyaWVzXTtcclxuICAgIGxldCBtYXggPSAwO1xyXG4gICAgdGhpcy5fZGF0YS5mb3JFYWNoKHMgPT4ge1xyXG4gICAgICBpZiAocy5wb2ludHMubGVuZ3RoIDwgMilcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNvbnN0IHBhbGV0dGVzID0gW107XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcy5wb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcG9pbnQgPSBzLnBvaW50c1tpXSwgY29sb3IgPSBjb2xvck1hcFtwb2ludC54XTtcclxuICAgICAgICBpZiAoIWNvbG9yKSB7XHJcbiAgICAgICAgICBjb2xvciA9IGNvbG9yTWFwW3BvaW50LnhdID1cclxuICAgICAgICAgICAgcy5pbmRleFxyXG4gICAgICAgICAgICAgIHx8ICghdGhpcy5pbmRpY2VzICYmIG9yaWdpbmFsWEF4aXMuaW5kZXhPZihwb2ludC54KSA+IC0xXHJcbiAgICAgICAgICAgICAgICAmJiBvcmlnaW5hbFNlcmllcy5pbmRleE9mKHMubmFtZSkgPiAtMSlcclxuICAgICAgICAgICAgICA/IHRoaXMuX3ByaW1hcnlbY29sb3JJbmRleF0gOiB0aGlzLl9wYWxldHRlc1tjb2xvckluZGV4XTtcclxuICAgICAgICAgIGNvbG9ySW5kZXgrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFsZXR0ZXMucHVzaChjb2xvcik7XHJcbiAgICAgICAgaWYgKHBvaW50LnkgPiBtYXgpXHJcbiAgICAgICAgICBtYXggPSBwb2ludC55O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXRlbXMucHVzaChuZXcgSXRlbSh0aGlzLmNoYXJ0VHlwZSB8fCAnUGllJyxcclxuICAgICAgICBzLCBwYWxldHRlcywgcy5pbmRleCA/IHRoaXMuX3ByaW1hcnlbNl0gOlxyXG4gICAgICAgIHRoaXMuX3BhbGV0dGVzWzZdKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYXhpc1NldHRpbmdzLm1heFkgPSBtYXg7XHJcbiAgfVxyXG4gIHNwcmtsaW5lQ2xpY2soaXRlbTogSXRlbSwgZXZ0OiBJUG9pbnRSZWdpb25FdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IG5hbWUgPSBpdGVtLmRhdGEubmFtZSxcclxuICAgICAgeCA9IGl0ZW0uZGF0YS5wb2ludHNbZXZ0LnBvaW50SW5kZXhdLngsIGluZGV4ID0gaXRlbS5kYXRhLmluZGV4O1xyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICAgIGxldCB7IHhBeGlzLCBzZXJpZXMgfSA9IHRoaXM7XHJcbiAgICBpZiAoIWlzQXJyYXkoeEF4aXMpKSB4QXhpcyA9IFt4QXhpc107XHJcbiAgICBpZiAoIWlzQXJyYXkoc2VyaWVzKSkgeEF4aXMgPSBbc2VyaWVzXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICBheGVzW3Nlcmllc1tpXV0gPSBuYW1lLnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKVtpXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeEF4aXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgYXhlc1t4QXhpc1tpXV0gPSB4LnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKVtpXTtcclxuICAgIH1cclxuICAgIHRoaXMub25FeHBsb3JlLmVtaXQoe1xyXG4gICAgICBheGVzOiB7IC4uLnRoaXMuZmlsdGVycywgLi4uYXhlcyB9LFxyXG4gICAgICBpbmRleFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9sb2FkaW5nLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZUV2ZW50IHtcclxuICBheGVzOiBBeGVzTWFwO1xyXG4gIGluZGV4Pzogc3RyaW5nO1xyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJpdGVtcy5sZW5ndGhcIiBjbGFzcz1cInJvd1wiPlxyXG4gIDxkaXYgKm5nRm9yPVwibGV0IHMgb2YgaXRlbXNcIiBjbGFzcz1cImVsZW1lbnRcIj5cclxuICAgIDxlanMtc3BhcmtsaW5lIFt3aWR0aF09J3dpZHRoJyBoZWlnaHQ9JzEwMHB4J1xyXG4gICAgICAgICAgICAgICAgICAgW3R5cGVdPSdzLmNoYXJ0VHlwZSdcclxuICAgICAgICAgICAgICAgICAgIFtpZF09XCJzLmRhdGEubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJzLmRhdGEucG9pbnRzXCJcclxuICAgICAgICAgICAgICAgICAgIHhOYW1lPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICB5TmFtZT1cInlcIiBbcGFsZXR0ZV09XCJzLnBhbGV0dGVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgdmFsdWVUeXBlPVwiQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgW2VuYWJsZVJ0bF09XCJlbmFibGVSdGxcIlxyXG4gICAgICAgICAgICAgICAgICAgW2JvcmRlcl09XCJzLmJvcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICBbZmlsbF09XCJzLmZpbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInRoZW1lXCJcclxuICAgICAgICAgICAgICAgICAgIFtheGlzU2V0dGluZ3NdPVwiYXhpc1NldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgIFttYXJrZXJTZXR0aW5nc109XCJzLm1hcmtlclNldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgIChwb2ludFJlZ2lvbk1vdXNlQ2xpY2spPVwic3Bya2xpbmVDbGljayhzLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIFt0b29sdGlwU2V0dGluZ3NdPVwicy50b29sdGlwU2V0dGluZ3NcIj5cclxuICAgIDwvZWpzLXNwYXJrbGluZT5cclxuICAgIDxoNCBjbGFzcz1cIm1hdC1oNFwiPnt7cy5kYXRhLnRpdGxlfX08L2g0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYWxsZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL3BhcmFsbGVsL3BhcmFsbGVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9wYXJhbGxlbC9wYXJhbGxlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFHcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3hELE9BQU8sRUFBRSxpQkFBaUIsRUFBZSxXQUFXLEVBQVUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFL0MsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7OztBQUU5QixNQUFNO0FBTU4sTUFBTSxPQUNFLHFCQUFxQjtJQTBDM0IsWUFDVSxHQUFrQixFQUNsQixRQUFxQixFQUNyQixRQUF3QjtRQUZ4QixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUEzQnpCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUN0RCxVQUFLLEdBQWdDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDcEYsY0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBUWhELFVBQUssR0FBVyxFQUFFLENBQUM7UUFFVixp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UUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBeGlzU2V0dGluZ3NNb2RlbCwgSVBvaW50UmVnaW9uRXZlbnRBcmdzLCBMaW5lU2V0dGluZ3NNb2RlbCwgU3BhcmtsaW5lVHlwZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFYRVNfQ09ERV9ESVZJREVSLCBDdWJlU2VydmljZSwgZXJyUmVzb3VyY2UsIFNlcmllcyB9IGZyb20gJy4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQXhlc01hcCwgQ3ViZSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4vaXRlbSc7XHJcbmltcG9ydCB7IFNjb3BlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbi8qKiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLXBhcmFsbGVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFyYWxsZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydwYXJhbGxlbC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEN1YmVQYXJhbGxlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVyczogQXhlc01hcDtcclxuICBASW5wdXQoKVxyXG4gIHhBeGlzITogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgQElucHV0KClcclxuICBzZXJpZXMhOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBASW5wdXQoKVxyXG4gIGluZGljZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBASW5wdXQoKVxyXG4gIGN1YmU6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHNpemU6IG51bWJlcjtcclxuICBASW5wdXQoKVxyXG4gIGNoYXJ0VHlwZT86IFNwYXJrbGluZVR5cGU7XHJcbiAgQElucHV0KClcclxuICBzY29wZT86IFNjb3BlVHlwZTtcclxuICBAT3V0cHV0KCdleHBsb3JlJylcclxuICByZWFkb25seSBvbkV4cGxvcmUgPSBuZXcgRXZlbnRFbWl0dGVyPEV4cGxvcmVFdmVudD4oKTtcclxuICB0aGVtZTogJ01hdGVyaWFsJyB8ICdNYXRlcmlhbERhcmsnID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gIHByaXZhdGUgX3BhbGV0dGVzID0gdGhpcy5fc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gIHB1YmxpYyBnZXQgcGFsZXR0ZXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFsZXR0ZXM7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBwYWxldHRlcyh2YWx1ZSkge1xyXG4gICAgdGhpcy5fcGFsZXR0ZXMgPSB2YWx1ZTtcclxuICB9XHJcbiAgaXRlbXM6IEl0ZW1bXSA9IFtdO1xyXG4gIGZvcm1hdDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IGF4aXNTZXR0aW5ncyA9IHtcclxuICAgIGxpbmVTZXR0aW5nczoge1xyXG4gICAgfSBhcyBMaW5lU2V0dGluZ3NNb2RlbCxcclxuICB9IGFzIEF4aXNTZXR0aW5nc01vZGVsO1xyXG4gIHdpZHRoOiBzdHJpbmcgPSAnMTUwcHgnO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfZGF0YTogU2VyaWVzW107XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICByZWFkb25seSBlbmFibGVSdGwgPSB0aGlzLl9zZXNzaW9uLmludmVyc2U7XHJcbiAgcHJpdmF0ZSBfcHJpbWFyeSA9IHRoaXMuX3Nlc3Npb24ucHJpbWVyeVBhbGV0dGU7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHtcclxuICAgIHRoaXMuX2xvYWRpbmcucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKG9rID0+IHRoaXMubG9hZGluZyA9IG9rKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB0aGlzLmN1YmUpIHx8IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIHRoaXMuZm9ybWF0ID0gKHRoaXMuX2N1YmUuY3VycmVuY3lDb2RlID8gJ2MnIDogJ24nKSArIHRoaXMuX3NlcnZpY2UuZnJhY3Rpb25EaWdpdHM7XHJcbiAgICBpZiAoY2hhbmdlc1snZmlsdGVycyddKSB0aGlzLl9pbml0aWFsaXplKCk7XHJcbiAgICBlbHNlIGlmIChjaGFuZ2VzWydzaXplJ10gJiYgdGhpcy5pdGVtcy5sZW5ndGgpIHRoaXMud2lkdGggPSBNYXRoLnJvdW5kKHRoaXMuc2l6ZSAvIHRoaXMuaXRlbXMubGVuZ3RoKSArICdweCc7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICAgIHRoaXMuX3ByaW1hcnkgPSB0aGlzLl9zZXNzaW9uLnByaW1lcnlQYWxldHRlO1xyXG4gICAgICAgIHRoaXMuX3BhbGV0dGVzID0gdGhpcy5fc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gICAgICAgIHRoaXMuX2RyYXcoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luaXRpYWxpemUoKSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nLm5leHQodHJ1ZSk7XHJcbiAgICBjb25zdCBmaWx0ZXJzID0geyAuLi50aGlzLmZpbHRlcnMgfTtcclxuXHJcbiAgICB0aGlzLl9zZXJ2aWNlLnNlcmllcyh0aGlzLl9jdWJlLm5hbWUsIHRoaXMueEF4aXMsIHtcclxuICAgICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgaW5kaWNlczogdGhpcy5pbmRpY2VzLFxyXG4gICAgICBncm91cEluZGljZXM6IHRydWUsXHJcbiAgICAgIHNjb3BlOiB0aGlzLnNjb3BlXHJcbiAgICB9KS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIHRoaXMuX2RhdGEgPSByO1xyXG4gICAgICB0aGlzLl9kcmF3KCk7XHJcbiAgICAgIGlmICh0aGlzLml0ZW1zLmxlbmd0aCkgdGhpcy53aWR0aCA9IE1hdGgubWF4KE1hdGgucm91bmQodGhpcy5zaXplIC8gdGhpcy5pdGVtcy5sZW5ndGgpLCAxNTApICsgJ3B4JztcclxuICAgICAgdGhpcy5fbG9hZGluZy5uZXh0KGZhbHNlKTtcclxuICAgIH0sIChlOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5lcnJvcihlcnJSZXNvdXJjZShlKSk7XHJcbiAgICAgIHRoaXMuX2xvYWRpbmcubmV4dChmYWxzZSk7XHJcbiAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBwcml2YXRlIF9kcmF3KCkge1xyXG4gICAgdGhpcy5pdGVtcyA9IFtdO1xyXG4gICAgY29uc3QgY29sb3JNYXAgPSB7fTtcclxuICAgIGxldCBjb2xvckluZGV4ID0gMDtcclxuXHJcbiAgICBsZXQgb3JpZ2luYWxYQXhpcyA9IHRoaXMuZmlsdGVyc1tpc0FycmF5KHRoaXMueEF4aXMpID8gdGhpcy54QXhpc1swXSA6IHRoaXMueEF4aXNdIGFzIHN0cmluZyB8IHN0cmluZ1tdLFxyXG4gICAgICBvcmlnaW5hbFNlcmllcyA9IHRoaXMuZmlsdGVyc1tpc0FycmF5KHRoaXMuc2VyaWVzKSA/IHRoaXMuc2VyaWVzWzBdIDogdGhpcy5zZXJpZXNdIGFzIHN0cmluZyB8IHN0cmluZ1tdO1xyXG5cclxuICAgIGlmICghaXNBcnJheShvcmlnaW5hbFhBeGlzKSlcclxuICAgICAgb3JpZ2luYWxYQXhpcyA9IFtvcmlnaW5hbFhBeGlzXTtcclxuICAgIGlmICghaXNBcnJheShvcmlnaW5hbFNlcmllcykpXHJcbiAgICAgIG9yaWdpbmFsU2VyaWVzID0gW29yaWdpbmFsU2VyaWVzXTtcclxuICAgIGxldCBtYXggPSAwO1xyXG4gICAgdGhpcy5fZGF0YS5mb3JFYWNoKHMgPT4ge1xyXG4gICAgICBpZiAocy5wb2ludHMubGVuZ3RoIDwgMilcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNvbnN0IHBhbGV0dGVzID0gW107XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcy5wb2ludHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgcG9pbnQgPSBzLnBvaW50c1tpXSwgY29sb3IgPSBjb2xvck1hcFtwb2ludC54XTtcclxuICAgICAgICBpZiAoIWNvbG9yKSB7XHJcbiAgICAgICAgICBjb2xvciA9IGNvbG9yTWFwW3BvaW50LnhdID1cclxuICAgICAgICAgICAgcy5pbmRleFxyXG4gICAgICAgICAgICAgIHx8ICghdGhpcy5pbmRpY2VzICYmIG9yaWdpbmFsWEF4aXMuaW5kZXhPZihwb2ludC54KSA+IC0xXHJcbiAgICAgICAgICAgICAgICAmJiBvcmlnaW5hbFNlcmllcy5pbmRleE9mKHMubmFtZSkgPiAtMSlcclxuICAgICAgICAgICAgICA/IHRoaXMuX3ByaW1hcnlbY29sb3JJbmRleF0gOiB0aGlzLl9wYWxldHRlc1tjb2xvckluZGV4XTtcclxuICAgICAgICAgIGNvbG9ySW5kZXgrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgcGFsZXR0ZXMucHVzaChjb2xvcik7XHJcbiAgICAgICAgaWYgKHBvaW50LnkgPiBtYXgpXHJcbiAgICAgICAgICBtYXggPSBwb2ludC55O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuaXRlbXMucHVzaChuZXcgSXRlbSh0aGlzLmNoYXJ0VHlwZSB8fCAnUGllJyxcclxuICAgICAgICBzLCBwYWxldHRlcywgcy5pbmRleCA/IHRoaXMuX3ByaW1hcnlbNl0gOlxyXG4gICAgICAgIHRoaXMuX3BhbGV0dGVzWzZdKSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYXhpc1NldHRpbmdzLm1heFkgPSBtYXg7XHJcbiAgfVxyXG4gIHNwcmtsaW5lQ2xpY2soaXRlbTogSXRlbSwgZXZ0OiBJUG9pbnRSZWdpb25FdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IG5hbWUgPSBpdGVtLmRhdGEubmFtZSxcclxuICAgICAgeCA9IGl0ZW0uZGF0YS5wb2ludHNbZXZ0LnBvaW50SW5kZXhdLngsIGluZGV4ID0gaXRlbS5kYXRhLmluZGV4O1xyXG4gICAgY29uc3QgYXhlczogeyBbYXhpczogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICAgIGxldCB7IHhBeGlzLCBzZXJpZXMgfSA9IHRoaXM7XHJcbiAgICBpZiAoIWlzQXJyYXkoeEF4aXMpKSB4QXhpcyA9IFt4QXhpc107XHJcbiAgICBpZiAoIWlzQXJyYXkoc2VyaWVzKSkgeEF4aXMgPSBbc2VyaWVzXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VyaWVzLmxlbmd0aDsgaSsrKVxyXG4gICAgICBheGVzW3Nlcmllc1tpXV0gPSBuYW1lLnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKVtpXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgeEF4aXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgYXhlc1t4QXhpc1tpXV0gPSB4LnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKVtpXTtcclxuICAgIH1cclxuICAgIHRoaXMub25FeHBsb3JlLmVtaXQoe1xyXG4gICAgICBheGVzOiB7IC4uLnRoaXMuZmlsdGVycywgLi4uYXhlcyB9LFxyXG4gICAgICBpbmRleFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLl9sb2FkaW5nLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZUV2ZW50IHtcclxuICBheGVzOiBBeGVzTWFwO1xyXG4gIGluZGV4Pzogc3RyaW5nO1xyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJpdGVtcy5sZW5ndGhcIiBjbGFzcz1cInJvd1wiPlxyXG4gIDxkaXYgKm5nRm9yPVwibGV0IHMgb2YgaXRlbXNcIiBjbGFzcz1cImVsZW1lbnRcIj5cclxuICAgIDxlanMtc3BhcmtsaW5lIFt3aWR0aF09J3dpZHRoJyBoZWlnaHQ9JzEwMHB4J1xyXG4gICAgICAgICAgICAgICAgICAgW3R5cGVdPSdzLmNoYXJ0VHlwZSdcclxuICAgICAgICAgICAgICAgICAgIFtpZF09XCJzLmRhdGEubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGF0YVNvdXJjZV09XCJzLmRhdGEucG9pbnRzXCJcclxuICAgICAgICAgICAgICAgICAgIHhOYW1lPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICB5TmFtZT1cInlcIiBbcGFsZXR0ZV09XCJzLnBhbGV0dGVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgdmFsdWVUeXBlPVwiQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgW2VuYWJsZVJ0bF09XCJlbmFibGVSdGxcIlxyXG4gICAgICAgICAgICAgICAgICAgW2JvcmRlcl09XCJzLmJvcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICBbZmlsbF09XCJzLmZpbGxcIlxyXG4gICAgICAgICAgICAgICAgICAgW3RoZW1lXT1cInRoZW1lXCJcclxuICAgICAgICAgICAgICAgICAgIFtheGlzU2V0dGluZ3NdPVwiYXhpc1NldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgIFttYXJrZXJTZXR0aW5nc109XCJzLm1hcmtlclNldHRpbmdzXCJcclxuICAgICAgICAgICAgICAgICAgIChwb2ludFJlZ2lvbk1vdXNlQ2xpY2spPVwic3Bya2xpbmVDbGljayhzLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIFt0b29sdGlwU2V0dGluZ3NdPVwicy50b29sdGlwU2V0dGluZ3NcIj5cclxuICAgIDwvZWpzLXNwYXJrbGluZT5cclxuICAgIDxoNCBjbGFzcz1cIm1hdC1oNFwiPnt7cy5kYXRhLnRpdGxlfX08L2g0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|