@worktile/theia 16.1.7 → 16.1.8
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/components/contextmenu/contextmenu.component.d.ts +1 -1
- package/components/conversion-hint/conversion-hint.component.d.ts +1 -1
- package/components/inline-toolbar/inline-toolbar.component.d.ts +1 -1
- package/components/listbox/listbox.d.ts +3 -3
- package/components/plugin-menu/plugin-menu.component.d.ts +5 -4
- package/components/table-select/table-select.component.d.ts +1 -1
- package/components/toolbar/toolbar.component.d.ts +1 -1
- package/components/toolbar-group/toolbar-group.component.d.ts +1 -1
- package/core/toolbar-item/base-toolbar-item.d.ts +2 -2
- package/custom-types.d.ts +1 -0
- package/editor.component.d.ts +1 -1
- package/{esm2020 → esm2022}/components/action/prevent-default.mjs +4 -4
- package/{esm2020 → esm2022}/components/column-resize/column-resize-notifier.mjs +4 -4
- package/{esm2020 → esm2022}/components/column-resize/column-resize.directive.mjs +4 -4
- package/{esm2020 → esm2022}/components/column-resize/column-resize.module.mjs +9 -9
- package/{esm2020 → esm2022}/components/column-resize/event-dispatcher.mjs +4 -4
- package/{esm2020 → esm2022}/components/column-resize/overlay-handle.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/column-resize/resizing.store.mjs +4 -4
- package/{esm2020 → esm2022}/components/contextmenu/contextmenu.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/conversion-hint/conversion-hint.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/element/element.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/inline-toolbar/inline-toolbar.component.mjs +6 -6
- package/esm2022/components/listbox/listbox.mjs +375 -0
- package/esm2022/components/plugin-menu/plugin-menu.component.mjs +205 -0
- package/{esm2020 → esm2022}/components/table-select/table-select.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/template/template.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/text/text.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/toolbar/toolbar.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/toolbar-dropdown/toolbar-dropdown.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/toolbar-group/toolbar-group.component.mjs +4 -4
- package/{esm2020 → esm2022}/components/toolbar-item/toolbar-item.component.mjs +6 -6
- package/{esm2020 → esm2022}/core/toolbar-item/base-toolbar-item.mjs +7 -7
- package/esm2022/custom-types.mjs +2 -0
- package/{esm2020 → esm2022}/editor.component.mjs +11 -11
- package/esm2022/editor.module.mjs +254 -0
- package/esm2022/interfaces/image.mjs +3 -0
- package/{esm2020 → esm2022}/interfaces/view-base.mjs +4 -4
- package/{esm2020 → esm2022}/pipes.mjs +10 -10
- package/{esm2020 → esm2022}/plugins/autoformat/transforms/auto-format-block.mjs +1 -1
- package/{esm2020 → esm2022}/plugins/blockquote/blockquote.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/code/code.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/color/toolbar-item.component.mjs +4 -4
- package/esm2022/plugins/deserialize/deserialize-html.plugin.mjs +59 -0
- package/esm2022/plugins/deserialize/deserialize-md.plugin.mjs +136 -0
- package/{esm2020 → esm2022}/plugins/hr/hr.component.mjs +6 -6
- package/esm2022/plugins/image/image.component.mjs +460 -0
- package/esm2022/plugins/image/image.editor.mjs +96 -0
- package/{esm2020 → esm2022}/plugins/inline-code/inline-code.component.mjs +6 -6
- package/{esm2020 → esm2022}/plugins/link/edit/link-edit.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/link/hover/link-hover.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/link/link.component.mjs +9 -9
- package/{esm2020 → esm2022}/plugins/list/components/bulleted-list.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/list/components/list-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/list/components/numbered-list.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/mention/suggestion.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/quick-insert/components/quick-insert.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/components/insert-mark/insert-mark.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/components/row/row.component.mjs +6 -6
- package/esm2022/plugins/table/components/table.component.mjs +834 -0
- package/{esm2020 → esm2022}/plugins/table/components/td/td.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/components/toolbar/table-options.component.mjs +6 -6
- package/{esm2020 → esm2022}/plugins/table/components/toolbar/table-toolbar.component.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/table.pipe.mjs +7 -7
- package/{esm2020 → esm2022}/plugins/table/table.service.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/table.store.mjs +4 -4
- package/{esm2020 → esm2022}/plugins/table/toolbar-item.component.mjs +6 -6
- package/{esm2020 → esm2022}/plugins/todo-item/todo-item.component.mjs +6 -6
- package/{esm2020 → esm2022}/plugins/vertical-align/toolbar-item.component.mjs +4 -4
- package/{esm2020 → esm2022}/services/context.service.mjs +4 -4
- package/{esm2020 → esm2022}/services/table-contextmenu.service.mjs +4 -4
- package/{esm2020 → esm2022}/services/toolbar.service.mjs +4 -4
- package/{esm2020 → esm2022}/transforms/on-keydown-reset-block-type.mjs +1 -1
- package/{fesm2020 → fesm2022}/worktile-theia.mjs +436 -389
- package/fesm2022/worktile-theia.mjs.map +1 -0
- package/interfaces/editor.d.ts +5 -3
- package/interfaces/image.d.ts +5 -4
- package/package.json +6 -15
- package/plugins/image/image.component.d.ts +5 -3
- package/plugins/image/image.editor.d.ts +7 -0
- package/plugins/link/edit/link-edit.component.d.ts +1 -1
- package/plugins/link/hover/link-hover.component.d.ts +1 -1
- package/plugins/mention/suggestion.component.d.ts +1 -1
- package/plugins/quick-insert/components/quick-insert.component.d.ts +1 -1
- package/plugins/table/components/insert-mark/insert-mark.component.d.ts +1 -1
- package/plugins/table/components/table.component.d.ts +7 -7
- package/plugins/table/components/toolbar/table-options.component.d.ts +1 -1
- package/plugins/table/components/toolbar/table-toolbar.component.d.ts +1 -1
- package/queries/is-range-across-blocks.d.ts +1 -1
- package/esm2020/components/listbox/listbox.mjs +0 -375
- package/esm2020/components/plugin-menu/plugin-menu.component.mjs +0 -204
- package/esm2020/custom-types.mjs +0 -2
- package/esm2020/editor.module.mjs +0 -254
- package/esm2020/interfaces/image.mjs +0 -3
- package/esm2020/plugins/deserialize/deserialize-html.plugin.mjs +0 -53
- package/esm2020/plugins/deserialize/deserialize-md.plugin.mjs +0 -130
- package/esm2020/plugins/image/image.component.mjs +0 -440
- package/esm2020/plugins/image/image.editor.mjs +0 -81
- package/esm2020/plugins/table/components/table.component.mjs +0 -834
- package/fesm2015/worktile-theia.mjs +0 -16711
- package/fesm2015/worktile-theia.mjs.map +0 -1
- package/fesm2020/worktile-theia.mjs.map +0 -1
- /package/{esm2020 → esm2022}/components/column-resize/resize-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/components/column-resize/selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/components/listbox/listbox.type.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/auto-format-rules.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/code.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/color-select.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/default.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/error.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/node-types.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/plugin-menu.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/selector.mjs +0 -0
- /package/{esm2020 → esm2022}/constants/toolbar.mjs +0 -0
- /package/{esm2020 → esm2022}/core/create-plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/core/create-toolbar.mjs +0 -0
- /package/{esm2020 → esm2022}/core/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/combine-plugins.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/flatten-deep-plugins.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/get-plugin-options.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/get-plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/get-plugins.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/merge-array.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/merge-deep-plugins.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/merge-options.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/nested-structure-by-key.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/plugin-menu.mjs +0 -0
- /package/{esm2020 → esm2022}/core/utils/plugins-by-key.mjs +0 -0
- /package/{esm2020 → esm2022}/core/with-theia.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/auto-format.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/editor.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/element.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/index.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/no-infer.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/plugin-key.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/plugin-menu.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/plugins.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/plugins/with-override.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/reset-block-type-plugin-options.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/toolbar.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/upload.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/utility/index.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/utility/nested-structure-by-key.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/utility/override-by-key.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/utility/types.mjs +0 -0
- /package/{esm2020 → esm2022}/interfaces/valid-children-types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/align/align.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/align/align.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/autoformat/autoformat.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/autoformat/transforms/auto-format-inline.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/blockquote/blockquote.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/blockquote/blockquote.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/code/code.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/code/code.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/color/color.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/color/color.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/block-card.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/common.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/get-fragment.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/history.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/insert-data-by-invalid-type.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/move-selection.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/remove-empty.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/remove-void.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/reset-type.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/common/transforms.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/font-size/font-size.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/heading/heading.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/heading/heading.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/hr/hr.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/hr/hr.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/image/image.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/indent/indent.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/indent/indent.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/indent/on-keydown-indent.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/inline-code/inline-code.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/inline-code/inline-code.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/link/link.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/link/link.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/link/link.types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/list.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/list.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/normalizers/get-list-normalizer.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/normalizers/normalize-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/normalizers/normalize-no.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/on-key-down-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/get-list-item-entry.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/get-list-item-sublist.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/get-list-types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/get-start-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/has-list-in-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-in-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-list-nested.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-node-type-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-selection-at-list-item-start.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-selection-in-same-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/queries/is-single-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/insert-list-data.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/insert-list-item.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-down.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-sublist-items-to-list-item-sublist.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-sublist-items-to-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/move-list-item-up.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/transforms/unwrap-list.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/list/types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mark/mark.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mark/mark.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mention/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mention/mention.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mention/mention.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/mention/mention.type.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/node-id/node-id.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/normalizers/insert-paragraph-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/normalizers/remove-empty-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/normalizers/trailing-node.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/paint-format/paint-format.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/quick-insert/quick-insert.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/quick-insert/quick-insert.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/soft-break/soft-break.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/soft-break/soft-break.types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/table.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/table.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/table.types.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/clear-cell.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/clear-table-node.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/insert-column.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/insert-row.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/insert-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/remove-column.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/remove-row.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/transforms/remove-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/add-columns.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/calc-anchor-position.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/calc-span.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/calculate-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/cell-position.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/create-cell.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/create-row.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/create-table-position.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/create-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/get-grid-columns.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/get-min-max-cell-index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/get-select-cell-node.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/handle-cell.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/is-header-row.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/is-legal-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/is-range-in-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/is-selection-in-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/is-virtual-key.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/merge-cell.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/next-path.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/normalize-table.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/remove-columns.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/remove-row-column.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/set-cells-background-color.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/set-menu-cell-invisibility.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/set-node-options.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/split-cell.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/table-entry.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/table/utils/table-position.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/todo-item/todo-item.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/todo-item/todo-item.plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/plugins/vertical-align/vertical-align.editor.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/anchor-block-entry.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/anchor-block.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/anchor-inline-entry.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/find-descendant.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/find-node.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/find-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-above-by-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-above.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-anchor-block-entry.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-block-above.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-block-card-above.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-block-card-cursor.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-container-blocks.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-directly-parent.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-insert-elements-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-last-child-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-last-node.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-next-sibling-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-node.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-nodes-by-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-parent.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-plain-text.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-plugin-by-toolbar.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-point-before.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-point-from-location.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-previous-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-rang-from-block-start.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-range-before.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-selection-marks.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-selection-nodes-by-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-text.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/get-toolbar-disabled.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/index.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-across-blocks.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-ancestor-empty.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-ancestor.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-block-above-empty.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-block-active.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-block-card-cursor.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-block-text-empty-after-selection.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-collapsed.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-contain-nested-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-container-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-descendant.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-empty-content-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-empty-content.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-empty-paragraph-by-path.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-empty-paragraph.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-first-child.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-global-collapsed.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-include-types.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-node-type-in.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-node-type.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-paragraph.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-point-at-root.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-range-across-blocks.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-range-at-root.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/is-start.mjs +0 -0
- /package/{esm2020 → esm2022}/queries/some-node.mjs +0 -0
- /package/{esm2020 → esm2022}/shortcuts/index.mjs +0 -0
- /package/{esm2020 → esm2022}/shortcuts/mark.mjs +0 -0
- /package/{esm2020 → esm2022}/test/index.mjs +0 -0
- /package/{esm2020 → esm2022}/test/utils/with-plugin.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/apply-deep-to-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/clear-marks.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/close-conversion-hint.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/delete-element.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/handle-continual-delete-backward.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/handle-continual-insert-break.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/index.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/insert-elements.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/insert-paragraph.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/merge-deep-to-nodes.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/move-children.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/set-end-selection.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/set-marks.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/set-node.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/un-hang-range.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/un-wrap.mjs +0 -0
- /package/{esm2020 → esm2022}/transforms/unwrap-nodes-by-type.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/auto-focus.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/blob.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/cast-array.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/color-picker.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/common.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/copy-node.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/create-empty-paragraph.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/data-transform.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/dom.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/editor-uuid.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/fragment.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/get-editable-element-height.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/get-toolbar-class.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/id-creator.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/insert-data-by-invalid-type.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/is-clean-empty-paragraph.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/is-inline.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/lodash.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/match.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/merge-element-options.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/refocus.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/scroll-into-view.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/weak-maps.mjs +0 -0
- /package/{esm2020 → esm2022}/worktile-theia.mjs +0 -0
|
@@ -395,17 +395,17 @@ export class TheEditorComponent extends mixinUnsubscribe(MixinBase) {
|
|
|
395
395
|
text
|
|
396
396
|
};
|
|
397
397
|
}
|
|
398
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheEditorComponent, deps: [{ token: i1.TheContextService }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i2.ThyIconRegistry }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
399
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheEditorComponent, selector: "the-editor, theEditor", inputs: { theOptions: "theOptions", thePlugins: "thePlugins", theGlobalToolbar: "theGlobalToolbar", theDecorate: "theDecorate", theOnError: "theOnError" }, outputs: { theOnSave: "theOnSave", theOnDOMEvent: "theOnDOMEvent", theEditorCreated: "theEditorCreated", theUploadingStatus: "theUploadingStatus" }, host: { properties: { "class.the-editor-readonly": "theOptions?.readonly" }, classAttribute: "the-editor" }, providers: [
|
|
400
|
+
TheContextService,
|
|
401
|
+
{
|
|
402
|
+
provide: NG_VALUE_ACCESSOR,
|
|
403
|
+
useExisting: forwardRef(() => TheEditorComponent),
|
|
404
|
+
multi: true
|
|
405
|
+
}
|
|
406
|
+
], viewQueries: [{ propertyName: "templateInstance", first: true, predicate: ["templateInstance"], descendants: true, static: true }, { propertyName: "theEditableContainer", first: true, predicate: ["theEditableContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "globalToolbarInstance", first: true, predicate: ["globalToolbar"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<the-toolbar\n *ngIf=\"!theOptions?.readonly && !theGlobalToolbar\"\n [ngClass]=\"{\n 'the-toolbar-disabled': theOptions?.disabled\n }\"\n #globalToolbar\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.global\"\n [containerClass]=\"globalToolbarClass\"\n [align]=\"theOptions?.toolbar?.align\"\n></the-toolbar>\n\n<div\n #theEditableContainer\n class=\"the-editable-container\"\n thyImageGroup\n [ngClass]=\"{\n 'the-editor-disabled': theOptions?.disabled,\n 'max-height': maxHeight\n }\"\n [ngStyle]=\"{ 'max-height': maxHeight }\"\n>\n <slate-editable\n class=\"the-editor-typo\"\n [editor]=\"editor\"\n [ngModel]=\"editorValue\"\n (ngModelChange)=\"valueChange($event)\"\n [decorate]=\"decorate\"\n [placeholder]=\"theOptions?.placeholder\"\n [placeholderDecorate]=\"theOptions?.placeholderDecorate ? theOptions?.placeholderDecorate : null\"\n [renderElement]=\"renderElement\"\n [renderText]=\"renderText\"\n [renderLeaf]=\"renderLeaf\"\n [readonly]=\"theOptions?.readonly || theOptions?.disabled\"\n [keydown]=\"onKeyDown\"\n [click]=\"onClick\"\n [paste]=\"onSlaPaste\"\n [beforeInput]=\"onSlaBeforeInput\"\n [blur]=\"onSlaBlur\"\n [focus]=\"onSlaFocus\"\n [copy]=\"onSlaCopy\"\n [cut]=\"onSlaCut\"\n [isStrictDecorate]=\"false\"\n [compositionStart]=\"onSlaCompositionStart\"\n [compositionEnd]=\"onSlaCompositionEnd\"\n [dragStart]=\"onSlaDragStart\"\n [dragOver]=\"onSlaDragOver\"\n [drop]=\"onDrop\"\n (mousedown)=\"mousedown($event)\"\n [scrollSelectionIntoView]=\"scrollSelectionIntoView\"\n ></slate-editable>\n <the-inline-toolbar\n *ngIf=\"!theOptions?.readonly && theOptions?.inlineToolbarVisible\"\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.inline\"\n ></the-inline-toolbar>\n <div *ngIf=\"!theOptions?.readonly\" theQuickInsert [editor]=\"editor\" [isVisible]=\"visibleQuickInsertPlus\"></div>\n <the-template #templateInstance></the-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.SlateEditable, selector: "slate-editable", inputs: ["editor", "renderElement", "renderLeaf", "renderText", "decorate", "placeholderDecorate", "scrollSelectionIntoView", "isStrictDecorate", "trackBy", "readonly", "placeholder", "beforeInput", "blur", "click", "compositionEnd", "compositionUpdate", "compositionStart", "copy", "cut", "dragOver", "dragStart", "dragEnd", "drop", "focus", "keydown", "paste", "spellCheck", "autoCorrect", "autoCapitalize"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.ThyImageGroupComponent, selector: "thy-image-group, [thyImageGroup]" }, { kind: "component", type: i7.TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }, { kind: "component", type: i8.TheInlineToolbarComponent, selector: "the-inline-toolbar", inputs: ["editor", "toolbarItems"] }, { kind: "component", type: i9.TheQuickInsertComponent, selector: "[theQuickInsert]", inputs: ["editor", "isVisible"] }, { kind: "component", type: i10.TheTemplateComponent, selector: "the-template,[theTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
398
407
|
}
|
|
399
|
-
|
|
400
|
-
TheEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TheEditorComponent, selector: "the-editor, theEditor", inputs: { theOptions: "theOptions", thePlugins: "thePlugins", theGlobalToolbar: "theGlobalToolbar", theDecorate: "theDecorate", theOnError: "theOnError" }, outputs: { theOnSave: "theOnSave", theOnDOMEvent: "theOnDOMEvent", theEditorCreated: "theEditorCreated", theUploadingStatus: "theUploadingStatus" }, host: { properties: { "class.the-editor-readonly": "theOptions?.readonly" }, classAttribute: "the-editor" }, providers: [
|
|
401
|
-
TheContextService,
|
|
402
|
-
{
|
|
403
|
-
provide: NG_VALUE_ACCESSOR,
|
|
404
|
-
useExisting: forwardRef(() => TheEditorComponent),
|
|
405
|
-
multi: true
|
|
406
|
-
}
|
|
407
|
-
], viewQueries: [{ propertyName: "templateInstance", first: true, predicate: ["templateInstance"], descendants: true, static: true }, { propertyName: "theEditableContainer", first: true, predicate: ["theEditableContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "globalToolbarInstance", first: true, predicate: ["globalToolbar"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<the-toolbar\n *ngIf=\"!theOptions?.readonly && !theGlobalToolbar\"\n [ngClass]=\"{\n 'the-toolbar-disabled': theOptions?.disabled\n }\"\n #globalToolbar\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.global\"\n [containerClass]=\"globalToolbarClass\"\n [align]=\"theOptions?.toolbar?.align\"\n></the-toolbar>\n\n<div\n #theEditableContainer\n class=\"the-editable-container\"\n thyImageGroup\n [ngClass]=\"{\n 'the-editor-disabled': theOptions?.disabled,\n 'max-height': maxHeight\n }\"\n [ngStyle]=\"{ 'max-height': maxHeight }\"\n>\n <slate-editable\n class=\"the-editor-typo\"\n [editor]=\"editor\"\n [ngModel]=\"editorValue\"\n (ngModelChange)=\"valueChange($event)\"\n [decorate]=\"decorate\"\n [placeholder]=\"theOptions?.placeholder\"\n [placeholderDecorate]=\"theOptions?.placeholderDecorate ? theOptions?.placeholderDecorate : null\"\n [renderElement]=\"renderElement\"\n [renderText]=\"renderText\"\n [renderLeaf]=\"renderLeaf\"\n [readonly]=\"theOptions?.readonly || theOptions?.disabled\"\n [keydown]=\"onKeyDown\"\n [click]=\"onClick\"\n [paste]=\"onSlaPaste\"\n [beforeInput]=\"onSlaBeforeInput\"\n [blur]=\"onSlaBlur\"\n [focus]=\"onSlaFocus\"\n [copy]=\"onSlaCopy\"\n [cut]=\"onSlaCut\"\n [isStrictDecorate]=\"false\"\n [compositionStart]=\"onSlaCompositionStart\"\n [compositionEnd]=\"onSlaCompositionEnd\"\n [dragStart]=\"onSlaDragStart\"\n [dragOver]=\"onSlaDragOver\"\n [drop]=\"onDrop\"\n (mousedown)=\"mousedown($event)\"\n [scrollSelectionIntoView]=\"scrollSelectionIntoView\"\n ></slate-editable>\n <the-inline-toolbar\n *ngIf=\"!theOptions?.readonly && theOptions?.inlineToolbarVisible\"\n [editor]=\"editor\"\n [toolbarItems]=\"toolbarEntity.inline\"\n ></the-inline-toolbar>\n <div *ngIf=\"!theOptions?.readonly\" theQuickInsert [editor]=\"editor\" [isVisible]=\"visibleQuickInsertPlus\"></div>\n <the-template #templateInstance></the-template>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i4.SlateEditableComponent, selector: "slate-editable", inputs: ["editor", "renderElement", "renderLeaf", "renderText", "decorate", "placeholderDecorate", "scrollSelectionIntoView", "isStrictDecorate", "trackBy", "readonly", "placeholder", "beforeInput", "blur", "click", "compositionEnd", "compositionUpdate", "compositionStart", "copy", "cut", "dragOver", "dragStart", "dragEnd", "drop", "focus", "keydown", "paste", "spellCheck", "autoCorrect", "autoCapitalize"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.ThyImageGroupComponent, selector: "thy-image-group, [thyImageGroup]" }, { kind: "component", type: i7.TheToolbarComponent, selector: "the-toolbar", inputs: ["editor", "toolbarItems", "align", "containerClass", "isMore", "afterTemplate"] }, { kind: "component", type: i8.TheInlineToolbarComponent, selector: "the-inline-toolbar", inputs: ["editor", "toolbarItems"] }, { kind: "component", type: i9.TheQuickInsertComponent, selector: "[theQuickInsert]", inputs: ["editor", "isVisible"] }, { kind: "component", type: i10.TheTemplateComponent, selector: "the-template,[theTemplate]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
408
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheEditorComponent, decorators: [{
|
|
408
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheEditorComponent, decorators: [{
|
|
409
409
|
type: Component,
|
|
410
410
|
args: [{ selector: 'the-editor, theEditor', providers: [
|
|
411
411
|
TheContextService,
|
|
@@ -446,4 +446,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
446
446
|
type: ViewChild,
|
|
447
447
|
args: ['globalToolbar']
|
|
448
448
|
}] } });
|
|
449
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sWUFBWSxFQUlaLHVCQUF1QixFQUUxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFRLFVBQVUsRUFBRSxZQUFZLEVBQXVCLEtBQUssRUFBRSxJQUFJLEVBQWEsTUFBTSxPQUFPLENBQUM7QUFDNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUF3Qiw4QkFBOEIsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUEyQyxXQUFXLEVBQWlCLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRyxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFDSCxTQUFTLEVBQ1QsZUFBZSxFQUNmLGVBQWUsRUFDZixTQUFTLEVBQ1QsYUFBYSxFQUNiLHdC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LENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKLFFBQ0s7d0JBQ0YsS0FBSyxFQUFFLFlBQVk7d0JBQ25CLDZCQUE2QixFQUFFLHNCQUFzQjtxQkFDeEQsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07bVBBS3RDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRUcsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdQLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJL0Msb0JBQW9CO3NCQURuQixTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUlyRSxxQkFBcUI7c0JBRHBCLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgTmdab25lLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBtaXhpblVuc3Vic2NyaWJlLCBNaXhpbkJhc2UgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgaXNLZXlIb3RrZXkgfSBmcm9tICdpcy1ob3RrZXknO1xuaW1wb3J0IHsgRWRpdG9yLCBUZXh0LCBUcmFuc2Zvcm1zLCBjcmVhdGVFZGl0b3IsIEVsZW1lbnQsIERlc2NlbmRhbnQsIFJhbmdlLCBQYXRoLCBOb2RlRW50cnkgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyB3aXRoSGlzdG9yeSB9IGZyb20gJ3NsYXRlLWhpc3RvcnknO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciwgRE9NUmFuZ2UsIFNsYXRlRXJyb3IsIGRlZmF1bHRTY3JvbGxTZWxlY3Rpb25JbnRvVmlldywgd2l0aEFuZ3VsYXIgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IFRoZU9wdGlvbnMsIERvbUV2ZW50RGF0YUluZm8sIFRoZUVkaXRvciwgVGhlRGF0YU1vZGUsIFRvb2xiYXJFbnRpdHksIFBsdWdpbktleXMgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWFya1R5cGVzLCBDTElQQk9BUkRfRk9STUFUX0tFWSwgaW5pdGlhbGl6ZURlZmF1bHRNZW51SWNvbnMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUaGVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZS90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgYXV0b0ZvY3VzLFxuICAgIGRhdGFEZXNlcmlhbGl6ZSxcbiAgICBkYXRhU2VyaWFsaXppbmcsXG4gICAgaWRDcmVhdG9yLFxuICAgIHNldEVkaXRvclVVSUQsXG4gICAgY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlLFxuICAgIFRIRV9FRElUT1JfUFJFVklPVVNfU0VMRUNUSU9OXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgd2l0aFRoZWlhLCBjcmVhdGVUb29sYmFyLCBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IGludGVybmFsUGx1Z2lucyB9IGZyb20gJy4vcGx1Z2lucyc7XG5pbXBvcnQgeyBzaG9ydGN1dHMgfSBmcm9tICcuL3Nob3J0Y3V0cyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4vcXVlcmllcyc7XG5pbXBvcnQgeyBUaGVQbHVnaW4gfSBmcm9tICcuL2ludGVyZmFjZXMvcGx1Z2lucy9wbHVnaW5zJztcbmltcG9ydCB7IFF1aWNrSW5zZXJ0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vcGx1Z2lucy9xdWljay1pbnNlcnQvcXVpY2staW5zZXJ0LnBsdWdpbic7XG5pbXBvcnQgeyBUaHlJY29uUmVnaXN0cnkgfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJy4vdXRpbHMvbG9kYXNoJztcbmltcG9ydCB7IGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLWVkaXRvciwgdGhlRWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFRoZUNvbnRleHRTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoZUVkaXRvckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLWVkaXRvcicsXG4gICAgICAgICdbY2xhc3MudGhlLWVkaXRvci1yZWFkb25seV0nOiAndGhlT3B0aW9ucz8ucmVhZG9ubHknXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUaGVFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBtaXhpblVuc3Vic2NyaWJlKE1peGluQmFzZSkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICB2aXNpYmxlUXVpY2tJbnNlcnRQbHVzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpIHRoZU9wdGlvbnM6IFRoZU9wdGlvbnM7XG5cbiAgICBASW5wdXQoKSB0aGVQbHVnaW5zOiBUaGVQbHVnaW5bXSA9IFtdO1xuXG4gICAgQElucHV0KCkgdGhlR2xvYmFsVG9vbGJhcj86IFRoZVRvb2xiYXJDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSB0aGVEZWNvcmF0ZTogKGVkaXRvcjogVGhlRWRpdG9yLCBub2RlRW50cnk6IE5vZGVFbnRyeSkgPT4gUmFuZ2VbXTtcblxuICAgIEBJbnB1dCgpIHRoZU9uRXJyb3I/OiAoZXJyb3I6IFNsYXRlRXJyb3IpID0+IHZvaWQ7XG5cbiAgICBAT3V0cHV0KCkgdGhlT25TYXZlOiBFdmVudEVtaXR0ZXI8RGVzY2VuZGFudFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGVzY2VuZGFudFtdPigpO1xuXG4gICAgQE91dHB1dCgpIHRoZU9uRE9NRXZlbnQ6IEV2ZW50RW1pdHRlcjx7IG5hdGl2ZUV2ZW50OiBFdmVudDsgZGF0YT86IERvbUV2ZW50RGF0YUluZm8gfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgdGhlRWRpdG9yQ3JlYXRlZDogRXZlbnRFbWl0dGVyPEVkaXRvcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgdGhlVXBsb2FkaW5nU3RhdHVzOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIHRydWUg5LiK5Lyg57uT5p2fIGZhbHNlIOS4iuS8oOS4rVxuXG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGVJbnN0YW5jZScsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgdGVtcGxhdGVJbnN0YW5jZTogVGhlVGVtcGxhdGVDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCd0aGVFZGl0YWJsZUNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgdGhlRWRpdGFibGVDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnZ2xvYmFsVG9vbGJhcicpXG4gICAgZ2xvYmFsVG9vbGJhckluc3RhbmNlOiBUaGVUb29sYmFyQ29tcG9uZW50O1xuXG4gICAgdG9vbGJhckVudGl0eTogVG9vbGJhckVudGl0eTtcblxuICAgIGVkaXRvcjogVGhlRWRpdG9yO1xuXG4gICAgZWRpdG9yVmFsdWU6IERlc2NlbmRhbnRbXTtcblxuICAgIGdsb2JhbFRvb2xiYXJDbGFzczogc3RyaW5nW107XG5cbiAgICBkZWNvcmF0ZTogKG5vZGVFbnRyeTogTm9kZUVudHJ5KSA9PiBSYW5nZVtdO1xuXG4gICAgZ2V0IHRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZSgpOiBUaGVUb29sYmFyQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGhlR2xvYmFsVG9vbGJhciA/IHRoaXMudGhlR2xvYmFsVG9vbGJhciA6IHRoaXMuZ2xvYmFsVG9vbGJhckluc3RhbmNlO1xuICAgIH1cblxuICAgIGdldCBtYXhIZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoZU9wdGlvbnM/Lm1heEhlaWdodCA/IGAke3RoaXMudGhlT3B0aW9ucz8ubWF4SGVpZ2h0fXB4YCA6IG51bGw7XG4gICAgfVxuXG4gICAgZWxlbWVudFRvSHRtbDogV2Vha01hcDxFbGVtZW50LCBzdHJpbmc+ID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdGhlQ29udGV4dFNlcnZpY2U6IFRoZUNvbnRleHRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGljb25SZWdpc3RyeTogVGh5SWNvblJlZ2lzdHJ5XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVFdmVudHMoKTtcbiAgICAgICAgaW5pdGlhbGl6ZURlZmF1bHRNZW51SWNvbnModGhpcy5pY29uUmVnaXN0cnkpO1xuICAgICAgICB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLnVwbG9hZGluZ1N0YXR1cyQuc3Vic2NyaWJlKGlzVXBsb2FkaW5nID0+IHtcbiAgICAgICAgICAgIGlmIChpc1VwbG9hZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMudGhlVXBsb2FkaW5nU3RhdHVzLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLnVwbG9hZGluZ0ZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoZVVwbG9hZGluZ1N0YXR1cy5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uRXJyb3JIYW5kbGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY2hhbmdlcy50aGVPcHRpb25zO1xuXG4gICAgICAgIGlmIChvcHRpb25zICYmICFvcHRpb25zLmZpcnN0Q2hhbmdlICYmICFpc0VxdWFsKG9wdGlvbnMuY3VycmVudFZhbHVlPy50b29sYmFyLCBvcHRpb25zLnByZXZpb3VzVmFsdWU/LnRvb2xiYXIpKSB7XG4gICAgICAgICAgICB0aGlzLnRvb2xiYXJDYWxjdWxhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmN1cnJlbnRWYWx1ZT8ucmVhZG9ubHkgIT09IG9wdGlvbnMucHJldmlvdXNWYWx1ZT8ucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlBdXRvRm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlc1sndGhlRGVjb3JhdGUnXSkge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZURlY29yYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yPy5zZWxlY3Rpb24gJiYgKG9wdGlvbnM/LmN1cnJlbnRWYWx1ZT8ucmVhZG9ubHkgfHwgb3B0aW9ucz8uY3VycmVudFZhbHVlPy5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVzZWxlY3QodGhpcy5lZGl0b3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIFRIRV9FRElUT1JfUFJFVklPVVNfU0VMRUNUSU9OLmRlbGV0ZSh0aGlzLmVkaXRvcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdFBsdWdpbnMgPSBpbnRlcm5hbFBsdWdpbnMoKTtcbiAgICAgICAgY29uc3QgcGx1Z2lucyA9IFsuLi5kZWZhdWx0UGx1Z2lucywgLi4udGhpcy50aGVQbHVnaW5zXTtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSB3aXRoVGhlaWEod2l0aEhpc3Rvcnkod2l0aEFuZ3VsYXIoY3JlYXRlRWRpdG9yKCksIENMSVBCT0FSRF9GT1JNQVRfS0VZKSksIHBsdWdpbnMpO1xuICAgICAgICB0aGlzLmdlbmVyYXRlRGVjb3JhdGUoKTtcbiAgICAgICAgdGhpcy5lZGl0b3IuZGlzYWJsZWQgPSB0aGlzLnRoZU9wdGlvbnM/LmRpc2FibGVkO1xuICAgICAgICB0aGlzLmVkaXRvci5leHRyYUVsZW1lbnRPcHRpb25zID0gdGhpcy50aGVPcHRpb25zPy5leHRyYUVsZW1lbnRPcHRpb25zO1xuICAgICAgICB0aGlzLmVkaXRvci5vcHRpb25zID0gdGhpcy50aGVPcHRpb25zO1xuICAgICAgICBzZXRFZGl0b3JVVUlEKHRoaXMuZWRpdG9yLCBpZENyZWF0b3IoKSk7XG4gICAgICAgIHRoaXMudGhlQ29udGV4dFNlcnZpY2UuaW5pdGlhbGl6ZSh7XG4gICAgICAgICAgICB0aGVPcHRpb25zOiB0aGlzLnRoZU9wdGlvbnMsXG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZlxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT3B0aW9ucygpO1xuICAgICAgICB0aGlzLnRvb2xiYXJDYWxjdWxhdGUoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBZb3UgbmVlZCB0byB3YWl0IGZvciB0aGUgZWRpdG9yIHJlbmRlcmluZyB0byBjb21wbGV0ZVxuICAgICAgICAgICAgLy8gYmVmb3JlIHRyaWdnZXJpbmcgdGhlIGV4dGVybmFsIHRvb2xiYXIgYXNzaWdubWVudCBkZXRlY3Rpb25cbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsVG9vbGJhckluaXQoKTtcbiAgICAgICAgICAgIHRoaXMudGhlRWRpdG9yQ3JlYXRlZC5lbWl0KHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlBdXRvRm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHF1aWNrSW5zZXJ0UGx1Z2luID0gZ2V0UGx1Z2luT3B0aW9uczxRdWlja0luc2VydFBsdWdpbk9wdGlvbnM+KHRoaXMuZWRpdG9yLCBQbHVnaW5LZXlzLnF1aWNrSW5zZXJ0KTtcbiAgICAgICAgLy8gcXVpY2tJbnNlcnRcbiAgICAgICAgaWYgKHF1aWNrSW5zZXJ0UGx1Z2luLmRpc2FibGVkIHx8IHF1aWNrSW5zZXJ0UGx1Z2luLmRpc2FibGVkUGx1cykge1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlUXVpY2tJbnNlcnRQbHVzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0aWFsaXplT3B0aW9ucygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRoZU9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudGhlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICByZWFkb25seTogZmFsc2UsXG4gICAgICAgICAgICAgICAgbW9kZTogVGhlRGF0YU1vZGUuaHRtbCxcbiAgICAgICAgICAgICAgICBuZWVkZWRTY3JvbGxJbnRvVmlldzogKCkgPT4gdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMudGhlT3B0aW9ucy5tb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnRoZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy50aGVPcHRpb25zLFxuICAgICAgICAgICAgICAgIG1vZGU6IFRoZURhdGFNb2RlLmh0bWxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0aWFsaXplRXZlbnRzKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnQsICdtb3VzZWRvd24nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRvci5nbG9iYWxNb3VzZWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhcHBseUF1dG9Gb2N1cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRoZU9wdGlvbnM/LmRpc2FibGVkICYmICF0aGlzLnRoZU9wdGlvbnM/LnJlYWRvbmx5KSB7XG4gICAgICAgICAgICBhdXRvRm9jdXModGhpcy5lZGl0b3IsIHRoaXMudGhlT3B0aW9ucz8uYXV0b0ZvY3VzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvb2xiYXJDYWxjdWxhdGUoKSB7XG4gICAgICAgIGNvbnN0IHsgZ2xvYmFsVG9vbGJhckNsYXNzLCB0b29sYmFyRW50aXR5IH0gPSBjcmVhdGVUb29sYmFyKHRoaXMuZWRpdG9yLCB0aGlzPy50aGVPcHRpb25zPy50b29sYmFyKTtcbiAgICAgICAgdGhpcy5nbG9iYWxUb29sYmFyQ2xhc3MgPSBnbG9iYWxUb29sYmFyQ2xhc3M7XG4gICAgICAgIHRoaXMudG9vbGJhckVudGl0eSA9IHRvb2xiYXJFbnRpdHk7XG4gICAgfVxuXG4gICAgZ2xvYmFsVG9vbGJhckluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoZUdsb2JhbFRvb2xiYXIpIHtcbiAgICAgICAgICAgIHRoaXMudGhlR2xvYmFsVG9vbGJhckluc3RhbmNlLmVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgICAgICAgICAgdGhpcy50aGVHbG9iYWxUb29sYmFySW5zdGFuY2UudG9vbGJhckl0ZW1zID0gdGhpcy50b29sYmFyRW50aXR5Lmdsb2JhbDtcbiAgICAgICAgICAgIHRoaXMudGhlR2xvYmFsVG9vbGJhckluc3RhbmNlLmNvbnRhaW5lckNsYXNzID0gdGhpcy5nbG9iYWxUb29sYmFyQ2xhc3M7XG4gICAgICAgICAgICB0aGlzLnRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZS5hbGlnbiA9IHRoaXM/LnRoZU9wdGlvbnM/LnRvb2xiYXI/LmFsaWduO1xuICAgICAgICAgICAgdGhpcy50aGVHbG9iYWxUb29sYmFySW5zdGFuY2Uuc2V0VG9vbGJhckNsYXNzKCk7XG4gICAgICAgICAgICB0aGlzLnRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZS5yZW5kZXJUb29sYmFyVmlldygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgRGVzY2VuZGFudFtdKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBkYXRhRGVzZXJpYWxpemUodGhpcy50aGVPcHRpb25zPy5tb2RlLCB2YWx1ZSk7XG4gICAgICAgIC8vIGRhdGEtZGVzZXJpYWxpemVcbiAgICAgICAgdGhpcy5lZGl0b3JWYWx1ZSA9IGRhdGE7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy50aGVPcHRpb25zLnJlYWRvbmx5ICYmIEFuZ3VsYXJFZGl0b3IuaXNGb2N1c2VkKHRoaXMuZWRpdG9yKSAmJiB0aGlzLmVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmVkaXRvci5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZXNlbGVjdCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIHNlbGVjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICBzY3JvbGxTZWxlY3Rpb25JbnRvVmlldyA9IChlOiBUaGVFZGl0b3IsIGRvbVJhbmdlOiBET01SYW5nZSkgPT4ge1xuICAgICAgICBjb25zdCB7IG5lZWRlZFNjcm9sbEludG9WaWV3IH0gPSB0aGlzLnRoZU9wdGlvbnM7XG4gICAgICAgIGlmIChuZWVkZWRTY3JvbGxJbnRvVmlldyAmJiAhbmVlZGVkU2Nyb2xsSW50b1ZpZXcodGhpcy5lZGl0b3IpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdFNjcm9sbFNlbGVjdGlvbkludG9WaWV3KGUsIGRvbVJhbmdlKTtcbiAgICB9O1xuXG4gICAgdmFsdWVDaGFuZ2UodmFsdWU6IERlc2NlbmRhbnRbXSkge1xuICAgICAgICB0aGlzLnRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZT8uc2VsZWN0aW9uQ2hhbmdlKHRoaXMuZWRpdG9yKTtcblxuICAgICAgICBpZiAodGhpcy5lZGl0b3JWYWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvclZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgLy8gc2VyaWFsaXppbmdcbiAgICAgICAgbGV0IG5ld1ZhbHVlID0gdGhpcy5zZXJpYWxpemluZ1ZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXJpYWxpemluZ1ZhbHVlKHZhbHVlOiBEZXNjZW5kYW50W10pOiBzdHJpbmcgfCBEZXNjZW5kYW50W10ge1xuICAgICAgICBpZiAodGhpcy50aGVPcHRpb25zPy5tb2RlID09PSBUaGVEYXRhTW9kZS5odG1sKSB7XG4gICAgICAgICAgICBsZXQgaHRtbFZhbHVlID0gJyc7XG4gICAgICAgICAgICBjb25zdCBpc0VtcHR5Q29udGVudCA9IFRoZVF1ZXJpZXMuaXNFbXB0eUNvbnRlbnQodmFsdWUpO1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50SHRtbCA9IHRoaXMuZWxlbWVudFRvSHRtbC5nZXQoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRIdG1sID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2VyaWFsaXppbmdcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudEh0bWwgPSBkYXRhU2VyaWFsaXppbmcodGhpcy50aGVPcHRpb25zPy5tb2RlLCBbZWxlbWVudF0pIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgaHRtbFZhbHVlICs9IGVsZW1lbnRIdG1sO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRUb0h0bWwuc2V0KGVsZW1lbnQsIGVsZW1lbnRIdG1sKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBodG1sVmFsdWUgKz0gZWxlbWVudEh0bWw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBpc0VtcHR5Q29udGVudCA/ICcnIDogaHRtbFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBvbkVycm9ySGFuZGxlcigpIHtcbiAgICAgICAgdGhpcy5lZGl0b3Iub25FcnJvciA9IChlcnJvckRhdGE6IFNsYXRlRXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoZU9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoZU9uRXJyb3IoZXJyb3JEYXRhKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyb3JEYXRhLm5hdGl2ZUVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvckRhdGEubmF0aXZlRXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJlbmRlckVsZW1lbnQgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGVJbnN0YW5jZS5yZW5kZXJFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmVkaXRvci5yZW5kZXJFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gY29tcG9uZW50ID8gY29tcG9uZW50IDogdGVtcGxhdGU7XG4gICAgfTtcblxuICAgIHJlbmRlckxlYWYgPSAodGV4dDogVGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBsZWFmID0gdGhpcy5lZGl0b3IucmVuZGVyTGVhZih0ZXh0KTtcbiAgICAgICAgcmV0dXJuIGxlYWYgPyBsZWFmIDogbnVsbDtcbiAgICB9O1xuXG4gICAgcmVuZGVyVGV4dCA9ICh0ZXh0OiBUZXh0KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIE1hcmtUeXBlcykge1xuICAgICAgICAgICAgaWYgKHRleHRbTWFya1R5cGVzW2tleV1dKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFRoZVRleHRDb21wb25lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRleHQudGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBnZW5lcmF0ZURlY29yYXRlKCkge1xuICAgICAgICB0aGlzLmRlY29yYXRlID0gKG5vZGVFbnRyeTogTm9kZUVudHJ5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkZWNvcmF0aW9ucyA9IFtdO1xuXG4gICAgICAgICAgICBpZiAodGhpcy50aGVEZWNvcmF0ZSkge1xuICAgICAgICAgICAgICAgIGRlY29yYXRpb25zLnB1c2goLi4udGhpcy50aGVEZWNvcmF0ZSh0aGlzLmVkaXRvciwgbm9kZUVudHJ5KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkZWNvcmF0aW9ucztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbktleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgc2hvcnRjdXRzKHRoaXMuZWRpdG9yLCBldmVudCk7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBrZXk6IGV2ZW50LmtleVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBBbmd1bGFyRWRpdG9yLm9uS2V5ZG93bih0aGlzLmVkaXRvciwgZXZlbnQpO1xuXG4gICAgICAgIGlmIChpc0tleUhvdGtleSgnbW9kK3MnLCBldmVudCkgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50aGVPblNhdmUuZW1pdCh0aGlzLmVkaXRvclZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0tleUhvdGtleSgnbW9kK2EnLCBldmVudCkgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0QWxsKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgbW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGVkaXRhYmxlRWxlbWVudCA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKHRoaXMuZWRpdG9yLCB0aGlzLmVkaXRvcik7XG4gICAgICAgIGNvbnN0IHJlY3RFZGl0YWJsZSA9IGVkaXRhYmxlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgYWJzb2x1dGVFbGVtZW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChldmVudC54LCBldmVudC55KTtcbiAgICAgICAgaWYgKCFlZGl0YWJsZUVsZW1lbnQuaXNFcXVhbE5vZGUoYWJzb2x1dGVFbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkRWxlbWVudCA9IGFic29sdXRlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2xhdGUtYmxvY2stY2FyZCcpO1xuICAgICAgICAgICAgaWYgKCFibG9ja0NhcmRFbGVtZW50KSByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHsgcGFkZGluZ1JpZ2h0IH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlZGl0YWJsZUVsZW1lbnQsIG51bGwpO1xuICAgICAgICBjb25zdCBwYWRkaW5nUmlnaHRQaXhlbHMgPSBjb2VyY2VQaXhlbHNGcm9tQ3NzVmFsdWUocGFkZGluZ1JpZ2h0KTtcbiAgICAgICAgY29uc3QgZmFrZVJpZ2h0WCA9IHJlY3RFZGl0YWJsZS5yaWdodCAtIHBhZGRpbmdSaWdodFBpeGVscyAtIDUwO1xuICAgICAgICBsZXQgcmVsYXRpdmVFbGVtZW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChmYWtlUmlnaHRYLCBldmVudC55KTtcbiAgICAgICAgbGV0IHJlbGF0aXZlQmxvY2tDYXJkRWxlbWVudCA9IHJlbGF0aXZlRWxlbWVudC5jbG9zZXN0KCcuc2xhdGUtYmxvY2stY2FyZCcpO1xuICAgICAgICBpZiAocmVsYXRpdmVCbG9ja0NhcmRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjZW50ZXJYID0gcmVjdEVkaXRhYmxlLnggKyByZWN0RWRpdGFibGUud2lkdGggLyAyO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkRW50cnkgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVDYXJkRW50cnkodGhpcy5lZGl0b3IsIHJlbGF0aXZlQmxvY2tDYXJkRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCk7XG4gICAgICAgICAgICBpZiAoYmxvY2tDYXJkRW50cnkgJiYgdGhpcy5lZGl0b3IuaXNCbG9ja0NhcmQoYmxvY2tDYXJkRW50cnlbMF0pKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLm1vdmVCbG9ja0NhcmQodGhpcy5lZGl0b3IsIGJsb2NrQ2FyZEVudHJ5WzBdLCB7IGRpcmVjdGlvbjogZXZlbnQueCA8IGNlbnRlclggPyAnbGVmdCcgOiAncmlnaHQnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlU2VsZWN0QWxsKCkge1xuICAgICAgICBsZXQgbm9kZTtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0RW5kU2VsZWN0aW9uKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSBSYW5nZS5lZGdlcyh0aGlzLmVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25SYW5nZSA9IEVkaXRvci5yYW5nZSh0aGlzLmVkaXRvciwgc3RhcnQsIGVuZCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckJsb2NrcyA9IFRoZVF1ZXJpZXMuZ2V0Q29udGFpbmVyQmxvY2tzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250YWluZXJCbG9ja3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIFtub2RlXSA9IFRoZVF1ZXJpZXMuZ2V0Tm9kZXNCeVR5cGUodGhpcy5lZGl0b3IsIGNvbnRhaW5lckJsb2Nrc1tpXSk7XG4gICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIHBhdGhdID0gbm9kZTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1N0YXJ0UGFyZW50ID0gUGF0aC5lcXVhbHMocGF0aCwgc3RhcnQucGF0aC5zbGljZSgwLCBwYXRoLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzRW5kUGFyZW50ID0gUGF0aC5lcXVhbHMocGF0aCwgZW5kLnBhdGguc2xpY2UoMCwgcGF0aC5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdGFydFBhcmVudCAmJiBpc0VuZFBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlUmFuZ2UgPSBFZGl0b3IucmFuZ2UodGhpcy5lZGl0b3IsIHBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVJhbmdlLmVxdWFscyhub2RlUmFuZ2UsIHNlbGVjdGlvblJhbmdlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIG5vZGVSYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBub2RlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdCh0aGlzLmVkaXRvciwgW10pO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvbkNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIEFuZ3VsYXJFZGl0b3Iub25DbGljayh0aGlzLmVkaXRvciwgZXZlbnQpO1xuICAgICAgICB0aGlzLnRoZU9uRE9NRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBuYXRpdmVFdmVudDogZXZlbnRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIG9uU2xhUGFzdGUgPSAoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldFRleHRBbmRKU09OKGV2ZW50LmNsaXBib2FyZERhdGEpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUJlZm9yZUlucHV0ID0gKFxuICAgICAgICBldmVudDogRXZlbnQgJiB7XG4gICAgICAgICAgICBpbnB1dFR5cGU6IHN0cmluZztcbiAgICAgICAgICAgIGRhdGE6IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgICBkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlciB8IG51bGw7XG4gICAgICAgIH1cbiAgICApID0+IHtcbiAgICAgICAgbGV0IGRhdGEgPSB7XG4gICAgICAgICAgICBpbnB1dFR5cGU6IGV2ZW50LmlucHV0VHlwZSxcbiAgICAgICAgICAgIHRleHQ6IChldmVudC5kYXRhIHx8IGV2ZW50LmRhdGFUcmFuc2ZlcikgYXMgc3RyaW5nXG4gICAgICAgIH07XG4gICAgICAgIGlmIChldmVudC5pbnB1dFR5cGUgPT09ICdpbnNlcnRGcm9tUGFzdGUnKSB7XG4gICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5nZXRUZXh0QW5kSlNPTigoZXZlbnQuZGF0YSB8fCBldmVudC5kYXRhVHJhbnNmZXIpIGFzIERhdGFUcmFuc2ZlcilcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgb25TbGFCbHVyID0gKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgb25TbGFGb2N1cyA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUN1dCA9IChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUNvcHkgPSAoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7fTtcblxuICAgIG9uU2xhQ29tcG9zaXRpb25TdGFydCA9IChldmVudDogQ29tcG9zaXRpb25FdmVudCkgPT4ge307XG5cbiAgICBvblNsYUNvbXBvc2l0aW9uRW5kID0gKGV2ZW50OiBDb21wb3NpdGlvbkV2ZW50KSA9PiB7fTtcblxuICAgIG9uU2xhRHJhZ1N0YXJ0ID0gKGV2ZW50OiBEcmFnRXZlbnQpID0+IHt9O1xuXG4gICAgb25TbGFEcmFnT3ZlciA9IChldmVudDogRHJhZ0V2ZW50KSA9PiB7fTtcblxuICAgIG9uRHJvcCA9IChldmVudDogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0VGV4dEFuZEpTT04oZGF0YTogRGF0YVRyYW5zZmVyKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZGF0YS5nZXREYXRhKGBhcHBsaWNhdGlvbi8ke0NMSVBCT0FSRF9GT1JNQVRfS0VZfWApO1xuICAgICAgICBsZXQganNvbiA9IFtdO1xuICAgICAgICBpZiAoZnJhZ21lbnQpIHtcbiAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuYXRvYihmcmFnbWVudCkpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0ID0gZGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBqc29uLFxuICAgICAgICAgICAgdGV4dFxuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjx0aGUtdG9vbGJhclxuICAqbmdJZj1cIiF0aGVPcHRpb25zPy5yZWFkb25seSAmJiAhdGhlR2xvYmFsVG9vbGJhclwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAndGhlLXRvb2xiYXItZGlzYWJsZWQnOiB0aGVPcHRpb25zPy5kaXNhYmxlZFxuICB9XCJcbiAgI2dsb2JhbFRvb2xiYXJcbiAgW2VkaXRvcl09XCJlZGl0b3JcIlxuICBbdG9vbGJhckl0ZW1zXT1cInRvb2xiYXJFbnRpdHkuZ2xvYmFsXCJcbiAgW2NvbnRhaW5lckNsYXNzXT1cImdsb2JhbFRvb2xiYXJDbGFzc1wiXG4gIFthbGlnbl09XCJ0aGVPcHRpb25zPy50b29sYmFyPy5hbGlnblwiXG4+PC90aGUtdG9vbGJhcj5cblxuPGRpdlxuICAjdGhlRWRpdGFibGVDb250YWluZXJcbiAgY2xhc3M9XCJ0aGUtZWRpdGFibGUtY29udGFpbmVyXCJcbiAgdGh5SW1hZ2VHcm91cFxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3RoZS1lZGl0b3ItZGlzYWJsZWQnOiB0aGVPcHRpb25zPy5kaXNhYmxlZCxcbiAgICAnbWF4LWhlaWdodCc6IG1heEhlaWdodFxuICB9XCJcbiAgW25nU3R5bGVdPVwieyAnbWF4LWhlaWdodCc6IG1heEhlaWdodCB9XCJcbj5cbiAgPHNsYXRlLWVkaXRhYmxlXG4gICAgY2xhc3M9XCJ0aGUtZWRpdG9yLXR5cG9cIlxuICAgIFtlZGl0b3JdPVwiZWRpdG9yXCJcbiAgICBbbmdNb2RlbF09XCJlZGl0b3JWYWx1ZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2RlY29yYXRlXT1cImRlY29yYXRlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwidGhlT3B0aW9ucz8ucGxhY2Vob2xkZXJcIlxuICAgIFtwbGFjZWhvbGRlckRlY29yYXRlXT1cInRoZU9wdGlvbnM/LnBsYWNlaG9sZGVyRGVjb3JhdGUgPyB0aGVPcHRpb25zPy5wbGFjZWhvbGRlckRlY29yYXRlIDogbnVsbFwiXG4gICAgW3JlbmRlckVsZW1lbnRdPVwicmVuZGVyRWxlbWVudFwiXG4gICAgW3JlbmRlclRleHRdPVwicmVuZGVyVGV4dFwiXG4gICAgW3JlbmRlckxlYWZdPVwicmVuZGVyTGVhZlwiXG4gICAgW3JlYWRvbmx5XT1cInRoZU9wdGlvbnM/LnJlYWRvbmx5IHx8IHRoZU9wdGlvbnM/LmRpc2FibGVkXCJcbiAgICBba2V5ZG93bl09XCJvbktleURvd25cIlxuICAgIFtjbGlja109XCJvbkNsaWNrXCJcbiAgICBbcGFzdGVdPVwib25TbGFQYXN0ZVwiXG4gICAgW2JlZm9yZUlucHV0XT1cIm9uU2xhQmVmb3JlSW5wdXRcIlxuICAgIFtibHVyXT1cIm9uU2xhQmx1clwiXG4gICAgW2ZvY3VzXT1cIm9uU2xhRm9jdXNcIlxuICAgIFtjb3B5XT1cIm9uU2xhQ29weVwiXG4gICAgW2N1dF09XCJvblNsYUN1dFwiXG4gICAgW2lzU3RyaWN0RGVjb3JhdGVdPVwiZmFsc2VcIlxuICAgIFtjb21wb3NpdGlvblN0YXJ0XT1cIm9uU2xhQ29tcG9zaXRpb25TdGFydFwiXG4gICAgW2NvbXBvc2l0aW9uRW5kXT1cIm9uU2xhQ29tcG9zaXRpb25FbmRcIlxuICAgIFtkcmFnU3RhcnRdPVwib25TbGFEcmFnU3RhcnRcIlxuICAgIFtkcmFnT3Zlcl09XCJvblNsYURyYWdPdmVyXCJcbiAgICBbZHJvcF09XCJvbkRyb3BcIlxuICAgIChtb3VzZWRvd24pPVwibW91c2Vkb3duKCRldmVudClcIlxuICAgIFtzY3JvbGxTZWxlY3Rpb25JbnRvVmlld109XCJzY3JvbGxTZWxlY3Rpb25JbnRvVmlld1wiXG4gID48L3NsYXRlLWVkaXRhYmxlPlxuICA8dGhlLWlubGluZS10b29sYmFyXG4gICAgKm5nSWY9XCIhdGhlT3B0aW9ucz8ucmVhZG9ubHkgJiYgdGhlT3B0aW9ucz8uaW5saW5lVG9vbGJhclZpc2libGVcIlxuICAgIFtlZGl0b3JdPVwiZWRpdG9yXCJcbiAgICBbdG9vbGJhckl0ZW1zXT1cInRvb2xiYXJFbnRpdHkuaW5saW5lXCJcbiAgPjwvdGhlLWlubGluZS10b29sYmFyPlxuICA8ZGl2ICpuZ0lmPVwiIXRoZU9wdGlvbnM/LnJlYWRvbmx5XCIgdGhlUXVpY2tJbnNlcnQgW2VkaXRvcl09XCJlZGl0b3JcIiBbaXNWaXNpYmxlXT1cInZpc2libGVRdWlja0luc2VydFBsdXNcIj48L2Rpdj5cbiAgPHRoZS10ZW1wbGF0ZSAjdGVtcGxhdGVJbnN0YW5jZT48L3RoZS10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
449
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vcGFja2FnZXMvc3JjL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULEtBQUssRUFFTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sWUFBWSxFQUlaLHVCQUF1QixFQUUxQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFRLFVBQVUsRUFBRSxZQUFZLEVBQXVCLEtBQUssRUFBRSxJQUFJLEVBQWEsTUFBTSxPQUFPLENBQUM7QUFDNUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUF3Qiw4QkFBOEIsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUEyQyxXQUFXLEVBQWlCLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRyxPQUFPLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFDSCxTQUFTLEVBQ1QsZUFBZSxFQUNmLGVBQWUsRUFDZixTQUFTLEVBQ1QsYUFBYSxFQUNiLHdC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QW1CLENBQUM7NEJBQ2pELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKLFFBQ0s7d0JBQ0YsS0FBSyxFQUFFLFlBQVk7d0JBQ25CLDZCQUE2QixFQUFFLHNCQUFzQjtxQkFDeEQsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07bVBBS3RDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRUcsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUdQLGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJL0Msb0JBQW9CO3NCQURuQixTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUlyRSxxQkFBcUI7c0JBRHBCLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBmb3J3YXJkUmVmLFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgTmdab25lLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBtaXhpblVuc3Vic2NyaWJlLCBNaXhpbkJhc2UgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgaXNLZXlIb3RrZXkgfSBmcm9tICdpcy1ob3RrZXknO1xuaW1wb3J0IHsgRWRpdG9yLCBUZXh0LCBUcmFuc2Zvcm1zLCBjcmVhdGVFZGl0b3IsIEVsZW1lbnQsIERlc2NlbmRhbnQsIFJhbmdlLCBQYXRoLCBOb2RlRW50cnkgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyB3aXRoSGlzdG9yeSB9IGZyb20gJ3NsYXRlLWhpc3RvcnknO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciwgRE9NUmFuZ2UsIFNsYXRlRXJyb3IsIGRlZmF1bHRTY3JvbGxTZWxlY3Rpb25JbnRvVmlldywgd2l0aEFuZ3VsYXIgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IFRoZU9wdGlvbnMsIERvbUV2ZW50RGF0YUluZm8sIFRoZUVkaXRvciwgVGhlRGF0YU1vZGUsIFRvb2xiYXJFbnRpdHksIFBsdWdpbktleXMgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWFya1R5cGVzLCBDTElQQk9BUkRfRk9STUFUX0tFWSwgaW5pdGlhbGl6ZURlZmF1bHRNZW51SWNvbnMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUaGVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZS90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgYXV0b0ZvY3VzLFxuICAgIGRhdGFEZXNlcmlhbGl6ZSxcbiAgICBkYXRhU2VyaWFsaXppbmcsXG4gICAgaWRDcmVhdG9yLFxuICAgIHNldEVkaXRvclVVSUQsXG4gICAgY29lcmNlUGl4ZWxzRnJvbUNzc1ZhbHVlLFxuICAgIFRIRV9FRElUT1JfUFJFVklPVVNfU0VMRUNUSU9OXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgd2l0aFRoZWlhLCBjcmVhdGVUb29sYmFyLCBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IGludGVybmFsUGx1Z2lucyB9IGZyb20gJy4vcGx1Z2lucyc7XG5pbXBvcnQgeyBzaG9ydGN1dHMgfSBmcm9tICcuL3Nob3J0Y3V0cyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4vcXVlcmllcyc7XG5pbXBvcnQgeyBUaGVQbHVnaW4gfSBmcm9tICcuL2ludGVyZmFjZXMvcGx1Z2lucy9wbHVnaW5zJztcbmltcG9ydCB7IFF1aWNrSW5zZXJ0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vcGx1Z2lucy9xdWljay1pbnNlcnQvcXVpY2staW5zZXJ0LnBsdWdpbic7XG5pbXBvcnQgeyBUaHlJY29uUmVnaXN0cnkgfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJy4vdXRpbHMvbG9kYXNoJztcbmltcG9ydCB7IGZyb21FdmVudCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGhlLWVkaXRvciwgdGhlRWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFRoZUNvbnRleHRTZXJ2aWNlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoZUVkaXRvckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGhlLWVkaXRvcicsXG4gICAgICAgICdbY2xhc3MudGhlLWVkaXRvci1yZWFkb25seV0nOiAndGhlT3B0aW9ucz8ucmVhZG9ubHknXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBUaGVFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBtaXhpblVuc3Vic2NyaWJlKE1peGluQmFzZSkgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICB2aXNpYmxlUXVpY2tJbnNlcnRQbHVzID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpIHRoZU9wdGlvbnM6IFRoZU9wdGlvbnM7XG5cbiAgICBASW5wdXQoKSB0aGVQbHVnaW5zOiBUaGVQbHVnaW5bXSA9IFtdO1xuXG4gICAgQElucHV0KCkgdGhlR2xvYmFsVG9vbGJhcj86IFRoZVRvb2xiYXJDb21wb25lbnQ7XG5cbiAgICBASW5wdXQoKSB0aGVEZWNvcmF0ZTogKGVkaXRvcjogVGhlRWRpdG9yLCBub2RlRW50cnk6IE5vZGVFbnRyeSkgPT4gUmFuZ2VbXTtcblxuICAgIEBJbnB1dCgpIHRoZU9uRXJyb3I/OiAoZXJyb3I6IFNsYXRlRXJyb3IpID0+IHZvaWQ7XG5cbiAgICBAT3V0cHV0KCkgdGhlT25TYXZlOiBFdmVudEVtaXR0ZXI8RGVzY2VuZGFudFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGVzY2VuZGFudFtdPigpO1xuXG4gICAgQE91dHB1dCgpIHRoZU9uRE9NRXZlbnQ6IEV2ZW50RW1pdHRlcjx7IG5hdGl2ZUV2ZW50OiBFdmVudDsgZGF0YT86IERvbUV2ZW50RGF0YUluZm8gfT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgdGhlRWRpdG9yQ3JlYXRlZDogRXZlbnRFbWl0dGVyPEVkaXRvcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgdGhlVXBsb2FkaW5nU3RhdHVzOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIHRydWUg5LiK5Lyg57uT5p2fIGZhbHNlIOS4iuS8oOS4rVxuXG4gICAgQFZpZXdDaGlsZCgndGVtcGxhdGVJbnN0YW5jZScsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgdGVtcGxhdGVJbnN0YW5jZTogVGhlVGVtcGxhdGVDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCd0aGVFZGl0YWJsZUNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgdGhlRWRpdGFibGVDb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnZ2xvYmFsVG9vbGJhcicpXG4gICAgZ2xvYmFsVG9vbGJhckluc3RhbmNlOiBUaGVUb29sYmFyQ29tcG9uZW50O1xuXG4gICAgdG9vbGJhckVudGl0eTogVG9vbGJhckVudGl0eTtcblxuICAgIGVkaXRvcjogVGhlRWRpdG9yO1xuXG4gICAgZWRpdG9yVmFsdWU6IERlc2NlbmRhbnRbXTtcblxuICAgIGdsb2JhbFRvb2xiYXJDbGFzczogc3RyaW5nW107XG5cbiAgICBkZWNvcmF0ZTogKG5vZGVFbnRyeTogTm9kZUVudHJ5KSA9PiBSYW5nZVtdO1xuXG4gICAgZ2V0IHRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZSgpOiBUaGVUb29sYmFyQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGhlR2xvYmFsVG9vbGJhciA/IHRoaXMudGhlR2xvYmFsVG9vbGJhciA6IHRoaXMuZ2xvYmFsVG9vbGJhckluc3RhbmNlO1xuICAgIH1cblxuICAgIGdldCBtYXhIZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRoZU9wdGlvbnM/Lm1heEhlaWdodCA/IGAke3RoaXMudGhlT3B0aW9ucz8ubWF4SGVpZ2h0fXB4YCA6IG51bGw7XG4gICAgfVxuXG4gICAgZWxlbWVudFRvSHRtbDogV2Vha01hcDxFbGVtZW50LCBzdHJpbmc+ID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdGhlQ29udGV4dFNlcnZpY2U6IFRoZUNvbnRleHRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGljb25SZWdpc3RyeTogVGh5SWNvblJlZ2lzdHJ5XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVFdmVudHMoKTtcbiAgICAgICAgaW5pdGlhbGl6ZURlZmF1bHRNZW51SWNvbnModGhpcy5pY29uUmVnaXN0cnkpO1xuICAgICAgICB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLnVwbG9hZGluZ1N0YXR1cyQuc3Vic2NyaWJlKGlzVXBsb2FkaW5nID0+IHtcbiAgICAgICAgICAgIGlmIChpc1VwbG9hZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMudGhlVXBsb2FkaW5nU3RhdHVzLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLnVwbG9hZGluZ0ZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRoZVVwbG9hZGluZ1N0YXR1cy5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uRXJyb3JIYW5kbGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBvcHRpb25zID0gY2hhbmdlcy50aGVPcHRpb25zO1xuXG4gICAgICAgIGlmIChvcHRpb25zICYmICFvcHRpb25zLmZpcnN0Q2hhbmdlICYmICFpc0VxdWFsKG9wdGlvbnMuY3VycmVudFZhbHVlPy50b29sYmFyLCBvcHRpb25zLnByZXZpb3VzVmFsdWU/LnRvb2xiYXIpKSB7XG4gICAgICAgICAgICB0aGlzLnRvb2xiYXJDYWxjdWxhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmN1cnJlbnRWYWx1ZT8ucmVhZG9ubHkgIT09IG9wdGlvbnMucHJldmlvdXNWYWx1ZT8ucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlBdXRvRm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlc1sndGhlRGVjb3JhdGUnXSkge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZURlY29yYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yPy5zZWxlY3Rpb24gJiYgKG9wdGlvbnM/LmN1cnJlbnRWYWx1ZT8ucmVhZG9ubHkgfHwgb3B0aW9ucz8uY3VycmVudFZhbHVlPy5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVzZWxlY3QodGhpcy5lZGl0b3IpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIFRIRV9FRElUT1JfUFJFVklPVVNfU0VMRUNUSU9OLmRlbGV0ZSh0aGlzLmVkaXRvcik7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdFBsdWdpbnMgPSBpbnRlcm5hbFBsdWdpbnMoKTtcbiAgICAgICAgY29uc3QgcGx1Z2lucyA9IFsuLi5kZWZhdWx0UGx1Z2lucywgLi4udGhpcy50aGVQbHVnaW5zXTtcbiAgICAgICAgdGhpcy5lZGl0b3IgPSB3aXRoVGhlaWEod2l0aEhpc3Rvcnkod2l0aEFuZ3VsYXIoY3JlYXRlRWRpdG9yKCksIENMSVBCT0FSRF9GT1JNQVRfS0VZKSksIHBsdWdpbnMpO1xuICAgICAgICB0aGlzLmdlbmVyYXRlRGVjb3JhdGUoKTtcbiAgICAgICAgdGhpcy5lZGl0b3IuZGlzYWJsZWQgPSB0aGlzLnRoZU9wdGlvbnM/LmRpc2FibGVkO1xuICAgICAgICB0aGlzLmVkaXRvci5leHRyYUVsZW1lbnRPcHRpb25zID0gdGhpcy50aGVPcHRpb25zPy5leHRyYUVsZW1lbnRPcHRpb25zO1xuICAgICAgICB0aGlzLmVkaXRvci5vcHRpb25zID0gdGhpcy50aGVPcHRpb25zO1xuICAgICAgICBzZXRFZGl0b3JVVUlEKHRoaXMuZWRpdG9yLCBpZENyZWF0b3IoKSk7XG4gICAgICAgIHRoaXMudGhlQ29udGV4dFNlcnZpY2UuaW5pdGlhbGl6ZSh7XG4gICAgICAgICAgICB0aGVPcHRpb25zOiB0aGlzLnRoZU9wdGlvbnMsXG4gICAgICAgICAgICBuYXRpdmVFbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudmlld0NvbnRhaW5lclJlZlxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplT3B0aW9ucygpO1xuICAgICAgICB0aGlzLnRvb2xiYXJDYWxjdWxhdGUoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBZb3UgbmVlZCB0byB3YWl0IGZvciB0aGUgZWRpdG9yIHJlbmRlcmluZyB0byBjb21wbGV0ZVxuICAgICAgICAgICAgLy8gYmVmb3JlIHRyaWdnZXJpbmcgdGhlIGV4dGVybmFsIHRvb2xiYXIgYXNzaWdubWVudCBkZXRlY3Rpb25cbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsVG9vbGJhckluaXQoKTtcbiAgICAgICAgICAgIHRoaXMudGhlRWRpdG9yQ3JlYXRlZC5lbWl0KHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgIHRoaXMuYXBwbHlBdXRvRm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHF1aWNrSW5zZXJ0UGx1Z2luID0gZ2V0UGx1Z2luT3B0aW9uczxRdWlja0luc2VydFBsdWdpbk9wdGlvbnM+KHRoaXMuZWRpdG9yLCBQbHVnaW5LZXlzLnF1aWNrSW5zZXJ0KTtcbiAgICAgICAgLy8gcXVpY2tJbnNlcnRcbiAgICAgICAgaWYgKHF1aWNrSW5zZXJ0UGx1Z2luLmRpc2FibGVkIHx8IHF1aWNrSW5zZXJ0UGx1Z2luLmRpc2FibGVkUGx1cykge1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlUXVpY2tJbnNlcnRQbHVzID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0aWFsaXplT3B0aW9ucygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRoZU9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudGhlT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICByZWFkb25seTogZmFsc2UsXG4gICAgICAgICAgICAgICAgbW9kZTogVGhlRGF0YU1vZGUuaHRtbCxcbiAgICAgICAgICAgICAgICBuZWVkZWRTY3JvbGxJbnRvVmlldzogKCkgPT4gdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMudGhlT3B0aW9ucy5tb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnRoZU9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy50aGVPcHRpb25zLFxuICAgICAgICAgICAgICAgIG1vZGU6IFRoZURhdGFNb2RlLmh0bWxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0aWFsaXplRXZlbnRzKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnQsICdtb3VzZWRvd24nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUkKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRvci5nbG9iYWxNb3VzZWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhcHBseUF1dG9Gb2N1cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnRoZU9wdGlvbnM/LmRpc2FibGVkICYmICF0aGlzLnRoZU9wdGlvbnM/LnJlYWRvbmx5KSB7XG4gICAgICAgICAgICBhdXRvRm9jdXModGhpcy5lZGl0b3IsIHRoaXMudGhlT3B0aW9ucz8uYXV0b0ZvY3VzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvb2xiYXJDYWxjdWxhdGUoKSB7XG4gICAgICAgIGNvbnN0IHsgZ2xvYmFsVG9vbGJhckNsYXNzLCB0b29sYmFyRW50aXR5IH0gPSBjcmVhdGVUb29sYmFyKHRoaXMuZWRpdG9yLCB0aGlzPy50aGVPcHRpb25zPy50b29sYmFyKTtcbiAgICAgICAgdGhpcy5nbG9iYWxUb29sYmFyQ2xhc3MgPSBnbG9iYWxUb29sYmFyQ2xhc3M7XG4gICAgICAgIHRoaXMudG9vbGJhckVudGl0eSA9IHRvb2xiYXJFbnRpdHk7XG4gICAgfVxuXG4gICAgZ2xvYmFsVG9vbGJhckluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRoZUdsb2JhbFRvb2xiYXIpIHtcbiAgICAgICAgICAgIHRoaXMudGhlR2xvYmFsVG9vbGJhckluc3RhbmNlLmVkaXRvciA9IHRoaXMuZWRpdG9yO1xuICAgICAgICAgICAgdGhpcy50aGVHbG9iYWxUb29sYmFySW5zdGFuY2UudG9vbGJhckl0ZW1zID0gdGhpcy50b29sYmFyRW50aXR5Lmdsb2JhbDtcbiAgICAgICAgICAgIHRoaXMudGhlR2xvYmFsVG9vbGJhckluc3RhbmNlLmNvbnRhaW5lckNsYXNzID0gdGhpcy5nbG9iYWxUb29sYmFyQ2xhc3M7XG4gICAgICAgICAgICB0aGlzLnRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZS5hbGlnbiA9IHRoaXM/LnRoZU9wdGlvbnM/LnRvb2xiYXI/LmFsaWduO1xuICAgICAgICAgICAgdGhpcy50aGVHbG9iYWxUb29sYmFySW5zdGFuY2Uuc2V0VG9vbGJhckNsYXNzKCk7XG4gICAgICAgICAgICB0aGlzLnRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZS5yZW5kZXJUb29sYmFyVmlldygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgRGVzY2VuZGFudFtdKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBkYXRhRGVzZXJpYWxpemUodGhpcy50aGVPcHRpb25zPy5tb2RlLCB2YWx1ZSk7XG4gICAgICAgIC8vIGRhdGEtZGVzZXJpYWxpemVcbiAgICAgICAgdGhpcy5lZGl0b3JWYWx1ZSA9IGRhdGE7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy50aGVPcHRpb25zLnJlYWRvbmx5ICYmIEFuZ3VsYXJFZGl0b3IuaXNGb2N1c2VkKHRoaXMuZWRpdG9yKSAmJiB0aGlzLmVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmVkaXRvci5zZWxlY3Rpb247XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZXNlbGVjdCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIHNlbGVjdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgICB9XG5cbiAgICBzY3JvbGxTZWxlY3Rpb25JbnRvVmlldyA9IChlOiBUaGVFZGl0b3IsIGRvbVJhbmdlOiBET01SYW5nZSkgPT4ge1xuICAgICAgICBjb25zdCB7IG5lZWRlZFNjcm9sbEludG9WaWV3IH0gPSB0aGlzLnRoZU9wdGlvbnM7XG4gICAgICAgIGlmIChuZWVkZWRTY3JvbGxJbnRvVmlldyAmJiAhbmVlZGVkU2Nyb2xsSW50b1ZpZXcodGhpcy5lZGl0b3IpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdFNjcm9sbFNlbGVjdGlvbkludG9WaWV3KGUsIGRvbVJhbmdlKTtcbiAgICB9O1xuXG4gICAgdmFsdWVDaGFuZ2UodmFsdWU6IERlc2NlbmRhbnRbXSkge1xuICAgICAgICB0aGlzLnRoZUdsb2JhbFRvb2xiYXJJbnN0YW5jZT8uc2VsZWN0aW9uQ2hhbmdlKHRoaXMuZWRpdG9yKTtcblxuICAgICAgICBpZiAodGhpcy5lZGl0b3JWYWx1ZSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvclZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgLy8gc2VyaWFsaXppbmdcbiAgICAgICAgbGV0IG5ld1ZhbHVlID0gdGhpcy5zZXJpYWxpemluZ1ZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKG5ld1ZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXJpYWxpemluZ1ZhbHVlKHZhbHVlOiBEZXNjZW5kYW50W10pOiBzdHJpbmcgfCBEZXNjZW5kYW50W10ge1xuICAgICAgICBpZiAodGhpcy50aGVPcHRpb25zPy5tb2RlID09PSBUaGVEYXRhTW9kZS5odG1sKSB7XG4gICAgICAgICAgICBsZXQgaHRtbFZhbHVlID0gJyc7XG4gICAgICAgICAgICBjb25zdCBpc0VtcHR5Q29udGVudCA9IFRoZVF1ZXJpZXMuaXNFbXB0eUNvbnRlbnQodmFsdWUpO1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBlbGVtZW50SHRtbCA9IHRoaXMuZWxlbWVudFRvSHRtbC5nZXQoZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRIdG1sID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2VyaWFsaXppbmdcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudEh0bWwgPSBkYXRhU2VyaWFsaXppbmcodGhpcy50aGVPcHRpb25zPy5tb2RlLCBbZWxlbWVudF0pIGFzIHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgaHRtbFZhbHVlICs9IGVsZW1lbnRIdG1sO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRUb0h0bWwuc2V0KGVsZW1lbnQsIGVsZW1lbnRIdG1sKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBodG1sVmFsdWUgKz0gZWxlbWVudEh0bWw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBpc0VtcHR5Q29udGVudCA/ICcnIDogaHRtbFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBvbkVycm9ySGFuZGxlcigpIHtcbiAgICAgICAgdGhpcy5lZGl0b3Iub25FcnJvciA9IChlcnJvckRhdGE6IFNsYXRlRXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRoZU9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRoZU9uRXJyb3IoZXJyb3JEYXRhKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyb3JEYXRhLm5hdGl2ZUVycm9yKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvckRhdGEubmF0aXZlRXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJlbmRlckVsZW1lbnQgPSAoZWxlbWVudDogRWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGVJbnN0YW5jZS5yZW5kZXJFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmVkaXRvci5yZW5kZXJFbGVtZW50KGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gY29tcG9uZW50ID8gY29tcG9uZW50IDogdGVtcGxhdGU7XG4gICAgfTtcblxuICAgIHJlbmRlckxlYWYgPSAodGV4dDogVGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBsZWFmID0gdGhpcy5lZGl0b3IucmVuZGVyTGVhZih0ZXh0KTtcbiAgICAgICAgcmV0dXJuIGxlYWYgPyBsZWFmIDogbnVsbDtcbiAgICB9O1xuXG4gICAgcmVuZGVyVGV4dCA9ICh0ZXh0OiBUZXh0KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIE1hcmtUeXBlcykge1xuICAgICAgICAgICAgaWYgKHRleHRbTWFya1R5cGVzW2tleV1dKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFRoZVRleHRDb21wb25lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRleHQudGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBnZW5lcmF0ZURlY29yYXRlKCkge1xuICAgICAgICB0aGlzLmRlY29yYXRlID0gKG5vZGVFbnRyeTogTm9kZUVudHJ5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBkZWNvcmF0aW9ucyA9IFtdO1xuXG4gICAgICAgICAgICBpZiAodGhpcy50aGVEZWNvcmF0ZSkge1xuICAgICAgICAgICAgICAgIGRlY29yYXRpb25zLnB1c2goLi4udGhpcy50aGVEZWNvcmF0ZSh0aGlzLmVkaXRvciwgbm9kZUVudHJ5KSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkZWNvcmF0aW9ucztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvbktleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgc2hvcnRjdXRzKHRoaXMuZWRpdG9yLCBldmVudCk7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudCxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBrZXk6IGV2ZW50LmtleVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBBbmd1bGFyRWRpdG9yLm9uS2V5ZG93bih0aGlzLmVkaXRvciwgZXZlbnQpO1xuXG4gICAgICAgIGlmIChpc0tleUhvdGtleSgnbW9kK3MnLCBldmVudCkgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50aGVPblNhdmUuZW1pdCh0aGlzLmVkaXRvclZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0tleUhvdGtleSgnbW9kK2EnLCBldmVudCkgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2VsZWN0QWxsKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgbW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGVkaXRhYmxlRWxlbWVudCA9IEFuZ3VsYXJFZGl0b3IudG9ET01Ob2RlKHRoaXMuZWRpdG9yLCB0aGlzLmVkaXRvcik7XG4gICAgICAgIGNvbnN0IHJlY3RFZGl0YWJsZSA9IGVkaXRhYmxlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgYWJzb2x1dGVFbGVtZW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChldmVudC54LCBldmVudC55KTtcbiAgICAgICAgaWYgKCFlZGl0YWJsZUVsZW1lbnQuaXNFcXVhbE5vZGUoYWJzb2x1dGVFbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkRWxlbWVudCA9IGFic29sdXRlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2xhdGUtYmxvY2stY2FyZCcpO1xuICAgICAgICAgICAgaWYgKCFibG9ja0NhcmRFbGVtZW50KSByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHsgcGFkZGluZ1JpZ2h0IH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlZGl0YWJsZUVsZW1lbnQsIG51bGwpO1xuICAgICAgICBjb25zdCBwYWRkaW5nUmlnaHRQaXhlbHMgPSBjb2VyY2VQaXhlbHNGcm9tQ3NzVmFsdWUocGFkZGluZ1JpZ2h0KTtcbiAgICAgICAgY29uc3QgZmFrZVJpZ2h0WCA9IHJlY3RFZGl0YWJsZS5yaWdodCAtIHBhZGRpbmdSaWdodFBpeGVscyAtIDUwO1xuICAgICAgICBsZXQgcmVsYXRpdmVFbGVtZW50ID0gZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludChmYWtlUmlnaHRYLCBldmVudC55KTtcbiAgICAgICAgbGV0IHJlbGF0aXZlQmxvY2tDYXJkRWxlbWVudCA9IHJlbGF0aXZlRWxlbWVudC5jbG9zZXN0KCcuc2xhdGUtYmxvY2stY2FyZCcpO1xuICAgICAgICBpZiAocmVsYXRpdmVCbG9ja0NhcmRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBjZW50ZXJYID0gcmVjdEVkaXRhYmxlLnggKyByZWN0RWRpdGFibGUud2lkdGggLyAyO1xuICAgICAgICAgICAgY29uc3QgYmxvY2tDYXJkRW50cnkgPSBBbmd1bGFyRWRpdG9yLnRvU2xhdGVDYXJkRW50cnkodGhpcy5lZGl0b3IsIHJlbGF0aXZlQmxvY2tDYXJkRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCk7XG4gICAgICAgICAgICBpZiAoYmxvY2tDYXJkRW50cnkgJiYgdGhpcy5lZGl0b3IuaXNCbG9ja0NhcmQoYmxvY2tDYXJkRW50cnlbMF0pKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLm1vdmVCbG9ja0NhcmQodGhpcy5lZGl0b3IsIGJsb2NrQ2FyZEVudHJ5WzBdLCB7IGRpcmVjdGlvbjogZXZlbnQueCA8IGNlbnRlclggPyAnbGVmdCcgOiAncmlnaHQnIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlU2VsZWN0QWxsKCkge1xuICAgICAgICBsZXQgbm9kZTtcbiAgICAgICAgaWYgKCF0aGlzLmVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0RW5kU2VsZWN0aW9uKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSBSYW5nZS5lZGdlcyh0aGlzLmVkaXRvci5zZWxlY3Rpb24pO1xuICAgICAgICBjb25zdCBzZWxlY3Rpb25SYW5nZSA9IEVkaXRvci5yYW5nZSh0aGlzLmVkaXRvciwgc3RhcnQsIGVuZCk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckJsb2NrcyA9IFRoZVF1ZXJpZXMuZ2V0Q29udGFpbmVyQmxvY2tzKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250YWluZXJCbG9ja3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIFtub2RlXSA9IFRoZVF1ZXJpZXMuZ2V0Tm9kZXNCeVR5cGUodGhpcy5lZGl0b3IsIGNvbnRhaW5lckJsb2Nrc1tpXSk7XG4gICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIHBhdGhdID0gbm9kZTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1N0YXJ0UGFyZW50ID0gUGF0aC5lcXVhbHMocGF0aCwgc3RhcnQucGF0aC5zbGljZSgwLCBwYXRoLmxlbmd0aCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzRW5kUGFyZW50ID0gUGF0aC5lcXVhbHMocGF0aCwgZW5kLnBhdGguc2xpY2UoMCwgcGF0aC5sZW5ndGgpKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNTdGFydFBhcmVudCAmJiBpc0VuZFBhcmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlUmFuZ2UgPSBFZGl0b3IucmFuZ2UodGhpcy5lZGl0b3IsIHBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVJhbmdlLmVxdWFscyhub2RlUmFuZ2UsIHNlbGVjdGlvblJhbmdlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QodGhpcy5lZGl0b3IsIG5vZGVSYW5nZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBub2RlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdCh0aGlzLmVkaXRvciwgW10pO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBvbkNsaWNrID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIEFuZ3VsYXJFZGl0b3Iub25DbGljayh0aGlzLmVkaXRvciwgZXZlbnQpO1xuICAgICAgICB0aGlzLnRoZU9uRE9NRXZlbnQuZW1pdCh7XG4gICAgICAgICAgICBuYXRpdmVFdmVudDogZXZlbnRcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIG9uU2xhUGFzdGUgPSAoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldFRleHRBbmRKU09OKGV2ZW50LmNsaXBib2FyZERhdGEpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUJlZm9yZUlucHV0ID0gKFxuICAgICAgICBldmVudDogRXZlbnQgJiB7XG4gICAgICAgICAgICBpbnB1dFR5cGU6IHN0cmluZztcbiAgICAgICAgICAgIGRhdGE6IHN0cmluZyB8IG51bGw7XG4gICAgICAgICAgICBkYXRhVHJhbnNmZXI6IERhdGFUcmFuc2ZlciB8IG51bGw7XG4gICAgICAgIH1cbiAgICApID0+IHtcbiAgICAgICAgbGV0IGRhdGEgPSB7XG4gICAgICAgICAgICBpbnB1dFR5cGU6IGV2ZW50LmlucHV0VHlwZSxcbiAgICAgICAgICAgIHRleHQ6IChldmVudC5kYXRhIHx8IGV2ZW50LmRhdGFUcmFuc2ZlcikgYXMgc3RyaW5nXG4gICAgICAgIH07XG4gICAgICAgIGlmIChldmVudC5pbnB1dFR5cGUgPT09ICdpbnNlcnRGcm9tUGFzdGUnKSB7XG4gICAgICAgICAgICBkYXRhID0ge1xuICAgICAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5nZXRUZXh0QW5kSlNPTigoZXZlbnQuZGF0YSB8fCBldmVudC5kYXRhVHJhbnNmZXIpIGFzIERhdGFUcmFuc2ZlcilcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgb25TbGFCbHVyID0gKGV2ZW50OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgb25TbGFGb2N1cyA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUN1dCA9IChldmVudDogQ2xpcGJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy50aGVPbkRPTUV2ZW50LmVtaXQoe1xuICAgICAgICAgICAgbmF0aXZlRXZlbnQ6IGV2ZW50XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBvblNsYUNvcHkgPSAoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiB7fTtcblxuICAgIG9uU2xhQ29tcG9zaXRpb25TdGFydCA9IChldmVudDogQ29tcG9zaXRpb25FdmVudCkgPT4ge307XG5cbiAgICBvblNsYUNvbXBvc2l0aW9uRW5kID0gKGV2ZW50OiBDb21wb3NpdGlvbkV2ZW50KSA9PiB7fTtcblxuICAgIG9uU2xhRHJhZ1N0YXJ0ID0gKGV2ZW50OiBEcmFnRXZlbnQpID0+IHt9O1xuXG4gICAgb25TbGFEcmFnT3ZlciA9IChldmVudDogRHJhZ0V2ZW50KSA9PiB7fTtcblxuICAgIG9uRHJvcCA9IChldmVudDogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudGhlT25ET01FdmVudC5lbWl0KHtcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBldmVudFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgZ2V0VGV4dEFuZEpTT04oZGF0YTogRGF0YVRyYW5zZmVyKSB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZGF0YS5nZXREYXRhKGBhcHBsaWNhdGlvbi8ke0NMSVBCT0FSRF9GT1JNQVRfS0VZfWApO1xuICAgICAgICBsZXQganNvbiA9IFtdO1xuICAgICAgICBpZiAoZnJhZ21lbnQpIHtcbiAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudCh3aW5kb3cuYXRvYihmcmFnbWVudCkpKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0ID0gZGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBqc29uLFxuICAgICAgICAgICAgdGV4dFxuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjx0aGUtdG9vbGJhclxuICAqbmdJZj1cIiF0aGVPcHRpb25zPy5yZWFkb25seSAmJiAhdGhlR2xvYmFsVG9vbGJhclwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAndGhlLXRvb2xiYXItZGlzYWJsZWQnOiB0aGVPcHRpb25zPy5kaXNhYmxlZFxuICB9XCJcbiAgI2dsb2JhbFRvb2xiYXJcbiAgW2VkaXRvcl09XCJlZGl0b3JcIlxuICBbdG9vbGJhckl0ZW1zXT1cInRvb2xiYXJFbnRpdHkuZ2xvYmFsXCJcbiAgW2NvbnRhaW5lckNsYXNzXT1cImdsb2JhbFRvb2xiYXJDbGFzc1wiXG4gIFthbGlnbl09XCJ0aGVPcHRpb25zPy50b29sYmFyPy5hbGlnblwiXG4+PC90aGUtdG9vbGJhcj5cblxuPGRpdlxuICAjdGhlRWRpdGFibGVDb250YWluZXJcbiAgY2xhc3M9XCJ0aGUtZWRpdGFibGUtY29udGFpbmVyXCJcbiAgdGh5SW1hZ2VHcm91cFxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3RoZS1lZGl0b3ItZGlzYWJsZWQnOiB0aGVPcHRpb25zPy5kaXNhYmxlZCxcbiAgICAnbWF4LWhlaWdodCc6IG1heEhlaWdodFxuICB9XCJcbiAgW25nU3R5bGVdPVwieyAnbWF4LWhlaWdodCc6IG1heEhlaWdodCB9XCJcbj5cbiAgPHNsYXRlLWVkaXRhYmxlXG4gICAgY2xhc3M9XCJ0aGUtZWRpdG9yLXR5cG9cIlxuICAgIFtlZGl0b3JdPVwiZWRpdG9yXCJcbiAgICBbbmdNb2RlbF09XCJlZGl0b3JWYWx1ZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2RlY29yYXRlXT1cImRlY29yYXRlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwidGhlT3B0aW9ucz8ucGxhY2Vob2xkZXJcIlxuICAgIFtwbGFjZWhvbGRlckRlY29yYXRlXT1cInRoZU9wdGlvbnM/LnBsYWNlaG9sZGVyRGVjb3JhdGUgPyB0aGVPcHRpb25zPy5wbGFjZWhvbGRlckRlY29yYXRlIDogbnVsbFwiXG4gICAgW3JlbmRlckVsZW1lbnRdPVwicmVuZGVyRWxlbWVudFwiXG4gICAgW3JlbmRlclRleHRdPVwicmVuZGVyVGV4dFwiXG4gICAgW3JlbmRlckxlYWZdPVwicmVuZGVyTGVhZlwiXG4gICAgW3JlYWRvbmx5XT1cInRoZU9wdGlvbnM/LnJlYWRvbmx5IHx8IHRoZU9wdGlvbnM/LmRpc2FibGVkXCJcbiAgICBba2V5ZG93bl09XCJvbktleURvd25cIlxuICAgIFtjbGlja109XCJvbkNsaWNrXCJcbiAgICBbcGFzdGVdPVwib25TbGFQYXN0ZVwiXG4gICAgW2JlZm9yZUlucHV0XT1cIm9uU2xhQmVmb3JlSW5wdXRcIlxuICAgIFtibHVyXT1cIm9uU2xhQmx1clwiXG4gICAgW2ZvY3VzXT1cIm9uU2xhRm9jdXNcIlxuICAgIFtjb3B5XT1cIm9uU2xhQ29weVwiXG4gICAgW2N1dF09XCJvblNsYUN1dFwiXG4gICAgW2lzU3RyaWN0RGVjb3JhdGVdPVwiZmFsc2VcIlxuICAgIFtjb21wb3NpdGlvblN0YXJ0XT1cIm9uU2xhQ29tcG9zaXRpb25TdGFydFwiXG4gICAgW2NvbXBvc2l0aW9uRW5kXT1cIm9uU2xhQ29tcG9zaXRpb25FbmRcIlxuICAgIFtkcmFnU3RhcnRdPVwib25TbGFEcmFnU3RhcnRcIlxuICAgIFtkcmFnT3Zlcl09XCJvblNsYURyYWdPdmVyXCJcbiAgICBbZHJvcF09XCJvbkRyb3BcIlxuICAgIChtb3VzZWRvd24pPVwibW91c2Vkb3duKCRldmVudClcIlxuICAgIFtzY3JvbGxTZWxlY3Rpb25JbnRvVmlld109XCJzY3JvbGxTZWxlY3Rpb25JbnRvVmlld1wiXG4gID48L3NsYXRlLWVkaXRhYmxlPlxuICA8dGhlLWlubGluZS10b29sYmFyXG4gICAgKm5nSWY9XCIhdGhlT3B0aW9ucz8ucmVhZG9ubHkgJiYgdGhlT3B0aW9ucz8uaW5saW5lVG9vbGJhclZpc2libGVcIlxuICAgIFtlZGl0b3JdPVwiZWRpdG9yXCJcbiAgICBbdG9vbGJhckl0ZW1zXT1cInRvb2xiYXJFbnRpdHkuaW5saW5lXCJcbiAgPjwvdGhlLWlubGluZS10b29sYmFyPlxuICA8ZGl2ICpuZ0lmPVwiIXRoZU9wdGlvbnM/LnJlYWRvbmx5XCIgdGhlUXVpY2tJbnNlcnQgW2VkaXRvcl09XCJlZGl0b3JcIiBbaXNWaXNpYmxlXT1cInZpc2libGVRdWlja0luc2VydFBsdXNcIj48L2Rpdj5cbiAgPHRoZS10ZW1wbGF0ZSAjdGVtcGxhdGVJbnN0YW5jZT48L3RoZS10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { SlateModule } from 'slate-angular';
|
|
5
|
+
import { TheDefaultElementComponent } from './components/element/element.component';
|
|
6
|
+
import { TheTemplateComponent } from './components/template/template.component';
|
|
7
|
+
import { TheTextComponent } from './components/text/text.component';
|
|
8
|
+
import { TheToolbarDropdownComponent } from './components/toolbar-dropdown/toolbar-dropdown.component';
|
|
9
|
+
import { TheToolbarItemComponent } from './components/toolbar-item/toolbar-item.component';
|
|
10
|
+
import { TheToolbarComponent } from './components/toolbar/toolbar.component';
|
|
11
|
+
import { TheEditorComponent } from './editor.component';
|
|
12
|
+
import { ElementClassPipe, ElementStylePipe, PluginMenuPipe } from './pipes';
|
|
13
|
+
import { TheBlockquoteComponent } from './plugins/blockquote/blockquote.component';
|
|
14
|
+
import { TheHrComponent } from './plugins/hr/hr.component';
|
|
15
|
+
import { TheImageComponent } from './plugins/image/image.component';
|
|
16
|
+
import { TheBulletedListComponent } from './plugins/list/components/bulleted-list.component';
|
|
17
|
+
import { TheListItemComponent } from './plugins/list/components/list-item.component';
|
|
18
|
+
import { TheNumberedListComponent } from './plugins/list/components/numbered-list.component';
|
|
19
|
+
import { TheTodoItemComponent } from './plugins/todo-item/todo-item.component';
|
|
20
|
+
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
21
|
+
import { CodemirrorModule } from 'ng-codemirror';
|
|
22
|
+
import { ThyActionModule } from 'ngx-tethys/action';
|
|
23
|
+
import { ThyAlertModule } from 'ngx-tethys/alert';
|
|
24
|
+
import { ThyAutocompleteModule } from 'ngx-tethys/autocomplete';
|
|
25
|
+
import { ThyAvatarModule } from 'ngx-tethys/avatar';
|
|
26
|
+
import { ThyButtonModule } from 'ngx-tethys/button';
|
|
27
|
+
import { ThyDialogModule } from 'ngx-tethys/dialog';
|
|
28
|
+
import { ThyDividerModule } from 'ngx-tethys/divider';
|
|
29
|
+
import { ThyDropdownModule } from 'ngx-tethys/dropdown';
|
|
30
|
+
import { ThyFormModule } from 'ngx-tethys/form';
|
|
31
|
+
import { ThyIconModule } from 'ngx-tethys/icon';
|
|
32
|
+
import { ThyImageModule } from 'ngx-tethys/image';
|
|
33
|
+
import { ThyInputModule } from 'ngx-tethys/input';
|
|
34
|
+
import { ThyListModule } from 'ngx-tethys/list';
|
|
35
|
+
import { ThyNavModule } from 'ngx-tethys/nav';
|
|
36
|
+
import { ThyNotifyModule } from 'ngx-tethys/notify';
|
|
37
|
+
import { ThyProgressModule } from 'ngx-tethys/progress';
|
|
38
|
+
import { ThyResizableModule } from 'ngx-tethys/resizable';
|
|
39
|
+
import { ThySelectModule } from 'ngx-tethys/select';
|
|
40
|
+
import { ThySharedModule } from 'ngx-tethys/shared';
|
|
41
|
+
import { ThySwitchModule } from 'ngx-tethys/switch';
|
|
42
|
+
import { ThyTooltipModule } from 'ngx-tethys/tooltip';
|
|
43
|
+
import { ThyInputNumberModule } from 'ngx-tethys/input-number';
|
|
44
|
+
import { TheColumnSizeModule } from './components/column-resize/column-resize.module';
|
|
45
|
+
import { TheContextMenuComponent } from './components/contextmenu/contextmenu.component';
|
|
46
|
+
import { TheConversionHintComponent } from './components/conversion-hint/conversion-hint.component';
|
|
47
|
+
import { TheInlineToolbarComponent } from './components/inline-toolbar/inline-toolbar.component';
|
|
48
|
+
import { TheTableSelectComponent } from './components/table-select/table-select.component';
|
|
49
|
+
import { TheToolbarGroupComponent } from './components/toolbar-group/toolbar-group.component';
|
|
50
|
+
import { TheToolbarGroupToken } from './constants/toolbar';
|
|
51
|
+
import { THE_MODE_PROVIDER } from './interfaces';
|
|
52
|
+
import { TheCodeComponent } from './plugins/code/code.component';
|
|
53
|
+
import { TheColorToolbarItemComponent } from './plugins/color/toolbar-item.component';
|
|
54
|
+
import { TheInlineCodeComponent } from './plugins/inline-code/inline-code.component';
|
|
55
|
+
import { TheLinkEditComponent } from './plugins/link/edit/link-edit.component';
|
|
56
|
+
import { TheLinkHoverComponent } from './plugins/link/hover/link-hover.component';
|
|
57
|
+
import { TheLinkComponent } from './plugins/link/link.component';
|
|
58
|
+
import { TheQuickInsertComponent } from './plugins/quick-insert/components/quick-insert.component';
|
|
59
|
+
import { TheInsertMarkComponent } from './plugins/table/components/insert-mark/insert-mark.component';
|
|
60
|
+
import { TheTableRowComponent } from './plugins/table/components/row/row.component';
|
|
61
|
+
import { TheTableComponent } from './plugins/table/components/table.component';
|
|
62
|
+
import { TheTdComponent } from './plugins/table/components/td/td.component';
|
|
63
|
+
import { TheTableOptionsComponent } from './plugins/table/components/toolbar/table-options.component';
|
|
64
|
+
import { TheTableToolbarComponent } from './plugins/table/components/toolbar/table-toolbar.component';
|
|
65
|
+
import { TheTableToolbarItemComponent } from './plugins/table/toolbar-item.component';
|
|
66
|
+
import { TheVerticalToolbarItemComponent } from './plugins/vertical-align/toolbar-item.component';
|
|
67
|
+
import { ThePluginMenuComponent } from './components/plugin-menu/plugin-menu.component';
|
|
68
|
+
import { ThyMenuModule } from 'ngx-tethys/menu';
|
|
69
|
+
import { TheListboxDirective, TheListboxOptionDirective, TheListboxGroupDirective } from './components/listbox/listbox';
|
|
70
|
+
import { ThyEmptyModule } from 'ngx-tethys/empty';
|
|
71
|
+
import { ThePreventDefaultDirective } from './components/action/prevent-default';
|
|
72
|
+
import { ThyPopoverModule } from 'ngx-tethys/popover';
|
|
73
|
+
import { TableFreezeColumnPipe, TableFreezeRowPipe } from './plugins/table/table.pipe';
|
|
74
|
+
import { ThyColorPickerModule } from 'ngx-tethys/color-picker';
|
|
75
|
+
import * as i0 from "@angular/core";
|
|
76
|
+
const TETHYS = [
|
|
77
|
+
ThyIconModule,
|
|
78
|
+
ThyAvatarModule,
|
|
79
|
+
ThyNavModule,
|
|
80
|
+
ThyFormModule,
|
|
81
|
+
ThySharedModule,
|
|
82
|
+
ThyListModule,
|
|
83
|
+
ThyTooltipModule,
|
|
84
|
+
ThyProgressModule,
|
|
85
|
+
ThyAutocompleteModule,
|
|
86
|
+
ThyInputModule,
|
|
87
|
+
ThySelectModule,
|
|
88
|
+
ThyButtonModule,
|
|
89
|
+
ThyNotifyModule,
|
|
90
|
+
ThyAlertModule,
|
|
91
|
+
ThyResizableModule,
|
|
92
|
+
ThySwitchModule,
|
|
93
|
+
ThyImageModule,
|
|
94
|
+
ThyDialogModule,
|
|
95
|
+
ThyActionModule,
|
|
96
|
+
ThyDividerModule,
|
|
97
|
+
ThyDropdownModule,
|
|
98
|
+
ThyMenuModule,
|
|
99
|
+
ThyEmptyModule,
|
|
100
|
+
ThyPopoverModule,
|
|
101
|
+
ThyInputNumberModule,
|
|
102
|
+
ThyColorPickerModule
|
|
103
|
+
];
|
|
104
|
+
export const COMPONENTS = [
|
|
105
|
+
TheToolbarComponent,
|
|
106
|
+
TheToolbarDropdownComponent,
|
|
107
|
+
TheToolbarGroupComponent,
|
|
108
|
+
TheToolbarItemComponent,
|
|
109
|
+
TheInlineToolbarComponent,
|
|
110
|
+
TheTextComponent,
|
|
111
|
+
TheDefaultElementComponent,
|
|
112
|
+
TheQuickInsertComponent,
|
|
113
|
+
ThePluginMenuComponent,
|
|
114
|
+
TheColorToolbarItemComponent,
|
|
115
|
+
TheContextMenuComponent,
|
|
116
|
+
TheInsertMarkComponent,
|
|
117
|
+
TheTableSelectComponent,
|
|
118
|
+
TheTableToolbarItemComponent,
|
|
119
|
+
TheConversionHintComponent,
|
|
120
|
+
TheVerticalToolbarItemComponent,
|
|
121
|
+
TheTableOptionsComponent,
|
|
122
|
+
TheListboxOptionDirective,
|
|
123
|
+
TheListboxGroupDirective,
|
|
124
|
+
TheListboxDirective,
|
|
125
|
+
ThePreventDefaultDirective
|
|
126
|
+
];
|
|
127
|
+
export const PLUGIN_COMPONENTS = [
|
|
128
|
+
TheImageComponent,
|
|
129
|
+
TheTemplateComponent,
|
|
130
|
+
TheHrComponent,
|
|
131
|
+
TheBlockquoteComponent,
|
|
132
|
+
TheTodoItemComponent,
|
|
133
|
+
TheListItemComponent,
|
|
134
|
+
TheBulletedListComponent,
|
|
135
|
+
TheNumberedListComponent,
|
|
136
|
+
TheCodeComponent,
|
|
137
|
+
TheLinkComponent,
|
|
138
|
+
TheLinkEditComponent,
|
|
139
|
+
TheLinkHoverComponent,
|
|
140
|
+
TheTableToolbarComponent,
|
|
141
|
+
TheTableComponent,
|
|
142
|
+
TheTableRowComponent,
|
|
143
|
+
TheTdComponent,
|
|
144
|
+
TheInlineCodeComponent
|
|
145
|
+
];
|
|
146
|
+
const PIPES = [ElementStylePipe, ElementClassPipe, TableFreezeColumnPipe, TableFreezeRowPipe, PluginMenuPipe];
|
|
147
|
+
export class TheEditorModule {
|
|
148
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
149
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: TheEditorModule, declarations: [TheEditorComponent, ElementStylePipe, ElementClassPipe, TableFreezeColumnPipe, TableFreezeRowPipe, PluginMenuPipe, TheToolbarComponent,
|
|
150
|
+
TheToolbarDropdownComponent,
|
|
151
|
+
TheToolbarGroupComponent,
|
|
152
|
+
TheToolbarItemComponent,
|
|
153
|
+
TheInlineToolbarComponent,
|
|
154
|
+
TheTextComponent,
|
|
155
|
+
TheDefaultElementComponent,
|
|
156
|
+
TheQuickInsertComponent,
|
|
157
|
+
ThePluginMenuComponent,
|
|
158
|
+
TheColorToolbarItemComponent,
|
|
159
|
+
TheContextMenuComponent,
|
|
160
|
+
TheInsertMarkComponent,
|
|
161
|
+
TheTableSelectComponent,
|
|
162
|
+
TheTableToolbarItemComponent,
|
|
163
|
+
TheConversionHintComponent,
|
|
164
|
+
TheVerticalToolbarItemComponent,
|
|
165
|
+
TheTableOptionsComponent,
|
|
166
|
+
TheListboxOptionDirective,
|
|
167
|
+
TheListboxGroupDirective,
|
|
168
|
+
TheListboxDirective,
|
|
169
|
+
ThePreventDefaultDirective, TheImageComponent,
|
|
170
|
+
TheTemplateComponent,
|
|
171
|
+
TheHrComponent,
|
|
172
|
+
TheBlockquoteComponent,
|
|
173
|
+
TheTodoItemComponent,
|
|
174
|
+
TheListItemComponent,
|
|
175
|
+
TheBulletedListComponent,
|
|
176
|
+
TheNumberedListComponent,
|
|
177
|
+
TheCodeComponent,
|
|
178
|
+
TheLinkComponent,
|
|
179
|
+
TheLinkEditComponent,
|
|
180
|
+
TheLinkHoverComponent,
|
|
181
|
+
TheTableToolbarComponent,
|
|
182
|
+
TheTableComponent,
|
|
183
|
+
TheTableRowComponent,
|
|
184
|
+
TheTdComponent,
|
|
185
|
+
TheInlineCodeComponent], imports: [CommonModule, ScrollingModule, SlateModule, FormsModule, ThyIconModule,
|
|
186
|
+
ThyAvatarModule,
|
|
187
|
+
ThyNavModule,
|
|
188
|
+
ThyFormModule,
|
|
189
|
+
ThySharedModule,
|
|
190
|
+
ThyListModule,
|
|
191
|
+
ThyTooltipModule,
|
|
192
|
+
ThyProgressModule,
|
|
193
|
+
ThyAutocompleteModule,
|
|
194
|
+
ThyInputModule,
|
|
195
|
+
ThySelectModule,
|
|
196
|
+
ThyButtonModule,
|
|
197
|
+
ThyNotifyModule,
|
|
198
|
+
ThyAlertModule,
|
|
199
|
+
ThyResizableModule,
|
|
200
|
+
ThySwitchModule,
|
|
201
|
+
ThyImageModule,
|
|
202
|
+
ThyDialogModule,
|
|
203
|
+
ThyActionModule,
|
|
204
|
+
ThyDividerModule,
|
|
205
|
+
ThyDropdownModule,
|
|
206
|
+
ThyMenuModule,
|
|
207
|
+
ThyEmptyModule,
|
|
208
|
+
ThyPopoverModule,
|
|
209
|
+
ThyInputNumberModule,
|
|
210
|
+
ThyColorPickerModule, CodemirrorModule, TheColumnSizeModule], exports: [TheEditorComponent,
|
|
211
|
+
TheToolbarComponent,
|
|
212
|
+
TheToolbarDropdownComponent,
|
|
213
|
+
TheToolbarItemComponent,
|
|
214
|
+
TheDefaultElementComponent,
|
|
215
|
+
ThePluginMenuComponent,
|
|
216
|
+
TheListboxOptionDirective,
|
|
217
|
+
TheListboxGroupDirective,
|
|
218
|
+
TheListboxDirective,
|
|
219
|
+
ThePreventDefaultDirective] }); }
|
|
220
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheEditorModule, providers: [
|
|
221
|
+
{
|
|
222
|
+
provide: TheToolbarGroupToken,
|
|
223
|
+
useValue: TheToolbarGroupComponent
|
|
224
|
+
},
|
|
225
|
+
THE_MODE_PROVIDER
|
|
226
|
+
], imports: [CommonModule, ScrollingModule, SlateModule, FormsModule, TETHYS, CodemirrorModule, TheColumnSizeModule] }); }
|
|
227
|
+
}
|
|
228
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheEditorModule, decorators: [{
|
|
229
|
+
type: NgModule,
|
|
230
|
+
args: [{
|
|
231
|
+
declarations: [TheEditorComponent, ...PIPES, ...COMPONENTS, ...PLUGIN_COMPONENTS],
|
|
232
|
+
imports: [CommonModule, ScrollingModule, SlateModule, FormsModule, ...TETHYS, CodemirrorModule, TheColumnSizeModule],
|
|
233
|
+
exports: [
|
|
234
|
+
TheEditorComponent,
|
|
235
|
+
TheToolbarComponent,
|
|
236
|
+
TheToolbarDropdownComponent,
|
|
237
|
+
TheToolbarItemComponent,
|
|
238
|
+
TheDefaultElementComponent,
|
|
239
|
+
ThePluginMenuComponent,
|
|
240
|
+
TheListboxOptionDirective,
|
|
241
|
+
TheListboxGroupDirective,
|
|
242
|
+
TheListboxDirective,
|
|
243
|
+
ThePreventDefaultDirective
|
|
244
|
+
],
|
|
245
|
+
providers: [
|
|
246
|
+
{
|
|
247
|
+
provide: TheToolbarGroupToken,
|
|
248
|
+
useValue: TheToolbarGroupComponent
|
|
249
|
+
},
|
|
250
|
+
THE_MODE_PROVIDER
|
|
251
|
+
]
|
|
252
|
+
}]
|
|
253
|
+
}] });
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3NyYy9lZGl0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFD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QUUvRyxrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLDJCQUEyQjtZQUMzQix1QkFBdUI7WUFDdkIsMEJBQTBCO1lBQzFCLHNCQUFzQjtZQUN0Qix5QkFBeUI7WUFDekIsd0JBQXdCO1lBQ3hCLG1CQUFtQjtZQUNuQiwwQkFBMEI7K0dBVXJCLGVBQWUsYUFSYjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLFFBQVEsRUFBRSx3QkFBd0I7YUFDckM7WUFDRCxpQkFBaUI7U0FDcEIsWUFuQlMsWUFBWSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFLLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUI7OzJGQXFCMUcsZUFBZTtrQkF2QjNCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztvQkFDakYsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDO29CQUNwSCxPQUFPLEVBQUU7d0JBQ0wsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLDJCQUEyQjt3QkFDM0IsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3FCQUM3QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsUUFBUSxFQUFFLHdCQUF3Qjt5QkFDckM7d0JBQ0QsaUJBQWlCO3FCQUNwQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTbGF0ZU1vZHVsZSB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGhlRGVmYXVsdEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWxlbWVudC9lbGVtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZW1wbGF0ZS90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRvb2xiYXJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b29sYmFyLWRyb3Bkb3duL3Rvb2xiYXItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRvb2xiYXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rvb2xiYXItaXRlbS90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxlbWVudENsYXNzUGlwZSwgRWxlbWVudFN0eWxlUGlwZSwgUGx1Z2luTWVudVBpcGUgfSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IFRoZUJsb2NrcXVvdGVDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvYmxvY2txdW90ZS9ibG9ja3F1b3RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVIckNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9oci9oci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUJ1bGxldGVkTGlzdENvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9saXN0L2NvbXBvbmVudHMvYnVsbGV0ZWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvbGlzdC9jb21wb25lbnRzL2xpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlTnVtYmVyZWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2xpc3QvY29tcG9uZW50cy9udW1iZXJlZC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUb2RvSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy90b2RvLWl0ZW0vdG9kby1pdGVtLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNjcm9sbGluZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgQ29kZW1pcnJvck1vZHVsZSB9IGZyb20gJ25nLWNvZGVtaXJyb3InO1xuaW1wb3J0IHsgVGh5QWN0aW9uTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9hY3Rpb24nO1xuaW1wb3J0IHsgVGh5QWxlcnRNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2FsZXJ0JztcbmltcG9ydCB7IFRoeUF1dG9jb21wbGV0ZU1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IFRoeUF2YXRhck1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvYXZhdGFyJztcbmltcG9ydCB7IFRoeUJ1dHRvbk1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvYnV0dG9uJztcbmltcG9ydCB7IFRoeURpYWxvZ01vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvZGlhbG9nJztcbmltcG9ydCB7IFRoeURpdmlkZXJNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2RpdmlkZXInO1xuaW1wb3J0IHsgVGh5RHJvcGRvd25Nb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2Ryb3Bkb3duJztcbmltcG9ydCB7IFRoeUZvcm1Nb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2Zvcm0nO1xuaW1wb3J0IHsgVGh5SWNvbk1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvaWNvbic7XG5pbXBvcnQgeyBUaHlJbWFnZU1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvaW1hZ2UnO1xuaW1wb3J0IHsgVGh5SW5wdXRNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0JztcbmltcG9ydCB7IFRoeUxpc3RNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2xpc3QnO1xuaW1wb3J0IHsgVGh5TmF2TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9uYXYnO1xuaW1wb3J0IHsgVGh5Tm90aWZ5TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9ub3RpZnknO1xuaW1wb3J0IHsgVGh5UHJvZ3Jlc3NNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3Byb2dyZXNzJztcbmltcG9ydCB7IFRoeVJlc2l6YWJsZU1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvcmVzaXphYmxlJztcbmltcG9ydCB7IFRoeVNlbGVjdE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvc2VsZWN0JztcbmltcG9ydCB7IFRoeVNoYXJlZE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IFRoeVN3aXRjaE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvc3dpdGNoJztcbmltcG9ydCB7IFRoeVRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgVGh5SW5wdXROdW1iZXJNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2lucHV0LW51bWJlcic7XG5pbXBvcnQgeyBUaGVDb2x1bW5TaXplTW9kdWxlIH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbHVtbi1yZXNpemUvY29sdW1uLXJlc2l6ZS5tb2R1bGUnO1xuaW1wb3J0IHsgVGhlQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUNvbnZlcnNpb25IaW50Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnZlcnNpb24taGludC9jb252ZXJzaW9uLWhpbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUlubGluZVRvb2xiYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW5saW5lLXRvb2xiYXIvaW5saW5lLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRhYmxlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLXNlbGVjdC90YWJsZS1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRvb2xiYXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b29sYmFyLWdyb3VwL3Rvb2xiYXItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRvb2xiYXJHcm91cFRva2VuIH0gZnJvbSAnLi9jb25zdGFudHMvdG9vbGJhcic7XG5pbXBvcnQgeyBUSEVfTU9ERV9QUk9WSURFUiB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUaGVDb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2NvZGUvY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlQ29sb3JUb29sYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9jb2xvci90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUlubGluZUNvZGVDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvaW5saW5lLWNvZGUvaW5saW5lLWNvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUxpbmtFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi9wbHVnaW5zL2xpbmsvZWRpdC9saW5rLWVkaXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUxpbmtIb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9saW5rL2hvdmVyL2xpbmstaG92ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUxpbmtDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvbGluay9saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVRdWlja0luc2VydENvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy9xdWljay1pbnNlcnQvY29tcG9uZW50cy9xdWljay1pbnNlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUluc2VydE1hcmtDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvdGFibGUvY29tcG9uZW50cy9pbnNlcnQtbWFyay9pbnNlcnQtbWFyay5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVGFibGVSb3dDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvdGFibGUvY29tcG9uZW50cy9yb3cvcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS9jb21wb25lbnRzL3RhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUZENvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS9jb21wb25lbnRzL3RkL3RkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVUYWJsZU9wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvdGFibGUvY29tcG9uZW50cy90b29sYmFyL3RhYmxlLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVRhYmxlVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS9jb21wb25lbnRzL3Rvb2xiYXIvdGFibGUtdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlVGFibGVUb29sYmFySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS90b29sYmFyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRoZVZlcnRpY2FsVG9vbGJhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3BsdWdpbnMvdmVydGljYWwtYWxpZ24vdG9vbGJhci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVQbHVnaW5NZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BsdWdpbi1tZW51L3BsdWdpbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHlNZW51TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9tZW51JztcbmltcG9ydCB7IFRoZUxpc3Rib3hEaXJlY3RpdmUsIFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUsIFRoZUxpc3Rib3hHcm91cERpcmVjdGl2ZSB9IGZyb20gJy4vY29tcG9uZW50cy9saXN0Ym94L2xpc3Rib3gnO1xuaW1wb3J0IHsgVGh5RW1wdHlNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2VtcHR5JztcbmltcG9ydCB7IFRoZVByZXZlbnREZWZhdWx0RGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL2FjdGlvbi9wcmV2ZW50LWRlZmF1bHQnO1xuaW1wb3J0IHsgVGh5UG9wb3Zlck1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBUYWJsZUZyZWV6ZUNvbHVtblBpcGUsIFRhYmxlRnJlZXplUm93UGlwZSB9IGZyb20gJy4vcGx1Z2lucy90YWJsZS90YWJsZS5waXBlJztcbmltcG9ydCB7IFRoeUNvbG9yUGlja2VyTW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9jb2xvci1waWNrZXInO1xuXG5jb25zdCBURVRIWVMgPSBbXG4gICAgVGh5SWNvbk1vZHVsZSxcbiAgICBUaHlBdmF0YXJNb2R1bGUsXG4gICAgVGh5TmF2TW9kdWxlLFxuICAgIFRoeUZvcm1Nb2R1bGUsXG4gICAgVGh5U2hhcmVkTW9kdWxlLFxuICAgIFRoeUxpc3RNb2R1bGUsXG4gICAgVGh5VG9vbHRpcE1vZHVsZSxcbiAgICBUaHlQcm9ncmVzc01vZHVsZSxcbiAgICBUaHlBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgVGh5SW5wdXRNb2R1bGUsXG4gICAgVGh5U2VsZWN0TW9kdWxlLFxuICAgIFRoeUJ1dHRvbk1vZHVsZSxcbiAgICBUaHlOb3RpZnlNb2R1bGUsXG4gICAgVGh5QWxlcnRNb2R1bGUsXG4gICAgVGh5UmVzaXphYmxlTW9kdWxlLFxuICAgIFRoeVN3aXRjaE1vZHVsZSxcbiAgICBUaHlJbWFnZU1vZHVsZSxcbiAgICBUaHlEaWFsb2dNb2R1bGUsXG4gICAgVGh5QWN0aW9uTW9kdWxlLFxuICAgIFRoeURpdmlkZXJNb2R1bGUsXG4gICAgVGh5RHJvcGRvd25Nb2R1bGUsXG4gICAgVGh5TWVudU1vZHVsZSxcbiAgICBUaHlFbXB0eU1vZHVsZSxcbiAgICBUaHlQb3BvdmVyTW9kdWxlLFxuICAgIFRoeUlucHV0TnVtYmVyTW9kdWxlLFxuICAgIFRoeUNvbG9yUGlja2VyTW9kdWxlXG5dO1xuXG5leHBvcnQgY29uc3QgQ09NUE9ORU5UUyA9IFtcbiAgICBUaGVUb29sYmFyQ29tcG9uZW50LFxuICAgIFRoZVRvb2xiYXJEcm9wZG93bkNvbXBvbmVudCxcbiAgICBUaGVUb29sYmFyR3JvdXBDb21wb25lbnQsXG4gICAgVGhlVG9vbGJhckl0ZW1Db21wb25lbnQsXG4gICAgVGhlSW5saW5lVG9vbGJhckNvbXBvbmVudCxcbiAgICBUaGVUZXh0Q29tcG9uZW50LFxuICAgIFRoZURlZmF1bHRFbGVtZW50Q29tcG9uZW50LFxuICAgIFRoZVF1aWNrSW5zZXJ0Q29tcG9uZW50LFxuICAgIFRoZVBsdWdpbk1lbnVDb21wb25lbnQsXG4gICAgVGhlQ29sb3JUb29sYmFySXRlbUNvbXBvbmVudCxcbiAgICBUaGVDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgICBUaGVJbnNlcnRNYXJrQ29tcG9uZW50LFxuICAgIFRoZVRhYmxlU2VsZWN0Q29tcG9uZW50LFxuICAgIFRoZVRhYmxlVG9vbGJhckl0ZW1Db21wb25lbnQsXG4gICAgVGhlQ29udmVyc2lvbkhpbnRDb21wb25lbnQsXG4gICAgVGhlVmVydGljYWxUb29sYmFySXRlbUNvbXBvbmVudCxcbiAgICBUaGVUYWJsZU9wdGlvbnNDb21wb25lbnQsXG4gICAgVGhlTGlzdGJveE9wdGlvbkRpcmVjdGl2ZSxcbiAgICBUaGVMaXN0Ym94R3JvdXBEaXJlY3RpdmUsXG4gICAgVGhlTGlzdGJveERpcmVjdGl2ZSxcbiAgICBUaGVQcmV2ZW50RGVmYXVsdERpcmVjdGl2ZVxuXTtcblxuZXhwb3J0IGNvbnN0IFBMVUdJTl9DT01QT05FTlRTID0gW1xuICAgIFRoZUltYWdlQ29tcG9uZW50LFxuICAgIFRoZVRlbXBsYXRlQ29tcG9uZW50LFxuICAgIFRoZUhyQ29tcG9uZW50LFxuICAgIFRoZUJsb2NrcXVvdGVDb21wb25lbnQsXG4gICAgVGhlVG9kb0l0ZW1Db21wb25lbnQsXG4gICAgVGhlTGlzdEl0ZW1Db21wb25lbnQsXG4gICAgVGhlQnVsbGV0ZWRMaXN0Q29tcG9uZW50LFxuICAgIFRoZU51bWJlcmVkTGlzdENvbXBvbmVudCxcbiAgICBUaGVDb2RlQ29tcG9uZW50LFxuICAgIFRoZUxpbmtDb21wb25lbnQsXG4gICAgVGhlTGlua0VkaXRDb21wb25lbnQsXG4gICAgVGhlTGlua0hvdmVyQ29tcG9uZW50LFxuICAgIFRoZVRhYmxlVG9vbGJhckNvbXBvbmVudCxcbiAgICBUaGVUYWJsZUNvbXBvbmVudCxcbiAgICBUaGVUYWJsZVJvd0NvbXBvbmVudCxcbiAgICBUaGVUZENvbXBvbmVudCxcbiAgICBUaGVJbmxpbmVDb2RlQ29tcG9uZW50XG5dO1xuXG5jb25zdCBQSVBFUyA9IFtFbGVtZW50U3R5bGVQaXBlLCBFbGVtZW50Q2xhc3NQaXBlLCBUYWJsZUZyZWV6ZUNvbHVtblBpcGUsIFRhYmxlRnJlZXplUm93UGlwZSwgUGx1Z2luTWVudVBpcGVdO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1RoZUVkaXRvckNvbXBvbmVudCwgLi4uUElQRVMsIC4uLkNPTVBPTkVOVFMsIC4uLlBMVUdJTl9DT01QT05FTlRTXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTY3JvbGxpbmdNb2R1bGUsIFNsYXRlTW9kdWxlLCBGb3Jtc01vZHVsZSwgLi4uVEVUSFlTLCBDb2RlbWlycm9yTW9kdWxlLCBUaGVDb2x1bW5TaXplTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFRoZUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgVGhlVG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgVGhlVG9vbGJhckRyb3Bkb3duQ29tcG9uZW50LFxuICAgICAgICBUaGVUb29sYmFySXRlbUNvbXBvbmVudCxcbiAgICAgICAgVGhlRGVmYXVsdEVsZW1lbnRDb21wb25lbnQsXG4gICAgICAgIFRoZVBsdWdpbk1lbnVDb21wb25lbnQsXG4gICAgICAgIFRoZUxpc3Rib3hPcHRpb25EaXJlY3RpdmUsXG4gICAgICAgIFRoZUxpc3Rib3hHcm91cERpcmVjdGl2ZSxcbiAgICAgICAgVGhlTGlzdGJveERpcmVjdGl2ZSxcbiAgICAgICAgVGhlUHJldmVudERlZmF1bHREaXJlY3RpdmVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUaGVUb29sYmFyR3JvdXBUb2tlbixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBUaGVUb29sYmFyR3JvdXBDb21wb25lbnRcbiAgICAgICAgfSxcbiAgICAgICAgVEhFX01PREVfUFJPVklERVJcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRoZUVkaXRvck1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const THE_UPLOAD_SERVICE_TOKEN = new InjectionToken('THE_UPLOAD_SERVICE_TOKEN');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvaW50ZXJmYWNlcy9pbWFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBeUMvQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBMEIsMEJBQTBCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlVXJsIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGlnbm1lbnQsIExheW91dFR5cGVzIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRLaW5kcyB9IGZyb20gJy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuL2VkaXRvcic7XG5pbXBvcnQgeyBUb29sYmFySXRlbSB9IGZyb20gJy4vdG9vbGJhcic7XG5pbXBvcnQgeyBGaWxlVXBsb2FkaW5nSXRlbSwgVXBsb2FkRmlsZUVudGl0eSB9IGZyb20gJy4vdXBsb2FkJztcblxuZXhwb3J0IGludGVyZmFjZSBJbWFnZUVudHJ5IHtcbiAgICBmaWxlPzogRmlsZTtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIHdpZHRoPzogbnVtYmVyO1xuICAgIGhlaWdodD86IG51bWJlcjtcbiAgICB0aHVtYlVybD86IFNhZmVVcmwgfCBzdHJpbmc7XG4gICAgb3JpZ2luVXJsPzogU2FmZVVybCB8IHN0cmluZztcbiAgICBhbGlnbj86IEFsaWdubWVudDtcbiAgICBsYXlvdXQ/OiBMYXlvdXRUeXBlcztcbiAgICByZVNpemVkPzogYm9vbGVhbjtcbiAgICBzaXplPzogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBJbWFnZUluZm8gPSBQaWNrPEltYWdlRW50cnksICd0aHVtYlVybCcgfCAnb3JpZ2luVXJsJyB8ICduYW1lJyB8ICdzaXplJz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJldmlld0ltYWdlSW5mbyB7XG4gICAgaW1hZ2U6IEltYWdlSW5mbztcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGltYWdlR3JvdXA6IEltYWdlSW5mb1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExheW91dE9wdGlvbiBleHRlbmRzIFRvb2xiYXJJdGVtIHtcbiAgICBoYW5kbGU/OiAoZTogTW91c2VFdmVudCwga2V5OiBBbGlnbm1lbnQgfCBMYXlvdXRUeXBlcykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaGVJbWFnZVVwbG9hZGVyU2VydmljZSB7XG4gICAgdXBsb2FkRmlsZUhhbmRsZTogKGZpbGVzOiBhbnkpID0+IE9ic2VydmFibGU8VXBsb2FkRmlsZUVudGl0eVtdPjtcbiAgICBnZXRVcGxvYWRpbmdJdGVtcyQ6ICgpID0+IE9ic2VydmFibGU8RmlsZVVwbG9hZGluZ0l0ZW1bXT47XG4gICAgYnVpbGRJbWFnZVVybD86IChpbWFnZVVybDogc3RyaW5nKSA9PiBzdHJpbmc7XG4gICAgaXNFeHRlcm5hbFNvdXJjZT86IChpbWFnZVVybDogc3RyaW5nKSA9PiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgVEhFX1VQTE9BRF9TRVJWSUNFX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFRoZUltYWdlVXBsb2FkZXJTZXJ2aWNlPignVEhFX1VQTE9BRF9TRVJWSUNFX1RPS0VOJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VQbHVnaW5PcHRpb25zIHtcbiAgICBhbGxvd1BhcmVudFR5cGVzPzogQ3VzdG9tRWxlbWVudEtpbmRzW107XG4gICAgaW1hZ2VUeXBlcz86IHN0cmluZ1tdO1xuICAgIGRpc2FibGVQcmV2aWV3PzogKChlZGl0b3I6IFRoZUVkaXRvcikgPT4gYm9vbGVhbikgfCBib29sZWFuO1xuICAgIGFjY2VwdGVkVXBsb2FkU2l6ZT86IG51bWJlcjtcbiAgICBlcnJvckltYWdlVXJsPzogc3RyaW5nIHwgKChlZGl0b3I6IFRoZUVkaXRvcikgPT4gc3RyaW5nKTtcbiAgICBwcmV2aWV3PzogKGRhdGE6IHsgZWRpdG9yOiBUaGVFZGl0b3I7IHByZXZpZXdJbWFnZUluZm86IFByZXZpZXdJbWFnZUluZm8gfSkgPT4gdm9pZDtcbn1cbiJdfQ==
|
|
@@ -25,14 +25,14 @@ export class TheBaseElementComponent extends BaseElementComponent {
|
|
|
25
25
|
const blockClass = this.editor.isInline(this.element) ? 'slate-inline-block' : 'slate-block';
|
|
26
26
|
this.nativeElement.classList.add(`slate-element-${this.element.type}`, blockClass);
|
|
27
27
|
}
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseElementComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TheBaseElementComponent, selector: "TheBaseElementComponent", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
28
30
|
}
|
|
29
|
-
|
|
30
|
-
TheBaseElementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TheBaseElementComponent, selector: "TheBaseElementComponent", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheBaseElementComponent, decorators: [{
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TheBaseElementComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
33
|
args: [{
|
|
34
34
|
selector: 'TheBaseElementComponent',
|
|
35
35
|
template: ''
|
|
36
36
|
}]
|
|
37
37
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL2ludGVyZmFjZXMvdmlldy1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU1uRSxNQUFNLE9BQU8sdUJBQ1QsU0FBUSxvQkFBMEI7SUFHbEMsZUFBZTtRQUNYLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDM0QsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDM0Q7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDOUQ7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDOUQ7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBYSxDQUFDO1FBQy9FLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDN0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7OEdBeEJRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHNGQUZ0QixFQUFFOzsyRkFFSCx1QkFBdUI7a0JBSm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLEVBQUU7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGlzR2xvYmFsQ29sbGFwc2VkIH0gZnJvbSAnLi4vcXVlcmllcy9pcy1nbG9iYWwtY29sbGFwc2VkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdUaGVCYXNlRWxlbWVudENvbXBvbmVudCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIFRoZUJhc2VFbGVtZW50Q29tcG9uZW50PFQgZXh0ZW5kcyBFbGVtZW50ID0gRWxlbWVudCwgSyBleHRlbmRzIEVkaXRvciA9IEVkaXRvcj5cbiAgICBleHRlbmRzIEJhc2VFbGVtZW50Q29tcG9uZW50PFQsIEs+XG4gICAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgICBvbkNvbnRleHRDaGFuZ2UoKSB7XG4gICAgICAgIHN1cGVyLm9uQ29udGV4dENoYW5nZSgpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24gJiYgdGhpcy5lZGl0b3IgJiYgdGhpcy5lZGl0b3IuaXNWb2lkKHRoaXMuZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBzbGF0ZS1zZWxlY3RlZC1lbGVtZW50YCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0NvbGxhcHNlZCAmJiBpc0dsb2JhbENvbGxhcHNlZCh0aGlzLmVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgc2xhdGUtZm9jdXMtZWxlbWVudGApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShgc2xhdGUtZm9jdXMtZWxlbWVudGApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoYHNsYXRlLXNlbGVjdGVkLWVsZW1lbnRgKTtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGBzbGF0ZS1mb2N1cy1lbGVtZW50YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LmF0dHJpYnV0ZXNbJ2RhdGEtc2xhdGUta2V5J10gPSB0aGlzLmNvbnRleHQuZWxlbWVudC5rZXkgYXMgc3RyaW5nO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBjb25zdCBibG9ja0NsYXNzID0gdGhpcy5lZGl0b3IuaXNJbmxpbmUodGhpcy5lbGVtZW50KSA/ICdzbGF0ZS1pbmxpbmUtYmxvY2snIDogJ3NsYXRlLWJsb2NrJztcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYHNsYXRlLWVsZW1lbnQtJHt0aGlzLmVsZW1lbnQudHlwZX1gLCBibG9ja0NsYXNzKTtcbiAgICB9XG59XG4iXX0=
|