obsidian-dev-utils 26.16.0 → 26.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/Transformers/MapTransformer/package.json +6 -0
- package/Transformers/SetTransformer/package.json +6 -0
- package/dist/lib/cjs/Library.cjs +1 -1
- package/dist/lib/cjs/Transformers/MapTransformer.cjs +73 -0
- package/dist/lib/cjs/Transformers/MapTransformer.d.cts +40 -0
- package/dist/lib/cjs/Transformers/SetTransformer.cjs +73 -0
- package/dist/lib/cjs/Transformers/SetTransformer.d.cts +38 -0
- package/dist/lib/cjs/Transformers/index.cjs +7 -1
- package/dist/lib/cjs/Transformers/index.d.cts +2 -0
- package/dist/lib/cjs/obsidian/Plugin/PluginSettingsManagerBase.cjs +6 -2
- package/dist/lib/esm/Library.mjs +1 -1
- package/dist/lib/esm/Transformers/MapTransformer.d.mts +40 -0
- package/dist/lib/esm/Transformers/MapTransformer.mjs +49 -0
- package/dist/lib/esm/Transformers/SetTransformer.d.mts +38 -0
- package/dist/lib/esm/Transformers/SetTransformer.mjs +49 -0
- package/dist/lib/esm/Transformers/index.d.mts +2 -0
- package/dist/lib/esm/Transformers/index.mjs +5 -1
- package/dist/lib/esm/obsidian/Plugin/PluginSettingsManagerBase.mjs +6 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dist/lib/cjs/Library.cjs
CHANGED
@@ -30,7 +30,7 @@ __export(Library_exports, {
|
|
30
30
|
LIBRARY_VERSION: () => LIBRARY_VERSION
|
31
31
|
});
|
32
32
|
module.exports = __toCommonJS(Library_exports);
|
33
|
-
const LIBRARY_VERSION = "26.
|
33
|
+
const LIBRARY_VERSION = "26.17.0";
|
34
34
|
const LIBRARY_NAME = "obsidian-dev-utils";
|
35
35
|
const LIBRARY_STYLES = ".obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component pre, .obsidian-dev-utils.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-dev-utils.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-dev-utils.code-highlighter-component pre {\n position: absolute;\n pointer-events: none;\n border: var(--input-border-width) solid transparent;\n overflow: auto;\n inset: 0;\n padding: var(--size-4-1) var(--size-4-2);\n z-index: 1;\n}\n.obsidian-dev-utils.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-dev-utils.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-dev-utils input[type=url] {\n height: var(--input-height);\n}\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=tel],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=url],\n.obsidian-dev-utils input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-dev-utils input[type=month]:hover,\n .obsidian-dev-utils input[type=tel]:hover,\n .obsidian-dev-utils input[type=time]:hover,\n .obsidian-dev-utils input[type=url]:hover,\n .obsidian-dev-utils input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=tel]:focus-visible,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=time]:focus-visible,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=url]:focus-visible,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus,\n.obsidian-dev-utils input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-dev-utils input[type=month]::placeholder,\n.obsidian-dev-utils input[type=tel]::placeholder,\n.obsidian-dev-utils input[type=time]::placeholder,\n.obsidian-dev-utils input[type=url]::placeholder,\n.obsidian-dev-utils input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],\n.mod-rtl .obsidian-dev-utils input[type=time],\n.is-rtl .obsidian-dev-utils input[type=time],\n.rtl .obsidian-dev-utils input[type=time],\n.mod-rtl .obsidian-dev-utils input[type=week],\n.is-rtl .obsidian-dev-utils input[type=week],\n.rtl .obsidian-dev-utils input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\n.obsidian-dev-utils.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-dev-utils .multiple-dropdown-component select,\n.obsidian-dev-utils .multiple-dropdown-component select:focus,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-dev-utils .multiple-dropdown-component select option:checked,\n.obsidian-dev-utils .multiple-dropdown-component select:focus option:checked,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown option:checked {\n background-color: #1967d2;\n color: #fff;\n}\n\n.obsidian-dev-utils.prompt-modal .text-box {\n width: 100%;\n}\n\n.obsidian-dev-utils.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-dev-utils :invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils input.metadata-input-text:active:invalid, .obsidian-dev-utils input.metadata-input-text:focus-visible:invalid, .obsidian-dev-utils input.metadata-input-text:focus:invalid,\n.obsidian-dev-utils input[type=date]:active:invalid,\n.obsidian-dev-utils input[type=date]:focus-visible:invalid,\n.obsidian-dev-utils input[type=date]:focus:invalid,\n.obsidian-dev-utils input[type=datetime-local]:active:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus-visible:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus:invalid,\n.obsidian-dev-utils input[type=email]:active:invalid,\n.obsidian-dev-utils input[type=email]:focus-visible:invalid,\n.obsidian-dev-utils input[type=email]:focus:invalid,\n.obsidian-dev-utils input[type=number]:active:invalid,\n.obsidian-dev-utils input[type=number]:focus-visible:invalid,\n.obsidian-dev-utils input[type=number]:focus:invalid,\n.obsidian-dev-utils input[type=password]:active:invalid,\n.obsidian-dev-utils input[type=password]:focus-visible:invalid,\n.obsidian-dev-utils input[type=password]:focus:invalid,\n.obsidian-dev-utils input[type=search]:active:invalid,\n.obsidian-dev-utils input[type=search]:focus-visible:invalid,\n.obsidian-dev-utils input[type=search]:focus:invalid,\n.obsidian-dev-utils input[type=text]:active:invalid,\n.obsidian-dev-utils input[type=text]:focus-visible:invalid,\n.obsidian-dev-utils input[type=text]:focus:invalid,\n.obsidian-dev-utils textarea:active:invalid,\n.obsidian-dev-utils textarea:focus-visible:invalid,\n.obsidian-dev-utils textarea:focus:invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-dev-utils.overlay-validator {\n caret-color: transparent;\n cursor: default;\n position: absolute;\n background-color: transparent;\n border: none;\n outline: none;\n pointer-events: none;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.obsidian-dev-utils.tooltip.tooltip-validator {\n position: absolute;\n top: calc(100% + 8px);\n width: max-content;\n}\n\n/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACnCJ;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;AChDF;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACRJ;EACE;;;ACDF;EACE;;;ACEJ;EAJA;;AAoBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EApBJ;;AA0BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20%231967d2;%5Cn%20%20%20%20%20%20%20%20color:%20%23fff;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cr%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cr%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cr%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cr%5Cn%20%20%20%20%7D%5Cr%5Cn%20%20%7D%5Cr%5Cn%7D%5Cr%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */\n";
|
36
36
|
// Annotate the CommonJS export names for ESM import in node:
|
@@ -0,0 +1,73 @@
|
|
1
|
+
/*
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
4
|
+
*/
|
5
|
+
|
6
|
+
(function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
7
|
+
|
8
|
+
"use strict";
|
9
|
+
var __defProp = Object.defineProperty;
|
10
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
11
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
13
|
+
var __export = (target, all) => {
|
14
|
+
for (var name in all)
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
16
|
+
};
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
19
|
+
for (let key of __getOwnPropNames(from))
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
21
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
22
|
+
}
|
23
|
+
return to;
|
24
|
+
};
|
25
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
26
|
+
var MapTransformer_exports = {};
|
27
|
+
__export(MapTransformer_exports, {
|
28
|
+
MapTransformer: () => MapTransformer
|
29
|
+
});
|
30
|
+
module.exports = __toCommonJS(MapTransformer_exports);
|
31
|
+
var import_TypedTransformer = require('./TypedTransformer.cjs');
|
32
|
+
class MapTransformer extends import_TypedTransformer.TypedTransformer {
|
33
|
+
/**
|
34
|
+
* The ID of the transformer.
|
35
|
+
*
|
36
|
+
* @returns The ID of the transformer.
|
37
|
+
*/
|
38
|
+
get id() {
|
39
|
+
return "map";
|
40
|
+
}
|
41
|
+
/**
|
42
|
+
* Checks if the value is a Map.
|
43
|
+
*
|
44
|
+
* @param value - The value to check.
|
45
|
+
* @returns True if the value is a Map, false otherwise.
|
46
|
+
*/
|
47
|
+
canTransform(value) {
|
48
|
+
return value instanceof Map;
|
49
|
+
}
|
50
|
+
/**
|
51
|
+
* Restores the value from an array of entries.
|
52
|
+
*
|
53
|
+
* @param transformedValue - The array of entries to restore the value from.
|
54
|
+
* @returns The restored value.
|
55
|
+
*/
|
56
|
+
restoreValue(transformedValue) {
|
57
|
+
return new Map(transformedValue);
|
58
|
+
}
|
59
|
+
/**
|
60
|
+
* Transforms the value to an array of entries.
|
61
|
+
*
|
62
|
+
* @param value - The value to transform.
|
63
|
+
* @returns The transformed value.
|
64
|
+
*/
|
65
|
+
transformValue(value) {
|
66
|
+
return Array.from(value.entries());
|
67
|
+
}
|
68
|
+
}
|
69
|
+
// Annotate the CommonJS export names for ESM import in node:
|
70
|
+
0 && (module.exports = {
|
71
|
+
MapTransformer
|
72
|
+
});
|
73
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1RyYW5zZm9ybWVycy9NYXBUcmFuc2Zvcm1lci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBBIHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSBhIE1hcCB0byBhbiBhcnJheSBvZiBlbnRyaWVzIGFuZCBiYWNrLlxuICovXG5cbmltcG9ydCB7IFR5cGVkVHJhbnNmb3JtZXIgfSBmcm9tICcuL1R5cGVkVHJhbnNmb3JtZXIudHMnO1xuXG50eXBlIE1hcEVudHJ5ID0gcmVhZG9ubHkgW2tleTogdW5rbm93biwgdmFsdWU6IHVua25vd25dO1xuXG4vKipcbiAqIEEgdHJhbnNmb3JtZXIgdGhhdCBjYW4gdHJhbnNmb3JtIGEgTWFwIHRvIGFuIGFycmF5IG9mIGVudHJpZXMgYW5kIGJhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBNYXBUcmFuc2Zvcm1lciBleHRlbmRzIFR5cGVkVHJhbnNmb3JtZXI8TWFwPHVua25vd24sIHVua25vd24+LCBNYXBFbnRyeVtdPiB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHRyYW5zZm9ybWVyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgSUQgb2YgdGhlIHRyYW5zZm9ybWVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnbWFwJztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHZhbHVlIGlzIGEgTWFwLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHZhbHVlIGlzIGEgTWFwLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgY2FuVHJhbnNmb3JtKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgTWFwPHVua25vd24sIHVua25vd24+IHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBNYXA7XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZXMgdGhlIHZhbHVlIGZyb20gYW4gYXJyYXkgb2YgZW50cmllcy5cbiAgICpcbiAgICogQHBhcmFtIHRyYW5zZm9ybWVkVmFsdWUgLSBUaGUgYXJyYXkgb2YgZW50cmllcyB0byByZXN0b3JlIHRoZSB2YWx1ZSBmcm9tLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdG9yZWQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVzdG9yZVZhbHVlKHRyYW5zZm9ybWVkVmFsdWU6IE1hcEVudHJ5W10pOiBNYXA8dW5rbm93biwgdW5rbm93bj4ge1xuICAgIHJldHVybiBuZXcgTWFwPHVua25vd24sIHVua25vd24+KHRyYW5zZm9ybWVkVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgdGhlIHZhbHVlIHRvIGFuIGFycmF5IG9mIGVudHJpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB0cmFuc2Zvcm0uXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZTogTWFwPHVua25vd24sIHVua25vd24+KTogTWFwRW50cnlbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFNQSw4QkFBaUM7QUFPMUIsTUFBTSx1QkFBdUIseUNBQW9EO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBTXRGLElBQW9CLEtBQWE7QUFDL0IsV0FBTztBQUFBLEVBQ1Q7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixhQUFhLE9BQWdEO0FBQzNFLFdBQU8saUJBQWlCO0FBQUEsRUFDMUI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixhQUFhLGtCQUFxRDtBQUNoRixXQUFPLElBQUksSUFBc0IsZ0JBQWdCO0FBQUEsRUFDbkQ7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixlQUFlLE9BQTBDO0FBQ3ZFLFdBQU8sTUFBTSxLQUFLLE1BQU0sUUFBUSxDQUFDO0FBQUEsRUFDbkM7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -0,0 +1,40 @@
|
|
1
|
+
/**
|
2
|
+
* @packageDocumentation
|
3
|
+
*
|
4
|
+
* A transformer that can transform a Map to an array of entries and back.
|
5
|
+
*/
|
6
|
+
import { TypedTransformer } from './TypedTransformer.cjs';
|
7
|
+
type MapEntry = readonly [key: unknown, value: unknown];
|
8
|
+
/**
|
9
|
+
* A transformer that can transform a Map to an array of entries and back.
|
10
|
+
*/
|
11
|
+
export declare class MapTransformer extends TypedTransformer<Map<unknown, unknown>, MapEntry[]> {
|
12
|
+
/**
|
13
|
+
* The ID of the transformer.
|
14
|
+
*
|
15
|
+
* @returns The ID of the transformer.
|
16
|
+
*/
|
17
|
+
get id(): string;
|
18
|
+
/**
|
19
|
+
* Checks if the value is a Map.
|
20
|
+
*
|
21
|
+
* @param value - The value to check.
|
22
|
+
* @returns True if the value is a Map, false otherwise.
|
23
|
+
*/
|
24
|
+
canTransform(value: unknown): value is Map<unknown, unknown>;
|
25
|
+
/**
|
26
|
+
* Restores the value from an array of entries.
|
27
|
+
*
|
28
|
+
* @param transformedValue - The array of entries to restore the value from.
|
29
|
+
* @returns The restored value.
|
30
|
+
*/
|
31
|
+
restoreValue(transformedValue: MapEntry[]): Map<unknown, unknown>;
|
32
|
+
/**
|
33
|
+
* Transforms the value to an array of entries.
|
34
|
+
*
|
35
|
+
* @param value - The value to transform.
|
36
|
+
* @returns The transformed value.
|
37
|
+
*/
|
38
|
+
transformValue(value: Map<unknown, unknown>): MapEntry[];
|
39
|
+
}
|
40
|
+
export {};
|
@@ -0,0 +1,73 @@
|
|
1
|
+
/*
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
4
|
+
*/
|
5
|
+
|
6
|
+
(function initCjs(){const globalThisRecord=globalThis;globalThisRecord["__name"]??=name;const originalRequire=require;if(originalRequire&&!originalRequire.__isPatched){require=Object.assign(id=>requirePatched(id),originalRequire,{__isPatched:true})}const newFuncs={__extractDefault:__name(()=>extractDefault,"__extractDefault"),process:__name(()=>{const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};return browserProcess},"process")};for(const key of Object.keys(newFuncs)){globalThisRecord[key]??=newFuncs[key]?.()}function name(obj){return obj}__name(name,"name");function extractDefault(module){return module&&module.__esModule&&module.default?module.default:module}__name(extractDefault,"extractDefault");function requirePatched(id){const module=originalRequire?.(id);if(module){return extractDefault(module)}if(id==="process"||id==="node:process"){console.error(`Module not found: ${id}. Fake process object is returned instead.`);return globalThis.process}console.error(`Module not found: ${id}. Empty object is returned instead.`);return{}}__name(requirePatched,"requirePatched")})();
|
7
|
+
|
8
|
+
"use strict";
|
9
|
+
var __defProp = Object.defineProperty;
|
10
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
11
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
13
|
+
var __export = (target, all) => {
|
14
|
+
for (var name in all)
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
16
|
+
};
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
19
|
+
for (let key of __getOwnPropNames(from))
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
21
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
22
|
+
}
|
23
|
+
return to;
|
24
|
+
};
|
25
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
26
|
+
var SetTransformer_exports = {};
|
27
|
+
__export(SetTransformer_exports, {
|
28
|
+
SetTransformer: () => SetTransformer
|
29
|
+
});
|
30
|
+
module.exports = __toCommonJS(SetTransformer_exports);
|
31
|
+
var import_TypedTransformer = require('./TypedTransformer.cjs');
|
32
|
+
class SetTransformer extends import_TypedTransformer.TypedTransformer {
|
33
|
+
/**
|
34
|
+
* The ID of the transformer.
|
35
|
+
*
|
36
|
+
* @returns The ID of the transformer.
|
37
|
+
*/
|
38
|
+
get id() {
|
39
|
+
return "set";
|
40
|
+
}
|
41
|
+
/**
|
42
|
+
* Checks if the value is a Set.
|
43
|
+
*
|
44
|
+
* @param value - The value to check.
|
45
|
+
* @returns True if the value is a Set, false otherwise.
|
46
|
+
*/
|
47
|
+
canTransform(value) {
|
48
|
+
return value instanceof Set;
|
49
|
+
}
|
50
|
+
/**
|
51
|
+
* Restores the value from an array.
|
52
|
+
*
|
53
|
+
* @param transformedValue - The array to restore the value from.
|
54
|
+
* @returns The restored value.
|
55
|
+
*/
|
56
|
+
restoreValue(transformedValue) {
|
57
|
+
return new Set(transformedValue);
|
58
|
+
}
|
59
|
+
/**
|
60
|
+
* Transforms the value to an array.
|
61
|
+
*
|
62
|
+
* @param value - The value to transform.
|
63
|
+
* @returns The transformed value.
|
64
|
+
*/
|
65
|
+
transformValue(value) {
|
66
|
+
return Array.from(value);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
// Annotate the CommonJS export names for ESM import in node:
|
70
|
+
0 && (module.exports = {
|
71
|
+
SetTransformer
|
72
|
+
});
|
73
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1RyYW5zZm9ybWVycy9TZXRUcmFuc2Zvcm1lci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBBIHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSBhIFNldCB0byBhbiBhcnJheSBhbmQgYmFjay5cbiAqL1xuXG5pbXBvcnQgeyBUeXBlZFRyYW5zZm9ybWVyIH0gZnJvbSAnLi9UeXBlZFRyYW5zZm9ybWVyLnRzJztcblxuLyoqXG4gKiBBIHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSBhIFNldCB0byBhbiBhcnJheSBhbmQgYmFjay5cbiAqL1xuZXhwb3J0IGNsYXNzIFNldFRyYW5zZm9ybWVyIGV4dGVuZHMgVHlwZWRUcmFuc2Zvcm1lcjxTZXQ8dW5rbm93bj4sIHVua25vd25bXT4ge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIElEIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3NldCc7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSB2YWx1ZSBpcyBhIFNldC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB2YWx1ZSBpcyBhIFNldCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGNhblRyYW5zZm9ybSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFNldDx1bmtub3duPiB7XG4gICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgU2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmVzIHRoZSB2YWx1ZSBmcm9tIGFuIGFycmF5LlxuICAgKlxuICAgKiBAcGFyYW0gdHJhbnNmb3JtZWRWYWx1ZSAtIFRoZSBhcnJheSB0byByZXN0b3JlIHRoZSB2YWx1ZSBmcm9tLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdG9yZWQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVzdG9yZVZhbHVlKHRyYW5zZm9ybWVkVmFsdWU6IHVua25vd25bXSk6IFNldDx1bmtub3duPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQodHJhbnNmb3JtZWRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtcyB0aGUgdmFsdWUgdG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB0cmFuc2Zvcm0uXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZTogU2V0PHVua25vd24+KTogdW5rbm93bltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh2YWx1ZSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBTUEsOEJBQWlDO0FBSzFCLE1BQU0sdUJBQXVCLHlDQUEwQztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU01RSxJQUFvQixLQUFhO0FBQy9CLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsYUFBYSxPQUF1QztBQUNsRSxXQUFPLGlCQUFpQjtBQUFBLEVBQzFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsYUFBYSxrQkFBMkM7QUFDdEUsV0FBTyxJQUFJLElBQUksZ0JBQWdCO0FBQUEsRUFDakM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQVFnQixlQUFlLE9BQWdDO0FBQzdELFdBQU8sTUFBTSxLQUFLLEtBQUs7QUFBQSxFQUN6QjtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -0,0 +1,38 @@
|
|
1
|
+
/**
|
2
|
+
* @packageDocumentation
|
3
|
+
*
|
4
|
+
* A transformer that can transform a Set to an array and back.
|
5
|
+
*/
|
6
|
+
import { TypedTransformer } from './TypedTransformer.cjs';
|
7
|
+
/**
|
8
|
+
* A transformer that can transform a Set to an array and back.
|
9
|
+
*/
|
10
|
+
export declare class SetTransformer extends TypedTransformer<Set<unknown>, unknown[]> {
|
11
|
+
/**
|
12
|
+
* The ID of the transformer.
|
13
|
+
*
|
14
|
+
* @returns The ID of the transformer.
|
15
|
+
*/
|
16
|
+
get id(): string;
|
17
|
+
/**
|
18
|
+
* Checks if the value is a Set.
|
19
|
+
*
|
20
|
+
* @param value - The value to check.
|
21
|
+
* @returns True if the value is a Set, false otherwise.
|
22
|
+
*/
|
23
|
+
canTransform(value: unknown): value is Set<unknown>;
|
24
|
+
/**
|
25
|
+
* Restores the value from an array.
|
26
|
+
*
|
27
|
+
* @param transformedValue - The array to restore the value from.
|
28
|
+
* @returns The restored value.
|
29
|
+
*/
|
30
|
+
restoreValue(transformedValue: unknown[]): Set<unknown>;
|
31
|
+
/**
|
32
|
+
* Transforms the value to an array.
|
33
|
+
*
|
34
|
+
* @param value - The value to transform.
|
35
|
+
* @returns The transformed value.
|
36
|
+
*/
|
37
|
+
transformValue(value: Set<unknown>): unknown[];
|
38
|
+
}
|
@@ -38,6 +38,8 @@ __export(Transformers_exports, {
|
|
38
38
|
DateTransformer: () => DateTransformer,
|
39
39
|
DurationTransformer: () => DurationTransformer,
|
40
40
|
GroupTransformer: () => GroupTransformer,
|
41
|
+
MapTransformer: () => MapTransformer,
|
42
|
+
SetTransformer: () => SetTransformer,
|
41
43
|
SkipPrivatePropertyTransformer: () => SkipPrivatePropertyTransformer,
|
42
44
|
Transformer: () => Transformer,
|
43
45
|
TypedTransformer: () => TypedTransformer
|
@@ -46,6 +48,8 @@ module.exports = __toCommonJS(Transformers_exports);
|
|
46
48
|
var DateTransformer = __toESM(__extractDefault(require('./DateTransformer.cjs')), 1);
|
47
49
|
var DurationTransformer = __toESM(__extractDefault(require('./DurationTransformer.cjs')), 1);
|
48
50
|
var GroupTransformer = __toESM(__extractDefault(require('./GroupTransformer.cjs')), 1);
|
51
|
+
var MapTransformer = __toESM(__extractDefault(require('./MapTransformer.cjs')), 1);
|
52
|
+
var SetTransformer = __toESM(__extractDefault(require('./SetTransformer.cjs')), 1);
|
49
53
|
var SkipPrivatePropertyTransformer = __toESM(__extractDefault(require('./SkipPrivatePropertyTransformer.cjs')), 1);
|
50
54
|
var Transformer = __toESM(__extractDefault(require('./Transformer.cjs')), 1);
|
51
55
|
var TypedTransformer = __toESM(__extractDefault(require('./TypedTransformer.cjs')), 1);
|
@@ -54,8 +58,10 @@ var TypedTransformer = __toESM(__extractDefault(require('./TypedTransformer.cjs'
|
|
54
58
|
DateTransformer,
|
55
59
|
DurationTransformer,
|
56
60
|
GroupTransformer,
|
61
|
+
MapTransformer,
|
62
|
+
SetTransformer,
|
57
63
|
SkipPrivatePropertyTransformer,
|
58
64
|
Transformer,
|
59
65
|
TypedTransformer
|
60
66
|
});
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
67
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1RyYW5zZm9ybWVycy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzIERhdGVUcmFuc2Zvcm1lciBmcm9tICcuL0RhdGVUcmFuc2Zvcm1lci50cyc7XG5leHBvcnQgKiBhcyBEdXJhdGlvblRyYW5zZm9ybWVyIGZyb20gJy4vRHVyYXRpb25UcmFuc2Zvcm1lci50cyc7XG5leHBvcnQgKiBhcyBHcm91cFRyYW5zZm9ybWVyIGZyb20gJy4vR3JvdXBUcmFuc2Zvcm1lci50cyc7XG5leHBvcnQgKiBhcyBNYXBUcmFuc2Zvcm1lciBmcm9tICcuL01hcFRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCAqIGFzIFNldFRyYW5zZm9ybWVyIGZyb20gJy4vU2V0VHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0ICogYXMgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIGZyb20gJy4vU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCAqIGFzIFRyYW5zZm9ybWVyIGZyb20gJy4vVHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0ICogYXMgVHlwZWRUcmFuc2Zvcm1lciBmcm9tICcuL1R5cGVkVHJhbnNmb3JtZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQSxzQkFBaUM7QUFDakMsMEJBQXFDO0FBQ3JDLHVCQUFrQztBQUNsQyxxQkFBZ0M7QUFDaEMscUJBQWdDO0FBQ2hDLHFDQUFnRDtBQUNoRCxrQkFBNkI7QUFDN0IsdUJBQWtDOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -1,6 +1,8 @@
|
|
1
1
|
export * as DateTransformer from './DateTransformer.cjs';
|
2
2
|
export * as DurationTransformer from './DurationTransformer.cjs';
|
3
3
|
export * as GroupTransformer from './GroupTransformer.cjs';
|
4
|
+
export * as MapTransformer from './MapTransformer.cjs';
|
5
|
+
export * as SetTransformer from './SetTransformer.cjs';
|
4
6
|
export * as SkipPrivatePropertyTransformer from './SkipPrivatePropertyTransformer.cjs';
|
5
7
|
export * as Transformer from './Transformer.cjs';
|
6
8
|
export * as TypedTransformer from './TypedTransformer.cjs';
|
@@ -34,11 +34,15 @@ var import_Object = require('../../Object.cjs');
|
|
34
34
|
var import_DateTransformer = require('../../Transformers/DateTransformer.cjs');
|
35
35
|
var import_DurationTransformer = require('../../Transformers/DurationTransformer.cjs');
|
36
36
|
var import_GroupTransformer = require('../../Transformers/GroupTransformer.cjs');
|
37
|
+
var import_MapTransformer = require('../../Transformers/MapTransformer.cjs');
|
38
|
+
var import_SetTransformer = require('../../Transformers/SetTransformer.cjs');
|
37
39
|
var import_SkipPrivatePropertyTransformer = require('../../Transformers/SkipPrivatePropertyTransformer.cjs');
|
38
40
|
const defaultTransformer = new import_GroupTransformer.GroupTransformer([
|
39
41
|
new import_SkipPrivatePropertyTransformer.SkipPrivatePropertyTransformer(),
|
40
42
|
new import_DateTransformer.DateTransformer(),
|
41
|
-
new import_DurationTransformer.DurationTransformer()
|
43
|
+
new import_DurationTransformer.DurationTransformer(),
|
44
|
+
new import_MapTransformer.MapTransformer(),
|
45
|
+
new import_SetTransformer.SetTransformer()
|
42
46
|
]);
|
43
47
|
class PluginSettingsManagerBase extends import_AsyncEvents.AsyncEvents {
|
44
48
|
/**
|
@@ -316,4 +320,4 @@ class PluginSettingsManagerBase extends import_AsyncEvents.AsyncEvents {
|
|
316
320
|
0 && (module.exports = {
|
317
321
|
PluginSettingsManagerBase
|
318
322
|
});
|
319
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc01hbmFnZXJCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFBsdWdpbiBzZXR0aW5ncyBtYW5hZ2VyIGJhc2UgY2xhc3MuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21pc2FibGUsXG4gIFJlYWRvbmx5RGVlcFxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IEFzeW5jRXZlbnRSZWYgfSBmcm9tICcuLi8uLi9Bc3luY0V2ZW50cy50cyc7XG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICcuLi8uLi9PYmplY3QudHMnO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL1RyYW5zZm9ybWVycy9UcmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIE1heWJlUmV0dXJuLFxuICBTdHJpbmdLZXlzXG59IGZyb20gJy4uLy4uL1R5cGUudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc1dyYXBwZXIgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzV3JhcHBlci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEV4dHJhY3RQbHVnaW4sXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5ncyxcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lcyxcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlWYWx1ZXMsXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1dyYXBwZXIsXG4gIEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcixcbiAgUGx1Z2luVHlwZXNCYXNlXG59IGZyb20gJy4vUGx1Z2luVHlwZXNCYXNlLnRzJztcblxuaW1wb3J0IHsgQXN5bmNFdmVudHMgfSBmcm9tICcuLi8uLi9Bc3luY0V2ZW50cy50cyc7XG5pbXBvcnQge1xuICBub29wLFxuICBub29wQXN5bmNcbn0gZnJvbSAnLi4vLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHtcbiAgZGVlcEVxdWFsLFxuICBnZXRBbGxLZXlzXG59IGZyb20gJy4uLy4uL09iamVjdC50cyc7XG5pbXBvcnQgeyBEYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvRGF0ZVRyYW5zZm9ybWVyLnRzJztcbmltcG9ydCB7IER1cmF0aW9uVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvRHVyYXRpb25UcmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBHcm91cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vVHJhbnNmb3JtZXJzL0dyb3VwVHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vVHJhbnNmb3JtZXJzL1NraXBQcml2YXRlUHJvcGVydHlUcmFuc2Zvcm1lci50cyc7XG5cbmNvbnN0IGRlZmF1bHRUcmFuc2Zvcm1lciA9IG5ldyBHcm91cFRyYW5zZm9ybWVyKFtcbiAgbmV3IFNraXBQcml2YXRlUHJvcGVydHlUcmFuc2Zvcm1lcigpLFxuICBuZXcgRGF0ZVRyYW5zZm9ybWVyKCksXG4gIG5ldyBEdXJhdGlvblRyYW5zZm9ybWVyKClcbl0pO1xuXG50eXBlIFZhbGlkYXRpb25SZXN1bHQ8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+ID0gUGFydGlhbDxSZWNvcmQ8U3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz4sIHN0cmluZz4+O1xuXG50eXBlIFZhbGlkYXRvcjxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdCwgUHJvcGVydHlOYW1lIGV4dGVuZHMgU3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz4gPSBTdHJpbmdLZXlzPFBsdWdpblNldHRpbmdzPj4gPSAoXG4gIHZhbHVlOiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eU5hbWVdLFxuICBzZXR0aW5nczogUGx1Z2luU2V0dGluZ3NcbikgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxzdHJpbmc+PjtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MuXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5UeXBlcyAtIFBsdWdpbi1zcGVjaWZpYyB0eXBlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpblNldHRpbmdzTWFuYWdlckJhc2U8UGx1Z2luVHlwZXMgZXh0ZW5kcyBQbHVnaW5UeXBlc0Jhc2U+IGV4dGVuZHMgQXN5bmNFdmVudHMge1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRTZXR0aW5nczogUmVhZG9ubHlEZWVwPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHNldHRpbmdzIHdyYXBwZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHNldHRpbmdzIHdyYXBwZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzV3JhcHBlcigpOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+IHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyIGFzIEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz47XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRTZXR0aW5nc1dyYXBwZXI6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+O1xuXG4gIHByaXZhdGUgbGFzdFNhdmVkU2V0dGluZ3NXcmFwcGVyOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0eU5hbWVzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPltdO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkYXRvcnMgPSBuZXcgTWFwPEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+LCBWYWxpZGF0b3I8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4+KCk7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHBsdWdpbiBzZXR0aW5ncyBtYW5hZ2VyLlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbi5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcGx1Z2luOiBFeHRyYWN0UGx1Z2luPFBsdWdpblR5cGVzPikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hcHAgPSBwbHVnaW4uYXBwO1xuICAgIHRoaXMuZGVmYXVsdFNldHRpbmdzID0gdGhpcy5jcmVhdGVEZWZhdWx0U2V0dGluZ3MoKSBhcyBSZWFkb25seURlZXA8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj47XG4gICAgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyID0gdGhpcy5jcmVhdGVEZWZhdWx0U2V0dGluZ3NXcmFwcGVyKCk7XG4gICAgdGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5nc1dyYXBwZXIoKTtcbiAgICB0aGlzLnByb3BlcnR5TmFtZXMgPSBnZXRBbGxLZXlzKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyk7XG4gICAgdGhpcy5yZWdpc3RlclZhbGlkYXRvcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFZGl0cyB0aGUgcGx1Z2luIHNldHRpbmdzIGFuZCBzYXZlcyB0aGVtLlxuICAgKlxuICAgKiBAcGFyYW0gc2V0dGluZ3NFZGl0b3IgLSBUaGUgZWRpdG9yLlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYXZlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBlZGl0QW5kU2F2ZShzZXR0aW5nc0VkaXRvcjogKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KSA9PiBQcm9taXNhYmxlPHZvaWQ+LCBjb250ZXh0PzogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZWRpdChzZXR0aW5nc0VkaXRvcik7XG4gICAgYXdhaXQgdGhpcy5zYXZlVG9GaWxlKGNvbnRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhlIHNldHRpbmdzIGFyZSBzYWZlLlxuICAgKlxuICAgKiBJdCBydW5zIHZhbGlkYXRpb24gZm9yIGVhY2ggcHJvcGVydHkgYW5kIHNldHMgdGhlIGRlZmF1bHQgdmFsdWUgaWYgdGhlIHZhbGlkYXRpb24gZmFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5ncyAtIFRoZSBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgc2FmZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBlbnN1cmVTYWZlKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGUoc2V0dGluZ3MpO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIG9mIHRoaXMucHJvcGVydHlOYW1lcykge1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHRbcHJvcGVydHlOYW1lXSkge1xuICAgICAgICBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdGhpcy5kZWZhdWx0U2V0dGluZ3NbcHJvcGVydHlOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIHNhZmUgY29weSBvZiB0aGUgc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5ncyAtIFRoZSBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgc2FmZSBjb3B5IG9mIHRoZSBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTYWZlQ29weShzZXR0aW5nczogRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPik6IFByb21pc2U8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4ge1xuICAgIGNvbnN0IHNhZmVTZXR0aW5ncyA9IGF3YWl0IHRoaXMuY2xvbmVTZXR0aW5ncyhzZXR0aW5ncyk7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTYWZlKHNhZmVTZXR0aW5ncyk7XG4gICAgcmV0dXJuIHNhZmVTZXR0aW5ncztcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgcGx1Z2luIHNldHRpbmdzIGZyb20gdGhlIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBpc0luaXRpYWxMb2FkIC0gV2hldGhlciB0aGUgc2V0dGluZ3MgYXJlIGJlaW5nIGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIGxvYWRlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkRnJvbUZpbGUoaXNJbml0aWFsTG9hZDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLnBsdWdpbi5sb2FkRGF0YSgpIGFzIHVua25vd247XG4gICAgdGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5nc1dyYXBwZXIoKTtcbiAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5nc1dyYXBwZXIoKTtcblxuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgc2V0dGluZ3MgZnJvbSBkYXRhLmpzb24uIEV4cGVjdGVkIE9iamVjdCwgZ290OiAke3R5cGVvZiBkYXRhfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJhd1JlY29yZCA9IGRhdGEgYXMgR2VuZXJpY09iamVjdDtcbiAgICBjb25zdCBwYXJzZWRTZXR0aW5ncyA9IGF3YWl0IHRoaXMucmF3UmVjb3JkVG9TZXR0aW5ncyhyYXdSZWNvcmQpO1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnZhbGlkYXRlKHBhcnNlZFNldHRpbmdzKTtcblxuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIG9mIHRoaXMucHJvcGVydHlOYW1lcykge1xuICAgICAgdGhpcy5zZXRQcm9wZXJ0eUltcGwocHJvcGVydHlOYW1lLCBwYXJzZWRTZXR0aW5nc1twcm9wZXJ0eU5hbWVdLCB2YWxpZGF0aW9uUmVzdWx0W3Byb3BlcnR5TmFtZV0pO1xuICAgIH1cblxuICAgIHRoaXMubGFzdFNhdmVkU2V0dGluZ3NXcmFwcGVyID0gYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzV3JhcHBlcih0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIpO1xuXG4gICAgY29uc3QgbmV3UmVjb3JkID0gYXdhaXQgdGhpcy5zZXR0aW5nc1RvUmF3UmVjb3JkKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyk7XG5cbiAgICBpZiAoIWRlZXBFcXVhbChuZXdSZWNvcmQsIGRhdGEpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNhdmVUb0ZpbGVJbXBsKCk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy50cmlnZ2VyQXN5bmMoJ2xvYWRTZXR0aW5ncycsIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlciwgaXNJbml0aWFsTG9hZCk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byB0aGUgYGxvYWRTZXR0aW5nc2AgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gQWx3YXlzIGBsb2FkU2V0dGluZ3NgLlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQuXG4gICAqIEBwYXJhbSB0aGlzQXJnIC0gVGhlIGNvbnRleHQgcGFzc2VkIGFzIGB0aGlzYCB0byB0aGUgYGNhbGxiYWNrYC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9uKFxuICAgIG5hbWU6ICdsb2FkU2V0dGluZ3MnLFxuICAgIGNhbGxiYWNrOiAoXG4gICAgICBsb2FkZWRTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPixcbiAgICAgIGlzSW5pdGlhbExvYWQ6IGJvb2xlYW5cbiAgICApID0+IFByb21pc2FibGU8dm9pZD4sXG4gICAgdGhpc0FyZz86IHVua25vd25cbiAgKTogQXN5bmNFdmVudFJlZjtcbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgdG8gdGhlIGBzYXZlU2V0dGluZ3NgIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIEFsd2F5cyBgc2F2ZVNldHRpbmdzYC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKiBAcGFyYW0gdGhpc0FyZyAtIFRoZSBjb250ZXh0IHBhc3NlZCBhcyBgdGhpc2AgdG8gdGhlIGBjYWxsYmFja2AuXG4gICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBldmVudCBsaXN0ZW5lci5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvbihcbiAgICBuYW1lOiAnc2F2ZVNldHRpbmdzJyxcbiAgICBjYWxsYmFjazogKFxuICAgICAgbmV3U2V0dGluZ3M6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4sXG4gICAgICBvbGRTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPixcbiAgICAgIGNvbnRleHQ6IHVua25vd25cbiAgICApID0+IFByb21pc2FibGU8dm9pZD4sXG4gICAgdGhpc0FyZz86IHVua25vd25cbiAgKTogQXN5bmNFdmVudFJlZjtcbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgdG8gYW4gZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQuXG4gICAqIEBwYXJhbSB0aGlzQXJnIC0gVGhlIGNvbnRleHQgcGFzc2VkIGFzIGB0aGlzYCB0byB0aGUgYGNhbGxiYWNrYC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9uPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10+KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2FibGU8dm9pZD4sXG4gICAgdGhpc0FyZz86IHVua25vd25cbiAgKTogQXN5bmNFdmVudFJlZiB7XG4gICAgcmV0dXJuIHN1cGVyLm9uKG5hbWUsIGNhbGxiYWNrLCB0aGlzQXJnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyB0aGUgbmV3IHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgY29udGV4dCBvZiB0aGUgc2F2ZSB0byBmaWxlIG9wZXJhdGlvbi5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgc2F2ZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2F2ZVRvRmlsZShjb250ZXh0PzogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChkZWVwRXF1YWwodGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MsIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0ZpbGVJbXBsKCk7XG4gICAgYXdhaXQgdGhpcy50cmlnZ2VyQXN5bmMoJ3NhdmVTZXR0aW5ncycsIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlciwgdGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIsIGNvbnRleHQpO1xuICAgIHRoaXMubGFzdFNhdmVkU2V0dGluZ3NXcmFwcGVyID0gYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzV3JhcHBlcih0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHkuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2UuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0UHJvcGVydHk8UHJvcGVydHlOYW1lIGV4dGVuZHMgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lczxQbHVnaW5UeXBlcz4+KFxuICAgIHByb3BlcnR5TmFtZTogUHJvcGVydHlOYW1lLFxuICAgIHZhbHVlOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+W1Byb3BlcnR5TmFtZV1cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBhd2FpdCB0aGlzLmVkaXQoKHNldHRpbmdzKSA9PiB7XG4gICAgICBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci52YWxpZGF0aW9uTWVzc2FnZXNbcHJvcGVydHlOYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gc2V0dGluZ3MgLSBUaGUgc2V0dGluZ3MuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHZhbGlkYXRpb24gcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+PiB7XG4gICAgY29uc3QgcmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0PEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+ID0ge307XG4gICAgZm9yIChjb25zdCBbcHJvcGVydHlOYW1lLCB2YWxpZGF0b3JdIG9mIHRoaXMudmFsaWRhdG9ycy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25NZXNzYWdlID0gYXdhaXQgdmFsaWRhdG9yKHNldHRpbmdzW3Byb3BlcnR5TmFtZV0sIHNldHRpbmdzKTtcbiAgICAgIGlmICh2YWxpZGF0aW9uTWVzc2FnZSkge1xuICAgICAgICByZXN1bHRbcHJvcGVydHlOYW1lXSA9IHZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlRGVmYXVsdFNldHRpbmdzKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRyYW5zZm9ybWVyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VHJhbnNmb3JtZXIoKTogVHJhbnNmb3JtZXIge1xuICAgIHJldHVybiBkZWZhdWx0VHJhbnNmb3JtZXI7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKlxuICAgKiBAcGFyYW0gX3JlY29yZCAtIFRoZSByZWNvcmQuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgb25Mb2FkUmVjb3JkKF9yZWNvcmQ6IEdlbmVyaWNPYmplY3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBub29wQXN5bmMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIHNldHRpbmdzIGFyZSBzYXZpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBfcmVjb3JkIC0gVGhlIHJlY29yZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvblNhdmluZ1JlY29yZChfcmVjb3JkOiBHZW5lcmljT2JqZWN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgdmFsaWRhdG9yIGZvciBhIHByb3BlcnR5LlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gdmFsaWRhdG9yIC0gVGhlIHZhbGlkYXRvci5cbiAgICovXG4gIHByb3RlY3RlZCByZWdpc3RlclZhbGlkYXRvcjxQcm9wZXJ0eU5hbWUgZXh0ZW5kcyBFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPj4oXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgdmFsaWRhdG9yOiBWYWxpZGF0b3I8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPiwgUHJvcGVydHlOYW1lPlxuICApOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRvcnMuc2V0KHByb3BlcnR5TmFtZSwgdmFsaWRhdG9yIGFzIFZhbGlkYXRvcjxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+Pik7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSB2YWxpZGF0b3JzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHJlZ2lzdGVyIHZhbGlkYXRvcnMgZm9yIHByb3BlcnRpZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVnaXN0ZXJWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgIG5vb3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2xvbmVTZXR0aW5ncyhzZXR0aW5nczogRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPik6IFByb21pc2U8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4ge1xuICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IHRoaXMuc2V0dGluZ3NUb1Jhd1JlY29yZChzZXR0aW5ncyk7XG4gICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KHJlY29yZCk7XG4gICAgY29uc3QgY2xvbmVSZWNvcmQgPSBKU09OLnBhcnNlKGpzb24pIGFzIEdlbmVyaWNPYmplY3Q7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmF3UmVjb3JkVG9TZXR0aW5ncyhjbG9uZVJlY29yZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNsb25lU2V0dGluZ3NXcmFwcGVyKFxuICAgIHNldHRpbmdzV3JhcHBlcjogUGx1Z2luU2V0dGluZ3NXcmFwcGVyPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+XG4gICk6IFByb21pc2U8UGx1Z2luU2V0dGluZ3NXcmFwcGVyPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNhZmVTZXR0aW5nczogYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzKHNldHRpbmdzV3JhcHBlci5zYWZlU2V0dGluZ3MpLFxuICAgICAgc2V0dGluZ3M6IGF3YWl0IHRoaXMuY2xvbmVTZXR0aW5ncyhzZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MpLFxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiB7IC4uLnNldHRpbmdzV3JhcHBlci52YWxpZGF0aW9uTWVzc2FnZXMgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURlZmF1bHRTZXR0aW5nc1dyYXBwZXIoKTogUGx1Z2luU2V0dGluZ3NXcmFwcGVyPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2FmZVNldHRpbmdzOiB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5ncygpLFxuICAgICAgc2V0dGluZ3M6IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzKCksXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZXM6IHt9IGFzIFJlY29yZDxFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPiwgc3RyaW5nPlxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVkaXQoc2V0dGluZ3NFZGl0b3I6IChzZXR0aW5nczogRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPikgPT4gUHJvbWlzYWJsZTx2b2lkPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzZXR0aW5nc0VkaXRvcih0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy52YWxpZGF0ZSh0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MpO1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgdGhpcy5wcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25NZXNzYWdlID0gdmFsaWRhdGlvblJlc3VsdFtwcm9wZXJ0eU5hbWVdID8/ICcnO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIudmFsaWRhdGlvbk1lc3NhZ2VzW3Byb3BlcnR5TmFtZV0gPSB2YWxpZGF0aW9uTWVzc2FnZTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNhZmVTZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2VcbiAgICAgICAgICA/IHRoaXMuZGVmYXVsdFNldHRpbmdzW3Byb3BlcnR5TmFtZV1cbiAgICAgICAgICA6IHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5nc1twcm9wZXJ0eU5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZFByb3BlcnR5TmFtZShwcm9wOiB1bmtub3duKTogcHJvcCBpcyBFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPiB7XG4gICAgaWYgKHR5cGVvZiBwcm9wICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5wcm9wZXJ0eU5hbWVzIGFzIHN0cmluZ1tdKS5pbmNsdWRlcyhwcm9wKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmF3UmVjb3JkVG9TZXR0aW5ncyhyYXdSZWNvcmQ6IEdlbmVyaWNPYmplY3QpOiBQcm9taXNlPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+IHtcbiAgICByYXdSZWNvcmQgPSB0aGlzLmdldFRyYW5zZm9ybWVyKCkudHJhbnNmb3JtT2JqZWN0UmVjdXJzaXZlbHkocmF3UmVjb3JkKTtcbiAgICBhd2FpdCB0aGlzLm9uTG9hZFJlY29yZChyYXdSZWNvcmQpO1xuXG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5ncygpO1xuXG4gICAgZm9yIChjb25zdCBbcHJvcGVydHlOYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmF3UmVjb3JkKSkge1xuICAgICAgaWYgKCF0aGlzLmlzVmFsaWRQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFVua25vd24gcHJvcGVydHk6ICR7cHJvcGVydHlOYW1lfWApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gdHlwZW9mIHRoaXMuZGVmYXVsdFNldHRpbmdzW3Byb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdQb3NzaWJsZSBpbnZhbGlkIHZhbHVlIHR5cGUuIEl0IG1pZ2h0IGxlYWQgdG8gYW4gdW5leHBlY3RlZCBiZWhhdmlvciBvZiB0aGUgcGx1Z2luLiBUaGVyZSBpcyBhbHNvIGEgY2hhbmNlIGl0IGlzIGEgZmFsc2UtbmVnYXRpdmUgd2FybmluZywgYXMgd2UgYXJlIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIGV4YWN0IHR5cGUgb2YgdGhlIHZhbHVlIGluIHJ1bnRpbWUuJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZGVmYXVsdFNldHRpbmdzW3Byb3BlcnR5TmFtZV0sXG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgc2V0dGluZ3NbcHJvcGVydHlOYW1lXSA9IHZhbHVlIGFzIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5VmFsdWVzPFBsdWdpblR5cGVzPjtcbiAgICB9XG5cbiAgICByZXR1cm4gc2V0dGluZ3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNhdmVUb0ZpbGVJbXBsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKGF3YWl0IHRoaXMuc2V0dGluZ3NUb1Jhd1JlY29yZCh0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UHJvcGVydHlJbXBsKFxuICAgIHByb3BlcnR5TmFtZTogRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lczxQbHVnaW5UeXBlcz4sXG4gICAgdmFsdWU6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5VmFsdWVzPFBsdWdpblR5cGVzPixcbiAgICB2YWxpZGF0aW9uTWVzc2FnZT86IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3NbcHJvcGVydHlOYW1lXSA9IHZhbHVlO1xuICAgIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci52YWxpZGF0aW9uTWVzc2FnZXNbcHJvcGVydHlOYW1lXSA9IHZhbGlkYXRpb25NZXNzYWdlID8/ICcnO1xuICAgIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zYWZlU2V0dGluZ3NbcHJvcGVydHlOYW1lXSA9IHZhbGlkYXRpb25NZXNzYWdlID8gdGhpcy5kZWZhdWx0U2V0dGluZ3NbcHJvcGVydHlOYW1lXSA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXR0aW5nc1RvUmF3UmVjb3JkKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KTogUHJvbWlzZTxHZW5lcmljT2JqZWN0PiB7XG4gICAgY29uc3QgcmF3UmVjb3JkOiBHZW5lcmljT2JqZWN0ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBvZiB0aGlzLnByb3BlcnR5TmFtZXMpIHtcbiAgICAgIHJhd1JlY29yZFtwcm9wZXJ0eU5hbWVdID0gc2V0dGluZ3NbcHJvcGVydHlOYW1lXTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLm9uU2F2aW5nUmVjb3JkKHJhd1JlY29yZCk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2Zvcm1lcigpLnRyYW5zZm9ybU9iamVjdFJlY3Vyc2l2ZWx5KHJhd1JlY29yZCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBOEJBLHlCQUE0QjtBQUM1QixzQkFHTztBQUNQLG9CQUdPO0FBQ1AsNkJBQWdDO0FBQ2hDLGlDQUFvQztBQUNwQyw4QkFBaUM7QUFDakMsNENBQStDO0FBRS9DLE1BQU0scUJBQXFCLElBQUkseUNBQWlCO0FBQUEsRUFDOUMsSUFBSSxxRUFBK0I7QUFBQSxFQUNuQyxJQUFJLHVDQUFnQjtBQUFBLEVBQ3BCLElBQUksK0NBQW9CO0FBQzFCLENBQUM7QUFjTSxNQUFlLGtDQUF1RSwrQkFBWTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXdCaEcsWUFBNEIsUUFBb0M7QUFDckUsVUFBTTtBQUQyQjtBQUVqQyxTQUFLLE1BQU0sT0FBTztBQUNsQixTQUFLLGtCQUFrQixLQUFLLHNCQUFzQjtBQUNsRCxTQUFLLHlCQUF5QixLQUFLLDZCQUE2QjtBQUNoRSxTQUFL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
|
323
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc01hbmFnZXJCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFBsdWdpbiBzZXR0aW5ncyBtYW5hZ2VyIGJhc2UgY2xhc3MuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21pc2FibGUsXG4gIFJlYWRvbmx5RGVlcFxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IEFzeW5jRXZlbnRSZWYgfSBmcm9tICcuLi8uLi9Bc3luY0V2ZW50cy50cyc7XG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICcuLi8uLi9PYmplY3QudHMnO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL1RyYW5zZm9ybWVycy9UcmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIE1heWJlUmV0dXJuLFxuICBTdHJpbmdLZXlzXG59IGZyb20gJy4uLy4uL1R5cGUudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc1dyYXBwZXIgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzV3JhcHBlci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEV4dHJhY3RQbHVnaW4sXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5ncyxcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lcyxcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlWYWx1ZXMsXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1dyYXBwZXIsXG4gIEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcixcbiAgUGx1Z2luVHlwZXNCYXNlXG59IGZyb20gJy4vUGx1Z2luVHlwZXNCYXNlLnRzJztcblxuaW1wb3J0IHsgQXN5bmNFdmVudHMgfSBmcm9tICcuLi8uLi9Bc3luY0V2ZW50cy50cyc7XG5pbXBvcnQge1xuICBub29wLFxuICBub29wQXN5bmNcbn0gZnJvbSAnLi4vLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHtcbiAgZGVlcEVxdWFsLFxuICBnZXRBbGxLZXlzXG59IGZyb20gJy4uLy4uL09iamVjdC50cyc7XG5pbXBvcnQgeyBEYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvRGF0ZVRyYW5zZm9ybWVyLnRzJztcbmltcG9ydCB7IER1cmF0aW9uVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvRHVyYXRpb25UcmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBHcm91cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vVHJhbnNmb3JtZXJzL0dyb3VwVHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgTWFwVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvTWFwVHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgU2V0VHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvU2V0VHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vVHJhbnNmb3JtZXJzL1NraXBQcml2YXRlUHJvcGVydHlUcmFuc2Zvcm1lci50cyc7XG5cbmNvbnN0IGRlZmF1bHRUcmFuc2Zvcm1lciA9IG5ldyBHcm91cFRyYW5zZm9ybWVyKFtcbiAgbmV3IFNraXBQcml2YXRlUHJvcGVydHlUcmFuc2Zvcm1lcigpLFxuICBuZXcgRGF0ZVRyYW5zZm9ybWVyKCksXG4gIG5ldyBEdXJhdGlvblRyYW5zZm9ybWVyKCksXG4gIG5ldyBNYXBUcmFuc2Zvcm1lcigpLFxuICBuZXcgU2V0VHJhbnNmb3JtZXIoKVxuXSk7XG5cbnR5cGUgVmFsaWRhdGlvblJlc3VsdDxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdD4gPSBQYXJ0aWFsPFJlY29yZDxTdHJpbmdLZXlzPFBsdWdpblNldHRpbmdzPiwgc3RyaW5nPj47XG5cbnR5cGUgVmFsaWRhdG9yPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0LCBQcm9wZXJ0eU5hbWUgZXh0ZW5kcyBTdHJpbmdLZXlzPFBsdWdpblNldHRpbmdzPiA9IFN0cmluZ0tleXM8UGx1Z2luU2V0dGluZ3M+PiA9IChcbiAgdmFsdWU6IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZV0sXG4gIHNldHRpbmdzOiBQbHVnaW5TZXR0aW5nc1xuKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPHN0cmluZz4+O1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIG1hbmFnaW5nIHBsdWdpbiBzZXR0aW5ncy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblR5cGVzIC0gUGx1Z2luLXNwZWNpZmljIHR5cGVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luU2V0dGluZ3NNYW5hZ2VyQmFzZTxQbHVnaW5UeXBlcyBleHRlbmRzIFBsdWdpblR5cGVzQmFzZT4gZXh0ZW5kcyBBc3luY0V2ZW50cyB7XG4gIHB1YmxpYyByZWFkb25seSBhcHA6IEFwcDtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdFNldHRpbmdzOiBSZWFkb25seURlZXA8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgc2V0dGluZ3Mgd3JhcHBlci5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgc2V0dGluZ3Mgd3JhcHBlci5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3NXcmFwcGVyKCk6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIgYXMgRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPjtcbiAgfVxuXG4gIHByaXZhdGUgY3VycmVudFNldHRpbmdzV3JhcHBlcjogRXh0cmFjdFBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz47XG5cbiAgcHJpdmF0ZSBsYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXI6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+O1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BlcnR5TmFtZXM6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+W107XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRhdG9ycyA9IG5ldyBNYXA8RXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lczxQbHVnaW5UeXBlcz4sIFZhbGlkYXRvcjxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+Pj4oKTtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgcGx1Z2luIHNldHRpbmdzIG1hbmFnZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBwbHVnaW46IEV4dHJhY3RQbHVnaW48UGx1Z2luVHlwZXM+KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwcCA9IHBsdWdpbi5hcHA7XG4gICAgdGhpcy5kZWZhdWx0U2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5ncygpIGFzIFJlYWRvbmx5RGVlcDxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+PjtcbiAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5nc1dyYXBwZXIoKTtcbiAgICB0aGlzLmxhc3RTYXZlZFNldHRpbmdzV3JhcHBlciA9IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzV3JhcHBlcigpO1xuICAgIHRoaXMucHJvcGVydHlOYW1lcyA9IGdldEFsbEtleXModGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNldHRpbmdzKTtcbiAgICB0aGlzLnJlZ2lzdGVyVmFsaWRhdG9ycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVkaXRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgYW5kIHNhdmVzIHRoZW0uXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5nc0VkaXRvciAtIFRoZSBlZGl0b3IuXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVkaXRBbmRTYXZlKHNldHRpbmdzRWRpdG9yOiAoc2V0dGluZ3M6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4pID0+IFByb21pc2FibGU8dm9pZD4sIGNvbnRleHQ/OiB1bmtub3duKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5lZGl0KHNldHRpbmdzRWRpdG9yKTtcbiAgICBhd2FpdCB0aGlzLnNhdmVUb0ZpbGUoY29udGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGUgc2V0dGluZ3MgYXJlIHNhZmUuXG4gICAqXG4gICAqIEl0IHJ1bnMgdmFsaWRhdGlvbiBmb3IgZWFjaCBwcm9wZXJ0eSBhbmQgc2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBpZiB0aGUgdmFsaWRhdGlvbiBmYWlscy5cbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYWZlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVuc3VyZVNhZmUoc2V0dGluZ3M6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy52YWxpZGF0ZShzZXR0aW5ncyk7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgdGhpcy5wcm9wZXJ0eU5hbWVzKSB7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdFtwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgIHNldHRpbmdzW3Byb3BlcnR5TmFtZV0gPSB0aGlzLmRlZmF1bHRTZXR0aW5nc1twcm9wZXJ0eU5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc2FmZSBjb3B5IG9mIHRoZSBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBzYWZlIGNvcHkgb2YgdGhlIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNhZmVDb3B5KHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KTogUHJvbWlzZTxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+PiB7XG4gICAgY29uc3Qgc2FmZVNldHRpbmdzID0gYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzKHNldHRpbmdzKTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNhZmUoc2FmZVNldHRpbmdzKTtcbiAgICByZXR1cm4gc2FmZVNldHRpbmdzO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgZnJvbSB0aGUgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGlzSW5pdGlhbExvYWQgLSBXaGV0aGVyIHRoZSBzZXR0aW5ncyBhcmUgYmVpbmcgbG9hZGVkIGZvciB0aGUgZmlyc3QgdGltZS5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWRGcm9tRmlsZShpc0luaXRpYWxMb2FkOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMucGx1Z2luLmxvYWREYXRhKCkgYXMgdW5rbm93bjtcbiAgICB0aGlzLmxhc3RTYXZlZFNldHRpbmdzV3JhcHBlciA9IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzV3JhcHBlcigpO1xuICAgIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlciA9IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzV3JhcHBlcigpO1xuXG4gICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCB8fCBkYXRhID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBzZXR0aW5ncyBmcm9tIGRhdGEuanNvbi4gRXhwZWN0ZWQgT2JqZWN0LCBnb3Q6ICR7dHlwZW9mIGRhdGF9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmF3UmVjb3JkID0gZGF0YSBhcyBHZW5lcmljT2JqZWN0O1xuICAgIGNvbnN0IHBhcnNlZFNldHRpbmdzID0gYXdhaXQgdGhpcy5yYXdSZWNvcmRUb1NldHRpbmdzKHJhd1JlY29yZCk7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGUocGFyc2VkU2V0dGluZ3MpO1xuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgdGhpcy5wcm9wZXJ0eU5hbWVzKSB7XG4gICAgICB0aGlzLnNldFByb3BlcnR5SW1wbChwcm9wZXJ0eU5hbWUsIHBhcnNlZFNldHRpbmdzW3Byb3BlcnR5TmFtZV0sIHZhbGlkYXRpb25SZXN1bHRbcHJvcGVydHlOYW1lXSk7XG4gICAgfVxuXG4gICAgdGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIgPSBhd2FpdCB0aGlzLmNsb25lU2V0dGluZ3NXcmFwcGVyKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlcik7XG5cbiAgICBjb25zdCBuZXdSZWNvcmQgPSBhd2FpdCB0aGlzLnNldHRpbmdzVG9SYXdSZWNvcmQodGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNldHRpbmdzKTtcblxuICAgIGlmICghZGVlcEVxdWFsKG5ld1JlY29yZCwgZGF0YSkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2F2ZVRvRmlsZUltcGwoKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnRyaWdnZXJBc3luYygnbG9hZFNldHRpbmdzJywgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLCBpc0luaXRpYWxMb2FkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmVzIHRvIHRoZSBgbG9hZFNldHRpbmdzYCBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBBbHdheXMgYGxvYWRTZXR0aW5nc2AuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAgICogQHBhcmFtIHRoaXNBcmcgLSBUaGUgY29udGV4dCBwYXNzZWQgYXMgYHRoaXNgIHRvIHRoZSBgY2FsbGJhY2tgLlxuICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGUgZXZlbnQgbGlzdGVuZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb24oXG4gICAgbmFtZTogJ2xvYWRTZXR0aW5ncycsXG4gICAgY2FsbGJhY2s6IChcbiAgICAgIGxvYWRlZFNldHRpbmdzOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+LFxuICAgICAgaXNJbml0aWFsTG9hZDogYm9vbGVhblxuICAgICkgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgICB0aGlzQXJnPzogdW5rbm93blxuICApOiBBc3luY0V2ZW50UmVmO1xuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byB0aGUgYHNhdmVTZXR0aW5nc2AgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gQWx3YXlzIGBzYXZlU2V0dGluZ3NgLlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQuXG4gICAqIEBwYXJhbSB0aGlzQXJnIC0gVGhlIGNvbnRleHQgcGFzc2VkIGFzIGB0aGlzYCB0byB0aGUgYGNhbGxiYWNrYC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9uKFxuICAgIG5hbWU6ICdzYXZlU2V0dGluZ3MnLFxuICAgIGNhbGxiYWNrOiAoXG4gICAgICBuZXdTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPixcbiAgICAgIG9sZFNldHRpbmdzOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+LFxuICAgICAgY29udGV4dDogdW5rbm93blxuICAgICkgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgICB0aGlzQXJnPzogdW5rbm93blxuICApOiBBc3luY0V2ZW50UmVmO1xuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byBhbiBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAgICogQHBhcmFtIHRoaXNBcmcgLSBUaGUgY29udGV4dCBwYXNzZWQgYXMgYHRoaXNgIHRvIHRoZSBgY2FsbGJhY2tgLlxuICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGUgZXZlbnQgbGlzdGVuZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb248QXJncyBleHRlbmRzIHVua25vd25bXT4oXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiAoLi4uYXJnczogQXJncykgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgICB0aGlzQXJnPzogdW5rbm93blxuICApOiBBc3luY0V2ZW50UmVmIHtcbiAgICByZXR1cm4gc3VwZXIub24obmFtZSwgY2FsbGJhY2ssIHRoaXNBcmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIHRoZSBuZXcgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0IG9mIHRoZSBzYXZlIHRvIGZpbGUgb3BlcmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYXZlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzYXZlVG9GaWxlKGNvbnRleHQ/OiB1bmtub3duKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGRlZXBFcXVhbCh0aGlzLmxhc3RTYXZlZFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncywgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNldHRpbmdzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc2F2ZVRvRmlsZUltcGwoKTtcbiAgICBhd2FpdCB0aGlzLnRyaWdnZXJBc3luYygnc2F2ZVNldHRpbmdzJywgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLCB0aGlzLmxhc3RTYXZlZFNldHRpbmdzV3JhcHBlciwgY29udGV4dCk7XG4gICAgdGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIgPSBhd2FpdCB0aGlzLmNsb25lU2V0dGluZ3NXcmFwcGVyKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlcik7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgb2YgYSBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHZhbGlkYXRpb24gbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXRQcm9wZXJ0eTxQcm9wZXJ0eU5hbWUgZXh0ZW5kcyBFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPj4oXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgdmFsdWU6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz5bUHJvcGVydHlOYW1lXVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGF3YWl0IHRoaXMuZWRpdCgoc2V0dGluZ3MpID0+IHtcbiAgICAgIHNldHRpbmdzW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnZhbGlkYXRpb25NZXNzYWdlc1twcm9wZXJ0eU5hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5ncyAtIFRoZSBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgdmFsaWRhdGlvbiByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoc2V0dGluZ3M6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4pOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4+IHtcbiAgICBjb25zdCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQ8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eU5hbWUsIHZhbGlkYXRvcl0gb2YgdGhpcy52YWxpZGF0b3JzLmVudHJpZXMoKSkge1xuICAgICAgY29uc3QgdmFsaWRhdGlvbk1lc3NhZ2UgPSBhd2FpdCB2YWxpZGF0b3Ioc2V0dGluZ3NbcHJvcGVydHlOYW1lXSwgc2V0dGluZ3MpO1xuICAgICAgaWYgKHZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgIHJlc3VsdFtwcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVEZWZhdWx0U2V0dGluZ3MoKTogRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPjtcblxuICAvKipcbiAgICogR2V0cyB0aGUgdHJhbnNmb3JtZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2Zvcm1lci5cbiAgICovXG4gIHByb3RlY3RlZCBnZXRUcmFuc2Zvcm1lcigpOiBUcmFuc2Zvcm1lciB7XG4gICAgcmV0dXJuIGRlZmF1bHRUcmFuc2Zvcm1lcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIHNldHRpbmdzIGFyZSBsb2FkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBfcmVjb3JkIC0gVGhlIHJlY29yZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbkxvYWRSZWNvcmQoX3JlY29yZDogR2VuZXJpY09iamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gc2V0dGluZ3MgYXJlIHNhdmluZy5cbiAgICpcbiAgICogQHBhcmFtIF9yZWNvcmQgLSBUaGUgcmVjb3JkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uU2F2aW5nUmVjb3JkKF9yZWNvcmQ6IEdlbmVyaWNPYmplY3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBub29wQXN5bmMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSB2YWxpZGF0b3IgZm9yIGEgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gICAqIEBwYXJhbSB2YWxpZGF0b3IgLSBUaGUgdmFsaWRhdG9yLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyVmFsaWRhdG9yPFByb3BlcnR5TmFtZSBleHRlbmRzIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+PihcbiAgICBwcm9wZXJ0eU5hbWU6IFByb3BlcnR5TmFtZSxcbiAgICB2YWxpZGF0b3I6IFZhbGlkYXRvcjxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+LCBQcm9wZXJ0eU5hbWU+XG4gICk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdG9ycy5zZXQocHJvcGVydHlOYW1lLCB2YWxpZGF0b3IgYXMgVmFsaWRhdG9yPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgdGhlIHZhbGlkYXRvcnMuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gcmVnaXN0ZXIgdmFsaWRhdG9ycyBmb3IgcHJvcGVydGllcy5cbiAgICovXG4gIHByb3RlY3RlZCByZWdpc3RlclZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbG9uZVNldHRpbmdzKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KTogUHJvbWlzZTxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+PiB7XG4gICAgY29uc3QgcmVjb3JkID0gYXdhaXQgdGhpcy5zZXR0aW5nc1RvUmF3UmVjb3JkKHNldHRpbmdzKTtcbiAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkocmVjb3JkKTtcbiAgICBjb25zdCBjbG9uZVJlY29yZCA9IEpTT04ucGFyc2UoanNvbikgYXMgR2VuZXJpY09iamVjdDtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yYXdSZWNvcmRUb1NldHRpbmdzKGNsb25lUmVjb3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2xvbmVTZXR0aW5nc1dyYXBwZXIoXG4gICAgc2V0dGluZ3NXcmFwcGVyOiBQbHVnaW5TZXR0aW5nc1dyYXBwZXI8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj5cbiAgKTogUHJvbWlzZTxQbHVnaW5TZXR0aW5nc1dyYXBwZXI8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2FmZVNldHRpbmdzOiBhd2FpdCB0aGlzLmNsb25lU2V0dGluZ3Moc2V0dGluZ3NXcmFwcGVyLnNhZmVTZXR0aW5ncyksXG4gICAgICBzZXR0aW5nczogYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzKHNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyksXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZXM6IHsgLi4uc2V0dGluZ3NXcmFwcGVyLnZhbGlkYXRpb25NZXNzYWdlcyB9XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRGVmYXVsdFNldHRpbmdzV3JhcHBlcigpOiBQbHVnaW5TZXR0aW5nc1dyYXBwZXI8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4ge1xuICAgIHJldHVybiB7XG4gICAgICBzYWZlU2V0dGluZ3M6IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzKCksXG4gICAgICBzZXR0aW5nczogdGhpcy5jcmVhdGVEZWZhdWx0U2V0dGluZ3MoKSxcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlczoge30gYXMgUmVjb3JkPEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+LCBzdHJpbmc+XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZWRpdChzZXR0aW5nc0VkaXRvcjogKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KSA9PiBQcm9taXNhYmxlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHNldHRpbmdzRWRpdG9yKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnZhbGlkYXRlKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyk7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBvZiB0aGlzLnByb3BlcnR5TmFtZXMpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGlvbk1lc3NhZ2UgPSB2YWxpZGF0aW9uUmVzdWx0W3Byb3BlcnR5TmFtZV0gPz8gJyc7XG4gICAgICAgIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci52YWxpZGF0aW9uTWVzc2FnZXNbcHJvcGVydHlOYW1lXSA9IHZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIuc2FmZVNldHRpbmdzW3Byb3BlcnR5TmFtZV0gPSB2YWxpZGF0aW9uTWVzc2FnZVxuICAgICAgICAgID8gdGhpcy5kZWZhdWx0U2V0dGluZ3NbcHJvcGVydHlOYW1lXVxuICAgICAgICAgIDogdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNldHRpbmdzW3Byb3BlcnR5TmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkUHJvcGVydHlOYW1lKHByb3A6IHVua25vd24pOiBwcm9wIGlzIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+IHtcbiAgICBpZiAodHlwZW9mIHByb3AgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLnByb3BlcnR5TmFtZXMgYXMgc3RyaW5nW10pLmluY2x1ZGVzKHByb3ApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByYXdSZWNvcmRUb1NldHRpbmdzKHJhd1JlY29yZDogR2VuZXJpY09iamVjdCk6IFByb21pc2U8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4ge1xuICAgIHJhd1JlY29yZCA9IHRoaXMuZ2V0VHJhbnNmb3JtZXIoKS50cmFuc2Zvcm1PYmplY3RSZWN1cnNpdmVseShyYXdSZWNvcmQpO1xuICAgIGF3YWl0IHRoaXMub25Mb2FkUmVjb3JkKHJhd1JlY29yZCk7XG5cbiAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzKCk7XG5cbiAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eU5hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyYXdSZWNvcmQpKSB7XG4gICAgICBpZiAoIXRoaXMuaXNWYWxpZFByb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgVW5rbm93biBwcm9wZXJ0eTogJHtwcm9wZXJ0eU5hbWV9YCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSB0eXBlb2YgdGhpcy5kZWZhdWx0U2V0dGluZ3NbcHJvcGVydHlOYW1lXSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1Bvc3NpYmxlIGludmFsaWQgdmFsdWUgdHlwZS4gSXQgbWlnaHQgbGVhZCB0byBhbiB1bmV4cGVjdGVkIGJlaGF2aW9yIG9mIHRoZSBwbHVnaW4uIFRoZXJlIGlzIGFsc28gYSBjaGFuY2UgaXQgaXMgYSBmYWxzZS1uZWdhdGl2ZSB3YXJuaW5nLCBhcyB3ZSBhcmUgdW5hYmxlIHRvIGRldGVybWluZSB0aGUgZXhhY3QgdHlwZSBvZiB0aGUgdmFsdWUgaW4gcnVudGltZS4nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5kZWZhdWx0U2V0dGluZ3NbcHJvcGVydHlOYW1lXSxcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsdWUgYXMgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlWYWx1ZXM8UGx1Z2luVHlwZXM+O1xuICAgIH1cblxuICAgIHJldHVybiBzZXR0aW5ncztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2F2ZVRvRmlsZUltcGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEoYXdhaXQgdGhpcy5zZXR0aW5nc1RvUmF3UmVjb3JkKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcm9wZXJ0eUltcGwoXG4gICAgcHJvcGVydHlOYW1lOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPixcbiAgICB2YWx1ZTogRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlWYWx1ZXM8UGx1Z2luVHlwZXM+LFxuICAgIHZhbGlkYXRpb25NZXNzYWdlPzogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnZhbGlkYXRpb25NZXNzYWdlc1twcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2UgPz8gJyc7XG4gICAgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNhZmVTZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2UgPyB0aGlzLmRlZmF1bHRTZXR0aW5nc1twcm9wZXJ0eU5hbWVdIDogdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldHRpbmdzVG9SYXdSZWNvcmQoc2V0dGluZ3M6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4pOiBQcm9taXNlPEdlbmVyaWNPYmplY3Q+IHtcbiAgICBjb25zdCByYXdSZWNvcmQ6IEdlbmVyaWNPYmplY3QgPSB7fTtcblxuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIG9mIHRoaXMucHJvcGVydHlOYW1lcykge1xuICAgICAgcmF3UmVjb3JkW3Byb3BlcnR5TmFtZV0gPSBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMub25TYXZpbmdSZWNvcmQocmF3UmVjb3JkKTtcblxuICAgIHJldHVybiB0aGlzLmdldFRyYW5zZm9ybWVyKCkudHJhbnNmb3JtT2JqZWN0UmVjdXJzaXZlbHkocmF3UmVjb3JkKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUE4QkEseUJBQTRCO0FBQzVCLHNCQUdPO0FBQ1Asb0JBR087QUFDUCw2QkFBZ0M7QUFDaEMsaUNBQW9DO0FBQ3BDLDhCQUFpQztBQUNqQyw0QkFBK0I7QUFDL0IsNEJBQStCO0FBQy9CLDRDQUErQztBQUUvQyxNQUFNLHFCQUFxQixJQUFJLHlDQUFpQjtBQUFBLEVBQzlDLElBQUkscUVBQStCO0FBQUEsRUFDbkMsSUFBSSx1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
|
package/dist/lib/esm/Library.mjs
CHANGED
@@ -5,7 +5,7 @@ if you want to view the source, please visit the github repository of this plugi
|
|
5
5
|
|
6
6
|
(function initEsm(){if(globalThis.process){return}const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};globalThis.process=browserProcess})();
|
7
7
|
|
8
|
-
const LIBRARY_VERSION = "26.
|
8
|
+
const LIBRARY_VERSION = "26.17.0";
|
9
9
|
const LIBRARY_NAME = "obsidian-dev-utils";
|
10
10
|
const LIBRARY_STYLES = ".obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component pre, .obsidian-dev-utils.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-dev-utils.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-dev-utils.code-highlighter-component pre {\n position: absolute;\n pointer-events: none;\n border: var(--input-border-width) solid transparent;\n overflow: auto;\n inset: 0;\n padding: var(--size-4-1) var(--size-4-2);\n z-index: 1;\n}\n.obsidian-dev-utils.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-dev-utils.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-dev-utils input[type=url] {\n height: var(--input-height);\n}\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=tel],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=url],\n.obsidian-dev-utils input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-dev-utils input[type=month]:hover,\n .obsidian-dev-utils input[type=tel]:hover,\n .obsidian-dev-utils input[type=time]:hover,\n .obsidian-dev-utils input[type=url]:hover,\n .obsidian-dev-utils input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=tel]:focus-visible,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=time]:focus-visible,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=url]:focus-visible,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus,\n.obsidian-dev-utils input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-dev-utils input[type=month]::placeholder,\n.obsidian-dev-utils input[type=tel]::placeholder,\n.obsidian-dev-utils input[type=time]::placeholder,\n.obsidian-dev-utils input[type=url]::placeholder,\n.obsidian-dev-utils input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],\n.mod-rtl .obsidian-dev-utils input[type=time],\n.is-rtl .obsidian-dev-utils input[type=time],\n.rtl .obsidian-dev-utils input[type=time],\n.mod-rtl .obsidian-dev-utils input[type=week],\n.is-rtl .obsidian-dev-utils input[type=week],\n.rtl .obsidian-dev-utils input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\n.obsidian-dev-utils.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-dev-utils .multiple-dropdown-component select,\n.obsidian-dev-utils .multiple-dropdown-component select:focus,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-dev-utils .multiple-dropdown-component select option:checked,\n.obsidian-dev-utils .multiple-dropdown-component select:focus option:checked,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown option:checked {\n background-color: #1967d2;\n color: #fff;\n}\n\n.obsidian-dev-utils.prompt-modal .text-box {\n width: 100%;\n}\n\n.obsidian-dev-utils.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-dev-utils :invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils input.metadata-input-text:active:invalid, .obsidian-dev-utils input.metadata-input-text:focus-visible:invalid, .obsidian-dev-utils input.metadata-input-text:focus:invalid,\n.obsidian-dev-utils input[type=date]:active:invalid,\n.obsidian-dev-utils input[type=date]:focus-visible:invalid,\n.obsidian-dev-utils input[type=date]:focus:invalid,\n.obsidian-dev-utils input[type=datetime-local]:active:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus-visible:invalid,\n.obsidian-dev-utils input[type=datetime-local]:focus:invalid,\n.obsidian-dev-utils input[type=email]:active:invalid,\n.obsidian-dev-utils input[type=email]:focus-visible:invalid,\n.obsidian-dev-utils input[type=email]:focus:invalid,\n.obsidian-dev-utils input[type=number]:active:invalid,\n.obsidian-dev-utils input[type=number]:focus-visible:invalid,\n.obsidian-dev-utils input[type=number]:focus:invalid,\n.obsidian-dev-utils input[type=password]:active:invalid,\n.obsidian-dev-utils input[type=password]:focus-visible:invalid,\n.obsidian-dev-utils input[type=password]:focus:invalid,\n.obsidian-dev-utils input[type=search]:active:invalid,\n.obsidian-dev-utils input[type=search]:focus-visible:invalid,\n.obsidian-dev-utils input[type=search]:focus:invalid,\n.obsidian-dev-utils input[type=text]:active:invalid,\n.obsidian-dev-utils input[type=text]:focus-visible:invalid,\n.obsidian-dev-utils input[type=text]:focus:invalid,\n.obsidian-dev-utils textarea:active:invalid,\n.obsidian-dev-utils textarea:focus-visible:invalid,\n.obsidian-dev-utils textarea:focus:invalid {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-dev-utils.overlay-validator {\n caret-color: transparent;\n cursor: default;\n position: absolute;\n background-color: transparent;\n border: none;\n outline: none;\n pointer-events: none;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.obsidian-dev-utils.tooltip.tooltip-validator {\n position: absolute;\n top: calc(100% + 8px);\n width: max-content;\n}\n\n/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACnCJ;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;AChDF;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACRJ;EACE;;;ACDF;EACE;;;ACEJ;EAJA;;AAoBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EApBJ;;AA0BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20%231967d2;%5Cn%20%20%20%20%20%20%20%20color:%20%23fff;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cr%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cr%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cr%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cr%5Cn%20%20%20%20%7D%5Cr%5Cn%20%20%7D%5Cr%5Cn%7D%5Cr%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */\n";
|
11
11
|
export {
|
@@ -0,0 +1,40 @@
|
|
1
|
+
/**
|
2
|
+
* @packageDocumentation
|
3
|
+
*
|
4
|
+
* A transformer that can transform a Map to an array of entries and back.
|
5
|
+
*/
|
6
|
+
import { TypedTransformer } from './TypedTransformer.mjs';
|
7
|
+
type MapEntry = readonly [key: unknown, value: unknown];
|
8
|
+
/**
|
9
|
+
* A transformer that can transform a Map to an array of entries and back.
|
10
|
+
*/
|
11
|
+
export declare class MapTransformer extends TypedTransformer<Map<unknown, unknown>, MapEntry[]> {
|
12
|
+
/**
|
13
|
+
* The ID of the transformer.
|
14
|
+
*
|
15
|
+
* @returns The ID of the transformer.
|
16
|
+
*/
|
17
|
+
get id(): string;
|
18
|
+
/**
|
19
|
+
* Checks if the value is a Map.
|
20
|
+
*
|
21
|
+
* @param value - The value to check.
|
22
|
+
* @returns True if the value is a Map, false otherwise.
|
23
|
+
*/
|
24
|
+
canTransform(value: unknown): value is Map<unknown, unknown>;
|
25
|
+
/**
|
26
|
+
* Restores the value from an array of entries.
|
27
|
+
*
|
28
|
+
* @param transformedValue - The array of entries to restore the value from.
|
29
|
+
* @returns The restored value.
|
30
|
+
*/
|
31
|
+
restoreValue(transformedValue: MapEntry[]): Map<unknown, unknown>;
|
32
|
+
/**
|
33
|
+
* Transforms the value to an array of entries.
|
34
|
+
*
|
35
|
+
* @param value - The value to transform.
|
36
|
+
* @returns The transformed value.
|
37
|
+
*/
|
38
|
+
transformValue(value: Map<unknown, unknown>): MapEntry[];
|
39
|
+
}
|
40
|
+
export {};
|
@@ -0,0 +1,49 @@
|
|
1
|
+
/*
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
4
|
+
*/
|
5
|
+
|
6
|
+
(function initEsm(){if(globalThis.process){return}const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};globalThis.process=browserProcess})();
|
7
|
+
|
8
|
+
import { TypedTransformer } from "./TypedTransformer.mjs";
|
9
|
+
class MapTransformer extends TypedTransformer {
|
10
|
+
/**
|
11
|
+
* The ID of the transformer.
|
12
|
+
*
|
13
|
+
* @returns The ID of the transformer.
|
14
|
+
*/
|
15
|
+
get id() {
|
16
|
+
return "map";
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* Checks if the value is a Map.
|
20
|
+
*
|
21
|
+
* @param value - The value to check.
|
22
|
+
* @returns True if the value is a Map, false otherwise.
|
23
|
+
*/
|
24
|
+
canTransform(value) {
|
25
|
+
return value instanceof Map;
|
26
|
+
}
|
27
|
+
/**
|
28
|
+
* Restores the value from an array of entries.
|
29
|
+
*
|
30
|
+
* @param transformedValue - The array of entries to restore the value from.
|
31
|
+
* @returns The restored value.
|
32
|
+
*/
|
33
|
+
restoreValue(transformedValue) {
|
34
|
+
return new Map(transformedValue);
|
35
|
+
}
|
36
|
+
/**
|
37
|
+
* Transforms the value to an array of entries.
|
38
|
+
*
|
39
|
+
* @param value - The value to transform.
|
40
|
+
* @returns The transformed value.
|
41
|
+
*/
|
42
|
+
transformValue(value) {
|
43
|
+
return Array.from(value.entries());
|
44
|
+
}
|
45
|
+
}
|
46
|
+
export {
|
47
|
+
MapTransformer
|
48
|
+
};
|
49
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1RyYW5zZm9ybWVycy9NYXBUcmFuc2Zvcm1lci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBBIHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSBhIE1hcCB0byBhbiBhcnJheSBvZiBlbnRyaWVzIGFuZCBiYWNrLlxuICovXG5cbmltcG9ydCB7IFR5cGVkVHJhbnNmb3JtZXIgfSBmcm9tICcuL1R5cGVkVHJhbnNmb3JtZXIudHMnO1xuXG50eXBlIE1hcEVudHJ5ID0gcmVhZG9ubHkgW2tleTogdW5rbm93biwgdmFsdWU6IHVua25vd25dO1xuXG4vKipcbiAqIEEgdHJhbnNmb3JtZXIgdGhhdCBjYW4gdHJhbnNmb3JtIGEgTWFwIHRvIGFuIGFycmF5IG9mIGVudHJpZXMgYW5kIGJhY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBNYXBUcmFuc2Zvcm1lciBleHRlbmRzIFR5cGVkVHJhbnNmb3JtZXI8TWFwPHVua25vd24sIHVua25vd24+LCBNYXBFbnRyeVtdPiB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHRyYW5zZm9ybWVyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgSUQgb2YgdGhlIHRyYW5zZm9ybWVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnbWFwJztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHZhbHVlIGlzIGEgTWFwLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHZhbHVlIGlzIGEgTWFwLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgY2FuVHJhbnNmb3JtKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgTWFwPHVua25vd24sIHVua25vd24+IHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBNYXA7XG4gIH1cblxuICAvKipcbiAgICogUmVzdG9yZXMgdGhlIHZhbHVlIGZyb20gYW4gYXJyYXkgb2YgZW50cmllcy5cbiAgICpcbiAgICogQHBhcmFtIHRyYW5zZm9ybWVkVmFsdWUgLSBUaGUgYXJyYXkgb2YgZW50cmllcyB0byByZXN0b3JlIHRoZSB2YWx1ZSBmcm9tLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdG9yZWQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVzdG9yZVZhbHVlKHRyYW5zZm9ybWVkVmFsdWU6IE1hcEVudHJ5W10pOiBNYXA8dW5rbm93biwgdW5rbm93bj4ge1xuICAgIHJldHVybiBuZXcgTWFwPHVua25vd24sIHVua25vd24+KHRyYW5zZm9ybWVkVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgdGhlIHZhbHVlIHRvIGFuIGFycmF5IG9mIGVudHJpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB0cmFuc2Zvcm0uXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZTogTWFwPHVua25vd24sIHVua25vd24+KTogTWFwRW50cnlbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odmFsdWUuZW50cmllcygpKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQU1BLFNBQVMsd0JBQXdCO0FBTzFCLE1BQU0sdUJBQXVCLGlCQUFvRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU10RixJQUFvQixLQUFhO0FBQy9CLFdBQU87QUFBQSxFQUNUO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsYUFBYSxPQUFnRDtBQUMzRSxXQUFPLGlCQUFpQjtBQUFBLEVBQzFCO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsYUFBYSxrQkFBcUQ7QUFDaEYsV0FBTyxJQUFJLElBQXNCLGdCQUFnQjtBQUFBLEVBQ25EO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsZUFBZSxPQUEwQztBQUN2RSxXQUFPLE1BQU0sS0FBSyxNQUFNLFFBQVEsQ0FBQztBQUFBLEVBQ25DO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
@@ -0,0 +1,38 @@
|
|
1
|
+
/**
|
2
|
+
* @packageDocumentation
|
3
|
+
*
|
4
|
+
* A transformer that can transform a Set to an array and back.
|
5
|
+
*/
|
6
|
+
import { TypedTransformer } from './TypedTransformer.mjs';
|
7
|
+
/**
|
8
|
+
* A transformer that can transform a Set to an array and back.
|
9
|
+
*/
|
10
|
+
export declare class SetTransformer extends TypedTransformer<Set<unknown>, unknown[]> {
|
11
|
+
/**
|
12
|
+
* The ID of the transformer.
|
13
|
+
*
|
14
|
+
* @returns The ID of the transformer.
|
15
|
+
*/
|
16
|
+
get id(): string;
|
17
|
+
/**
|
18
|
+
* Checks if the value is a Set.
|
19
|
+
*
|
20
|
+
* @param value - The value to check.
|
21
|
+
* @returns True if the value is a Set, false otherwise.
|
22
|
+
*/
|
23
|
+
canTransform(value: unknown): value is Set<unknown>;
|
24
|
+
/**
|
25
|
+
* Restores the value from an array.
|
26
|
+
*
|
27
|
+
* @param transformedValue - The array to restore the value from.
|
28
|
+
* @returns The restored value.
|
29
|
+
*/
|
30
|
+
restoreValue(transformedValue: unknown[]): Set<unknown>;
|
31
|
+
/**
|
32
|
+
* Transforms the value to an array.
|
33
|
+
*
|
34
|
+
* @param value - The value to transform.
|
35
|
+
* @returns The transformed value.
|
36
|
+
*/
|
37
|
+
transformValue(value: Set<unknown>): unknown[];
|
38
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
/*
|
2
|
+
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
3
|
+
if you want to view the source, please visit the github repository of this plugin
|
4
|
+
*/
|
5
|
+
|
6
|
+
(function initEsm(){if(globalThis.process){return}const browserProcess={browser:true,cwd:__name(()=>"/","cwd"),env:{},platform:"android"};globalThis.process=browserProcess})();
|
7
|
+
|
8
|
+
import { TypedTransformer } from "./TypedTransformer.mjs";
|
9
|
+
class SetTransformer extends TypedTransformer {
|
10
|
+
/**
|
11
|
+
* The ID of the transformer.
|
12
|
+
*
|
13
|
+
* @returns The ID of the transformer.
|
14
|
+
*/
|
15
|
+
get id() {
|
16
|
+
return "set";
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* Checks if the value is a Set.
|
20
|
+
*
|
21
|
+
* @param value - The value to check.
|
22
|
+
* @returns True if the value is a Set, false otherwise.
|
23
|
+
*/
|
24
|
+
canTransform(value) {
|
25
|
+
return value instanceof Set;
|
26
|
+
}
|
27
|
+
/**
|
28
|
+
* Restores the value from an array.
|
29
|
+
*
|
30
|
+
* @param transformedValue - The array to restore the value from.
|
31
|
+
* @returns The restored value.
|
32
|
+
*/
|
33
|
+
restoreValue(transformedValue) {
|
34
|
+
return new Set(transformedValue);
|
35
|
+
}
|
36
|
+
/**
|
37
|
+
* Transforms the value to an array.
|
38
|
+
*
|
39
|
+
* @param value - The value to transform.
|
40
|
+
* @returns The transformed value.
|
41
|
+
*/
|
42
|
+
transformValue(value) {
|
43
|
+
return Array.from(value);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
export {
|
47
|
+
SetTransformer
|
48
|
+
};
|
49
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1RyYW5zZm9ybWVycy9TZXRUcmFuc2Zvcm1lci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqXG4gKiBBIHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSBhIFNldCB0byBhbiBhcnJheSBhbmQgYmFjay5cbiAqL1xuXG5pbXBvcnQgeyBUeXBlZFRyYW5zZm9ybWVyIH0gZnJvbSAnLi9UeXBlZFRyYW5zZm9ybWVyLnRzJztcblxuLyoqXG4gKiBBIHRyYW5zZm9ybWVyIHRoYXQgY2FuIHRyYW5zZm9ybSBhIFNldCB0byBhbiBhcnJheSBhbmQgYmFjay5cbiAqL1xuZXhwb3J0IGNsYXNzIFNldFRyYW5zZm9ybWVyIGV4dGVuZHMgVHlwZWRUcmFuc2Zvcm1lcjxTZXQ8dW5rbm93bj4sIHVua25vd25bXT4ge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIElEIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3NldCc7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSB2YWx1ZSBpcyBhIFNldC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB2YWx1ZSBpcyBhIFNldCwgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGNhblRyYW5zZm9ybSh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFNldDx1bmtub3duPiB7XG4gICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgU2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmVzIHRoZSB2YWx1ZSBmcm9tIGFuIGFycmF5LlxuICAgKlxuICAgKiBAcGFyYW0gdHJhbnNmb3JtZWRWYWx1ZSAtIFRoZSBhcnJheSB0byByZXN0b3JlIHRoZSB2YWx1ZSBmcm9tLlxuICAgKiBAcmV0dXJucyBUaGUgcmVzdG9yZWQgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVzdG9yZVZhbHVlKHRyYW5zZm9ybWVkVmFsdWU6IHVua25vd25bXSk6IFNldDx1bmtub3duPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQodHJhbnNmb3JtZWRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtcyB0aGUgdmFsdWUgdG8gYW4gYXJyYXkuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB0cmFuc2Zvcm0uXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZTogU2V0PHVua25vd24+KTogdW5rbm93bltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh2YWx1ZSk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUFNQSxTQUFTLHdCQUF3QjtBQUsxQixNQUFNLHVCQUF1QixpQkFBMEM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFNNUUsSUFBb0IsS0FBYTtBQUMvQixXQUFPO0FBQUEsRUFDVDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLGFBQWEsT0FBdUM7QUFDbEUsV0FBTyxpQkFBaUI7QUFBQSxFQUMxQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBUWdCLGFBQWEsa0JBQTJDO0FBQ3RFLFdBQU8sSUFBSSxJQUFJLGdCQUFnQjtBQUFBLEVBQ2pDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFRZ0IsZUFBZSxPQUFnQztBQUM3RCxXQUFPLE1BQU0sS0FBSyxLQUFLO0FBQUEsRUFDekI7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
|
@@ -1,6 +1,8 @@
|
|
1
1
|
export * as DateTransformer from './DateTransformer.mjs';
|
2
2
|
export * as DurationTransformer from './DurationTransformer.mjs';
|
3
3
|
export * as GroupTransformer from './GroupTransformer.mjs';
|
4
|
+
export * as MapTransformer from './MapTransformer.mjs';
|
5
|
+
export * as SetTransformer from './SetTransformer.mjs';
|
4
6
|
export * as SkipPrivatePropertyTransformer from './SkipPrivatePropertyTransformer.mjs';
|
5
7
|
export * as Transformer from './Transformer.mjs';
|
6
8
|
export * as TypedTransformer from './TypedTransformer.mjs';
|
@@ -8,6 +8,8 @@ if you want to view the source, please visit the github repository of this plugi
|
|
8
8
|
import * as DateTransformer from "./DateTransformer.mjs";
|
9
9
|
import * as DurationTransformer from "./DurationTransformer.mjs";
|
10
10
|
import * as GroupTransformer from "./GroupTransformer.mjs";
|
11
|
+
import * as MapTransformer from "./MapTransformer.mjs";
|
12
|
+
import * as SetTransformer from "./SetTransformer.mjs";
|
11
13
|
import * as SkipPrivatePropertyTransformer from "./SkipPrivatePropertyTransformer.mjs";
|
12
14
|
import * as Transformer from "./Transformer.mjs";
|
13
15
|
import * as TypedTransformer from "./TypedTransformer.mjs";
|
@@ -15,8 +17,10 @@ export {
|
|
15
17
|
DateTransformer,
|
16
18
|
DurationTransformer,
|
17
19
|
GroupTransformer,
|
20
|
+
MapTransformer,
|
21
|
+
SetTransformer,
|
18
22
|
SkipPrivatePropertyTransformer,
|
19
23
|
Transformer,
|
20
24
|
TypedTransformer
|
21
25
|
};
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
26
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL1RyYW5zZm9ybWVycy9pbmRleC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyogVEhJUyBJUyBBIEdFTkVSQVRFRC9CVU5ETEVEIEZJTEUgQlkgQlVJTEQgU0NSSVBUICovXG5cbmV4cG9ydCAqIGFzIERhdGVUcmFuc2Zvcm1lciBmcm9tICcuL0RhdGVUcmFuc2Zvcm1lci50cyc7XG5leHBvcnQgKiBhcyBEdXJhdGlvblRyYW5zZm9ybWVyIGZyb20gJy4vRHVyYXRpb25UcmFuc2Zvcm1lci50cyc7XG5leHBvcnQgKiBhcyBHcm91cFRyYW5zZm9ybWVyIGZyb20gJy4vR3JvdXBUcmFuc2Zvcm1lci50cyc7XG5leHBvcnQgKiBhcyBNYXBUcmFuc2Zvcm1lciBmcm9tICcuL01hcFRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCAqIGFzIFNldFRyYW5zZm9ybWVyIGZyb20gJy4vU2V0VHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0ICogYXMgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIGZyb20gJy4vU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCAqIGFzIFRyYW5zZm9ybWVyIGZyb20gJy4vVHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0ICogYXMgVHlwZWRUcmFuc2Zvcm1lciBmcm9tICcuL1R5cGVkVHJhbnNmb3JtZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQUVBLFlBQVkscUJBQXFCO0FBQ2pDLFlBQVkseUJBQXlCO0FBQ3JDLFlBQVksc0JBQXNCO0FBQ2xDLFlBQVksb0JBQW9CO0FBQ2hDLFlBQVksb0JBQW9CO0FBQ2hDLFlBQVksb0NBQW9DO0FBQ2hELFlBQVksaUJBQWlCO0FBQzdCLFlBQVksc0JBQXNCOyIsCiAgIm5hbWVzIjogW10KfQo=
|
@@ -17,11 +17,15 @@ import {
|
|
17
17
|
import { DateTransformer } from "../../Transformers/DateTransformer.mjs";
|
18
18
|
import { DurationTransformer } from "../../Transformers/DurationTransformer.mjs";
|
19
19
|
import { GroupTransformer } from "../../Transformers/GroupTransformer.mjs";
|
20
|
+
import { MapTransformer } from "../../Transformers/MapTransformer.mjs";
|
21
|
+
import { SetTransformer } from "../../Transformers/SetTransformer.mjs";
|
20
22
|
import { SkipPrivatePropertyTransformer } from "../../Transformers/SkipPrivatePropertyTransformer.mjs";
|
21
23
|
const defaultTransformer = new GroupTransformer([
|
22
24
|
new SkipPrivatePropertyTransformer(),
|
23
25
|
new DateTransformer(),
|
24
|
-
new DurationTransformer()
|
26
|
+
new DurationTransformer(),
|
27
|
+
new MapTransformer(),
|
28
|
+
new SetTransformer()
|
25
29
|
]);
|
26
30
|
class PluginSettingsManagerBase extends AsyncEvents {
|
27
31
|
/**
|
@@ -298,4 +302,4 @@ class PluginSettingsManagerBase extends AsyncEvents {
|
|
298
302
|
export {
|
299
303
|
PluginSettingsManagerBase
|
300
304
|
};
|
301
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc01hbmFnZXJCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFBsdWdpbiBzZXR0aW5ncyBtYW5hZ2VyIGJhc2UgY2xhc3MuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21pc2FibGUsXG4gIFJlYWRvbmx5RGVlcFxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IEFzeW5jRXZlbnRSZWYgfSBmcm9tICcuLi8uLi9Bc3luY0V2ZW50cy50cyc7XG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICcuLi8uLi9PYmplY3QudHMnO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL1RyYW5zZm9ybWVycy9UcmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIE1heWJlUmV0dXJuLFxuICBTdHJpbmdLZXlzXG59IGZyb20gJy4uLy4uL1R5cGUudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc1dyYXBwZXIgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzV3JhcHBlci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEV4dHJhY3RQbHVnaW4sXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5ncyxcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lcyxcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlWYWx1ZXMsXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1dyYXBwZXIsXG4gIEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcixcbiAgUGx1Z2luVHlwZXNCYXNlXG59IGZyb20gJy4vUGx1Z2luVHlwZXNCYXNlLnRzJztcblxuaW1wb3J0IHsgQXN5bmNFdmVudHMgfSBmcm9tICcuLi8uLi9Bc3luY0V2ZW50cy50cyc7XG5pbXBvcnQge1xuICBub29wLFxuICBub29wQXN5bmNcbn0gZnJvbSAnLi4vLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHtcbiAgZGVlcEVxdWFsLFxuICBnZXRBbGxLZXlzXG59IGZyb20gJy4uLy4uL09iamVjdC50cyc7XG5pbXBvcnQgeyBEYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvRGF0ZVRyYW5zZm9ybWVyLnRzJztcbmltcG9ydCB7IER1cmF0aW9uVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvRHVyYXRpb25UcmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBHcm91cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vVHJhbnNmb3JtZXJzL0dyb3VwVHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vVHJhbnNmb3JtZXJzL1NraXBQcml2YXRlUHJvcGVydHlUcmFuc2Zvcm1lci50cyc7XG5cbmNvbnN0IGRlZmF1bHRUcmFuc2Zvcm1lciA9IG5ldyBHcm91cFRyYW5zZm9ybWVyKFtcbiAgbmV3IFNraXBQcml2YXRlUHJvcGVydHlUcmFuc2Zvcm1lcigpLFxuICBuZXcgRGF0ZVRyYW5zZm9ybWVyKCksXG4gIG5ldyBEdXJhdGlvblRyYW5zZm9ybWVyKClcbl0pO1xuXG50eXBlIFZhbGlkYXRpb25SZXN1bHQ8UGx1Z2luU2V0dGluZ3MgZXh0ZW5kcyBvYmplY3Q+ID0gUGFydGlhbDxSZWNvcmQ8U3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz4sIHN0cmluZz4+O1xuXG50eXBlIFZhbGlkYXRvcjxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdCwgUHJvcGVydHlOYW1lIGV4dGVuZHMgU3RyaW5nS2V5czxQbHVnaW5TZXR0aW5ncz4gPSBTdHJpbmdLZXlzPFBsdWdpblNldHRpbmdzPj4gPSAoXG4gIHZhbHVlOiBQbHVnaW5TZXR0aW5nc1tQcm9wZXJ0eU5hbWVdLFxuICBzZXR0aW5nczogUGx1Z2luU2V0dGluZ3NcbikgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxzdHJpbmc+PjtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBtYW5hZ2luZyBwbHVnaW4gc2V0dGluZ3MuXG4gKlxuICogQHR5cGVQYXJhbSBQbHVnaW5UeXBlcyAtIFBsdWdpbi1zcGVjaWZpYyB0eXBlcy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBsdWdpblNldHRpbmdzTWFuYWdlckJhc2U8UGx1Z2luVHlwZXMgZXh0ZW5kcyBQbHVnaW5UeXBlc0Jhc2U+IGV4dGVuZHMgQXN5bmNFdmVudHMge1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRTZXR0aW5nczogUmVhZG9ubHlEZWVwPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+O1xuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHNldHRpbmdzIHdyYXBwZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHNldHRpbmdzIHdyYXBwZXIuXG4gICAqL1xuICBwdWJsaWMgZ2V0IHNldHRpbmdzV3JhcHBlcigpOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+IHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyIGFzIEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz47XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRTZXR0aW5nc1dyYXBwZXI6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+O1xuXG4gIHByaXZhdGUgbGFzdFNhdmVkU2V0dGluZ3NXcmFwcGVyOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPjtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0eU5hbWVzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPltdO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkYXRvcnMgPSBuZXcgTWFwPEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+LCBWYWxpZGF0b3I8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4+KCk7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHBsdWdpbiBzZXR0aW5ncyBtYW5hZ2VyLlxuICAgKlxuICAgKiBAcGFyYW0gcGx1Z2luIC0gVGhlIHBsdWdpbi5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgcGx1Z2luOiBFeHRyYWN0UGx1Z2luPFBsdWdpblR5cGVzPikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hcHAgPSBwbHVnaW4uYXBwO1xuICAgIHRoaXMuZGVmYXVsdFNldHRpbmdzID0gdGhpcy5jcmVhdGVEZWZhdWx0U2V0dGluZ3MoKSBhcyBSZWFkb25seURlZXA8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj47XG4gICAgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyID0gdGhpcy5jcmVhdGVEZWZhdWx0U2V0dGluZ3NXcmFwcGVyKCk7XG4gICAgdGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5nc1dyYXBwZXIoKTtcbiAgICB0aGlzLnByb3BlcnR5TmFtZXMgPSBnZXRBbGxLZXlzKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyk7XG4gICAgdGhpcy5yZWdpc3RlclZhbGlkYXRvcnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFZGl0cyB0aGUgcGx1Z2luIHNldHRpbmdzIGFuZCBzYXZlcyB0aGVtLlxuICAgKlxuICAgKiBAcGFyYW0gc2V0dGluZ3NFZGl0b3IgLSBUaGUgZWRpdG9yLlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYXZlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBlZGl0QW5kU2F2ZShzZXR0aW5nc0VkaXRvcjogKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KSA9PiBQcm9taXNhYmxlPHZvaWQ+LCBjb250ZXh0PzogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZWRpdChzZXR0aW5nc0VkaXRvcik7XG4gICAgYXdhaXQgdGhpcy5zYXZlVG9GaWxlKGNvbnRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhlIHNldHRpbmdzIGFyZSBzYWZlLlxuICAgKlxuICAgKiBJdCBydW5zIHZhbGlkYXRpb24gZm9yIGVhY2ggcHJvcGVydHkgYW5kIHNldHMgdGhlIGRlZmF1bHQgdmFsdWUgaWYgdGhlIHZhbGlkYXRpb24gZmFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5ncyAtIFRoZSBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgc2FmZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBlbnN1cmVTYWZlKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGUoc2V0dGluZ3MpO1xuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIG9mIHRoaXMucHJvcGVydHlOYW1lcykge1xuICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHRbcHJvcGVydHlOYW1lXSkge1xuICAgICAgICBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdGhpcy5kZWZhdWx0U2V0dGluZ3NbcHJvcGVydHlOYW1lXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIHNhZmUgY29weSBvZiB0aGUgc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5ncyAtIFRoZSBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgc2FmZSBjb3B5IG9mIHRoZSBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTYWZlQ29weShzZXR0aW5nczogRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPik6IFByb21pc2U8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4ge1xuICAgIGNvbnN0IHNhZmVTZXR0aW5ncyA9IGF3YWl0IHRoaXMuY2xvbmVTZXR0aW5ncyhzZXR0aW5ncyk7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTYWZlKHNhZmVTZXR0aW5ncyk7XG4gICAgcmV0dXJuIHNhZmVTZXR0aW5ncztcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgcGx1Z2luIHNldHRpbmdzIGZyb20gdGhlIGZpbGUuXG4gICAqXG4gICAqIEBwYXJhbSBpc0luaXRpYWxMb2FkIC0gV2hldGhlciB0aGUgc2V0dGluZ3MgYXJlIGJlaW5nIGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIGxvYWRlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkRnJvbUZpbGUoaXNJbml0aWFsTG9hZDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLnBsdWdpbi5sb2FkRGF0YSgpIGFzIHVua25vd247XG4gICAgdGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5nc1dyYXBwZXIoKTtcbiAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5nc1dyYXBwZXIoKTtcblxuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEludmFsaWQgc2V0dGluZ3MgZnJvbSBkYXRhLmpzb24uIEV4cGVjdGVkIE9iamVjdCwgZ290OiAke3R5cGVvZiBkYXRhfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJhd1JlY29yZCA9IGRhdGEgYXMgR2VuZXJpY09iamVjdDtcbiAgICBjb25zdCBwYXJzZWRTZXR0aW5ncyA9IGF3YWl0IHRoaXMucmF3UmVjb3JkVG9TZXR0aW5ncyhyYXdSZWNvcmQpO1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnZhbGlkYXRlKHBhcnNlZFNldHRpbmdzKTtcblxuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIG9mIHRoaXMucHJvcGVydHlOYW1lcykge1xuICAgICAgdGhpcy5zZXRQcm9wZXJ0eUltcGwocHJvcGVydHlOYW1lLCBwYXJzZWRTZXR0aW5nc1twcm9wZXJ0eU5hbWVdLCB2YWxpZGF0aW9uUmVzdWx0W3Byb3BlcnR5TmFtZV0pO1xuICAgIH1cblxuICAgIHRoaXMubGFzdFNhdmVkU2V0dGluZ3NXcmFwcGVyID0gYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzV3JhcHBlcih0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIpO1xuXG4gICAgY29uc3QgbmV3UmVjb3JkID0gYXdhaXQgdGhpcy5zZXR0aW5nc1RvUmF3UmVjb3JkKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyk7XG5cbiAgICBpZiAoIWRlZXBFcXVhbChuZXdSZWNvcmQsIGRhdGEpKSB7XG4gICAgICBhd2FpdCB0aGlzLnNhdmVUb0ZpbGVJbXBsKCk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy50cmlnZ2VyQXN5bmMoJ2xvYWRTZXR0aW5ncycsIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlciwgaXNJbml0aWFsTG9hZCk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byB0aGUgYGxvYWRTZXR0aW5nc2AgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gQWx3YXlzIGBsb2FkU2V0dGluZ3NgLlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQuXG4gICAqIEBwYXJhbSB0aGlzQXJnIC0gVGhlIGNvbnRleHQgcGFzc2VkIGFzIGB0aGlzYCB0byB0aGUgYGNhbGxiYWNrYC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9uKFxuICAgIG5hbWU6ICdsb2FkU2V0dGluZ3MnLFxuICAgIGNhbGxiYWNrOiAoXG4gICAgICBsb2FkZWRTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPixcbiAgICAgIGlzSW5pdGlhbExvYWQ6IGJvb2xlYW5cbiAgICApID0+IFByb21pc2FibGU8dm9pZD4sXG4gICAgdGhpc0FyZz86IHVua25vd25cbiAgKTogQXN5bmNFdmVudFJlZjtcbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgdG8gdGhlIGBzYXZlU2V0dGluZ3NgIGV2ZW50LlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIEFsd2F5cyBgc2F2ZVNldHRpbmdzYC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGNhbGwgd2hlbiB0aGUgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKiBAcGFyYW0gdGhpc0FyZyAtIFRoZSBjb250ZXh0IHBhc3NlZCBhcyBgdGhpc2AgdG8gdGhlIGBjYWxsYmFja2AuXG4gICAqIEByZXR1cm5zIEEgcmVmZXJlbmNlIHRvIHRoZSBldmVudCBsaXN0ZW5lci5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBvbihcbiAgICBuYW1lOiAnc2F2ZVNldHRpbmdzJyxcbiAgICBjYWxsYmFjazogKFxuICAgICAgbmV3U2V0dGluZ3M6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4sXG4gICAgICBvbGRTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPixcbiAgICAgIGNvbnRleHQ6IHVua25vd25cbiAgICApID0+IFByb21pc2FibGU8dm9pZD4sXG4gICAgdGhpc0FyZz86IHVua25vd25cbiAgKTogQXN5bmNFdmVudFJlZjtcbiAgLyoqXG4gICAqIFN1YnNjcmliZXMgdG8gYW4gZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGV2ZW50LlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQuXG4gICAqIEBwYXJhbSB0aGlzQXJnIC0gVGhlIGNvbnRleHQgcGFzc2VkIGFzIGB0aGlzYCB0byB0aGUgYGNhbGxiYWNrYC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9uPEFyZ3MgZXh0ZW5kcyB1bmtub3duW10+KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKC4uLmFyZ3M6IEFyZ3MpID0+IFByb21pc2FibGU8dm9pZD4sXG4gICAgdGhpc0FyZz86IHVua25vd25cbiAgKTogQXN5bmNFdmVudFJlZiB7XG4gICAgcmV0dXJuIHN1cGVyLm9uKG5hbWUsIGNhbGxiYWNrLCB0aGlzQXJnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlcyB0aGUgbmV3IHBsdWdpbiBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgY29udGV4dCBvZiB0aGUgc2F2ZSB0byBmaWxlIG9wZXJhdGlvbi5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgc2F2ZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2F2ZVRvRmlsZShjb250ZXh0PzogdW5rbm93bik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChkZWVwRXF1YWwodGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MsIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnNhdmVUb0ZpbGVJbXBsKCk7XG4gICAgYXdhaXQgdGhpcy50cmlnZ2VyQXN5bmMoJ3NhdmVTZXR0aW5ncycsIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlciwgdGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIsIGNvbnRleHQpO1xuICAgIHRoaXMubGFzdFNhdmVkU2V0dGluZ3NXcmFwcGVyID0gYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzV3JhcHBlcih0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHkuXG4gICAqXG4gICAqIEB0eXBlUGFyYW0gUHJvcGVydHlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gc2V0LlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2UuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2V0UHJvcGVydHk8UHJvcGVydHlOYW1lIGV4dGVuZHMgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lczxQbHVnaW5UeXBlcz4+KFxuICAgIHByb3BlcnR5TmFtZTogUHJvcGVydHlOYW1lLFxuICAgIHZhbHVlOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+W1Byb3BlcnR5TmFtZV1cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBhd2FpdCB0aGlzLmVkaXQoKHNldHRpbmdzKSA9PiB7XG4gICAgICBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci52YWxpZGF0aW9uTWVzc2FnZXNbcHJvcGVydHlOYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gc2V0dGluZ3MgLSBUaGUgc2V0dGluZ3MuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHZhbGlkYXRpb24gcmVzdWx0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHZhbGlkYXRlKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+PiB7XG4gICAgY29uc3QgcmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0PEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+ID0ge307XG4gICAgZm9yIChjb25zdCBbcHJvcGVydHlOYW1lLCB2YWxpZGF0b3JdIG9mIHRoaXMudmFsaWRhdG9ycy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25NZXNzYWdlID0gYXdhaXQgdmFsaWRhdG9yKHNldHRpbmdzW3Byb3BlcnR5TmFtZV0sIHNldHRpbmdzKTtcbiAgICAgIGlmICh2YWxpZGF0aW9uTWVzc2FnZSkge1xuICAgICAgICByZXN1bHRbcHJvcGVydHlOYW1lXSA9IHZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlRGVmYXVsdFNldHRpbmdzKCk6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRyYW5zZm9ybWVyLlxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgdHJhbnNmb3JtZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VHJhbnNmb3JtZXIoKTogVHJhbnNmb3JtZXIge1xuICAgIHJldHVybiBkZWZhdWx0VHJhbnNmb3JtZXI7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIHBsdWdpbiBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKlxuICAgKiBAcGFyYW0gX3JlY29yZCAtIFRoZSByZWNvcmQuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgb25Mb2FkUmVjb3JkKF9yZWNvcmQ6IEdlbmVyaWNPYmplY3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBub29wQXN5bmMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIHNldHRpbmdzIGFyZSBzYXZpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBfcmVjb3JkIC0gVGhlIHJlY29yZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvblNhdmluZ1JlY29yZChfcmVjb3JkOiBHZW5lcmljT2JqZWN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgbm9vcEFzeW5jKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgdmFsaWRhdG9yIGZvciBhIHByb3BlcnR5LlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gdmFsaWRhdG9yIC0gVGhlIHZhbGlkYXRvci5cbiAgICovXG4gIHByb3RlY3RlZCByZWdpc3RlclZhbGlkYXRvcjxQcm9wZXJ0eU5hbWUgZXh0ZW5kcyBFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPj4oXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgdmFsaWRhdG9yOiBWYWxpZGF0b3I8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPiwgUHJvcGVydHlOYW1lPlxuICApOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRvcnMuc2V0KHByb3BlcnR5TmFtZSwgdmFsaWRhdG9yIGFzIFZhbGlkYXRvcjxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+Pik7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIHRoZSB2YWxpZGF0b3JzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzIHRvIHJlZ2lzdGVyIHZhbGlkYXRvcnMgZm9yIHByb3BlcnRpZXMuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVnaXN0ZXJWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgIG5vb3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2xvbmVTZXR0aW5ncyhzZXR0aW5nczogRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPik6IFByb21pc2U8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4ge1xuICAgIGNvbnN0IHJlY29yZCA9IGF3YWl0IHRoaXMuc2V0dGluZ3NUb1Jhd1JlY29yZChzZXR0aW5ncyk7XG4gICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KHJlY29yZCk7XG4gICAgY29uc3QgY2xvbmVSZWNvcmQgPSBKU09OLnBhcnNlKGpzb24pIGFzIEdlbmVyaWNPYmplY3Q7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucmF3UmVjb3JkVG9TZXR0aW5ncyhjbG9uZVJlY29yZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNsb25lU2V0dGluZ3NXcmFwcGVyKFxuICAgIHNldHRpbmdzV3JhcHBlcjogUGx1Z2luU2V0dGluZ3NXcmFwcGVyPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+XG4gICk6IFByb21pc2U8UGx1Z2luU2V0dGluZ3NXcmFwcGVyPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNhZmVTZXR0aW5nczogYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzKHNldHRpbmdzV3JhcHBlci5zYWZlU2V0dGluZ3MpLFxuICAgICAgc2V0dGluZ3M6IGF3YWl0IHRoaXMuY2xvbmVTZXR0aW5ncyhzZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MpLFxuICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiB7IC4uLnNldHRpbmdzV3JhcHBlci52YWxpZGF0aW9uTWVzc2FnZXMgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURlZmF1bHRTZXR0aW5nc1dyYXBwZXIoKTogUGx1Z2luU2V0dGluZ3NXcmFwcGVyPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2FmZVNldHRpbmdzOiB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5ncygpLFxuICAgICAgc2V0dGluZ3M6IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzKCksXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZXM6IHt9IGFzIFJlY29yZDxFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPiwgc3RyaW5nPlxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVkaXQoc2V0dGluZ3NFZGl0b3I6IChzZXR0aW5nczogRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPikgPT4gUHJvbWlzYWJsZTx2b2lkPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBzZXR0aW5nc0VkaXRvcih0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy52YWxpZGF0ZSh0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MpO1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgdGhpcy5wcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25NZXNzYWdlID0gdmFsaWRhdGlvblJlc3VsdFtwcm9wZXJ0eU5hbWVdID8/ICcnO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIudmFsaWRhdGlvbk1lc3NhZ2VzW3Byb3BlcnR5TmFtZV0gPSB2YWxpZGF0aW9uTWVzc2FnZTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNhZmVTZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2VcbiAgICAgICAgICA/IHRoaXMuZGVmYXVsdFNldHRpbmdzW3Byb3BlcnR5TmFtZV1cbiAgICAgICAgICA6IHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5nc1twcm9wZXJ0eU5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWYWxpZFByb3BlcnR5TmFtZShwcm9wOiB1bmtub3duKTogcHJvcCBpcyBFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPiB7XG4gICAgaWYgKHR5cGVvZiBwcm9wICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5wcm9wZXJ0eU5hbWVzIGFzIHN0cmluZ1tdKS5pbmNsdWRlcyhwcm9wKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmF3UmVjb3JkVG9TZXR0aW5ncyhyYXdSZWNvcmQ6IEdlbmVyaWNPYmplY3QpOiBQcm9taXNlPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+IHtcbiAgICByYXdSZWNvcmQgPSB0aGlzLmdldFRyYW5zZm9ybWVyKCkudHJhbnNmb3JtT2JqZWN0UmVjdXJzaXZlbHkocmF3UmVjb3JkKTtcbiAgICBhd2FpdCB0aGlzLm9uTG9hZFJlY29yZChyYXdSZWNvcmQpO1xuXG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5ncygpO1xuXG4gICAgZm9yIChjb25zdCBbcHJvcGVydHlOYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocmF3UmVjb3JkKSkge1xuICAgICAgaWYgKCF0aGlzLmlzVmFsaWRQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFVua25vd24gcHJvcGVydHk6ICR7cHJvcGVydHlOYW1lfWApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gdHlwZW9mIHRoaXMuZGVmYXVsdFNldHRpbmdzW3Byb3BlcnR5TmFtZV0pIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdQb3NzaWJsZSBpbnZhbGlkIHZhbHVlIHR5cGUuIEl0IG1pZ2h0IGxlYWQgdG8gYW4gdW5leHBlY3RlZCBiZWhhdmlvciBvZiB0aGUgcGx1Z2luLiBUaGVyZSBpcyBhbHNvIGEgY2hhbmNlIGl0IGlzIGEgZmFsc2UtbmVnYXRpdmUgd2FybmluZywgYXMgd2UgYXJlIHVuYWJsZSB0byBkZXRlcm1pbmUgdGhlIGV4YWN0IHR5cGUgb2YgdGhlIHZhbHVlIGluIHJ1bnRpbWUuJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRoaXMuZGVmYXVsdFNldHRpbmdzW3Byb3BlcnR5TmFtZV0sXG4gICAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgc2V0dGluZ3NbcHJvcGVydHlOYW1lXSA9IHZhbHVlIGFzIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5VmFsdWVzPFBsdWdpblR5cGVzPjtcbiAgICB9XG5cbiAgICByZXR1cm4gc2V0dGluZ3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNhdmVUb0ZpbGVJbXBsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucGx1Z2luLnNhdmVEYXRhKGF3YWl0IHRoaXMuc2V0dGluZ3NUb1Jhd1JlY29yZCh0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3MpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UHJvcGVydHlJbXBsKFxuICAgIHByb3BlcnR5TmFtZTogRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lczxQbHVnaW5UeXBlcz4sXG4gICAgdmFsdWU6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5VmFsdWVzPFBsdWdpblR5cGVzPixcbiAgICB2YWxpZGF0aW9uTWVzc2FnZT86IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIuc2V0dGluZ3NbcHJvcGVydHlOYW1lXSA9IHZhbHVlO1xuICAgIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci52YWxpZGF0aW9uTWVzc2FnZXNbcHJvcGVydHlOYW1lXSA9IHZhbGlkYXRpb25NZXNzYWdlID8/ICcnO1xuICAgIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zYWZlU2V0dGluZ3NbcHJvcGVydHlOYW1lXSA9IHZhbGlkYXRpb25NZXNzYWdlID8gdGhpcy5kZWZhdWx0U2V0dGluZ3NbcHJvcGVydHlOYW1lXSA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXR0aW5nc1RvUmF3UmVjb3JkKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KTogUHJvbWlzZTxHZW5lcmljT2JqZWN0PiB7XG4gICAgY29uc3QgcmF3UmVjb3JkOiBHZW5lcmljT2JqZWN0ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBvZiB0aGlzLnByb3BlcnR5TmFtZXMpIHtcbiAgICAgIHJhd1JlY29yZFtwcm9wZXJ0eU5hbWVdID0gc2V0dGluZ3NbcHJvcGVydHlOYW1lXTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLm9uU2F2aW5nUmVjb3JkKHJhd1JlY29yZCk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2Zvcm1lcigpLnRyYW5zZm9ybU9iamVjdFJlY3Vyc2l2ZWx5KHJhd1JlY29yZCk7XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7QUE4QkEsU0FBUyxtQkFBbUI7QUFDNUI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsdUJBQXVCO0FBQ2hDLFNBQVMsMkJBQTJCO0FBQ3BDLFNBQVMsd0JBQXdCO0FBQ2pDLFNBQVMsc0NBQXNDO0FBRS9DLE1BQU0scUJBQXFCLElBQUksaUJBQWlCO0FBQUEsRUFDOUMsSUFBSSwrQkFBK0I7QUFBQSxFQUNuQyxJQUFJLGdCQUFnQjtBQUFBLEVBQ3BCLElBQUksb0JBQW9CO0FBQzFCLENBQUM7QUFjTSxNQUFlLGtDQUF1RSxZQUFZO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBd0JoRyxZQUE0QixRQUFvQztBQUNyRSxVQUFNO0FBRDJCO0FBRWpDLFNBQUssTUFBTSxPQUFPO0FBQ2xCLFNBQUssa0JBQWtCLEtBQUssc0JBQXNCO0FBQ2xELFNBQUss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
|
305
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL1BsdWdpbi9QbHVnaW5TZXR0aW5nc01hbmFnZXJCYXNlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBwYWNrYWdlRG9jdW1lbnRhdGlvblxuICpcbiAqIFBsdWdpbiBzZXR0aW5ncyBtYW5hZ2VyIGJhc2UgY2xhc3MuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBBcHAgfSBmcm9tICdvYnNpZGlhbic7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21pc2FibGUsXG4gIFJlYWRvbmx5RGVlcFxufSBmcm9tICd0eXBlLWZlc3QnO1xuXG5pbXBvcnQgdHlwZSB7IEFzeW5jRXZlbnRSZWYgfSBmcm9tICcuLi8uLi9Bc3luY0V2ZW50cy50cyc7XG5pbXBvcnQgdHlwZSB7IEdlbmVyaWNPYmplY3QgfSBmcm9tICcuLi8uLi9PYmplY3QudHMnO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1lciB9IGZyb20gJy4uLy4uL1RyYW5zZm9ybWVycy9UcmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIE1heWJlUmV0dXJuLFxuICBTdHJpbmdLZXlzXG59IGZyb20gJy4uLy4uL1R5cGUudHMnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5TZXR0aW5nc1dyYXBwZXIgfSBmcm9tICcuL1BsdWdpblNldHRpbmdzV3JhcHBlci50cyc7XG5pbXBvcnQgdHlwZSB7XG4gIEV4dHJhY3RQbHVnaW4sXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5ncyxcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lcyxcbiAgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlWYWx1ZXMsXG4gIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1dyYXBwZXIsXG4gIEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcixcbiAgUGx1Z2luVHlwZXNCYXNlXG59IGZyb20gJy4vUGx1Z2luVHlwZXNCYXNlLnRzJztcblxuaW1wb3J0IHsgQXN5bmNFdmVudHMgfSBmcm9tICcuLi8uLi9Bc3luY0V2ZW50cy50cyc7XG5pbXBvcnQge1xuICBub29wLFxuICBub29wQXN5bmNcbn0gZnJvbSAnLi4vLi4vRnVuY3Rpb24udHMnO1xuaW1wb3J0IHtcbiAgZGVlcEVxdWFsLFxuICBnZXRBbGxLZXlzXG59IGZyb20gJy4uLy4uL09iamVjdC50cyc7XG5pbXBvcnQgeyBEYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvRGF0ZVRyYW5zZm9ybWVyLnRzJztcbmltcG9ydCB7IER1cmF0aW9uVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvRHVyYXRpb25UcmFuc2Zvcm1lci50cyc7XG5pbXBvcnQgeyBHcm91cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vVHJhbnNmb3JtZXJzL0dyb3VwVHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgTWFwVHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvTWFwVHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgU2V0VHJhbnNmb3JtZXIgfSBmcm9tICcuLi8uLi9UcmFuc2Zvcm1lcnMvU2V0VHJhbnNmb3JtZXIudHMnO1xuaW1wb3J0IHsgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIH0gZnJvbSAnLi4vLi4vVHJhbnNmb3JtZXJzL1NraXBQcml2YXRlUHJvcGVydHlUcmFuc2Zvcm1lci50cyc7XG5cbmNvbnN0IGRlZmF1bHRUcmFuc2Zvcm1lciA9IG5ldyBHcm91cFRyYW5zZm9ybWVyKFtcbiAgbmV3IFNraXBQcml2YXRlUHJvcGVydHlUcmFuc2Zvcm1lcigpLFxuICBuZXcgRGF0ZVRyYW5zZm9ybWVyKCksXG4gIG5ldyBEdXJhdGlvblRyYW5zZm9ybWVyKCksXG4gIG5ldyBNYXBUcmFuc2Zvcm1lcigpLFxuICBuZXcgU2V0VHJhbnNmb3JtZXIoKVxuXSk7XG5cbnR5cGUgVmFsaWRhdGlvblJlc3VsdDxQbHVnaW5TZXR0aW5ncyBleHRlbmRzIG9iamVjdD4gPSBQYXJ0aWFsPFJlY29yZDxTdHJpbmdLZXlzPFBsdWdpblNldHRpbmdzPiwgc3RyaW5nPj47XG5cbnR5cGUgVmFsaWRhdG9yPFBsdWdpblNldHRpbmdzIGV4dGVuZHMgb2JqZWN0LCBQcm9wZXJ0eU5hbWUgZXh0ZW5kcyBTdHJpbmdLZXlzPFBsdWdpblNldHRpbmdzPiA9IFN0cmluZ0tleXM8UGx1Z2luU2V0dGluZ3M+PiA9IChcbiAgdmFsdWU6IFBsdWdpblNldHRpbmdzW1Byb3BlcnR5TmFtZV0sXG4gIHNldHRpbmdzOiBQbHVnaW5TZXR0aW5nc1xuKSA9PiBQcm9taXNhYmxlPE1heWJlUmV0dXJuPHN0cmluZz4+O1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIG1hbmFnaW5nIHBsdWdpbiBzZXR0aW5ncy5cbiAqXG4gKiBAdHlwZVBhcmFtIFBsdWdpblR5cGVzIC0gUGx1Z2luLXNwZWNpZmljIHR5cGVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGx1Z2luU2V0dGluZ3NNYW5hZ2VyQmFzZTxQbHVnaW5UeXBlcyBleHRlbmRzIFBsdWdpblR5cGVzQmFzZT4gZXh0ZW5kcyBBc3luY0V2ZW50cyB7XG4gIHB1YmxpYyByZWFkb25seSBhcHA6IEFwcDtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdFNldHRpbmdzOiBSZWFkb25seURlZXA8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj47XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgc2V0dGluZ3Mgd3JhcHBlci5cbiAgICpcbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgc2V0dGluZ3Mgd3JhcHBlci5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3NXcmFwcGVyKCk6IEV4dHJhY3RSZWFkb25seVBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIgYXMgRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPjtcbiAgfVxuXG4gIHByaXZhdGUgY3VycmVudFNldHRpbmdzV3JhcHBlcjogRXh0cmFjdFBsdWdpblNldHRpbmdzV3JhcHBlcjxQbHVnaW5UeXBlcz47XG5cbiAgcHJpdmF0ZSBsYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXI6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+O1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BlcnR5TmFtZXM6IEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+W107XG4gIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRhdG9ycyA9IG5ldyBNYXA8RXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlOYW1lczxQbHVnaW5UeXBlcz4sIFZhbGlkYXRvcjxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+Pj4oKTtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgcGx1Z2luIHNldHRpbmdzIG1hbmFnZXIuXG4gICAqXG4gICAqIEBwYXJhbSBwbHVnaW4gLSBUaGUgcGx1Z2luLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBwbHVnaW46IEV4dHJhY3RQbHVnaW48UGx1Z2luVHlwZXM+KSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwcCA9IHBsdWdpbi5hcHA7XG4gICAgdGhpcy5kZWZhdWx0U2V0dGluZ3MgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5ncygpIGFzIFJlYWRvbmx5RGVlcDxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+PjtcbiAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIgPSB0aGlzLmNyZWF0ZURlZmF1bHRTZXR0aW5nc1dyYXBwZXIoKTtcbiAgICB0aGlzLmxhc3RTYXZlZFNldHRpbmdzV3JhcHBlciA9IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzV3JhcHBlcigpO1xuICAgIHRoaXMucHJvcGVydHlOYW1lcyA9IGdldEFsbEtleXModGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNldHRpbmdzKTtcbiAgICB0aGlzLnJlZ2lzdGVyVmFsaWRhdG9ycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVkaXRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgYW5kIHNhdmVzIHRoZW0uXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5nc0VkaXRvciAtIFRoZSBlZGl0b3IuXG4gICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgc2V0dGluZ3MgYXJlIHNhdmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVkaXRBbmRTYXZlKHNldHRpbmdzRWRpdG9yOiAoc2V0dGluZ3M6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4pID0+IFByb21pc2FibGU8dm9pZD4sIGNvbnRleHQ/OiB1bmtub3duKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5lZGl0KHNldHRpbmdzRWRpdG9yKTtcbiAgICBhd2FpdCB0aGlzLnNhdmVUb0ZpbGUoY29udGV4dCk7XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyB0aGUgc2V0dGluZ3MgYXJlIHNhZmUuXG4gICAqXG4gICAqIEl0IHJ1bnMgdmFsaWRhdGlvbiBmb3IgZWFjaCBwcm9wZXJ0eSBhbmQgc2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBpZiB0aGUgdmFsaWRhdGlvbiBmYWlscy5cbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYWZlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVuc3VyZVNhZmUoc2V0dGluZ3M6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy52YWxpZGF0ZShzZXR0aW5ncyk7XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgdGhpcy5wcm9wZXJ0eU5hbWVzKSB7XG4gICAgICBpZiAodmFsaWRhdGlvblJlc3VsdFtwcm9wZXJ0eU5hbWVdKSB7XG4gICAgICAgIHNldHRpbmdzW3Byb3BlcnR5TmFtZV0gPSB0aGlzLmRlZmF1bHRTZXR0aW5nc1twcm9wZXJ0eU5hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc2FmZSBjb3B5IG9mIHRoZSBzZXR0aW5ncy5cbiAgICpcbiAgICogQHBhcmFtIHNldHRpbmdzIC0gVGhlIHNldHRpbmdzLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHRvIHRoZSBzYWZlIGNvcHkgb2YgdGhlIHNldHRpbmdzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNhZmVDb3B5KHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KTogUHJvbWlzZTxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+PiB7XG4gICAgY29uc3Qgc2FmZVNldHRpbmdzID0gYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzKHNldHRpbmdzKTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNhZmUoc2FmZVNldHRpbmdzKTtcbiAgICByZXR1cm4gc2FmZVNldHRpbmdzO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHRoZSBwbHVnaW4gc2V0dGluZ3MgZnJvbSB0aGUgZmlsZS5cbiAgICpcbiAgICogQHBhcmFtIGlzSW5pdGlhbExvYWQgLSBXaGV0aGVyIHRoZSBzZXR0aW5ncyBhcmUgYmVpbmcgbG9hZGVkIGZvciB0aGUgZmlyc3QgdGltZS5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBzZXR0aW5ncyBhcmUgbG9hZGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWRGcm9tRmlsZShpc0luaXRpYWxMb2FkOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMucGx1Z2luLmxvYWREYXRhKCkgYXMgdW5rbm93bjtcbiAgICB0aGlzLmxhc3RTYXZlZFNldHRpbmdzV3JhcHBlciA9IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzV3JhcHBlcigpO1xuICAgIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlciA9IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzV3JhcHBlcigpO1xuXG4gICAgaWYgKGRhdGEgPT09IHVuZGVmaW5lZCB8fCBkYXRhID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0Jykge1xuICAgICAgY29uc29sZS5lcnJvcihgSW52YWxpZCBzZXR0aW5ncyBmcm9tIGRhdGEuanNvbi4gRXhwZWN0ZWQgT2JqZWN0LCBnb3Q6ICR7dHlwZW9mIGRhdGF9YCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmF3UmVjb3JkID0gZGF0YSBhcyBHZW5lcmljT2JqZWN0O1xuICAgIGNvbnN0IHBhcnNlZFNldHRpbmdzID0gYXdhaXQgdGhpcy5yYXdSZWNvcmRUb1NldHRpbmdzKHJhd1JlY29yZCk7XG4gICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGUocGFyc2VkU2V0dGluZ3MpO1xuXG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgb2YgdGhpcy5wcm9wZXJ0eU5hbWVzKSB7XG4gICAgICB0aGlzLnNldFByb3BlcnR5SW1wbChwcm9wZXJ0eU5hbWUsIHBhcnNlZFNldHRpbmdzW3Byb3BlcnR5TmFtZV0sIHZhbGlkYXRpb25SZXN1bHRbcHJvcGVydHlOYW1lXSk7XG4gICAgfVxuXG4gICAgdGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIgPSBhd2FpdCB0aGlzLmNsb25lU2V0dGluZ3NXcmFwcGVyKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlcik7XG5cbiAgICBjb25zdCBuZXdSZWNvcmQgPSBhd2FpdCB0aGlzLnNldHRpbmdzVG9SYXdSZWNvcmQodGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNldHRpbmdzKTtcblxuICAgIGlmICghZGVlcEVxdWFsKG5ld1JlY29yZCwgZGF0YSkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2F2ZVRvRmlsZUltcGwoKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnRyaWdnZXJBc3luYygnbG9hZFNldHRpbmdzJywgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLCBpc0luaXRpYWxMb2FkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmVzIHRvIHRoZSBgbG9hZFNldHRpbmdzYCBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBBbHdheXMgYGxvYWRTZXR0aW5nc2AuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAgICogQHBhcmFtIHRoaXNBcmcgLSBUaGUgY29udGV4dCBwYXNzZWQgYXMgYHRoaXNgIHRvIHRoZSBgY2FsbGJhY2tgLlxuICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGUgZXZlbnQgbGlzdGVuZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb24oXG4gICAgbmFtZTogJ2xvYWRTZXR0aW5ncycsXG4gICAgY2FsbGJhY2s6IChcbiAgICAgIGxvYWRlZFNldHRpbmdzOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+LFxuICAgICAgaXNJbml0aWFsTG9hZDogYm9vbGVhblxuICAgICkgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgICB0aGlzQXJnPzogdW5rbm93blxuICApOiBBc3luY0V2ZW50UmVmO1xuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byB0aGUgYHNhdmVTZXR0aW5nc2AgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIC0gQWx3YXlzIGBzYXZlU2V0dGluZ3NgLlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgLSBUaGUgY2FsbGJhY2sgdG8gY2FsbCB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWQuXG4gICAqIEBwYXJhbSB0aGlzQXJnIC0gVGhlIGNvbnRleHQgcGFzc2VkIGFzIGB0aGlzYCB0byB0aGUgYGNhbGxiYWNrYC5cbiAgICogQHJldHVybnMgQSByZWZlcmVuY2UgdG8gdGhlIGV2ZW50IGxpc3RlbmVyLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIG9uKFxuICAgIG5hbWU6ICdzYXZlU2V0dGluZ3MnLFxuICAgIGNhbGxiYWNrOiAoXG4gICAgICBuZXdTZXR0aW5nczogRXh0cmFjdFJlYWRvbmx5UGx1Z2luU2V0dGluZ3NXcmFwcGVyPFBsdWdpblR5cGVzPixcbiAgICAgIG9sZFNldHRpbmdzOiBFeHRyYWN0UmVhZG9ubHlQbHVnaW5TZXR0aW5nc1dyYXBwZXI8UGx1Z2luVHlwZXM+LFxuICAgICAgY29udGV4dDogdW5rbm93blxuICAgICkgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgICB0aGlzQXJnPzogdW5rbm93blxuICApOiBBc3luY0V2ZW50UmVmO1xuICAvKipcbiAgICogU3Vic2NyaWJlcyB0byBhbiBldmVudC5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnQuXG4gICAqIEBwYXJhbSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0byBjYWxsIHdoZW4gdGhlIGV2ZW50IGlzIHRyaWdnZXJlZC5cbiAgICogQHBhcmFtIHRoaXNBcmcgLSBUaGUgY29udGV4dCBwYXNzZWQgYXMgYHRoaXNgIHRvIHRoZSBgY2FsbGJhY2tgLlxuICAgKiBAcmV0dXJucyBBIHJlZmVyZW5jZSB0byB0aGUgZXZlbnQgbGlzdGVuZXIuXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgb248QXJncyBleHRlbmRzIHVua25vd25bXT4oXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNhbGxiYWNrOiAoLi4uYXJnczogQXJncykgPT4gUHJvbWlzYWJsZTx2b2lkPixcbiAgICB0aGlzQXJnPzogdW5rbm93blxuICApOiBBc3luY0V2ZW50UmVmIHtcbiAgICByZXR1cm4gc3VwZXIub24obmFtZSwgY2FsbGJhY2ssIHRoaXNBcmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmVzIHRoZSBuZXcgcGx1Z2luIHNldHRpbmdzLlxuICAgKlxuICAgKiBAcGFyYW0gY29udGV4dCAtIFRoZSBjb250ZXh0IG9mIHRoZSBzYXZlIHRvIGZpbGUgb3BlcmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIHNldHRpbmdzIGFyZSBzYXZlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzYXZlVG9GaWxlKGNvbnRleHQ/OiB1bmtub3duKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGRlZXBFcXVhbCh0aGlzLmxhc3RTYXZlZFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncywgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNldHRpbmdzKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc2F2ZVRvRmlsZUltcGwoKTtcbiAgICBhd2FpdCB0aGlzLnRyaWdnZXJBc3luYygnc2F2ZVNldHRpbmdzJywgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLCB0aGlzLmxhc3RTYXZlZFNldHRpbmdzV3JhcHBlciwgY29udGV4dCk7XG4gICAgdGhpcy5sYXN0U2F2ZWRTZXR0aW5nc1dyYXBwZXIgPSBhd2FpdCB0aGlzLmNsb25lU2V0dGluZ3NXcmFwcGVyKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlcik7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdmFsdWUgb2YgYSBwcm9wZXJ0eS5cbiAgICpcbiAgICogQHR5cGVQYXJhbSBQcm9wZXJ0eU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBzZXQuXG4gICAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHZhbGlkYXRpb24gbWVzc2FnZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZXRQcm9wZXJ0eTxQcm9wZXJ0eU5hbWUgZXh0ZW5kcyBFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPj4oXG4gICAgcHJvcGVydHlOYW1lOiBQcm9wZXJ0eU5hbWUsXG4gICAgdmFsdWU6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz5bUHJvcGVydHlOYW1lXVxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGF3YWl0IHRoaXMuZWRpdCgoc2V0dGluZ3MpID0+IHtcbiAgICAgIHNldHRpbmdzW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnZhbGlkYXRpb25NZXNzYWdlc1twcm9wZXJ0eU5hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgc2V0dGluZ3MuXG4gICAqXG4gICAqIEBwYXJhbSBzZXR0aW5ncyAtIFRoZSBzZXR0aW5ncy5cbiAgICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB0byB0aGUgdmFsaWRhdGlvbiByZXN1bHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoc2V0dGluZ3M6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4pOiBQcm9taXNlPFZhbGlkYXRpb25SZXN1bHQ8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4+IHtcbiAgICBjb25zdCByZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQ8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eU5hbWUsIHZhbGlkYXRvcl0gb2YgdGhpcy52YWxpZGF0b3JzLmVudHJpZXMoKSkge1xuICAgICAgY29uc3QgdmFsaWRhdGlvbk1lc3NhZ2UgPSBhd2FpdCB2YWxpZGF0b3Ioc2V0dGluZ3NbcHJvcGVydHlOYW1lXSwgc2V0dGluZ3MpO1xuICAgICAgaWYgKHZhbGlkYXRpb25NZXNzYWdlKSB7XG4gICAgICAgIHJlc3VsdFtwcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVEZWZhdWx0U2V0dGluZ3MoKTogRXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPjtcblxuICAvKipcbiAgICogR2V0cyB0aGUgdHJhbnNmb3JtZXIuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB0cmFuc2Zvcm1lci5cbiAgICovXG4gIHByb3RlY3RlZCBnZXRUcmFuc2Zvcm1lcigpOiBUcmFuc2Zvcm1lciB7XG4gICAgcmV0dXJuIGRlZmF1bHRUcmFuc2Zvcm1lcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcGx1Z2luIHNldHRpbmdzIGFyZSBsb2FkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBfcmVjb3JkIC0gVGhlIHJlY29yZC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBvbkxvYWRSZWNvcmQoX3JlY29yZDogR2VuZXJpY09iamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5vb3BBc3luYygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBwbHVnaW4gc2V0dGluZ3MgYXJlIHNhdmluZy5cbiAgICpcbiAgICogQHBhcmFtIF9yZWNvcmQgLSBUaGUgcmVjb3JkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIG9uU2F2aW5nUmVjb3JkKF9yZWNvcmQ6IEdlbmVyaWNPYmplY3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBub29wQXN5bmMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgYSB2YWxpZGF0b3IgZm9yIGEgcHJvcGVydHkuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkuXG4gICAqIEBwYXJhbSB2YWxpZGF0b3IgLSBUaGUgdmFsaWRhdG9yLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyVmFsaWRhdG9yPFByb3BlcnR5TmFtZSBleHRlbmRzIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+PihcbiAgICBwcm9wZXJ0eU5hbWU6IFByb3BlcnR5TmFtZSxcbiAgICB2YWxpZGF0b3I6IFZhbGlkYXRvcjxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+LCBQcm9wZXJ0eU5hbWU+XG4gICk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdG9ycy5zZXQocHJvcGVydHlOYW1lLCB2YWxpZGF0b3IgYXMgVmFsaWRhdG9yPEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4+KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgdGhlIHZhbGlkYXRvcnMuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMgdG8gcmVnaXN0ZXIgdmFsaWRhdG9ycyBmb3IgcHJvcGVydGllcy5cbiAgICovXG4gIHByb3RlY3RlZCByZWdpc3RlclZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgbm9vcCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbG9uZVNldHRpbmdzKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KTogUHJvbWlzZTxFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+PiB7XG4gICAgY29uc3QgcmVjb3JkID0gYXdhaXQgdGhpcy5zZXR0aW5nc1RvUmF3UmVjb3JkKHNldHRpbmdzKTtcbiAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkocmVjb3JkKTtcbiAgICBjb25zdCBjbG9uZVJlY29yZCA9IEpTT04ucGFyc2UoanNvbikgYXMgR2VuZXJpY09iamVjdDtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5yYXdSZWNvcmRUb1NldHRpbmdzKGNsb25lUmVjb3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2xvbmVTZXR0aW5nc1dyYXBwZXIoXG4gICAgc2V0dGluZ3NXcmFwcGVyOiBQbHVnaW5TZXR0aW5nc1dyYXBwZXI8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj5cbiAgKTogUHJvbWlzZTxQbHVnaW5TZXR0aW5nc1dyYXBwZXI8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2FmZVNldHRpbmdzOiBhd2FpdCB0aGlzLmNsb25lU2V0dGluZ3Moc2V0dGluZ3NXcmFwcGVyLnNhZmVTZXR0aW5ncyksXG4gICAgICBzZXR0aW5nczogYXdhaXQgdGhpcy5jbG9uZVNldHRpbmdzKHNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyksXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZXM6IHsgLi4uc2V0dGluZ3NXcmFwcGVyLnZhbGlkYXRpb25NZXNzYWdlcyB9XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRGVmYXVsdFNldHRpbmdzV3JhcHBlcigpOiBQbHVnaW5TZXR0aW5nc1dyYXBwZXI8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4ge1xuICAgIHJldHVybiB7XG4gICAgICBzYWZlU2V0dGluZ3M6IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzKCksXG4gICAgICBzZXR0aW5nczogdGhpcy5jcmVhdGVEZWZhdWx0U2V0dGluZ3MoKSxcbiAgICAgIHZhbGlkYXRpb25NZXNzYWdlczoge30gYXMgUmVjb3JkPEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+LCBzdHJpbmc+XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZWRpdChzZXR0aW5nc0VkaXRvcjogKHNldHRpbmdzOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3M8UGx1Z2luVHlwZXM+KSA9PiBQcm9taXNhYmxlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHNldHRpbmdzRWRpdG9yKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnZhbGlkYXRlKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncyk7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBvZiB0aGlzLnByb3BlcnR5TmFtZXMpIHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGlvbk1lc3NhZ2UgPSB2YWxpZGF0aW9uUmVzdWx0W3Byb3BlcnR5TmFtZV0gPz8gJyc7XG4gICAgICAgIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci52YWxpZGF0aW9uTWVzc2FnZXNbcHJvcGVydHlOYW1lXSA9IHZhbGlkYXRpb25NZXNzYWdlO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1dyYXBwZXIuc2FmZVNldHRpbmdzW3Byb3BlcnR5TmFtZV0gPSB2YWxpZGF0aW9uTWVzc2FnZVxuICAgICAgICAgID8gdGhpcy5kZWZhdWx0U2V0dGluZ3NbcHJvcGVydHlOYW1lXVxuICAgICAgICAgIDogdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNldHRpbmdzW3Byb3BlcnR5TmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkUHJvcGVydHlOYW1lKHByb3A6IHVua25vd24pOiBwcm9wIGlzIEV4dHJhY3RQbHVnaW5TZXR0aW5nc1Byb3BlcnR5TmFtZXM8UGx1Z2luVHlwZXM+IHtcbiAgICBpZiAodHlwZW9mIHByb3AgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLnByb3BlcnR5TmFtZXMgYXMgc3RyaW5nW10pLmluY2x1ZGVzKHByb3ApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByYXdSZWNvcmRUb1NldHRpbmdzKHJhd1JlY29yZDogR2VuZXJpY09iamVjdCk6IFByb21pc2U8RXh0cmFjdFBsdWdpblNldHRpbmdzPFBsdWdpblR5cGVzPj4ge1xuICAgIHJhd1JlY29yZCA9IHRoaXMuZ2V0VHJhbnNmb3JtZXIoKS50cmFuc2Zvcm1PYmplY3RSZWN1cnNpdmVseShyYXdSZWNvcmQpO1xuICAgIGF3YWl0IHRoaXMub25Mb2FkUmVjb3JkKHJhd1JlY29yZCk7XG5cbiAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuY3JlYXRlRGVmYXVsdFNldHRpbmdzKCk7XG5cbiAgICBmb3IgKGNvbnN0IFtwcm9wZXJ0eU5hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhyYXdSZWNvcmQpKSB7XG4gICAgICBpZiAoIXRoaXMuaXNWYWxpZFByb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgVW5rbm93biBwcm9wZXJ0eTogJHtwcm9wZXJ0eU5hbWV9YCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSB0eXBlb2YgdGhpcy5kZWZhdWx0U2V0dGluZ3NbcHJvcGVydHlOYW1lXSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1Bvc3NpYmxlIGludmFsaWQgdmFsdWUgdHlwZS4gSXQgbWlnaHQgbGVhZCB0byBhbiB1bmV4cGVjdGVkIGJlaGF2aW9yIG9mIHRoZSBwbHVnaW4uIFRoZXJlIGlzIGFsc28gYSBjaGFuY2UgaXQgaXMgYSBmYWxzZS1uZWdhdGl2ZSB3YXJuaW5nLCBhcyB3ZSBhcmUgdW5hYmxlIHRvIGRldGVybWluZSB0aGUgZXhhY3QgdHlwZSBvZiB0aGUgdmFsdWUgaW4gcnVudGltZS4nLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogdGhpcy5kZWZhdWx0U2V0dGluZ3NbcHJvcGVydHlOYW1lXSxcbiAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsdWUgYXMgRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlWYWx1ZXM8UGx1Z2luVHlwZXM+O1xuICAgIH1cblxuICAgIHJldHVybiBzZXR0aW5ncztcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc2F2ZVRvRmlsZUltcGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5wbHVnaW4uc2F2ZURhdGEoYXdhaXQgdGhpcy5zZXR0aW5nc1RvUmF3UmVjb3JkKHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5ncykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQcm9wZXJ0eUltcGwoXG4gICAgcHJvcGVydHlOYW1lOiBFeHRyYWN0UGx1Z2luU2V0dGluZ3NQcm9wZXJ0eU5hbWVzPFBsdWdpblR5cGVzPixcbiAgICB2YWx1ZTogRXh0cmFjdFBsdWdpblNldHRpbmdzUHJvcGVydHlWYWx1ZXM8UGx1Z2luVHlwZXM+LFxuICAgIHZhbGlkYXRpb25NZXNzYWdlPzogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFNldHRpbmdzV3JhcHBlci5zZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsdWU7XG4gICAgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnZhbGlkYXRpb25NZXNzYWdlc1twcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2UgPz8gJyc7XG4gICAgdGhpcy5jdXJyZW50U2V0dGluZ3NXcmFwcGVyLnNhZmVTZXR0aW5nc1twcm9wZXJ0eU5hbWVdID0gdmFsaWRhdGlvbk1lc3NhZ2UgPyB0aGlzLmRlZmF1bHRTZXR0aW5nc1twcm9wZXJ0eU5hbWVdIDogdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNldHRpbmdzVG9SYXdSZWNvcmQoc2V0dGluZ3M6IEV4dHJhY3RQbHVnaW5TZXR0aW5nczxQbHVnaW5UeXBlcz4pOiBQcm9taXNlPEdlbmVyaWNPYmplY3Q+IHtcbiAgICBjb25zdCByYXdSZWNvcmQ6IEdlbmVyaWNPYmplY3QgPSB7fTtcblxuICAgIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIG9mIHRoaXMucHJvcGVydHlOYW1lcykge1xuICAgICAgcmF3UmVjb3JkW3Byb3BlcnR5TmFtZV0gPSBzZXR0aW5nc1twcm9wZXJ0eU5hbWVdO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMub25TYXZpbmdSZWNvcmQocmF3UmVjb3JkKTtcblxuICAgIHJldHVybiB0aGlzLmdldFRyYW5zZm9ybWVyKCkudHJhbnNmb3JtT2JqZWN0UmVjdXJzaXZlbHkocmF3UmVjb3JkKTtcbiAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7OztBQThCQSxTQUFTLG1CQUFtQjtBQUM1QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyx1QkFBdUI7QUFDaEMsU0FBUywyQkFBMkI7QUFDcEMsU0FBUyx3QkFBd0I7QUFDakMsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxzQ0FBc0M7QUFFL0MsTUFBTSxxQkFBcUIsSUFBSSxpQkFBaUI7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
|