smoosic 1.0.28 → 1.0.29

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/build/smoosic.js CHANGED
@@ -378,7 +378,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
378
378
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
379
379
 
380
380
  "use strict";
381
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _select_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select.vue */ \"./src/ui/components/dialogs/select.vue\");\n/* harmony import */ var _numberInput_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./numberInput.vue */ \"./src/ui/components/dialogs/numberInput.vue\");\n/* harmony import */ var _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../smo/data/partInfo */ \"./src/smo/data/partInfo.ts\");\n/* harmony import */ var _dialogContainer_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dialogContainer.vue */ \"./src/ui/components/dialogs/dialogContainer.vue\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*@__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({\n __name: 'partInfo',\n props: {\n domId: { type: String, required: true },\n label: { type: String, required: true },\n partInfo: { type: Object, required: true },\n updatePartInfoCb: { type: Function, required: true },\n commitCb: { type: Function, required: true },\n cancelCb: { type: Function, required: true }\n },\n setup(__props, { expose: __expose }) {\n __expose();\n const props = __props;\n const { domId, label, commitCb, cancelCb, updatePartInfoCb } = Object.assign({}, props);\n const partInfo = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)(new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_3__.SmoPartInfo(props.partInfo));\n const writeBooleanValue = (attr, value) => __awaiter(this, void 0, void 0, function* () {\n partInfo[attr] = value;\n yield updatePartInfoCb(partInfo);\n });\n const writeLayoutValue = (attr, value) => __awaiter(this, void 0, void 0, function* () {\n // no change?\n if (partInfo.layoutManager.globalLayout[attr] === value) {\n return;\n }\n partInfo.layoutManager.globalLayout[attr] = value;\n yield updatePartInfoCb(partInfo);\n });\n const pageSizes = [\n { label: 'Letter', value: 'letter' },\n { label: 'Legal', value: 'legal' },\n { label: 'Tabloid', value: 'tabloid' },\n { label: 'A4', value: 'a4' },\n { label: 'Custom', value: 'custom' }\n ];\n const predefinedDimensions = {\n 'letter': { width: 816, height: 1056 },\n 'legal': { width: 816, height: 1344 },\n 'tabloid': { width: 1056, height: 1632 },\n 'a4': { width: 794, height: 1123 }\n };\n // Page size is in pixels, but if it matches a preset we just show that.\n // User chooses 'custom' to unlock width/height editing.\n const pageSize = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)('custom');\n const pageChange = () => {\n Object.keys(predefinedDimensions).forEach((key) => {\n const dims = predefinedDimensions[key];\n if (dims.width === partInfo.layoutManager.globalLayout.pageWidth &&\n dims.height === partInfo.layoutManager.globalLayout.pageHeight) {\n pageSize.value = key;\n }\n });\n };\n const lockDimensions = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n pageChange();\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(pageSize, (newVal) => __awaiter(this, void 0, void 0, function* () {\n if (predefinedDimensions[newVal]) {\n lockDimensions.value = true;\n const dims = predefinedDimensions[newVal];\n partInfo.layoutManager.globalLayout.pageWidth = dims.width;\n partInfo.layoutManager.globalLayout.pageHeight = dims.height;\n }\n else {\n lockDimensions.value = false;\n }\n yield updatePartInfoCb(partInfo);\n }));\n if (predefinedDimensions[pageSize.value]) {\n lockDimensions.value = true;\n }\n const update = () => __awaiter(this, void 0, void 0, function* () {\n yield updatePartInfoCb(partInfo);\n });\n const includeNext = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n if (partInfo.stavesAfter > 0) {\n includeNext.value = true;\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(includeNext, (newVal, oldVal) => __awaiter(this, void 0, void 0, function* () {\n if (newVal !== oldVal) {\n partInfo.stavesAfter = newVal ? 1 : 0;\n yield updatePartInfoCb(partInfo);\n }\n }));\n const updateLayoutFunc = (param) => {\n const cb = (value) => __awaiter(this, void 0, void 0, function* () {\n yield writeLayoutValue(param, value);\n });\n return cb;\n };\n const getId = (str) => {\n return `${domId}-${str}`;\n };\n const __returned__ = { props, domId, label, commitCb, cancelCb, updatePartInfoCb, partInfo, writeBooleanValue, writeLayoutValue, pageSizes, predefinedDimensions, pageSize, pageChange, lockDimensions, update, includeNext, updateLayoutFunc, getId, selectComp: _select_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], numberInputApp: _numberInput_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"], dialogContainer: _dialogContainer_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"] };\n Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });\n return __returned__;\n }\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTEudXNlWzBdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1s2XS51c2VbMF0hLi9zcmMvdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF5RDtBQ0NUO0FBQ1Y7QUFDUztBQUU2RTtBQUV4RTtBRGlCcEQsOEVBQTRCLG9EQUFnQixDQUFDO0lBQzNDLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUN2QyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7UUFDdkMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQzFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQ3BELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUM1QyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7S0FDN0M7SUFDRCxLQUFLLENBQUMsT0FBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtRQUN4QyxRQUFRLEVBQUUsQ0FBQztRQ2xCYixNQUFNLEtBQUssR0FBRyxPQUFvQixDQUFDO1FBQ25DLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUscUJBQVEsS0FBSyxDQUFFLENBQUM7UUFDNUUsTUFBTSxRQUFRLEdBQUcsNkNBQVEsQ0FBQyxJQUFJLDJEQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFM0QsTUFBTSxpQkFBaUIsR0FBRyxDQUFPLElBQTRCLEVBQUUsS0FBYyxFQUFFLEVBQUU7WUFDL0UsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUN2QixNQUFNLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLGdCQUFnQixHQUFHLENBQU8sSUFBNEIsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUMzRSxhQUFhO1lBQ2IsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDeEQsT0FBTztZQUNULENBQUM7WUFDRCxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDbEQsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQW1CO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ3BDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3RDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQzVCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1NBQ3JDLENBQUM7UUFLRixNQUFNLG9CQUFvQixHQUFrQztZQUMxRCxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDdEMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUN4QyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7U0FDbkMsQ0FBQztRQUNGLHdFQUF3RTtRQUN4RSx3REFBd0Q7UUFDeEQsTUFBTSxRQUFRLEdBQUcsd0NBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMvQyxNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVM7b0JBQzlELElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2pFLFFBQVEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO2dCQUN2QixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyx3Q0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLFVBQVUsRUFBRSxDQUFDO1FBQ2IsMENBQUssQ0FBRSxRQUFRLEVBQUUsQ0FBTyxNQUFNLEVBQUUsRUFBRTtZQUNoQyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQzNELFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQy9ELENBQUM7aUJBQU0sQ0FBQztnQkFDTixjQUFjLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUMvQixDQUFDO1lBQ0QsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxDQUFDLEVBQUMsQ0FBQztRQUNILElBQUksb0JBQW9CLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekMsY0FBYyxDQUFDLEtBQUssR0FBRyxJQUFJO1FBQzdCLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRSxHQUFTLEVBQUU7WUFDdkIsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsd0NBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQztRQUNELDBDQUFLLENBQUUsV0FBVyxFQUFFLENBQU8sTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixRQUFRLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLE1BQU0sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUMsRUFBQyxDQUFDO1FBSUgsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQTZCLEVBQW9CLEVBQUU7WUFDM0UsTUFBTSxFQUFFLEdBQUcsQ0FBTyxLQUFhLEVBQUUsRUFBRTtnQkFDakMsTUFBTSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDNUIsT0FBTyxHQUFHLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FEaUJELE1BQU0sWUFBWSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFVBQVUsdURBQUUsY0FBYyw0REFBRSxlQUFlLGdFQUFFO1FBQ25TLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDMUYsT0FBTyxZQUFZO0lBQ25CLENBQUM7Q0FFQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vU21vLy4vc3JjL3VpL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0SW5mby52dWU/MGE1MyIsIndlYnBhY2s6Ly9TbW8vLi9zcmMvdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZT9jNWFkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZUNvbXBvbmVudCBhcyBfZGVmaW5lQ29tcG9uZW50IH0gZnJvbSAndnVlJ1xuaW1wb3J0IHsgcmVmLCBSZWYsIHdhdGNoLCByZWFjdGl2ZSB9IGZyb20gJ3Z1ZSc7XHJcbmltcG9ydCBzZWxlY3RDb21wIGZyb20gJy4vc2VsZWN0LnZ1ZSc7XHJcbmltcG9ydCBudW1iZXJJbnB1dEFwcCBmcm9tICcuL251bWJlcklucHV0LnZ1ZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbic7XHJcbmltcG9ydCB7IFNtb1BhcnRJbmZvLCBTbW9QYXJ0SW5mb1N0cmluZ1R5cGUsIFNtb1BhcnRJbmZvTnVtVHlwZSwgU21vUGFydEluZm9Cb29sZWFuVHlwZSB9IGZyb20gJy4uLy4uLy4uL3Ntby9kYXRhL3BhcnRJbmZvJztcclxuaW1wb3J0IHsgR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgU21vTGF5b3V0TWFuYWdlciwgR2xvYmFsTGF5b3V0QXR0cmlidXRlc0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vc21vL2RhdGEvc2NvcmVNb2RpZmllcnMnO1xyXG5pbXBvcnQgZGlhbG9nQ29udGFpbmVyIGZyb20gJy4vZGlhbG9nQ29udGFpbmVyLnZ1ZSc7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIGRvbUlkOiBzdHJpbmcsXHJcbiAgbGFiZWw6IHN0cmluZyxcclxuICBwYXJ0SW5mbzogU21vUGFydEluZm8sXHJcbiAgdXBkYXRlUGFydEluZm9DYjogKHBpOiBTbW9QYXJ0SW5mbykgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjb21taXRDYjogKCkgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjYW5jZWxDYjogKCkgPT4gUHJvbWlzZTx2b2lkPlxyXG59XHJcbmludGVyZmFjZSBkaW1lbnNpb25zIHtcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbn1cclxudHlwZSBudW1iZXJXcml0ZXJUeXBlID0gKHZhbHVlOiBudW1iZXIpID0+IFByb21pc2U8dm9pZD47XHJcblxyXG5cbmV4cG9ydCBkZWZhdWx0IC8qQF9fUFVSRV9fKi9fZGVmaW5lQ29tcG9uZW50KHtcbiAgX19uYW1lOiAncGFydEluZm8nLFxuICBwcm9wczoge1xuICAgIGRvbUlkOiB7IHR5cGU6IFN0cmluZywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICBsYWJlbDogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgcGFydEluZm86IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIHVwZGF0ZVBhcnRJbmZvQ2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgY29tbWl0Q2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgY2FuY2VsQ2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH1cbiAgfSxcbiAgc2V0dXAoX19wcm9wczogYW55LCB7IGV4cG9zZTogX19leHBvc2UgfSkge1xuICBfX2V4cG9zZSgpO1xuXHJcbmNvbnN0IHByb3BzID0gX19wcm9wcztcclxuY29uc3QgeyBkb21JZCwgbGFiZWwsIGNvbW1pdENiLCBjYW5jZWxDYiwgdXBkYXRlUGFydEluZm9DYiB9ID0geyAuLi5wcm9wcyB9O1xyXG5jb25zdCBwYXJ0SW5mbyA9IHJlYWN0aXZlKG5ldyBTbW9QYXJ0SW5mbyhwcm9wcy5wYXJ0SW5mbykpO1xyXG5cclxuY29uc3Qgd3JpdGVCb29sZWFuVmFsdWUgPSBhc3luYyAoYXR0cjogU21vUGFydEluZm9Cb29sZWFuVHlwZSwgdmFsdWU6IGJvb2xlYW4pID0+IHtcclxuICBwYXJ0SW5mb1thdHRyXSA9IHZhbHVlO1xyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IHdyaXRlTGF5b3V0VmFsdWUgPSBhc3luYyAoYXR0cjogR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgdmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgLy8gbm8gY2hhbmdlP1xyXG4gICAgaWYgKHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0W2F0dHJdID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dFthdHRyXSA9IHZhbHVlO1xyXG4gICAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3QgcGFnZVNpemVzOiBTZWxlY3RPcHRpb25bXSA9IFtcclxuICB7IGxhYmVsOiAnTGV0dGVyJywgdmFsdWU6ICdsZXR0ZXInIH0sXHJcbiAgeyBsYWJlbDogJ0xlZ2FsJywgdmFsdWU6ICdsZWdhbCcgfSxcclxuICB7IGxhYmVsOiAnVGFibG9pZCcsIHZhbHVlOiAndGFibG9pZCcgfSxcclxuICB7IGxhYmVsOiAnQTQnLCB2YWx1ZTogJ2E0JyB9LFxyXG4gIHsgbGFiZWw6ICdDdXN0b20nLCB2YWx1ZTogJ2N1c3RvbScgfVxyXG5dO1xyXG5jb25zdCBwcmVkZWZpbmVkRGltZW5zaW9uczogeyBba2V5OiBzdHJpbmddOiBkaW1lbnNpb25zIH0gPSB7XHJcbiAgJ2xldHRlcic6IHsgd2lkdGg6IDgxNiwgaGVpZ2h0OiAxMDU2IH0sXHJcbiAgJ2xlZ2FsJzogeyB3aWR0aDogODE2LCBoZWlnaHQ6IDEzNDQgfSxcclxuICAndGFibG9pZCc6IHsgd2lkdGg6IDEwNTYsIGhlaWdodDogMTYzMiB9LFxyXG4gICdhNCc6IHsgd2lkdGg6IDc5NCwgaGVpZ2h0OiAxMTIzIH1cclxufTtcclxuLy8gUGFnZSBzaXplIGlzIGluIHBpeGVscywgYnV0IGlmIGl0IG1hdGNoZXMgYSBwcmVzZXQgd2UganVzdCBzaG93IHRoYXQuXHJcbi8vIFVzZXIgY2hvb3NlcyAnY3VzdG9tJyB0byB1bmxvY2sgd2lkdGgvaGVpZ2h0IGVkaXRpbmcuXHJcbmNvbnN0IHBhZ2VTaXplID0gcmVmKCdjdXN0b20nKTtcclxuY29uc3QgcGFnZUNoYW5nZSA9ICgpID0+IHtcclxuIE9iamVjdC5rZXlzKHByZWRlZmluZWREaW1lbnNpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1trZXldO1xyXG4gICAgaWYgKGRpbXMud2lkdGggPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aCAmJlxyXG4gICAgICBkaW1zLmhlaWdodCA9PT0gcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCkge1xyXG4gICAgICBwYWdlU2l6ZS52YWx1ZSA9IGtleTtcclxuICAgIH1cclxuICB9KTtcclxufTtcclxuY29uc3QgbG9ja0RpbWVuc2lvbnMgPSByZWYoZmFsc2UpO1xyXG5wYWdlQ2hhbmdlKCk7XHJcbndhdGNoIChwYWdlU2l6ZSwgYXN5bmMgKG5ld1ZhbCkgPT4ge1xyXG4gIGlmIChwcmVkZWZpbmVkRGltZW5zaW9uc1tuZXdWYWxdKSB7XHJcbiAgICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IHRydWU7XHJcbiAgICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNbbmV3VmFsXTtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aCA9IGRpbXMud2lkdGg7XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlSGVpZ2h0ID0gZGltcy5oZWlnaHQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gZmFsc2U7XHJcbiAgfVxyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59KTtcclxuaWYgKHByZWRlZmluZWREaW1lbnNpb25zW3BhZ2VTaXplLnZhbHVlXSkge1xyXG4gIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gdHJ1ZVxyXG59XHJcbmNvbnN0IHVwZGF0ZSA9YXN5bmMgKCkgPT4ge1xyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IGluY2x1ZGVOZXh0ID0gcmVmKGZhbHNlKTtcclxuaWYgKHBhcnRJbmZvLnN0YXZlc0FmdGVyID4gMCkge1xyXG4gIGluY2x1ZGVOZXh0LnZhbHVlID0gdHJ1ZTtcclxufVxyXG53YXRjaCAoaW5jbHVkZU5leHQsIGFzeW5jIChuZXdWYWwsIG9sZFZhbCkgPT4ge1xyXG4gIGlmIChuZXdWYWwgIT09IG9sZFZhbCkge1xyXG4gICAgcGFydEluZm8uc3RhdmVzQWZ0ZXIgPSBuZXdWYWwgPyAxIDogMDtcclxuICAgIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG4gIH1cclxufSk7XHJcblxyXG5jb25zdCB1cGRhdGVMYXlvdXRGdW5jID0gKHBhcmFtOiBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzKTogbnVtYmVyV3JpdGVyVHlwZSA9PiB7XHJcbiAgY29uc3QgY2IgPSBhc3luYyAodmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgYXdhaXQgd3JpdGVMYXlvdXRWYWx1ZShwYXJhbSwgdmFsdWUpO1xyXG4gIH1cclxuICByZXR1cm4gY2I7XHJcbn1cclxuXHJcbmNvbnN0IGdldElkID0gKHN0cjogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIGAke2RvbUlkfS0ke3N0cn1gO1xyXG59XHJcblxyXG5cbmNvbnN0IF9fcmV0dXJuZWRfXyA9IHsgcHJvcHMsIGRvbUlkLCBsYWJlbCwgY29tbWl0Q2IsIGNhbmNlbENiLCB1cGRhdGVQYXJ0SW5mb0NiLCBwYXJ0SW5mbywgd3JpdGVCb29sZWFuVmFsdWUsIHdyaXRlTGF5b3V0VmFsdWUsIHBhZ2VTaXplcywgcHJlZGVmaW5lZERpbWVuc2lvbnMsIHBhZ2VTaXplLCBwYWdlQ2hhbmdlLCBsb2NrRGltZW5zaW9ucywgdXBkYXRlLCBpbmNsdWRlTmV4dCwgdXBkYXRlTGF5b3V0RnVuYywgZ2V0SWQsIHNlbGVjdENvbXAsIG51bWJlcklucHV0QXBwLCBkaWFsb2dDb250YWluZXIgfVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pXG5yZXR1cm4gX19yZXR1cm5lZF9fXG59XG5cbn0pIiwiPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cclxuaW1wb3J0IHsgcmVmLCBSZWYsIHdhdGNoLCByZWFjdGl2ZSB9IGZyb20gJ3Z1ZSc7XHJcbmltcG9ydCBzZWxlY3RDb21wIGZyb20gJy4vc2VsZWN0LnZ1ZSc7XHJcbmltcG9ydCBudW1iZXJJbnB1dEFwcCBmcm9tICcuL251bWJlcklucHV0LnZ1ZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbic7XHJcbmltcG9ydCB7IFNtb1BhcnRJbmZvLCBTbW9QYXJ0SW5mb1N0cmluZ1R5cGUsIFNtb1BhcnRJbmZvTnVtVHlwZSwgU21vUGFydEluZm9Cb29sZWFuVHlwZSB9IGZyb20gJy4uLy4uLy4uL3Ntby9kYXRhL3BhcnRJbmZvJztcclxuaW1wb3J0IHsgR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgU21vTGF5b3V0TWFuYWdlciwgR2xvYmFsTGF5b3V0QXR0cmlidXRlc0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vc21vL2RhdGEvc2NvcmVNb2RpZmllcnMnO1xyXG5pbXBvcnQgZGlhbG9nQ29udGFpbmVyIGZyb20gJy4vZGlhbG9nQ29udGFpbmVyLnZ1ZSc7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIGRvbUlkOiBzdHJpbmcsXHJcbiAgbGFiZWw6IHN0cmluZyxcclxuICBwYXJ0SW5mbzogU21vUGFydEluZm8sXHJcbiAgdXBkYXRlUGFydEluZm9DYjogKHBpOiBTbW9QYXJ0SW5mbykgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjb21taXRDYjogKCkgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjYW5jZWxDYjogKCkgPT4gUHJvbWlzZTx2b2lkPlxyXG59XHJcbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHM8UHJvcHM+KCk7XHJcbmNvbnN0IHsgZG9tSWQsIGxhYmVsLCBjb21taXRDYiwgY2FuY2VsQ2IsIHVwZGF0ZVBhcnRJbmZvQ2IgfSA9IHsgLi4ucHJvcHMgfTtcclxuY29uc3QgcGFydEluZm8gPSByZWFjdGl2ZShuZXcgU21vUGFydEluZm8ocHJvcHMucGFydEluZm8pKTtcclxuXHJcbmNvbnN0IHdyaXRlQm9vbGVhblZhbHVlID0gYXN5bmMgKGF0dHI6IFNtb1BhcnRJbmZvQm9vbGVhblR5cGUsIHZhbHVlOiBib29sZWFuKSA9PiB7XHJcbiAgcGFydEluZm9bYXR0cl0gPSB2YWx1ZTtcclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufVxyXG5jb25zdCB3cml0ZUxheW91dFZhbHVlID0gYXN5bmMgKGF0dHI6IEdsb2JhbExheW91dEF0dHJpYnV0ZXMsIHZhbHVlOiBudW1iZXIpID0+IHtcclxuICAgIC8vIG5vIGNoYW5nZT9cclxuICAgIGlmIChwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dFthdHRyXSA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXRbYXR0cl0gPSB2YWx1ZTtcclxuICAgIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IHBhZ2VTaXplczogU2VsZWN0T3B0aW9uW10gPSBbXHJcbiAgeyBsYWJlbDogJ0xldHRlcicsIHZhbHVlOiAnbGV0dGVyJyB9LFxyXG4gIHsgbGFiZWw6ICdMZWdhbCcsIHZhbHVlOiAnbGVnYWwnIH0sXHJcbiAgeyBsYWJlbDogJ1RhYmxvaWQnLCB2YWx1ZTogJ3RhYmxvaWQnIH0sXHJcbiAgeyBsYWJlbDogJ0E0JywgdmFsdWU6ICdhNCcgfSxcclxuICB7IGxhYmVsOiAnQ3VzdG9tJywgdmFsdWU6ICdjdXN0b20nIH1cclxuXTtcclxuaW50ZXJmYWNlIGRpbWVuc2lvbnMge1xyXG4gIHdpZHRoOiBudW1iZXIsXHJcbiAgaGVpZ2h0OiBudW1iZXJcclxufVxyXG5jb25zdCBwcmVkZWZpbmVkRGltZW5zaW9uczogeyBba2V5OiBzdHJpbmddOiBkaW1lbnNpb25zIH0gPSB7XHJcbiAgJ2xldHRlcic6IHsgd2lkdGg6IDgxNiwgaGVpZ2h0OiAxMDU2IH0sXHJcbiAgJ2xlZ2FsJzogeyB3aWR0aDogODE2LCBoZWlnaHQ6IDEzNDQgfSxcclxuICAndGFibG9pZCc6IHsgd2lkdGg6IDEwNTYsIGhlaWdodDogMTYzMiB9LFxyXG4gICdhNCc6IHsgd2lkdGg6IDc5NCwgaGVpZ2h0OiAxMTIzIH1cclxufTtcclxuLy8gUGFnZSBzaXplIGlzIGluIHBpeGVscywgYnV0IGlmIGl0IG1hdGNoZXMgYSBwcmVzZXQgd2UganVzdCBzaG93IHRoYXQuXHJcbi8vIFVzZXIgY2hvb3NlcyAnY3VzdG9tJyB0byB1bmxvY2sgd2lkdGgvaGVpZ2h0IGVkaXRpbmcuXHJcbmNvbnN0IHBhZ2VTaXplID0gcmVmKCdjdXN0b20nKTtcclxuY29uc3QgcGFnZUNoYW5nZSA9ICgpID0+IHtcclxuIE9iamVjdC5rZXlzKHByZWRlZmluZWREaW1lbnNpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1trZXldO1xyXG4gICAgaWYgKGRpbXMud2lkdGggPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aCAmJlxyXG4gICAgICBkaW1zLmhlaWdodCA9PT0gcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCkge1xyXG4gICAgICBwYWdlU2l6ZS52YWx1ZSA9IGtleTtcclxuICAgIH1cclxuICB9KTtcclxufTtcclxuY29uc3QgbG9ja0RpbWVuc2lvbnMgPSByZWYoZmFsc2UpO1xyXG5wYWdlQ2hhbmdlKCk7XHJcbndhdGNoIChwYWdlU2l6ZSwgYXN5bmMgKG5ld1ZhbCkgPT4ge1xyXG4gIGlmIChwcmVkZWZpbmVkRGltZW5zaW9uc1tuZXdWYWxdKSB7XHJcbiAgICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IHRydWU7XHJcbiAgICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNbbmV3VmFsXTtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aCA9IGRpbXMud2lkdGg7XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlSGVpZ2h0ID0gZGltcy5oZWlnaHQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gZmFsc2U7XHJcbiAgfVxyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59KTtcclxuaWYgKHByZWRlZmluZWREaW1lbnNpb25zW3BhZ2VTaXplLnZhbHVlXSkge1xyXG4gIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gdHJ1ZVxyXG59XHJcbmNvbnN0IHVwZGF0ZSA9YXN5bmMgKCkgPT4ge1xyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IGluY2x1ZGVOZXh0ID0gcmVmKGZhbHNlKTtcclxuaWYgKHBhcnRJbmZvLnN0YXZlc0FmdGVyID4gMCkge1xyXG4gIGluY2x1ZGVOZXh0LnZhbHVlID0gdHJ1ZTtcclxufVxyXG53YXRjaCAoaW5jbHVkZU5leHQsIGFzeW5jIChuZXdWYWwsIG9sZFZhbCkgPT4ge1xyXG4gIGlmIChuZXdWYWwgIT09IG9sZFZhbCkge1xyXG4gICAgcGFydEluZm8uc3RhdmVzQWZ0ZXIgPSBuZXdWYWwgPyAxIDogMDtcclxuICAgIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG4gIH1cclxufSk7XHJcblxyXG50eXBlIG51bWJlcldyaXRlclR5cGUgPSAodmFsdWU6IG51bWJlcikgPT4gUHJvbWlzZTx2b2lkPjtcclxuXHJcbmNvbnN0IHVwZGF0ZUxheW91dEZ1bmMgPSAocGFyYW06IEdsb2JhbExheW91dEF0dHJpYnV0ZXMpOiBudW1iZXJXcml0ZXJUeXBlID0+IHtcclxuICBjb25zdCBjYiA9IGFzeW5jICh2YWx1ZTogbnVtYmVyKSA9PiB7XHJcbiAgICBhd2FpdCB3cml0ZUxheW91dFZhbHVlKHBhcmFtLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIHJldHVybiBjYjtcclxufVxyXG5cclxuY29uc3QgZ2V0SWQgPSAoc3RyOiBzdHJpbmcpID0+IHtcclxuICByZXR1cm4gYCR7ZG9tSWR9LSR7c3RyfWA7XHJcbn1cclxuXHJcbjwvc2NyaXB0PlxyXG48dGVtcGxhdGU+XHJcbiAgPGRpYWxvZ0NvbnRhaW5lciA6ZG9tSWQ9XCJkb21JZFwiIDpjb21taXRDYj1cImNvbW1pdENiXCIgOmNhbmNlbENiPVwiY2FuY2VsQ2JcIiA6bGFiZWw9XCJsYWJlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC04XCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiA6cGxhY2Vob2xkZXI9XCJwYXJ0SW5mby5wYXJ0TmFtZVwiIGFyaWEtbGFiZWw9XCJQYXJ0IE5hbWVcIlxyXG4gICAgICAgICAgOmlkPVwiZ2V0SWQoJ3BhcnQtbmFtZS1pbnB1dCcpXCIgdi1tb2RlbD1cInBhcnRJbmZvLnBhcnROYW1lXCIgQGNoYW5nZT1cInVwZGF0ZVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJcIiA6aWQ9XCJnZXRJZCgncGFydC1uYW1lLWxhYmVsJylcIj5QYXJ0IE5hbWU8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLThcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIDpwbGFjZWhvbGRlcj1cInBhcnRJbmZvLnBhcnRBYmJyZXZpYXRpb25cIiBhcmlhLWxhYmVsPVwiUGFydCBBYmJyZXZpYXRpb25cIlxyXG4gICAgICAgICAgOmlkPVwiZ2V0SWQoJ3BhcnQtYWJicmV2aWF0aW9uLWlucHV0JylcIiB2LW1vZGVsPVwicGFydEluZm8ucGFydEFiYnJldmlhdGlvblwiIEBjaGFuZ2U9XCJ1cGRhdGVcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTQgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiXCIgOmlkPVwiZ2V0SWQoJ3BhcnQtYWJicmV2aWF0aW9uLWxhYmVsJylcIj5QYXJ0IEFiYnJldmlhdGlvbjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMVwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2LW1vZGVsPVwicGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzXCIgOmlkPVwiZ2V0SWQoJ3ByZXNlcnZlVGV4dCcpXCJcclxuICAgICAgICAgIEBjaGFuZ2U9XCJ3cml0ZUJvb2xlYW5WYWx1ZSgncHJlc2VydmVUZXh0R3JvdXBzJywgcGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzKVwiPjwvaW5wdXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC01XCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIDpmb3I9XCJnZXRJZCgncHJlc2VydmVUZXh0JylcIj5QcmVzZXJ2ZSBUZXh0IEdyb3VwczwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0xXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHYtbW9kZWw9XCJwYXJ0SW5mby5leHBhbmRNdWx0aW1lYXN1cmVSZXN0c1wiIDppZD1cImdldElkKCdleHBhbmRNdWx0aW1lYXN1cmVSZXN0cycpXCJcclxuICAgICAgICAgIEBjaGFuZ2U9XCJ3cml0ZUJvb2xlYW5WYWx1ZSgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnLCBwYXJ0SW5mby5leHBhbmRNdWx0aW1lYXN1cmVSZXN0cylcIj48L2lucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA6Zm9yPVwiZ2V0SWQoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJylcIj5FeHBhbmQgTXVsdGltZWFzdXJlIFJlc3RzPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMVwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2LW1vZGVsPVwicGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzXCIgOmlkPVwiZ2V0SWQoJ3ByZXNlcnZlVGV4dCcpXCJcclxuICAgICAgICAgIEBjaGFuZ2U9XCJ3cml0ZUJvb2xlYW5WYWx1ZSgncHJlc2VydmVUZXh0R3JvdXBzJywgcGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzKVwiPjwvaW5wdXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC01XCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIDpmb3I9XCJnZXRJZCgncHJlc2VydmVUZXh0JylcIj5JbmNsdWRlIE5leHQgU3RhdmU8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTMgdGV4dC1lbmRcIj5QYWdlIFNpemU8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNlwiPlxyXG4gICAgICAgIDxzZWxlY3RDb21wIDpkb21JZD1cImdldElkKCdwYWdlLXNpemUtc2VsZWN0JylcIiA6bGFiZWw9XCInJ1wiIDpzZWxlY3Rpb25zPVwicGFnZVNpemVzXCIgOmluaXRpYWxWYWx1ZT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInBhZ2VDaGFuZ2VcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdwYWdlLXdpZHRoLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoXCIgOnByZWNpc2lvbj1cIjBcIlxyXG4gICAgICAgICAgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygncGFnZVdpZHRoJylcIiA6ZGlzYWJsZWQ9XCJsb2NrRGltZW5zaW9uc1wiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+UGFnZSBXaWR0aDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTQgbXMtbjRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ3BhZ2UtaGVpZ2h0LWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodFwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3BhZ2VIZWlnaHQnKVwiIDpkaXNhYmxlZD1cImxvY2tEaW1lbnNpb25zXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5QYWdlIEhlaWdodDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnem9vbS1zY2FsZS1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lnpvb21TY2FsZVwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpwZXJjZW50PXRydWUgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnem9vbVNjYWxlJylcIiA6bWluVmFsdWU9XCIwLjI1XCIgOm1heFZhbHVlPVwiOFwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Wm9vbSBTY2FsZSAoJSk8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdzdmctc2NhbGUtaW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5zdmdTY2FsZVwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpwZXJjZW50PVwidHJ1ZVwiIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3N2Z1NjYWxlJylcIiA6bWluVmFsdWU9XCIwLjI1XCIgOm1heFZhbHVlPVwiMlwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Tm90ZSBTaXplICglKTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnbm90ZS1zcGFjaW5nLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQubm90ZVNwYWNpbmdcIiA6cHJlY2lzaW9uPVwiMlwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdub3RlU3BhY2luZycpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5Ob3RlIFNwYWNpbmc8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdtYXgtbWVhc3VyZS1zeXN0ZW0taW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5tYXhNZWFzdXJlU3lzdGVtXCJcclxuICAgICAgICAgIDpwcmVjaXNpb249XCIwXCIgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnbWF4TWVhc3VyZVN5c3RlbScpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5NZWFzdXJlcy9TeXN0ZW08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaWFsb2dDb250YWluZXI+XHJcbjwvdGVtcGxhdGU+Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/ts-loader/index.js??clonedRuleSet-1.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[1].rules[6].use[0]!./src/ui/components/dialogs/partInfo.vue?vue&type=script&setup=true&lang=ts\n\n}");
381
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _select_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select.vue */ \"./src/ui/components/dialogs/select.vue\");\n/* harmony import */ var _numberInput_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./numberInput.vue */ \"./src/ui/components/dialogs/numberInput.vue\");\n/* harmony import */ var _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../smo/data/partInfo */ \"./src/smo/data/partInfo.ts\");\n/* harmony import */ var _dialogContainer_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dialogContainer.vue */ \"./src/ui/components/dialogs/dialogContainer.vue\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*@__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({\n __name: 'partInfo',\n props: {\n domId: { type: String, required: true },\n label: { type: String, required: true },\n partInfo: { type: Object, required: true },\n updatePartInfoCb: { type: Function, required: true },\n commitCb: { type: Function, required: true },\n cancelCb: { type: Function, required: true }\n },\n setup(__props, { expose: __expose }) {\n __expose();\n const props = __props;\n const { domId, label, commitCb, cancelCb, updatePartInfoCb } = Object.assign({}, props);\n const partInfo = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)(new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_3__.SmoPartInfo(props.partInfo));\n const writeBooleanValue = (attr, value) => __awaiter(this, void 0, void 0, function* () {\n partInfo[attr] = value;\n yield updatePartInfoCb(partInfo);\n });\n const writeLayoutValue = (attr, value) => __awaiter(this, void 0, void 0, function* () {\n // no change?\n if (partInfo.layoutManager.globalLayout[attr] === value) {\n return;\n }\n partInfo.layoutManager.globalLayout[attr] = value;\n yield updatePartInfoCb(partInfo);\n });\n const pageSizes = [\n { label: 'Letter', value: 'letter' },\n { label: 'Legal', value: 'legal' },\n { label: 'Tabloid', value: 'tabloid' },\n { label: 'A4', value: 'a4' },\n { label: 'Custom', value: 'custom' }\n ];\n const predefinedDimensions = {\n 'letter': { width: 816, height: 1056 },\n 'legal': { width: 816, height: 1344 },\n 'tabloid': { width: 1056, height: 1632 },\n 'a4': { width: 794, height: 1123 }\n };\n // Page size is in pixels, but if it matches a preset we just show that.\n // User chooses 'custom' to unlock width/height editing.\n const pageSize = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)('custom');\n const pageChange = () => {\n Object.keys(predefinedDimensions).forEach((key) => {\n const dims = predefinedDimensions[key];\n if (dims.width === partInfo.layoutManager.globalLayout.pageWidth &&\n dims.height === partInfo.layoutManager.globalLayout.pageHeight) {\n pageSize.value = key;\n }\n });\n };\n const pageSizeCb = (val) => __awaiter(this, void 0, void 0, function* () {\n const dims = predefinedDimensions[val];\n if (dims) {\n partInfo.layoutManager.globalLayout.pageWidth = dims.width;\n partInfo.layoutManager.globalLayout.pageHeight = dims.height;\n }\n pageSize.value = val;\n // The watch will trigger the callback\n });\n const lockDimensions = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n pageChange();\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(pageSize, (newVal) => __awaiter(this, void 0, void 0, function* () {\n if (predefinedDimensions[newVal]) {\n lockDimensions.value = true;\n const dims = predefinedDimensions[newVal];\n partInfo.layoutManager.globalLayout.pageWidth = dims.width;\n partInfo.layoutManager.globalLayout.pageHeight = dims.height;\n }\n else {\n lockDimensions.value = false;\n }\n yield updatePartInfoCb(partInfo);\n }));\n if (predefinedDimensions[pageSize.value]) {\n lockDimensions.value = true;\n }\n const update = () => __awaiter(this, void 0, void 0, function* () {\n yield updatePartInfoCb(partInfo);\n });\n const includeNext = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n if (partInfo.stavesAfter > 0) {\n includeNext.value = true;\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(includeNext, (newVal, oldVal) => __awaiter(this, void 0, void 0, function* () {\n if (newVal !== oldVal) {\n partInfo.stavesAfter = newVal ? 1 : 0;\n yield updatePartInfoCb(partInfo);\n }\n }));\n const updateLayoutFunc = (param) => {\n const cb = (value) => __awaiter(this, void 0, void 0, function* () {\n yield writeLayoutValue(param, value);\n });\n return cb;\n };\n const getId = (str) => {\n return `${domId}-${str}`;\n };\n const __returned__ = { props, domId, label, commitCb, cancelCb, updatePartInfoCb, partInfo, writeBooleanValue, writeLayoutValue, pageSizes, predefinedDimensions, pageSize, pageChange, pageSizeCb, lockDimensions, update, includeNext, updateLayoutFunc, getId, selectComp: _select_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], numberInputApp: _numberInput_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"], dialogContainer: _dialogContainer_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"] };\n Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });\n return __returned__;\n }\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTEudXNlWzBdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1s2XS51c2VbMF0hLi9zcmMvdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF5RDtBQ0NUO0FBQ1Y7QUFDUztBQUU2RTtBQUV4RTtBRGlCcEQsOEVBQTRCLG9EQUFnQixDQUFDO0lBQzNDLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUN2QyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7UUFDdkMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQzFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQ3BELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUM1QyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7S0FDN0M7SUFDRCxLQUFLLENBQUMsT0FBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtRQUN4QyxRQUFRLEVBQUUsQ0FBQztRQ2xCYixNQUFNLEtBQUssR0FBRyxPQUFvQixDQUFDO1FBQ25DLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUscUJBQVEs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cy9wYXJ0SW5mby52dWU/MGE1MyIsIndlYnBhY2s6Ly9TbW8vLi9zcmMvdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZT9jNWFkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZUNvbXBvbmVudCBhcyBfZGVmaW5lQ29tcG9uZW50IH0gZnJvbSAndnVlJ1xuaW1wb3J0IHsgcmVmLCBSZWYsIHdhdGNoLCByZWFjdGl2ZSB9IGZyb20gJ3Z1ZSc7XHJcbmltcG9ydCBzZWxlY3RDb21wIGZyb20gJy4vc2VsZWN0LnZ1ZSc7XHJcbmltcG9ydCBudW1iZXJJbnB1dEFwcCBmcm9tICcuL251bWJlcklucHV0LnZ1ZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbic7XHJcbmltcG9ydCB7IFNtb1BhcnRJbmZvLCBTbW9QYXJ0SW5mb1N0cmluZ1R5cGUsIFNtb1BhcnRJbmZvTnVtVHlwZSwgU21vUGFydEluZm9Cb29sZWFuVHlwZSB9IGZyb20gJy4uLy4uLy4uL3Ntby9kYXRhL3BhcnRJbmZvJztcclxuaW1wb3J0IHsgR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgU21vTGF5b3V0TWFuYWdlciwgR2xvYmFsTGF5b3V0QXR0cmlidXRlc0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vc21vL2RhdGEvc2NvcmVNb2RpZmllcnMnO1xyXG5pbXBvcnQgZGlhbG9nQ29udGFpbmVyIGZyb20gJy4vZGlhbG9nQ29udGFpbmVyLnZ1ZSc7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIGRvbUlkOiBzdHJpbmcsXHJcbiAgbGFiZWw6IHN0cmluZyxcclxuICBwYXJ0SW5mbzogU21vUGFydEluZm8sXHJcbiAgdXBkYXRlUGFydEluZm9DYjogKHBpOiBTbW9QYXJ0SW5mbykgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjb21taXRDYjogKCkgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjYW5jZWxDYjogKCkgPT4gUHJvbWlzZTx2b2lkPlxyXG59XHJcbmludGVyZmFjZSBkaW1lbnNpb25zIHtcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbn1cclxudHlwZSBudW1iZXJXcml0ZXJUeXBlID0gKHZhbHVlOiBudW1iZXIpID0+IFByb21pc2U8dm9pZD47XHJcblxyXG5cbmV4cG9ydCBkZWZhdWx0IC8qQF9fUFVSRV9fKi9fZGVmaW5lQ29tcG9uZW50KHtcbiAgX19uYW1lOiAncGFydEluZm8nLFxuICBwcm9wczoge1xuICAgIGRvbUlkOiB7IHR5cGU6IFN0cmluZywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICBsYWJlbDogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgcGFydEluZm86IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIHVwZGF0ZVBhcnRJbmZvQ2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgY29tbWl0Q2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgY2FuY2VsQ2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH1cbiAgfSxcbiAgc2V0dXAoX19wcm9wczogYW55LCB7IGV4cG9zZTogX19leHBvc2UgfSkge1xuICBfX2V4cG9zZSgpO1xuXHJcbmNvbnN0IHByb3BzID0gX19wcm9wcztcclxuY29uc3QgeyBkb21JZCwgbGFiZWwsIGNvbW1pdENiLCBjYW5jZWxDYiwgdXBkYXRlUGFydEluZm9DYiB9ID0geyAuLi5wcm9wcyB9O1xyXG5jb25zdCBwYXJ0SW5mbyA9IHJlYWN0aXZlKG5ldyBTbW9QYXJ0SW5mbyhwcm9wcy5wYXJ0SW5mbykpO1xyXG5cclxuY29uc3Qgd3JpdGVCb29sZWFuVmFsdWUgPSBhc3luYyAoYXR0cjogU21vUGFydEluZm9Cb29sZWFuVHlwZSwgdmFsdWU6IGJvb2xlYW4pID0+IHtcclxuICBwYXJ0SW5mb1thdHRyXSA9IHZhbHVlO1xyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IHdyaXRlTGF5b3V0VmFsdWUgPSBhc3luYyAoYXR0cjogR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgdmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgLy8gbm8gY2hhbmdlP1xyXG4gICAgaWYgKHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0W2F0dHJdID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dFthdHRyXSA9IHZhbHVlO1xyXG4gICAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3QgcGFnZVNpemVzOiBTZWxlY3RPcHRpb25bXSA9IFtcclxuICB7IGxhYmVsOiAnTGV0dGVyJywgdmFsdWU6ICdsZXR0ZXInIH0sXHJcbiAgeyBsYWJlbDogJ0xlZ2FsJywgdmFsdWU6ICdsZWdhbCcgfSxcclxuICB7IGxhYmVsOiAnVGFibG9pZCcsIHZhbHVlOiAndGFibG9pZCcgfSxcclxuICB7IGxhYmVsOiAnQTQnLCB2YWx1ZTogJ2E0JyB9LFxyXG4gIHsgbGFiZWw6ICdDdXN0b20nLCB2YWx1ZTogJ2N1c3RvbScgfVxyXG5dO1xyXG5jb25zdCBwcmVkZWZpbmVkRGltZW5zaW9uczogeyBba2V5OiBzdHJpbmddOiBkaW1lbnNpb25zIH0gPSB7XHJcbiAgJ2xldHRlcic6IHsgd2lkdGg6IDgxNiwgaGVpZ2h0OiAxMDU2IH0sXHJcbiAgJ2xlZ2FsJzogeyB3aWR0aDogODE2LCBoZWlnaHQ6IDEzNDQgfSxcclxuICAndGFibG9pZCc6IHsgd2lkdGg6IDEwNTYsIGhlaWdodDogMTYzMiB9LFxyXG4gICdhNCc6IHsgd2lkdGg6IDc5NCwgaGVpZ2h0OiAxMTIzIH1cclxufTtcclxuLy8gUGFnZSBzaXplIGlzIGluIHBpeGVscywgYnV0IGlmIGl0IG1hdGNoZXMgYSBwcmVzZXQgd2UganVzdCBzaG93IHRoYXQuXHJcbi8vIFVzZXIgY2hvb3NlcyAnY3VzdG9tJyB0byB1bmxvY2sgd2lkdGgvaGVpZ2h0IGVkaXRpbmcuXHJcbmNvbnN0IHBhZ2VTaXplID0gcmVmKCdjdXN0b20nKTtcclxuXHJcbmNvbnN0IHBhZ2VDaGFuZ2UgPSAoKSA9PiB7XHJcbiBPYmplY3Qua2V5cyhwcmVkZWZpbmVkRGltZW5zaW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNba2V5XTtcclxuICAgIGlmIChkaW1zLndpZHRoID09PSBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggJiZcclxuICAgICAgZGltcy5oZWlnaHQgPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQpIHtcclxuICAgICAgcGFnZVNpemUudmFsdWUgPSBrZXk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn07XHJcbmNvbnN0IHBhZ2VTaXplQ2IgPSBhc3luYyAodmFsOiBzdHJpbmcpID0+IHtcclxuICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNbdmFsXTtcclxuICBpZiAoZGltcykge1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoID0gZGltcy53aWR0aDtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQgPSBkaW1zLmhlaWdodDtcclxuICB9XHJcbiAgcGFnZVNpemUudmFsdWUgPSB2YWw7XHJcbiAgLy8gVGhlIHdhdGNoIHdpbGwgdHJpZ2dlciB0aGUgY2FsbGJhY2tcclxufVxyXG5jb25zdCBsb2NrRGltZW5zaW9ucyA9IHJlZihmYWxzZSk7XHJcbnBhZ2VDaGFuZ2UoKTtcclxud2F0Y2ggKHBhZ2VTaXplLCBhc3luYyAobmV3VmFsKSA9PiB7XHJcbiAgaWYgKHByZWRlZmluZWREaW1lbnNpb25zW25ld1ZhbF0pIHtcclxuICAgIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1tuZXdWYWxdO1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoID0gZGltcy53aWR0aDtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQgPSBkaW1zLmhlaWdodDtcclxuICB9IGVsc2Uge1xyXG4gICAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSBmYWxzZTtcclxuICB9XHJcbiAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn0pO1xyXG5pZiAocHJlZGVmaW5lZERpbWVuc2lvbnNbcGFnZVNpemUudmFsdWVdKSB7XHJcbiAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSB0cnVlXHJcbn1cclxuY29uc3QgdXBkYXRlID1hc3luYyAoKSA9PiB7XHJcbiAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3QgaW5jbHVkZU5leHQgPSByZWYoZmFsc2UpO1xyXG5pZiAocGFydEluZm8uc3RhdmVzQWZ0ZXIgPiAwKSB7XHJcbiAgaW5jbHVkZU5leHQudmFsdWUgPSB0cnVlO1xyXG59XHJcbndhdGNoIChpbmNsdWRlTmV4dCwgYXN5bmMgKG5ld1ZhbCwgb2xkVmFsKSA9PiB7XHJcbiAgaWYgKG5ld1ZhbCAhPT0gb2xkVmFsKSB7XHJcbiAgICBwYXJ0SW5mby5zdGF2ZXNBZnRlciA9IG5ld1ZhbCA/IDEgOiAwO1xyXG4gICAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmNvbnN0IHVwZGF0ZUxheW91dEZ1bmMgPSAocGFyYW06IEdsb2JhbExheW91dEF0dHJpYnV0ZXMpOiBudW1iZXJXcml0ZXJUeXBlID0+IHtcclxuICBjb25zdCBjYiA9IGFzeW5jICh2YWx1ZTogbnVtYmVyKSA9PiB7XHJcbiAgICBhd2FpdCB3cml0ZUxheW91dFZhbHVlKHBhcmFtLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIHJldHVybiBjYjtcclxufVxyXG5cclxuY29uc3QgZ2V0SWQgPSAoc3RyOiBzdHJpbmcpID0+IHtcclxuICByZXR1cm4gYCR7ZG9tSWR9LSR7c3RyfWA7XHJcbn1cclxuXHJcblxuY29uc3QgX19yZXR1cm5lZF9fID0geyBwcm9wcywgZG9tSWQsIGxhYmVsLCBjb21taXRDYiwgY2FuY2VsQ2IsIHVwZGF0ZVBhcnRJbmZvQ2IsIHBhcnRJbmZvLCB3cml0ZUJvb2xlYW5WYWx1ZSwgd3JpdGVMYXlvdXRWYWx1ZSwgcGFnZVNpemVzLCBwcmVkZWZpbmVkRGltZW5zaW9ucywgcGFnZVNpemUsIHBhZ2VDaGFuZ2UsIHBhZ2VTaXplQ2IsIGxvY2tEaW1lbnNpb25zLCB1cGRhdGUsIGluY2x1ZGVOZXh0LCB1cGRhdGVMYXlvdXRGdW5jLCBnZXRJZCwgc2VsZWN0Q29tcCwgbnVtYmVySW5wdXRBcHAsIGRpYWxvZ0NvbnRhaW5lciB9XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSlcbnJldHVybiBfX3JldHVybmVkX19cbn1cblxufSkiLCI8c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxyXG5pbXBvcnQgeyByZWYsIFJlZiwgd2F0Y2gsIHJlYWN0aXZlIH0gZnJvbSAndnVlJztcclxuaW1wb3J0IHNlbGVjdENvbXAgZnJvbSAnLi9zZWxlY3QudnVlJztcclxuaW1wb3J0IG51bWJlcklucHV0QXBwIGZyb20gJy4vbnVtYmVySW5wdXQudnVlJztcclxuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcclxuaW1wb3J0IHsgU21vUGFydEluZm8sIFNtb1BhcnRJbmZvU3RyaW5nVHlwZSwgU21vUGFydEluZm9OdW1UeXBlLCBTbW9QYXJ0SW5mb0Jvb2xlYW5UeXBlIH0gZnJvbSAnLi4vLi4vLi4vc21vL2RhdGEvcGFydEluZm8nO1xyXG5pbXBvcnQgeyBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzLCBTbW9MYXlvdXRNYW5hZ2VyLCBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzQXJyYXkgfSBmcm9tICcuLi8uLi8uLi9zbW8vZGF0YS9zY29yZU1vZGlmaWVycyc7XHJcbmltcG9ydCBkaWFsb2dDb250YWluZXIgZnJvbSAnLi9kaWFsb2dDb250YWluZXIudnVlJztcclxuXHJcbmludGVyZmFjZSBQcm9wcyB7XHJcbiAgZG9tSWQ6IHN0cmluZyxcclxuICBsYWJlbDogc3RyaW5nLFxyXG4gIHBhcnRJbmZvOiBTbW9QYXJ0SW5mbyxcclxuICB1cGRhdGVQYXJ0SW5mb0NiOiAocGk6IFNtb1BhcnRJbmZvKSA9PiBQcm9taXNlPHZvaWQ+LFxyXG4gIGNvbW1pdENiOiAoKSA9PiBQcm9taXNlPHZvaWQ+LFxyXG4gIGNhbmNlbENiOiAoKSA9PiBQcm9taXNlPHZvaWQ+XHJcbn1cclxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wczxQcm9wcz4oKTtcclxuY29uc3QgeyBkb21JZCwgbGFiZWwsIGNvbW1pdENiLCBjYW5jZWxDYiwgdXBkYXRlUGFydEluZm9DYiB9ID0geyAuLi5wcm9wcyB9O1xyXG5jb25zdCBwYXJ0SW5mbyA9IHJlYWN0aXZlKG5ldyBTbW9QYXJ0SW5mbyhwcm9wcy5wYXJ0SW5mbykpO1xyXG5cclxuY29uc3Qgd3JpdGVCb29sZWFuVmFsdWUgPSBhc3luYyAoYXR0cjogU21vUGFydEluZm9Cb29sZWFuVHlwZSwgdmFsdWU6IGJvb2xlYW4pID0+IHtcclxuICBwYXJ0SW5mb1thdHRyXSA9IHZhbHVlO1xyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IHdyaXRlTGF5b3V0VmFsdWUgPSBhc3luYyAoYXR0cjogR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgdmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgLy8gbm8gY2hhbmdlP1xyXG4gICAgaWYgKHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0W2F0dHJdID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dFthdHRyXSA9IHZhbHVlO1xyXG4gICAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3QgcGFnZVNpemVzOiBTZWxlY3RPcHRpb25bXSA9IFtcclxuICB7IGxhYmVsOiAnTGV0dGVyJywgdmFsdWU6ICdsZXR0ZXInIH0sXHJcbiAgeyBsYWJlbDogJ0xlZ2FsJywgdmFsdWU6ICdsZWdhbCcgfSxcclxuICB7IGxhYmVsOiAnVGFibG9pZCcsIHZhbHVlOiAndGFibG9pZCcgfSxcclxuICB7IGxhYmVsOiAnQTQnLCB2YWx1ZTogJ2E0JyB9LFxyXG4gIHsgbGFiZWw6ICdDdXN0b20nLCB2YWx1ZTogJ2N1c3RvbScgfVxyXG5dO1xyXG5pbnRlcmZhY2UgZGltZW5zaW9ucyB7XHJcbiAgd2lkdGg6IG51bWJlcixcclxuICBoZWlnaHQ6IG51bWJlclxyXG59XHJcbmNvbnN0IHByZWRlZmluZWREaW1lbnNpb25zOiB7IFtrZXk6IHN0cmluZ106IGRpbWVuc2lvbnMgfSA9IHtcclxuICAnbGV0dGVyJzogeyB3aWR0aDogODE2LCBoZWlnaHQ6IDEwNTYgfSxcclxuICAnbGVnYWwnOiB7IHdpZHRoOiA4MTYsIGhlaWdodDogMTM0NCB9LFxyXG4gICd0YWJsb2lkJzogeyB3aWR0aDogMTA1NiwgaGVpZ2h0OiAxNjMyIH0sXHJcbiAgJ2E0JzogeyB3aWR0aDogNzk0LCBoZWlnaHQ6IDExMjMgfVxyXG59O1xyXG4vLyBQYWdlIHNpemUgaXMgaW4gcGl4ZWxzLCBidXQgaWYgaXQgbWF0Y2hlcyBhIHByZXNldCB3ZSBqdXN0IHNob3cgdGhhdC5cclxuLy8gVXNlciBjaG9vc2VzICdjdXN0b20nIHRvIHVubG9jayB3aWR0aC9oZWlnaHQgZWRpdGluZy5cclxuY29uc3QgcGFnZVNpemUgPSByZWYoJ2N1c3RvbScpO1xyXG5cclxuY29uc3QgcGFnZUNoYW5nZSA9ICgpID0+IHtcclxuIE9iamVjdC5rZXlzKHByZWRlZmluZWREaW1lbnNpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1trZXldO1xyXG4gICAgaWYgKGRpbXMud2lkdGggPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aCAmJlxyXG4gICAgICBkaW1zLmhlaWdodCA9PT0gcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCkge1xyXG4gICAgICBwYWdlU2l6ZS52YWx1ZSA9IGtleTtcclxuICAgIH1cclxuICB9KTtcclxufTtcclxuY29uc3QgcGFnZVNpemVDYiA9IGFzeW5jICh2YWw6IHN0cmluZykgPT4ge1xyXG4gIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1t2YWxdO1xyXG4gIGlmIChkaW1zKSB7XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggPSBkaW1zLndpZHRoO1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCA9IGRpbXMuaGVpZ2h0O1xyXG4gIH1cclxuICBwYWdlU2l6ZS52YWx1ZSA9IHZhbDtcclxuICAvLyBUaGUgd2F0Y2ggd2lsbCB0cmlnZ2VyIHRoZSBjYWxsYmFja1xyXG59XHJcbmNvbnN0IGxvY2tEaW1lbnNpb25zID0gcmVmKGZhbHNlKTtcclxucGFnZUNoYW5nZSgpO1xyXG53YXRjaCAocGFnZVNpemUsIGFzeW5jIChuZXdWYWwpID0+IHtcclxuICBpZiAocHJlZGVmaW5lZERpbWVuc2lvbnNbbmV3VmFsXSkge1xyXG4gICAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSB0cnVlO1xyXG4gICAgY29uc3QgZGltcyA9IHByZWRlZmluZWREaW1lbnNpb25zW25ld1ZhbF07XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggPSBkaW1zLndpZHRoO1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCA9IGRpbXMuaGVpZ2h0O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IGZhbHNlO1xyXG4gIH1cclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufSk7XHJcbmlmIChwcmVkZWZpbmVkRGltZW5zaW9uc1twYWdlU2l6ZS52YWx1ZV0pIHtcclxuICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IHRydWVcclxufVxyXG5jb25zdCB1cGRhdGUgPWFzeW5jICgpID0+IHtcclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufVxyXG5jb25zdCBpbmNsdWRlTmV4dCA9IHJlZihmYWxzZSk7XHJcbmlmIChwYXJ0SW5mby5zdGF2ZXNBZnRlciA+IDApIHtcclxuICBpbmNsdWRlTmV4dC52YWx1ZSA9IHRydWU7XHJcbn1cclxud2F0Y2ggKGluY2x1ZGVOZXh0LCBhc3luYyAobmV3VmFsLCBvbGRWYWwpID0+IHtcclxuICBpZiAobmV3VmFsICE9PSBvbGRWYWwpIHtcclxuICAgIHBhcnRJbmZvLnN0YXZlc0FmdGVyID0gbmV3VmFsID8gMSA6IDA7XHJcbiAgICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxuICB9XHJcbn0pO1xyXG5cclxudHlwZSBudW1iZXJXcml0ZXJUeXBlID0gKHZhbHVlOiBudW1iZXIpID0+IFByb21pc2U8dm9pZD47XHJcblxyXG5jb25zdCB1cGRhdGVMYXlvdXRGdW5jID0gKHBhcmFtOiBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzKTogbnVtYmVyV3JpdGVyVHlwZSA9PiB7XHJcbiAgY29uc3QgY2IgPSBhc3luYyAodmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgYXdhaXQgd3JpdGVMYXlvdXRWYWx1ZShwYXJhbSwgdmFsdWUpO1xyXG4gIH1cclxuICByZXR1cm4gY2I7XHJcbn1cclxuXHJcbmNvbnN0IGdldElkID0gKHN0cjogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIGAke2RvbUlkfS0ke3N0cn1gO1xyXG59XHJcblxyXG48L3NjcmlwdD5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaWFsb2dDb250YWluZXIgOmRvbUlkPVwiZG9tSWRcIiA6Y29tbWl0Q2I9XCJjb21taXRDYlwiIDpjYW5jZWxDYj1cImNhbmNlbENiXCIgOmxhYmVsPVwibGFiZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtOFwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgOnBsYWNlaG9sZGVyPVwicGFydEluZm8ucGFydE5hbWVcIiBhcmlhLWxhYmVsPVwiUGFydCBOYW1lXCJcclxuICAgICAgICAgIDppZD1cImdldElkKCdwYXJ0LW5hbWUtaW5wdXQnKVwiIHYtbW9kZWw9XCJwYXJ0SW5mby5wYXJ0TmFtZVwiIEBjaGFuZ2U9XCJ1cGRhdGVcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTQgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiXCIgOmlkPVwiZ2V0SWQoJ3BhcnQtbmFtZS1sYWJlbCcpXCI+UGFydCBOYW1lPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC04XCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiA6cGxhY2Vob2xkZXI9XCJwYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uXCIgYXJpYS1sYWJlbD1cIlBhcnQgQWJicmV2aWF0aW9uXCJcclxuICAgICAgICAgIDppZD1cImdldElkKCdwYXJ0LWFiYnJldmlhdGlvbi1pbnB1dCcpXCIgdi1tb2RlbD1cInBhcnRJbmZvLnBhcnRBYmJyZXZpYXRpb25cIiBAY2hhbmdlPVwidXBkYXRlXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiIDppZD1cImdldElkKCdwYXJ0LWFiYnJldmlhdGlvbi1sYWJlbCcpXCI+UGFydCBBYmJyZXZpYXRpb248L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdi1tb2RlbD1cInBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3Vwc1wiIDppZD1cImdldElkKCdwcmVzZXJ2ZVRleHQnKVwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwid3JpdGVCb29sZWFuVmFsdWUoJ3ByZXNlcnZlVGV4dEdyb3VwcycsIHBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3VwcylcIj48L2lucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA6Zm9yPVwiZ2V0SWQoJ3ByZXNlcnZlVGV4dCcpXCI+UHJlc2VydmUgVGV4dCBHcm91cHM8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMVwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2LW1vZGVsPVwicGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHNcIiA6aWQ9XCJnZXRJZCgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnKVwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwid3JpdGVCb29sZWFuVmFsdWUoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJywgcGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMpXCI+PC9pbnB1dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTVcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgOmZvcj1cImdldElkKCdleHBhbmRNdWx0aW1lYXN1cmVSZXN0cycpXCI+RXhwYW5kIE11bHRpbWVhc3VyZSBSZXN0czwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdi1tb2RlbD1cImluY2x1ZGVOZXh0XCIgOmlkPVwiZ2V0SWQoJ2luY2x1ZGVOZXh0JylcIj48L2lucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA6Zm9yPVwiZ2V0SWQoJ2luY2x1ZGVOZXh0JylcIj5JbmNsdWRlIE5leHQgU3RhdmU8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTMgdGV4dC1lbmRcIj5QYWdlIFNpemU8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNlwiPlxyXG4gICAgICAgIDxzZWxlY3RDb21wIDpkb21JZD1cImdldElkKCdwYWdlLXNpemUtc2VsZWN0JylcIiA6bGFiZWw9XCInJ1wiIDpzZWxlY3Rpb25zPVwicGFnZVNpemVzXCIgOmluaXRpYWxWYWx1ZT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInBhZ2VTaXplQ2JcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdwYWdlLXdpZHRoLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoXCIgOnByZWNpc2lvbj1cIjBcIlxyXG4gICAgICAgICAgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygncGFnZVdpZHRoJylcIiA6ZGlzYWJsZWQ9XCJsb2NrRGltZW5zaW9uc1wiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+UGFnZSBXaWR0aDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTQgbXMtbjRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ3BhZ2UtaGVpZ2h0LWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodFwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3BhZ2VIZWlnaHQnKVwiIDpkaXNhYmxlZD1cImxvY2tEaW1lbnNpb25zXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5QYWdlIEhlaWdodDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnem9vbS1zY2FsZS1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lnpvb21TY2FsZVwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpwZXJjZW50PXRydWUgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnem9vbVNjYWxlJylcIiA6bWluVmFsdWU9XCIwLjI1XCIgOm1heFZhbHVlPVwiOFwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Wm9vbSBTY2FsZSAoJSk8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdzdmctc2NhbGUtaW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5zdmdTY2FsZVwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpwZXJjZW50PVwidHJ1ZVwiIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3N2Z1NjYWxlJylcIiA6bWluVmFsdWU9XCIwLjI1XCIgOm1heFZhbHVlPVwiMlwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Tm90ZSBTaXplICglKTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnbm90ZS1zcGFjaW5nLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQubm90ZVNwYWNpbmdcIiA6cHJlY2lzaW9uPVwiMlwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdub3RlU3BhY2luZycpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5Ob3RlIFNwYWNpbmc8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdtYXgtbWVhc3VyZS1zeXN0ZW0taW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5tYXhNZWFzdXJlU3lzdGVtXCJcclxuICAgICAgICAgIDpwcmVjaXNpb249XCIwXCIgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnbWF4TWVhc3VyZVN5c3RlbScpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5NZWFzdXJlcy9TeXN0ZW08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaWFsb2dDb250YWluZXI+XHJcbjwvdGVtcGxhdGU+Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/ts-loader/index.js??clonedRuleSet-1.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[1].rules[6].use[0]!./src/ui/components/dialogs/partInfo.vue?vue&type=script&setup=true&lang=ts\n\n}");
382
382
 
383
383
  /***/ },
384
384
 
@@ -807,7 +807,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
807
807
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
808
808
 
809
809
  "use strict";
810
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _hoisted_1 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_2 = { class: \"col col-8\" };\nconst _hoisted_3 = [\"placeholder\", \"id\"];\nconst _hoisted_4 = { class: \"col col-4 text-start\" };\nconst _hoisted_5 = [\"id\"];\nconst _hoisted_6 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_7 = { class: \"col col-8\" };\nconst _hoisted_8 = [\"placeholder\", \"id\"];\nconst _hoisted_9 = { class: \"col col-4 text-start\" };\nconst _hoisted_10 = [\"id\"];\nconst _hoisted_11 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_12 = { class: \"col col-1\" };\nconst _hoisted_13 = [\"id\"];\nconst _hoisted_14 = { class: \"col col-5\" };\nconst _hoisted_15 = [\"for\"];\nconst _hoisted_16 = { class: \"col col-1\" };\nconst _hoisted_17 = [\"id\"];\nconst _hoisted_18 = { class: \"col col-5\" };\nconst _hoisted_19 = [\"for\"];\nconst _hoisted_20 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_21 = { class: \"col col-1\" };\nconst _hoisted_22 = [\"id\"];\nconst _hoisted_23 = { class: \"col col-5\" };\nconst _hoisted_24 = [\"for\"];\nconst _hoisted_25 = { class: \"row mb-2\" };\nconst _hoisted_26 = { class: \"col col-6\" };\nconst _hoisted_27 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_28 = { class: \"col col-4\" };\nconst _hoisted_29 = { class: \"col col-4 ms-n4\" };\nconst _hoisted_30 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_31 = { class: \"col col-4\" };\nconst _hoisted_32 = { class: \"col col-4 ms-n4\" };\nconst _hoisted_33 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_34 = { class: \"col col-4\" };\nconst _hoisted_35 = { class: \"col col-4 ms-n4\" };\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"dialogContainer\"], {\n domId: $setup.domId,\n commitCb: $setup.commitCb,\n cancelCb: $setup.cancelCb,\n label: $setup.label\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"text\",\n class: \"form-control\",\n placeholder: $setup.partInfo.partName,\n \"aria-label\": \"Part Name\",\n id: $setup.getId('part-name-input'),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => (($setup.partInfo.partName) = $event)),\n onChange: $setup.update\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_3), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.partInfo.partName]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"\",\n id: $setup.getId('part-name-label')\n }, \"Part Name\", 8 /* PROPS */, _hoisted_5)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"text\",\n class: \"form-control\",\n placeholder: $setup.partInfo.partAbbreviation,\n \"aria-label\": \"Part Abbreviation\",\n id: $setup.getId('part-abbreviation-input'),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => (($setup.partInfo.partAbbreviation) = $event)),\n onChange: $setup.update\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_8), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.partInfo.partAbbreviation]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"\",\n id: $setup.getId('part-abbreviation-label')\n }, \"Part Abbreviation\", 8 /* PROPS */, _hoisted_10)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_11, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_12, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => (($setup.partInfo.preserveTextGroups) = $event)),\n id: $setup.getId('preserveText'),\n onChange: _cache[3] || (_cache[3] = ($event) => ($setup.writeBooleanValue('preserveTextGroups', $setup.partInfo.preserveTextGroups)))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_13), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.partInfo.preserveTextGroups]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_14, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('preserveText')\n }, \"Preserve Text Groups\", 8 /* PROPS */, _hoisted_15)\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_16, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event) => (($setup.partInfo.expandMultimeasureRests) = $event)),\n id: $setup.getId('expandMultimeasureRests'),\n onChange: _cache[5] || (_cache[5] = ($event) => ($setup.writeBooleanValue('expandMultimeasureRests', $setup.partInfo.expandMultimeasureRests)))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_17), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.partInfo.expandMultimeasureRests]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_18, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('expandMultimeasureRests')\n }, \"Expand Multimeasure Rests\", 8 /* PROPS */, _hoisted_19)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_20, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_21, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event) => (($setup.partInfo.preserveTextGroups) = $event)),\n id: $setup.getId('preserveText'),\n onChange: _cache[7] || (_cache[7] = ($event) => ($setup.writeBooleanValue('preserveTextGroups', $setup.partInfo.preserveTextGroups)))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_22), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.partInfo.preserveTextGroups]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_23, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('preserveText')\n }, \"Include Next Stave\", 8 /* PROPS */, _hoisted_24)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_25, [\n _cache[8] || (_cache[8] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-3 text-end\" }, \"Page Size\", -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_26, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"selectComp\"], {\n domId: $setup.getId('page-size-select'),\n label: '',\n selections: $setup.pageSizes,\n initialValue: $setup.pageSize,\n changeCb: $setup.pageChange\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\"])\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_27, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_28, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('page-width-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.pageWidth,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('pageWidth'),\n disabled: $setup.lockDimensions\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\", \"disabled\"])\n ]),\n _cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Page Width\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_29, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('page-height-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.pageHeight,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('pageHeight'),\n disabled: $setup.lockDimensions\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\", \"disabled\"])\n ]),\n _cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Page Height\")\n ], -1 /* CACHED */))\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_30, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_31, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('zoom-scale-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.zoomScale,\n precision: 0,\n percent: true,\n changeCb: $setup.updateLayoutFunc('zoomScale'),\n minValue: 0.25,\n maxValue: 8\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Zoom Scale (%)\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_32, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('svg-scale-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.svgScale,\n precision: 0,\n percent: true,\n changeCb: $setup.updateLayoutFunc('svgScale'),\n minValue: 0.25,\n maxValue: 2\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Note Size (%)\")\n ], -1 /* CACHED */))\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_33, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_34, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('note-spacing-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.noteSpacing,\n precision: 2,\n changeCb: $setup.updateLayoutFunc('noteSpacing')\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[13] || (_cache[13] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Note Spacing\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_35, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('max-measure-system-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.maxMeasureSystem,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('maxMeasureSystem')\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[14] || (_cache[14] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Measures/System\")\n ], -1 /* CACHED */))\n ])\n ]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"domId\", \"commitCb\", \"cancelCb\", \"label\"]));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTEudXNlWzBdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC90ZW1wbGF0ZUxvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1syXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbNl0udXNlWzBdIS4vc3JjL3VpL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0SW5mby52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0MTdhMWMmdHM9dHJ1ZSIsIm1hcHBpbmdzIjoiOzs7OztBQUF3UTtBQUV4USxNQUFNLFVBQVUsR0FBRyxFQzBHVixLQUFLLEVBQUMsNkJBQTZCO0FEekc1QyxNQUFNLFVBQVUsR0FBRyxFQzBHUixLQUFLLEVBQUMsV0FBVztBRHpHNUIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDO0FBQ3hDLE1BQU0sVUFBVSxHQUFHLEVDNEdSLEtBQUssRUFBQyxzQkFBc0I7QUQzR3ZDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ3pCLE1BQU0sVUFBVSxHQUFHLEVDOEdWLEtBQUssRUFBQyw2QkFBNkI7QUQ3RzVDLE1BQU0sVUFBVSxHQUFHLEVDOEdSLEtBQUssRUFBQyxXQUFXO0FEN0c1QixNQUFNLFVBQVUsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM7QUFDeEMsTUFBTSxVQUFVLEdBQUcsRUNnSFIsS0FBSyxFQUFDLHNCQUFzQjtBRC9HdkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDMUIsTUFBTSxXQUFXLEdBQUcsRUNrSFgsS0FBSyxFQUFDLDZCQUE2QjtBRGpINUMsTUFBTSxXQUFXLEdBQUcsRUNrSFQsS0FBSyxFQUFDLFdBQVc7QURqSDVCLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQzFCLE1BQU0sV0FBVyxHQUFHLEVDb0hU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QUM7U0FDSCxDQUFDO1FBQ0YsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZO0tBQ2xCLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL1Ntby8uL3NyYy91aS9jb21wb25lbnRzL2RpYWxvZ3MvcGFydEluZm8udnVlP2MwNmMiLCJ3ZWJwYWNrOi8vU21vLy4vc3JjL3VpL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0SW5mby52dWU/YzVhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2TW9kZWxUZXh0IGFzIF92TW9kZWxUZXh0LCBjcmVhdGVFbGVtZW50Vk5vZGUgYXMgX2NyZWF0ZUVsZW1lbnRWTm9kZSwgd2l0aERpcmVjdGl2ZXMgYXMgX3dpdGhEaXJlY3RpdmVzLCB2TW9kZWxDaGVja2JveCBhcyBfdk1vZGVsQ2hlY2tib3gsIGNyZWF0ZVZOb2RlIGFzIF9jcmVhdGVWTm9kZSwgd2l0aEN0eCBhcyBfd2l0aEN0eCwgb3BlbkJsb2NrIGFzIF9vcGVuQmxvY2ssIGNyZWF0ZUJsb2NrIGFzIF9jcmVhdGVCbG9jayB9IGZyb20gXCJ2dWVcIlxuXG5jb25zdCBfaG9pc3RlZF8xID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF8yID0geyBjbGFzczogXCJjb2wgY29sLThcIiB9XG5jb25zdCBfaG9pc3RlZF8zID0gW1wicGxhY2Vob2xkZXJcIiwgXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfNCA9IHsgY2xhc3M6IFwiY29sIGNvbC00IHRleHQtc3RhcnRcIiB9XG5jb25zdCBfaG9pc3RlZF81ID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzYgPSB7IGNsYXNzOiBcInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiIH1cbmNvbnN0IF9ob2lzdGVkXzcgPSB7IGNsYXNzOiBcImNvbCBjb2wtOFwiIH1cbmNvbnN0IF9ob2lzdGVkXzggPSBbXCJwbGFjZWhvbGRlclwiLCBcImlkXCJdXG5jb25zdCBfaG9pc3RlZF85ID0geyBjbGFzczogXCJjb2wgY29sLTQgdGV4dC1zdGFydFwiIH1cbmNvbnN0IF9ob2lzdGVkXzEwID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzExID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF8xMiA9IHsgY2xhc3M6IFwiY29sIGNvbC0xXCIgfVxuY29uc3QgX2hvaXN0ZWRfMTMgPSBbXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfMTQgPSB7IGNsYXNzOiBcImNvbCBjb2wtNVwiIH1cbmNvbnN0IF9ob2lzdGVkXzE1ID0gW1wiZm9yXCJdXG5jb25zdCBfaG9pc3RlZF8xNiA9IHsgY2xhc3M6IFwiY29sIGNvbC0xXCIgfVxuY29uc3QgX2hvaXN0ZWRfMTcgPSBbXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfMTggPSB7IGNsYXNzOiBcImNvbCBjb2wtNVwiIH1cbmNvbnN0IF9ob2lzdGVkXzE5ID0gW1wiZm9yXCJdXG5jb25zdCBfaG9pc3RlZF8yMCA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMjEgPSB7IGNsYXNzOiBcImNvbCBjb2wtMVwiIH1cbmNvbnN0IF9ob2lzdGVkXzIyID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzIzID0geyBjbGFzczogXCJjb2wgY29sLTVcIiB9XG5jb25zdCBfaG9pc3RlZF8yNCA9IFtcImZvclwiXVxuY29uc3QgX2hvaXN0ZWRfMjUgPSB7IGNsYXNzOiBcInJvdyBtYi0yXCIgfVxuY29uc3QgX2hvaXN0ZWRfMjYgPSB7IGNsYXNzOiBcImNvbCBjb2wtNlwiIH1cbmNvbnN0IF9ob2lzdGVkXzI3ID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF8yOCA9IHsgY2xhc3M6IFwiY29sIGNvbC00XCIgfVxuY29uc3QgX2hvaXN0ZWRfMjkgPSB7IGNsYXNzOiBcImNvbCBjb2wtNCBtcy1uNFwiIH1cbmNvbnN0IF9ob2lzdGVkXzMwID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF8zMSA9IHsgY2xhc3M6IFwiY29sIGNvbC00XCIgfVxuY29uc3QgX2hvaXN0ZWRfMzIgPSB7IGNsYXNzOiBcImNvbCBjb2wtNCBtcy1uNFwiIH1cbmNvbnN0IF9ob2lzdGVkXzMzID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF8zNCA9IHsgY2xhc3M6IFwiY29sIGNvbC00XCIgfVxuY29uc3QgX2hvaXN0ZWRfMzUgPSB7IGNsYXNzOiBcImNvbCBjb2wtNCBtcy1uNFwiIH1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcihfY3R4OiBhbnksX2NhY2hlOiBhbnksJHByb3BzOiBhbnksJHNldHVwOiBhbnksJGRhdGE6IGFueSwkb3B0aW9uczogYW55KSB7XG4gIHJldHVybiAoX29wZW5CbG9jaygpLCBfY3JlYXRlQmxvY2soJHNldHVwW1wiZGlhbG9nQ29udGFpbmVyXCJdLCB7XG4gICAgZG9tSWQ6ICRzZXR1cC5kb21JZCxcbiAgICBjb21taXRDYjogJHNldHVwLmNvbW1pdENiLFxuICAgIGNhbmNlbENiOiAkc2V0dXAuY2FuY2VsQ2IsXG4gICAgbGFiZWw6ICRzZXR1cC5sYWJlbFxuICB9LCB7XG4gICAgZGVmYXVsdDogX3dpdGhDdHgoKCkgPT4gW1xuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xLCBbXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMiwgW1xuICAgICAgICAgIF93aXRoRGlyZWN0aXZlcyhfY3JlYXRlRWxlbWVudFZOb2RlKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNvbnRyb2xcIixcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAkc2V0dXAucGFydEluZm8ucGFydE5hbWUsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogXCJQYXJ0IE5hbWVcIixcbiAgICAgICAgICAgIGlkOiAkc2V0dXAuZ2V0SWQoJ3BhcnQtbmFtZS1pbnB1dCcpLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTptb2RlbFZhbHVlXCI6IF9jYWNoZVswXSB8fCAoX2NhY2hlWzBdID0gKCRldmVudDogYW55KSA9PiAoKCRzZXR1cC5wYXJ0SW5mby5wYXJ0TmFtZSkgPSAkZXZlbnQpKSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAkc2V0dXAudXBkYXRlXG4gICAgICAgICAgfSwgbnVsbCwgNDAgLyogUFJPUFMsIE5FRURfSFlEUkFUSU9OICovLCBfaG9pc3RlZF8zKSwgW1xuICAgICAgICAgICAgW192TW9kZWxUZXh0LCAkc2V0dXAucGFydEluZm8ucGFydE5hbWVdXG4gICAgICAgICAgXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNCwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcIlwiLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgncGFydC1uYW1lLWxhYmVsJylcbiAgICAgICAgICB9LCBcIlBhcnQgTmFtZVwiLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF81KVxuICAgICAgICBdKVxuICAgICAgXSksXG4gICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzYsIFtcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF83LCBbXG4gICAgICAgICAgX3dpdGhEaXJlY3RpdmVzKF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY29udHJvbFwiLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICRzZXR1cC5wYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uLFxuICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiUGFydCBBYmJyZXZpYXRpb25cIixcbiAgICAgICAgICAgIGlkOiAkc2V0dXAuZ2V0SWQoJ3BhcnQtYWJicmV2aWF0aW9uLWlucHV0JyksXG4gICAgICAgICAgICBcIm9uVXBkYXRlOm1vZGVsVmFsdWVcIjogX2NhY2hlWzFdIHx8IChfY2FjaGVbMV0gPSAoJGV2ZW50OiBhbnkpID0+ICgoJHNldHVwLnBhcnRJbmZvLnBhcnRBYmJyZXZpYXRpb24pID0gJGV2ZW50KSksXG4gICAgICAgICAgICBvbkNoYW5nZTogJHNldHVwLnVwZGF0ZVxuICAgICAgICAgIH0sIG51bGwsIDQwIC8qIFBST1BTLCBORUVEX0hZRFJBVElPTiAqLywgX2hvaXN0ZWRfOCksIFtcbiAgICAgICAgICAgIFtfdk1vZGVsVGV4dCwgJHNldHVwLnBhcnRJbmZvLnBhcnRBYmJyZXZpYXRpb25dXG4gICAgICAgICAgXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfOSwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcIlwiLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgncGFydC1hYmJyZXZpYXRpb24tbGFiZWwnKVxuICAgICAgICAgIH0sIFwiUGFydCBBYmJyZXZpYXRpb25cIiwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMTApXG4gICAgICAgIF0pXG4gICAgICBdKSxcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMTEsIFtcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xMiwgW1xuICAgICAgICAgIF93aXRoRGlyZWN0aXZlcyhfY3JlYXRlRWxlbWVudFZOb2RlKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiZm9ybS1jaGVjay1pbnB1dFwiLFxuICAgICAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTptb2RlbFZhbHVlXCI6IF9jYWNoZVsyXSB8fCAoX2NhY2hlWzJdID0gKCRldmVudDogYW55KSA9PiAoKCRzZXR1cC5wYXJ0SW5mby5wcmVzZXJ2ZVRleHRHcm91cHMpID0gJGV2ZW50KSksXG4gICAgICAgICAgICBpZDogJHNldHVwLmdldElkKCdwcmVzZXJ2ZVRleHQnKSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBfY2FjaGVbM10gfHwgKF9jYWNoZVszXSA9ICgkZXZlbnQ6IGFueSkgPT4gKCRzZXR1cC53cml0ZUJvb2xlYW5WYWx1ZSgncHJlc2VydmVUZXh0R3JvdXBzJywgJHNldHVwLnBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3VwcykpKVxuICAgICAgICAgIH0sIG51bGwsIDQwIC8qIFBST1BTLCBORUVEX0hZRFJBVElPTiAqLywgX2hvaXN0ZWRfMTMpLCBbXG4gICAgICAgICAgICBbX3ZNb2RlbENoZWNrYm94LCAkc2V0dXAucGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzXVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzE0LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImxhYmVsXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIixcbiAgICAgICAgICAgIGZvcjogJHNldHVwLmdldElkKCdwcmVzZXJ2ZVRleHQnKVxuICAgICAgICAgIH0sIFwiUHJlc2VydmUgVGV4dCBHcm91cHNcIiwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMTUpXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzE2LCBbXG4gICAgICAgICAgX3dpdGhEaXJlY3RpdmVzKF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNoZWNrLWlucHV0XCIsXG4gICAgICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgICAgICBcIm9uVXBkYXRlOm1vZGVsVmFsdWVcIjogX2NhY2hlWzRdIHx8IChfY2FjaGVbNF0gPSAoJGV2ZW50OiBhbnkpID0+ICgoJHNldHVwLnBhcnRJbmZvLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnKSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBfY2FjaGVbNV0gfHwgKF9jYWNoZVs1XSA9ICgkZXZlbnQ6IGFueSkgPT4gKCRzZXR1cC53cml0ZUJvb2xlYW5WYWx1ZSgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnLCAkc2V0dXAucGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMpKSlcbiAgICAgICAgICB9LCBudWxsLCA0MCAvKiBQUk9QUywgTkVFRF9IWURSQVRJT04gKi8sIF9ob2lzdGVkXzE3KSwgW1xuICAgICAgICAgICAgW192TW9kZWxDaGVja2JveCwgJHNldHVwLnBhcnRJbmZvLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzXVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzE4LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImxhYmVsXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIixcbiAgICAgICAgICAgIGZvcjogJHNldHVwLmdldElkKCdleHBhbmRNdWx0aW1lYXN1cmVSZXN0cycpXG4gICAgICAgICAgfSwgXCJFeHBhbmQgTXVsdGltZWFzdXJlIFJlc3RzXCIsIDggLyogUFJPUFMgKi8sIF9ob2lzdGVkXzE5KVxuICAgICAgICBdKVxuICAgICAgXSksXG4gICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIwLCBbXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMjEsIFtcbiAgICAgICAgICBfd2l0aERpcmVjdGl2ZXMoX2NyZWF0ZUVsZW1lbnRWTm9kZShcImlucHV0XCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY2hlY2staW5wdXRcIixcbiAgICAgICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgICAgIFwib25VcGRhdGU6bW9kZWxWYWx1ZVwiOiBfY2FjaGVbNl0gfHwgKF9jYWNoZVs2XSA9ICgkZXZlbnQ6IGFueSkgPT4gKCgkc2V0dXAucGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgncHJlc2VydmVUZXh0JyksXG4gICAgICAgICAgICBvbkNoYW5nZTogX2NhY2hlWzddIHx8IChfY2FjaGVbN10gPSAoJGV2ZW50OiBhbnkpID0+ICgkc2V0dXAud3JpdGVCb29sZWFuVmFsdWUoJ3ByZXNlcnZlVGV4dEdyb3VwcycsICRzZXR1cC5wYXJ0SW5mby5wcmVzZXJ2ZVRleHRHcm91cHMpKSlcbiAgICAgICAgICB9LCBudWxsLCA0MCAvKiBQUk9QUywgTkVFRF9IWURSQVRJT04gKi8sIF9ob2lzdGVkXzIyKSwgW1xuICAgICAgICAgICAgW192TW9kZWxDaGVja2JveCwgJHNldHVwLnBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3Vwc11cbiAgICAgICAgICBdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yMywgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJsYWJlbFwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIsXG4gICAgICAgICAgICBmb3I6ICRzZXR1cC5nZXRJZCgncHJlc2VydmVUZXh0JylcbiAgICAgICAgICB9LCBcIkluY2x1ZGUgTmV4dCBTdGF2ZVwiLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF8yNClcbiAgICAgICAgXSlcbiAgICAgIF0pLFxuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yNSwgW1xuICAgICAgICBfY2FjaGVbOF0gfHwgKF9jYWNoZVs4XSA9IF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBjbGFzczogXCJjb2wgY29sLTMgdGV4dC1lbmRcIiB9LCBcIlBhZ2UgU2l6ZVwiLCAtMSAvKiBDQUNIRUQgKi8pKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yNiwgW1xuICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJzZWxlY3RDb21wXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdwYWdlLXNpemUtc2VsZWN0JyksXG4gICAgICAgICAgICBsYWJlbDogJycsXG4gICAgICAgICAgICBzZWxlY3Rpb25zOiAkc2V0dXAucGFnZVNpemVzLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAkc2V0dXAucGFnZVNpemUsXG4gICAgICAgICAgICBjaGFuZ2VDYjogJHNldHVwLnBhZ2VDaGFuZ2VcbiAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJkb21JZFwiLCBcImluaXRpYWxWYWx1ZVwiXSlcbiAgICAgICAgXSlcbiAgICAgIF0pLFxuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yNywgW1xuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzI4LCBbXG4gICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIm51bWJlcklucHV0QXBwXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdwYWdlLXdpZHRoLWlucHV0JyksXG4gICAgICAgICAgICBpbml0aWFsVmFsdWU6ICRzZXR1cC5wYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGgsXG4gICAgICAgICAgICBwcmVjaXNpb246IDAsXG4gICAgICAgICAgICBjaGFuZ2VDYjogJHNldHVwLnVwZGF0ZUxheW91dEZ1bmMoJ3BhZ2VXaWR0aCcpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6ICRzZXR1cC5sb2NrRGltZW5zaW9uc1xuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIiwgXCJkaXNhYmxlZFwiXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jYWNoZVs5XSB8fCAoX2NhY2hlWzldID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIlBhZ2UgV2lkdGhcIilcbiAgICAgICAgXSwgLTEgLyogQ0FDSEVEICovKSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMjksIFtcbiAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wibnVtYmVySW5wdXRBcHBcIl0sIHtcbiAgICAgICAgICAgIGRvbUlkOiAkc2V0dXAuZ2V0SWQoJ3BhZ2UtaGVpZ2h0LWlucHV0JyksXG4gICAgICAgICAgICBpbml0aWFsVmFsdWU6ICRzZXR1cC5wYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlSGVpZ2h0LFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAwLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC51cGRhdGVMYXlvdXRGdW5jKCdwYWdlSGVpZ2h0JyksXG4gICAgICAgICAgICBkaXNhYmxlZDogJHNldHVwLmxvY2tEaW1lbnNpb25zXG4gICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wiZG9tSWRcIiwgXCJpbml0aWFsVmFsdWVcIiwgXCJjaGFuZ2VDYlwiLCBcImRpc2FibGVkXCJdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NhY2hlWzEwXSB8fCAoX2NhY2hlWzEwXSA9IF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBjbGFzczogXCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIiB9LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwgeyBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIgfSwgXCJQYWdlIEhlaWdodFwiKVxuICAgICAgICBdLCAtMSAvKiBDQUNIRUQgKi8pKVxuICAgICAgXSksXG4gICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzMwLCBbXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMzEsIFtcbiAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wibnVtYmVySW5wdXRBcHBcIl0sIHtcbiAgICAgICAgICAgIGRvbUlkOiAkc2V0dXAuZ2V0SWQoJ3pvb20tc2NhbGUtaW5wdXQnKSxcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJHNldHVwLnBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lnpvb21TY2FsZSxcbiAgICAgICAgICAgIHByZWNpc2lvbjogMCxcbiAgICAgICAgICAgIHBlcmNlbnQ6IHRydWUsXG4gICAgICAgICAgICBjaGFuZ2VDYjogJHNldHVwLnVwZGF0ZUxheW91dEZ1bmMoJ3pvb21TY2FsZScpLFxuICAgICAgICAgICAgbWluVmFsdWU6IDAuMjUsXG4gICAgICAgICAgICBtYXhWYWx1ZTogOFxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIl0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY2FjaGVbMTFdIHx8IChfY2FjaGVbMTFdID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIlpvb20gU2NhbGUgKCUpXCIpXG4gICAgICAgIF0sIC0xIC8qIENBQ0hFRCAqLykpLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzMyLCBbXG4gICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIm51bWJlcklucHV0QXBwXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdzdmctc2NhbGUtaW5wdXQnKSxcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJHNldHVwLnBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnN2Z1NjYWxlLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAwLFxuICAgICAgICAgICAgcGVyY2VudDogdHJ1ZSxcbiAgICAgICAgICAgIGNoYW5nZUNiOiAkc2V0dXAudXBkYXRlTGF5b3V0RnVuYygnc3ZnU2NhbGUnKSxcbiAgICAgICAgICAgIG1pblZhbHVlOiAwLjI1LFxuICAgICAgICAgICAgbWF4VmFsdWU6IDJcbiAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJkb21JZFwiLCBcImluaXRpYWxWYWx1ZVwiLCBcImNoYW5nZUNiXCJdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NhY2hlWzEyXSB8fCAoX2NhY2hlWzEyXSA9IF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBjbGFzczogXCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIiB9LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwgeyBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIgfSwgXCJOb3RlIFNpemUgKCUpXCIpXG4gICAgICAgIF0sIC0xIC8qIENBQ0hFRCAqLykpXG4gICAgICBdKSxcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMzMsIFtcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zNCwgW1xuICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJudW1iZXJJbnB1dEFwcFwiXSwge1xuICAgICAgICAgICAgZG9tSWQ6ICRzZXR1cC5nZXRJZCgnbm90ZS1zcGFjaW5nLWlucHV0JyksXG4gICAgICAgICAgICBpbml0aWFsVmFsdWU6ICRzZXR1cC5wYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5ub3RlU3BhY2luZyxcbiAgICAgICAgICAgIHByZWNpc2lvbjogMixcbiAgICAgICAgICAgIGNoYW5nZUNiOiAkc2V0dXAudXBkYXRlTGF5b3V0RnVuYygnbm90ZVNwYWNpbmcnKVxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIl0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY2FjaGVbMTNdIHx8IChfY2FjaGVbMTNdID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIk5vdGUgU3BhY2luZ1wiKVxuICAgICAgICBdLCAtMSAvKiBDQUNIRUQgKi8pKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zNSwgW1xuICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJudW1iZXJJbnB1dEFwcFwiXSwge1xuICAgICAgICAgICAgZG9tSWQ6ICRzZXR1cC5nZXRJZCgnbWF4LW1lYXN1cmUtc3lzdGVtLWlucHV0JyksXG4gICAgICAgICAgICBpbml0aWFsVmFsdWU6ICRzZXR1cC5wYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5tYXhNZWFzdXJlU3lzdGVtLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAwLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC51cGRhdGVMYXlvdXRGdW5jKCdtYXhNZWFzdXJlU3lzdGVtJylcbiAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJkb21JZFwiLCBcImluaXRpYWxWYWx1ZVwiLCBcImNoYW5nZUNiXCJdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NhY2hlWzE0XSB8fCAoX2NhY2hlWzE0XSA9IF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBjbGFzczogXCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIiB9LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwgeyBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIgfSwgXCJNZWFzdXJlcy9TeXN0ZW1cIilcbiAgICAgICAgXSwgLTEgLyogQ0FDSEVEICovKSlcbiAgICAgIF0pXG4gICAgXSksXG4gICAgXzogMSAvKiBTVEFCTEUgKi9cbiAgfSwgOCAvKiBQUk9QUyAqLywgW1wiZG9tSWRcIiwgXCJjb21taXRDYlwiLCBcImNhbmNlbENiXCIsIFwibGFiZWxcIl0pKVxufSIsIjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB7IHJlZiwgUmVmLCB3YXRjaCwgcmVhY3RpdmUgfSBmcm9tICd2dWUnO1xyXG5pbXBvcnQgc2VsZWN0Q29tcCBmcm9tICcuL3NlbGVjdC52dWUnO1xyXG5pbXBvcnQgbnVtYmVySW5wdXRBcHAgZnJvbSAnLi9udW1iZXJJbnB1dC52dWUnO1xyXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9jb21tb24nO1xyXG5pbXBvcnQgeyBTbW9QYXJ0SW5mbywgU21vUGFydEluZm9TdHJpbmdUeXBlLCBTbW9QYXJ0SW5mb051bVR5cGUsIFNtb1BhcnRJbmZvQm9vbGVhblR5cGUgfSBmcm9tICcuLi8uLi8uLi9zbW8vZGF0YS9wYXJ0SW5mbyc7XHJcbmltcG9ydCB7IEdsb2JhbExheW91dEF0dHJpYnV0ZXMsIFNtb0xheW91dE1hbmFnZXIsIEdsb2JhbExheW91dEF0dHJpYnV0ZXNBcnJheSB9IGZyb20gJy4uLy4uLy4uL3Ntby9kYXRhL3Njb3JlTW9kaWZpZXJzJztcclxuaW1wb3J0IGRpYWxvZ0NvbnRhaW5lciBmcm9tICcuL2RpYWxvZ0NvbnRhaW5lci52dWUnO1xyXG5cclxuaW50ZXJmYWNlIFByb3BzIHtcclxuICBkb21JZDogc3RyaW5nLFxyXG4gIGxhYmVsOiBzdHJpbmcsXHJcbiAgcGFydEluZm86IFNtb1BhcnRJbmZvLFxyXG4gIHVwZGF0ZVBhcnRJbmZvQ2I6IChwaTogU21vUGFydEluZm8pID0+IFByb21pc2U8dm9pZD4sXHJcbiAgY29tbWl0Q2I6ICgpID0+IFByb21pc2U8dm9pZD4sXHJcbiAgY2FuY2VsQ2I6ICgpID0+IFByb21pc2U8dm9pZD5cclxufVxyXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzPFByb3BzPigpO1xyXG5jb25zdCB7IGRvbUlkLCBsYWJlbCwgY29tbWl0Q2IsIGNhbmNlbENiLCB1cGRhdGVQYXJ0SW5mb0NiIH0gPSB7IC4uLnByb3BzIH07XHJcbmNvbnN0IHBhcnRJbmZvID0gcmVhY3RpdmUobmV3IFNtb1BhcnRJbmZvKHByb3BzLnBhcnRJbmZvKSk7XHJcblxyXG5jb25zdCB3cml0ZUJvb2xlYW5WYWx1ZSA9IGFzeW5jIChhdHRyOiBTbW9QYXJ0SW5mb0Jvb2xlYW5UeXBlLCB2YWx1ZTogYm9vbGVhbikgPT4ge1xyXG4gIHBhcnRJbmZvW2F0dHJdID0gdmFsdWU7XHJcbiAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3Qgd3JpdGVMYXlvdXRWYWx1ZSA9IGFzeW5jIChhdHRyOiBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzLCB2YWx1ZTogbnVtYmVyKSA9PiB7XHJcbiAgICAvLyBubyBjaGFuZ2U/XHJcbiAgICBpZiAocGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXRbYXR0cl0gPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0W2F0dHJdID0gdmFsdWU7XHJcbiAgICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufVxyXG5jb25zdCBwYWdlU2l6ZXM6IFNlbGVjdE9wdGlvbltdID0gW1xyXG4gIHsgbGFiZWw6ICdMZXR0ZXInLCB2YWx1ZTogJ2xldHRlcicgfSxcclxuICB7IGxhYmVsOiAnTGVnYWwnLCB2YWx1ZTogJ2xlZ2FsJyB9LFxyXG4gIHsgbGFiZWw6ICdUYWJsb2lkJywgdmFsdWU6ICd0YWJsb2lkJyB9LFxyXG4gIHsgbGFiZWw6ICdBNCcsIHZhbHVlOiAnYTQnIH0sXHJcbiAgeyBsYWJlbDogJ0N1c3RvbScsIHZhbHVlOiAnY3VzdG9tJyB9XHJcbl07XHJcbmludGVyZmFjZSBkaW1lbnNpb25zIHtcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbn1cclxuY29uc3QgcHJlZGVmaW5lZERpbWVuc2lvbnM6IHsgW2tleTogc3RyaW5nXTogZGltZW5zaW9ucyB9ID0ge1xyXG4gICdsZXR0ZXInOiB7IHdpZHRoOiA4MTYsIGhlaWdodDogMTA1NiB9LFxyXG4gICdsZWdhbCc6IHsgd2lkdGg6IDgxNiwgaGVpZ2h0OiAxMzQ0IH0sXHJcbiAgJ3RhYmxvaWQnOiB7IHdpZHRoOiAxMDU2LCBoZWlnaHQ6IDE2MzIgfSxcclxuICAnYTQnOiB7IHdpZHRoOiA3OTQsIGhlaWdodDogMTEyMyB9XHJcbn07XHJcbi8vIFBhZ2Ugc2l6ZSBpcyBpbiBwaXhlbHMsIGJ1dCBpZiBpdCBtYXRjaGVzIGEgcHJlc2V0IHdlIGp1c3Qgc2hvdyB0aGF0LlxyXG4vLyBVc2VyIGNob29zZXMgJ2N1c3RvbScgdG8gdW5sb2NrIHdpZHRoL2hlaWdodCBlZGl0aW5nLlxyXG5jb25zdCBwYWdlU2l6ZSA9IHJlZignY3VzdG9tJyk7XHJcbmNvbnN0IHBhZ2VDaGFuZ2UgPSAoKSA9PiB7XHJcbiBPYmplY3Qua2V5cyhwcmVkZWZpbmVkRGltZW5zaW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNba2V5XTtcclxuICAgIGlmIChkaW1zLndpZHRoID09PSBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggJiZcclxuICAgICAgZGltcy5oZWlnaHQgPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQpIHtcclxuICAgICAgcGFnZVNpemUudmFsdWUgPSBrZXk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn07XHJcbmNvbnN0IGxvY2tEaW1lbnNpb25zID0gcmVmKGZhbHNlKTtcclxucGFnZUNoYW5nZSgpO1xyXG53YXRjaCAocGFnZVNpemUsIGFzeW5jIChuZXdWYWwpID0+IHtcclxuICBpZiAocHJlZGVmaW5lZERpbWVuc2lvbnNbbmV3VmFsXSkge1xyXG4gICAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSB0cnVlO1xyXG4gICAgY29uc3QgZGltcyA9IHByZWRlZmluZWREaW1lbnNpb25zW25ld1ZhbF07XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggPSBkaW1zLndpZHRoO1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCA9IGRpbXMuaGVpZ2h0O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IGZhbHNlO1xyXG4gIH1cclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufSk7XHJcbmlmIChwcmVkZWZpbmVkRGltZW5zaW9uc1twYWdlU2l6ZS52YWx1ZV0pIHtcclxuICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IHRydWVcclxufVxyXG5jb25zdCB1cGRhdGUgPWFzeW5jICgpID0+IHtcclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufVxyXG5jb25zdCBpbmNsdWRlTmV4dCA9IHJlZihmYWxzZSk7XHJcbmlmIChwYXJ0SW5mby5zdGF2ZXNBZnRlciA+IDApIHtcclxuICBpbmNsdWRlTmV4dC52YWx1ZSA9IHRydWU7XHJcbn1cclxud2F0Y2ggKGluY2x1ZGVOZXh0LCBhc3luYyAobmV3VmFsLCBvbGRWYWwpID0+IHtcclxuICBpZiAobmV3VmFsICE9PSBvbGRWYWwpIHtcclxuICAgIHBhcnRJbmZvLnN0YXZlc0FmdGVyID0gbmV3VmFsID8gMSA6IDA7XHJcbiAgICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxuICB9XHJcbn0pO1xyXG5cclxudHlwZSBudW1iZXJXcml0ZXJUeXBlID0gKHZhbHVlOiBudW1iZXIpID0+IFByb21pc2U8dm9pZD47XHJcblxyXG5jb25zdCB1cGRhdGVMYXlvdXRGdW5jID0gKHBhcmFtOiBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzKTogbnVtYmVyV3JpdGVyVHlwZSA9PiB7XHJcbiAgY29uc3QgY2IgPSBhc3luYyAodmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgYXdhaXQgd3JpdGVMYXlvdXRWYWx1ZShwYXJhbSwgdmFsdWUpO1xyXG4gIH1cclxuICByZXR1cm4gY2I7XHJcbn1cclxuXHJcbmNvbnN0IGdldElkID0gKHN0cjogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIGAke2RvbUlkfS0ke3N0cn1gO1xyXG59XHJcblxyXG48L3NjcmlwdD5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaWFsb2dDb250YWluZXIgOmRvbUlkPVwiZG9tSWRcIiA6Y29tbWl0Q2I9XCJjb21taXRDYlwiIDpjYW5jZWxDYj1cImNhbmNlbENiXCIgOmxhYmVsPVwibGFiZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtOFwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgOnBsYWNlaG9sZGVyPVwicGFydEluZm8ucGFydE5hbWVcIiBhcmlhLWxhYmVsPVwiUGFydCBOYW1lXCJcclxuICAgICAgICAgIDppZD1cImdldElkKCdwYXJ0LW5hbWUtaW5wdXQnKVwiIHYtbW9kZWw9XCJwYXJ0SW5mby5wYXJ0TmFtZVwiIEBjaGFuZ2U9XCJ1cGRhdGVcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTQgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiXCIgOmlkPVwiZ2V0SWQoJ3BhcnQtbmFtZS1sYWJlbCcpXCI+UGFydCBOYW1lPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC04XCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiA6cGxhY2Vob2xkZXI9XCJwYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uXCIgYXJpYS1sYWJlbD1cIlBhcnQgQWJicmV2aWF0aW9uXCJcclxuICAgICAgICAgIDppZD1cImdldElkKCdwYXJ0LWFiYnJldmlhdGlvbi1pbnB1dCcpXCIgdi1tb2RlbD1cInBhcnRJbmZvLnBhcnRBYmJyZXZpYXRpb25cIiBAY2hhbmdlPVwidXBkYXRlXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiIDppZD1cImdldElkKCdwYXJ0LWFiYnJldmlhdGlvbi1sYWJlbCcpXCI+UGFydCBBYmJyZXZpYXRpb248L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdi1tb2RlbD1cInBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3Vwc1wiIDppZD1cImdldElkKCdwcmVzZXJ2ZVRleHQnKVwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwid3JpdGVCb29sZWFuVmFsdWUoJ3ByZXNlcnZlVGV4dEdyb3VwcycsIHBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3VwcylcIj48L2lucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA6Zm9yPVwiZ2V0SWQoJ3ByZXNlcnZlVGV4dCcpXCI+UHJlc2VydmUgVGV4dCBHcm91cHM8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMVwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2LW1vZGVsPVwicGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHNcIiA6aWQ9XCJnZXRJZCgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnKVwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwid3JpdGVCb29sZWFuVmFsdWUoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJywgcGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMpXCI+PC9pbnB1dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTVcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgOmZvcj1cImdldElkKCdleHBhbmRNdWx0aW1lYXN1cmVSZXN0cycpXCI+RXhwYW5kIE11bHRpbWVhc3VyZSBSZXN0czwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdi1tb2RlbD1cInBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3Vwc1wiIDppZD1cImdldElkKCdwcmVzZXJ2ZVRleHQnKVwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwid3JpdGVCb29sZWFuVmFsdWUoJ3ByZXNlcnZlVGV4dEdyb3VwcycsIHBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3VwcylcIj48L2lucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA6Zm9yPVwiZ2V0SWQoJ3ByZXNlcnZlVGV4dCcpXCI+SW5jbHVkZSBOZXh0IFN0YXZlPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0zIHRleHQtZW5kXCI+UGFnZSBTaXplPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTZcIj5cclxuICAgICAgICA8c2VsZWN0Q29tcCA6ZG9tSWQ9XCJnZXRJZCgncGFnZS1zaXplLXNlbGVjdCcpXCIgOmxhYmVsPVwiJydcIiA6c2VsZWN0aW9ucz1cInBhZ2VTaXplc1wiIDppbml0aWFsVmFsdWU9XCJwYWdlU2l6ZVwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJwYWdlQ2hhbmdlXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgncGFnZS13aWR0aC1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aFwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3BhZ2VXaWR0aCcpXCIgOmRpc2FibGVkPVwibG9ja0RpbWVuc2lvbnNcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlBhZ2UgV2lkdGg8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdwYWdlLWhlaWdodC1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHRcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdwYWdlSGVpZ2h0JylcIiA6ZGlzYWJsZWQ9XCJsb2NrRGltZW5zaW9uc1wiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+UGFnZSBIZWlnaHQ8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ3pvb20tc2NhbGUtaW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC56b29tU2NhbGVcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6cGVyY2VudD10cnVlIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3pvb21TY2FsZScpXCIgOm1pblZhbHVlPVwiMC4yNVwiIDptYXhWYWx1ZT1cIjhcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlpvb20gU2NhbGUgKCUpPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCBtcy1uNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnc3ZnLXNjYWxlLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQuc3ZnU2NhbGVcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6cGVyY2VudD1cInRydWVcIiA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdzdmdTY2FsZScpXCIgOm1pblZhbHVlPVwiMC4yNVwiIDptYXhWYWx1ZT1cIjJcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPk5vdGUgU2l6ZSAoJSk8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ25vdGUtc3BhY2luZy1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lm5vdGVTcGFjaW5nXCIgOnByZWNpc2lvbj1cIjJcIlxyXG4gICAgICAgICAgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnbm90ZVNwYWNpbmcnKVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Tm90ZSBTcGFjaW5nPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCBtcy1uNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnbWF4LW1lYXN1cmUtc3lzdGVtLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQubWF4TWVhc3VyZVN5c3RlbVwiXHJcbiAgICAgICAgICA6cHJlY2lzaW9uPVwiMFwiIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ21heE1lYXN1cmVTeXN0ZW0nKVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+TWVhc3VyZXMvU3lzdGVtPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGlhbG9nQ29udGFpbmVyPlxyXG48L3RlbXBsYXRlPiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/ts-loader/index.js??clonedRuleSet-1.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[1].rules[6].use[0]!./src/ui/components/dialogs/partInfo.vue?vue&type=template&id=7c417a1c&ts=true\n\n}");
810
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _hoisted_1 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_2 = { class: \"col col-8\" };\nconst _hoisted_3 = [\"placeholder\", \"id\"];\nconst _hoisted_4 = { class: \"col col-4 text-start\" };\nconst _hoisted_5 = [\"id\"];\nconst _hoisted_6 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_7 = { class: \"col col-8\" };\nconst _hoisted_8 = [\"placeholder\", \"id\"];\nconst _hoisted_9 = { class: \"col col-4 text-start\" };\nconst _hoisted_10 = [\"id\"];\nconst _hoisted_11 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_12 = { class: \"col col-1\" };\nconst _hoisted_13 = [\"id\"];\nconst _hoisted_14 = { class: \"col col-5\" };\nconst _hoisted_15 = [\"for\"];\nconst _hoisted_16 = { class: \"col col-1\" };\nconst _hoisted_17 = [\"id\"];\nconst _hoisted_18 = { class: \"col col-5\" };\nconst _hoisted_19 = [\"for\"];\nconst _hoisted_20 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_21 = { class: \"col col-1\" };\nconst _hoisted_22 = [\"id\"];\nconst _hoisted_23 = { class: \"col col-5\" };\nconst _hoisted_24 = [\"for\"];\nconst _hoisted_25 = { class: \"row mb-2\" };\nconst _hoisted_26 = { class: \"col col-6\" };\nconst _hoisted_27 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_28 = { class: \"col col-4\" };\nconst _hoisted_29 = { class: \"col col-4 ms-n4\" };\nconst _hoisted_30 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_31 = { class: \"col col-4\" };\nconst _hoisted_32 = { class: \"col col-4 ms-n4\" };\nconst _hoisted_33 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_34 = { class: \"col col-4\" };\nconst _hoisted_35 = { class: \"col col-4 ms-n4\" };\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"dialogContainer\"], {\n domId: $setup.domId,\n commitCb: $setup.commitCb,\n cancelCb: $setup.cancelCb,\n label: $setup.label\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"text\",\n class: \"form-control\",\n placeholder: $setup.partInfo.partName,\n \"aria-label\": \"Part Name\",\n id: $setup.getId('part-name-input'),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => (($setup.partInfo.partName) = $event)),\n onChange: $setup.update\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_3), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.partInfo.partName]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"\",\n id: $setup.getId('part-name-label')\n }, \"Part Name\", 8 /* PROPS */, _hoisted_5)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"text\",\n class: \"form-control\",\n placeholder: $setup.partInfo.partAbbreviation,\n \"aria-label\": \"Part Abbreviation\",\n id: $setup.getId('part-abbreviation-input'),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => (($setup.partInfo.partAbbreviation) = $event)),\n onChange: $setup.update\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_8), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.partInfo.partAbbreviation]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"\",\n id: $setup.getId('part-abbreviation-label')\n }, \"Part Abbreviation\", 8 /* PROPS */, _hoisted_10)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_11, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_12, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => (($setup.partInfo.preserveTextGroups) = $event)),\n id: $setup.getId('preserveText'),\n onChange: _cache[3] || (_cache[3] = ($event) => ($setup.writeBooleanValue('preserveTextGroups', $setup.partInfo.preserveTextGroups)))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_13), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.partInfo.preserveTextGroups]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_14, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('preserveText')\n }, \"Preserve Text Groups\", 8 /* PROPS */, _hoisted_15)\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_16, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event) => (($setup.partInfo.expandMultimeasureRests) = $event)),\n id: $setup.getId('expandMultimeasureRests'),\n onChange: _cache[5] || (_cache[5] = ($event) => ($setup.writeBooleanValue('expandMultimeasureRests', $setup.partInfo.expandMultimeasureRests)))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_17), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.partInfo.expandMultimeasureRests]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_18, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('expandMultimeasureRests')\n }, \"Expand Multimeasure Rests\", 8 /* PROPS */, _hoisted_19)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_20, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_21, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event) => (($setup.includeNext) = $event)),\n id: $setup.getId('includeNext')\n }, null, 8 /* PROPS */, _hoisted_22), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.includeNext]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_23, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('includeNext')\n }, \"Include Next Stave\", 8 /* PROPS */, _hoisted_24)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_25, [\n _cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-3 text-end\" }, \"Page Size\", -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_26, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"selectComp\"], {\n domId: $setup.getId('page-size-select'),\n label: '',\n selections: $setup.pageSizes,\n initialValue: $setup.pageSize,\n changeCb: $setup.pageSizeCb\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\"])\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_27, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_28, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('page-width-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.pageWidth,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('pageWidth'),\n disabled: $setup.lockDimensions\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\", \"disabled\"])\n ]),\n _cache[8] || (_cache[8] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Page Width\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_29, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('page-height-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.pageHeight,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('pageHeight'),\n disabled: $setup.lockDimensions\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\", \"disabled\"])\n ]),\n _cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Page Height\")\n ], -1 /* CACHED */))\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_30, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_31, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('zoom-scale-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.zoomScale,\n precision: 0,\n percent: true,\n changeCb: $setup.updateLayoutFunc('zoomScale'),\n minValue: 0.25,\n maxValue: 8\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Zoom Scale (%)\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_32, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('svg-scale-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.svgScale,\n precision: 0,\n percent: true,\n changeCb: $setup.updateLayoutFunc('svgScale'),\n minValue: 0.25,\n maxValue: 2\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Note Size (%)\")\n ], -1 /* CACHED */))\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_33, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_34, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('note-spacing-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.noteSpacing,\n precision: 2,\n changeCb: $setup.updateLayoutFunc('noteSpacing')\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Note Spacing\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_35, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('max-measure-system-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.maxMeasureSystem,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('maxMeasureSystem')\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[13] || (_cache[13] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Measures/System\")\n ], -1 /* CACHED */))\n ])\n ]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"domId\", \"commitCb\", \"cancelCb\", \"label\"]));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTEudXNlWzBdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC90ZW1wbGF0ZUxvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1syXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbNl0udXNlWzBdIS4vc3JjL3VpL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0SW5mby52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0MTdhMWMmdHM9dHJ1ZSIsIm1hcHBpbmdzIjoiOzs7OztBQUF3UTtBQUV4USxNQUFNLFVBQVUsR0FBRyxFQ29IVixLQUFLLEVBQUMsNkJBQTZCO0FEbkg1QyxNQUFNLFVBQVUsR0FBRyxFQ29IUixLQUFLLEVBQUMsV0FBVztBRG5INUIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDO0FBQ3hDLE1BQU0sVUFBVSxHQUFHLEVDc0hSLEtBQUssRUFBQyxzQkFBc0I7QURySHZDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ3pCLE1BQU0sVUFBVSxHQUFHLEVDd0hWLEtBQUssRUFBQyw2QkFBNkI7QUR2SDVDLE1BQU0sVUFBVSxHQUFHLEVDd0hSLEtBQUssRUFBQyxXQUFXO0FEdkg1QixNQUFNLFVBQVUsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM7QUFDeEMsTUFBTSxVQUFVLEdBQUcsRUMwSFIsS0FBSyxFQUFDLHNCQUFzQjtBRHpIdkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDMUIsTUFBTSxXQUFXLEdBQUcsRUM0SFgsS0FBSyxFQUFDLDZCQUE2QjtBRDNINUMsTUFBTSxXQUFXLEdBQUcsRUM0SFQsS0FBSyxFQUFDLFdBQVc7QUQzSDVCLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQzFCLE1BQU0sV0FBVyxHQUFHLEVDOEhU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LEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9TbW8vLi9zcmMvdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZT9jMDZjIiwid2VicGFjazovL1Ntby8uL3NyYy91aS9jb21wb25lbnRzL2RpYWxvZ3MvcGFydEluZm8udnVlP2M1YWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdk1vZGVsVGV4dCBhcyBfdk1vZGVsVGV4dCwgY3JlYXRlRWxlbWVudFZOb2RlIGFzIF9jcmVhdGVFbGVtZW50Vk5vZGUsIHdpdGhEaXJlY3RpdmVzIGFzIF93aXRoRGlyZWN0aXZlcywgdk1vZGVsQ2hlY2tib3ggYXMgX3ZNb2RlbENoZWNrYm94LCBjcmVhdGVWTm9kZSBhcyBfY3JlYXRlVk5vZGUsIHdpdGhDdHggYXMgX3dpdGhDdHgsIG9wZW5CbG9jayBhcyBfb3BlbkJsb2NrLCBjcmVhdGVCbG9jayBhcyBfY3JlYXRlQmxvY2sgfSBmcm9tIFwidnVlXCJcblxuY29uc3QgX2hvaXN0ZWRfMSA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMiA9IHsgY2xhc3M6IFwiY29sIGNvbC04XCIgfVxuY29uc3QgX2hvaXN0ZWRfMyA9IFtcInBsYWNlaG9sZGVyXCIsIFwiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzQgPSB7IGNsYXNzOiBcImNvbCBjb2wtNCB0ZXh0LXN0YXJ0XCIgfVxuY29uc3QgX2hvaXN0ZWRfNSA9IFtcImlkXCJdXG5jb25zdCBfaG9pc3RlZF82ID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF83ID0geyBjbGFzczogXCJjb2wgY29sLThcIiB9XG5jb25zdCBfaG9pc3RlZF84ID0gW1wicGxhY2Vob2xkZXJcIiwgXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfOSA9IHsgY2xhc3M6IFwiY29sIGNvbC00IHRleHQtc3RhcnRcIiB9XG5jb25zdCBfaG9pc3RlZF8xMCA9IFtcImlkXCJdXG5jb25zdCBfaG9pc3RlZF8xMSA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMTIgPSB7IGNsYXNzOiBcImNvbCBjb2wtMVwiIH1cbmNvbnN0IF9ob2lzdGVkXzEzID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzE0ID0geyBjbGFzczogXCJjb2wgY29sLTVcIiB9XG5jb25zdCBfaG9pc3RlZF8xNSA9IFtcImZvclwiXVxuY29uc3QgX2hvaXN0ZWRfMTYgPSB7IGNsYXNzOiBcImNvbCBjb2wtMVwiIH1cbmNvbnN0IF9ob2lzdGVkXzE3ID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzE4ID0geyBjbGFzczogXCJjb2wgY29sLTVcIiB9XG5jb25zdCBfaG9pc3RlZF8xOSA9IFtcImZvclwiXVxuY29uc3QgX2hvaXN0ZWRfMjAgPSB7IGNsYXNzOiBcInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiIH1cbmNvbnN0IF9ob2lzdGVkXzIxID0geyBjbGFzczogXCJjb2wgY29sLTFcIiB9XG5jb25zdCBfaG9pc3RlZF8yMiA9IFtcImlkXCJdXG5jb25zdCBfaG9pc3RlZF8yMyA9IHsgY2xhc3M6IFwiY29sIGNvbC01XCIgfVxuY29uc3QgX2hvaXN0ZWRfMjQgPSBbXCJmb3JcIl1cbmNvbnN0IF9ob2lzdGVkXzI1ID0geyBjbGFzczogXCJyb3cgbWItMlwiIH1cbmNvbnN0IF9ob2lzdGVkXzI2ID0geyBjbGFzczogXCJjb2wgY29sLTZcIiB9XG5jb25zdCBfaG9pc3RlZF8yNyA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMjggPSB7IGNsYXNzOiBcImNvbCBjb2wtNFwiIH1cbmNvbnN0IF9ob2lzdGVkXzI5ID0geyBjbGFzczogXCJjb2wgY29sLTQgbXMtbjRcIiB9XG5jb25zdCBfaG9pc3RlZF8zMCA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMzEgPSB7IGNsYXNzOiBcImNvbCBjb2wtNFwiIH1cbmNvbnN0IF9ob2lzdGVkXzMyID0geyBjbGFzczogXCJjb2wgY29sLTQgbXMtbjRcIiB9XG5jb25zdCBfaG9pc3RlZF8zMyA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMzQgPSB7IGNsYXNzOiBcImNvbCBjb2wtNFwiIH1cbmNvbnN0IF9ob2lzdGVkXzM1ID0geyBjbGFzczogXCJjb2wgY29sLTQgbXMtbjRcIiB9XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIoX2N0eDogYW55LF9jYWNoZTogYW55LCRwcm9wczogYW55LCRzZXR1cDogYW55LCRkYXRhOiBhbnksJG9wdGlvbnM6IGFueSkge1xuICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKCRzZXR1cFtcImRpYWxvZ0NvbnRhaW5lclwiXSwge1xuICAgIGRvbUlkOiAkc2V0dXAuZG9tSWQsXG4gICAgY29tbWl0Q2I6ICRzZXR1cC5jb21taXRDYixcbiAgICBjYW5jZWxDYjogJHNldHVwLmNhbmNlbENiLFxuICAgIGxhYmVsOiAkc2V0dXAubGFiZWxcbiAgfSwge1xuICAgIGRlZmF1bHQ6IF93aXRoQ3R4KCgpID0+IFtcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMSwgW1xuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIsIFtcbiAgICAgICAgICBfd2l0aERpcmVjdGl2ZXMoX2NyZWF0ZUVsZW1lbnRWTm9kZShcImlucHV0XCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgY2xhc3M6IFwiZm9ybS1jb250cm9sXCIsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJHNldHVwLnBhcnRJbmZvLnBhcnROYW1lLFxuICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiUGFydCBOYW1lXCIsXG4gICAgICAgICAgICBpZDogJHNldHVwLmdldElkKCdwYXJ0LW5hbWUtaW5wdXQnKSxcbiAgICAgICAgICAgIFwib25VcGRhdGU6bW9kZWxWYWx1ZVwiOiBfY2FjaGVbMF0gfHwgKF9jYWNoZVswXSA9ICgkZXZlbnQ6IGFueSkgPT4gKCgkc2V0dXAucGFydEluZm8ucGFydE5hbWUpID0gJGV2ZW50KSksXG4gICAgICAgICAgICBvbkNoYW5nZTogJHNldHVwLnVwZGF0ZVxuICAgICAgICAgIH0sIG51bGwsIDQwIC8qIFBST1BTLCBORUVEX0hZRFJBVElPTiAqLywgX2hvaXN0ZWRfMyksIFtcbiAgICAgICAgICAgIFtfdk1vZGVsVGV4dCwgJHNldHVwLnBhcnRJbmZvLnBhcnROYW1lXVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzQsIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJcIixcbiAgICAgICAgICAgIGlkOiAkc2V0dXAuZ2V0SWQoJ3BhcnQtbmFtZS1sYWJlbCcpXG4gICAgICAgICAgfSwgXCJQYXJ0IE5hbWVcIiwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfNSlcbiAgICAgICAgXSlcbiAgICAgIF0pLFxuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF82LCBbXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNywgW1xuICAgICAgICAgIF93aXRoRGlyZWN0aXZlcyhfY3JlYXRlRWxlbWVudFZOb2RlKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNvbnRyb2xcIixcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAkc2V0dXAucGFydEluZm8ucGFydEFiYnJldmlhdGlvbixcbiAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBcIlBhcnQgQWJicmV2aWF0aW9uXCIsXG4gICAgICAgICAgICBpZDogJHNldHVwLmdldElkKCdwYXJ0LWFiYnJldmlhdGlvbi1pbnB1dCcpLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTptb2RlbFZhbHVlXCI6IF9jYWNoZVsxXSB8fCAoX2NhY2hlWzFdID0gKCRldmVudDogYW55KSA9PiAoKCRzZXR1cC5wYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgb25DaGFuZ2U6ICRzZXR1cC51cGRhdGVcbiAgICAgICAgICB9LCBudWxsLCA0MCAvKiBQUk9QUywgTkVFRF9IWURSQVRJT04gKi8sIF9ob2lzdGVkXzgpLCBbXG4gICAgICAgICAgICBbX3ZNb2RlbFRleHQsICRzZXR1cC5wYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uXVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzksIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJcIixcbiAgICAgICAgICAgIGlkOiAkc2V0dXAuZ2V0SWQoJ3BhcnQtYWJicmV2aWF0aW9uLWxhYmVsJylcbiAgICAgICAgICB9LCBcIlBhcnQgQWJicmV2aWF0aW9uXCIsIDggLyogUFJPUFMgKi8sIF9ob2lzdGVkXzEwKVxuICAgICAgICBdKVxuICAgICAgXSksXG4gICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzExLCBbXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMTIsIFtcbiAgICAgICAgICBfd2l0aERpcmVjdGl2ZXMoX2NyZWF0ZUVsZW1lbnRWTm9kZShcImlucHV0XCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY2hlY2staW5wdXRcIixcbiAgICAgICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgICAgIFwib25VcGRhdGU6bW9kZWxWYWx1ZVwiOiBfY2FjaGVbMl0gfHwgKF9jYWNoZVsyXSA9ICgkZXZlbnQ6IGFueSkgPT4gKCgkc2V0dXAucGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgncHJlc2VydmVUZXh0JyksXG4gICAgICAgICAgICBvbkNoYW5nZTogX2NhY2hlWzNdIHx8IChfY2FjaGVbM10gPSAoJGV2ZW50OiBhbnkpID0+ICgkc2V0dXAud3JpdGVCb29sZWFuVmFsdWUoJ3ByZXNlcnZlVGV4dEdyb3VwcycsICRzZXR1cC5wYXJ0SW5mby5wcmVzZXJ2ZVRleHRHcm91cHMpKSlcbiAgICAgICAgICB9LCBudWxsLCA0MCAvKiBQUk9QUywgTkVFRF9IWURSQVRJT04gKi8sIF9ob2lzdGVkXzEzKSwgW1xuICAgICAgICAgICAgW192TW9kZWxDaGVja2JveCwgJHNldHVwLnBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3Vwc11cbiAgICAgICAgICBdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xNCwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJsYWJlbFwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIsXG4gICAgICAgICAgICBmb3I6ICRzZXR1cC5nZXRJZCgncHJlc2VydmVUZXh0JylcbiAgICAgICAgICB9LCBcIlByZXNlcnZlIFRleHQgR3JvdXBzXCIsIDggLyogUFJPUFMgKi8sIF9ob2lzdGVkXzE1KVxuICAgICAgICBdKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xNiwgW1xuICAgICAgICAgIF93aXRoRGlyZWN0aXZlcyhfY3JlYXRlRWxlbWVudFZOb2RlKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiZm9ybS1jaGVjay1pbnB1dFwiLFxuICAgICAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTptb2RlbFZhbHVlXCI6IF9jYWNoZVs0XSB8fCAoX2NhY2hlWzRdID0gKCRldmVudDogYW55KSA9PiAoKCRzZXR1cC5wYXJ0SW5mby5leHBhbmRNdWx0aW1lYXN1cmVSZXN0cykgPSAkZXZlbnQpKSxcbiAgICAgICAgICAgIGlkOiAkc2V0dXAuZ2V0SWQoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJyksXG4gICAgICAgICAgICBvbkNoYW5nZTogX2NhY2hlWzVdIHx8IChfY2FjaGVbNV0gPSAoJGV2ZW50OiBhbnkpID0+ICgkc2V0dXAud3JpdGVCb29sZWFuVmFsdWUoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJywgJHNldHVwLnBhcnRJbmZvLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzKSkpXG4gICAgICAgICAgfSwgbnVsbCwgNDAgLyogUFJPUFMsIE5FRURfSFlEUkFUSU9OICovLCBfaG9pc3RlZF8xNyksIFtcbiAgICAgICAgICAgIFtfdk1vZGVsQ2hlY2tib3gsICRzZXR1cC5wYXJ0SW5mby5leHBhbmRNdWx0aW1lYXN1cmVSZXN0c11cbiAgICAgICAgICBdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xOCwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJsYWJlbFwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIsXG4gICAgICAgICAgICBmb3I6ICRzZXR1cC5nZXRJZCgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnKVxuICAgICAgICAgIH0sIFwiRXhwYW5kIE11bHRpbWVhc3VyZSBSZXN0c1wiLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF8xOSlcbiAgICAgICAgXSlcbiAgICAgIF0pLFxuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yMCwgW1xuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIxLCBbXG4gICAgICAgICAgX3dpdGhEaXJlY3RpdmVzKF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNoZWNrLWlucHV0XCIsXG4gICAgICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgICAgICBcIm9uVXBkYXRlOm1vZGVsVmFsdWVcIjogX2NhY2hlWzZdIHx8IChfY2FjaGVbNl0gPSAoJGV2ZW50OiBhbnkpID0+ICgoJHNldHVwLmluY2x1ZGVOZXh0KSA9ICRldmVudCkpLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgnaW5jbHVkZU5leHQnKVxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIF9ob2lzdGVkXzIyKSwgW1xuICAgICAgICAgICAgW192TW9kZWxDaGVja2JveCwgJHNldHVwLmluY2x1ZGVOZXh0XVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIzLCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImxhYmVsXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIixcbiAgICAgICAgICAgIGZvcjogJHNldHVwLmdldElkKCdpbmNsdWRlTmV4dCcpXG4gICAgICAgICAgfSwgXCJJbmNsdWRlIE5leHQgU3RhdmVcIiwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMjQpXG4gICAgICAgIF0pXG4gICAgICBdKSxcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMjUsIFtcbiAgICAgICAgX2NhY2hlWzddIHx8IChfY2FjaGVbN10gPSBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHsgY2xhc3M6IFwiY29sIGNvbC0zIHRleHQtZW5kXCIgfSwgXCJQYWdlIFNpemVcIiwgLTEgLyogQ0FDSEVEICovKSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMjYsIFtcbiAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wic2VsZWN0Q29tcFwiXSwge1xuICAgICAgICAgICAgZG9tSWQ6ICRzZXR1cC5nZXRJZCgncGFnZS1zaXplLXNlbGVjdCcpLFxuICAgICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgICAgc2VsZWN0aW9uczogJHNldHVwLnBhZ2VTaXplcyxcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJHNldHVwLnBhZ2VTaXplLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC5wYWdlU2l6ZUNiXG4gICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wiZG9tSWRcIiwgXCJpbml0aWFsVmFsdWVcIl0pXG4gICAgICAgIF0pXG4gICAgICBdKSxcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMjcsIFtcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yOCwgW1xuICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJudW1iZXJJbnB1dEFwcFwiXSwge1xuICAgICAgICAgICAgZG9tSWQ6ICRzZXR1cC5nZXRJZCgncGFnZS13aWR0aC1pbnB1dCcpLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAkc2V0dXAucGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAwLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC51cGRhdGVMYXlvdXRGdW5jKCdwYWdlV2lkdGgnKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiAkc2V0dXAubG9ja0RpbWVuc2lvbnNcbiAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJkb21JZFwiLCBcImluaXRpYWxWYWx1ZVwiLCBcImNoYW5nZUNiXCIsIFwiZGlzYWJsZWRcIl0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY2FjaGVbOF0gfHwgKF9jYWNoZVs4XSA9IF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBjbGFzczogXCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIiB9LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwgeyBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIgfSwgXCJQYWdlIFdpZHRoXCIpXG4gICAgICAgIF0sIC0xIC8qIENBQ0hFRCAqLykpLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzI5LCBbXG4gICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIm51bWJlcklucHV0QXBwXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdwYWdlLWhlaWdodC1pbnB1dCcpLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAkc2V0dXAucGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCxcbiAgICAgICAgICAgIHByZWNpc2lvbjogMCxcbiAgICAgICAgICAgIGNoYW5nZUNiOiAkc2V0dXAudXBkYXRlTGF5b3V0RnVuYygncGFnZUhlaWdodCcpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6ICRzZXR1cC5sb2NrRGltZW5zaW9uc1xuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIiwgXCJkaXNhYmxlZFwiXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jYWNoZVs5XSB8fCAoX2NhY2hlWzldID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIlBhZ2UgSGVpZ2h0XCIpXG4gICAgICAgIF0sIC0xIC8qIENBQ0hFRCAqLykpXG4gICAgICBdKSxcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMzAsIFtcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zMSwgW1xuICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJudW1iZXJJbnB1dEFwcFwiXSwge1xuICAgICAgICAgICAgZG9tSWQ6ICRzZXR1cC5nZXRJZCgnem9vbS1zY2FsZS1pbnB1dCcpLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAkc2V0dXAucGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQuem9vbVNjYWxlLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAwLFxuICAgICAgICAgICAgcGVyY2VudDogdHJ1ZSxcbiAgICAgICAgICAgIGNoYW5nZUNiOiAkc2V0dXAudXBkYXRlTGF5b3V0RnVuYygnem9vbVNjYWxlJyksXG4gICAgICAgICAgICBtaW5WYWx1ZTogMC4yNSxcbiAgICAgICAgICAgIG1heFZhbHVlOiA4XG4gICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wiZG9tSWRcIiwgXCJpbml0aWFsVmFsdWVcIiwgXCJjaGFuZ2VDYlwiXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jYWNoZVsxMF0gfHwgKF9jYWNoZVsxMF0gPSBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHsgY2xhc3M6IFwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCIgfSwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHsgY2xhc3M6IFwiZm9ybS1jaGVjay1sYWJlbFwiIH0sIFwiWm9vbSBTY2FsZSAoJSlcIilcbiAgICAgICAgXSwgLTEgLyogQ0FDSEVEICovKSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMzIsIFtcbiAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wibnVtYmVySW5wdXRBcHBcIl0sIHtcbiAgICAgICAgICAgIGRvbUlkOiAkc2V0dXAuZ2V0SWQoJ3N2Zy1zY2FsZS1pbnB1dCcpLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAkc2V0dXAucGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQuc3ZnU2NhbGUsXG4gICAgICAgICAgICBwcmVjaXNpb246IDAsXG4gICAgICAgICAgICBwZXJjZW50OiB0cnVlLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC51cGRhdGVMYXlvdXRGdW5jKCdzdmdTY2FsZScpLFxuICAgICAgICAgICAgbWluVmFsdWU6IDAuMjUsXG4gICAgICAgICAgICBtYXhWYWx1ZTogMlxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIl0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY2FjaGVbMTFdIHx8IChfY2FjaGVbMTFdID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIk5vdGUgU2l6ZSAoJSlcIilcbiAgICAgICAgXSwgLTEgLyogQ0FDSEVEICovKSlcbiAgICAgIF0pLFxuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zMywgW1xuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzM0LCBbXG4gICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIm51bWJlcklucHV0QXBwXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdub3RlLXNwYWNpbmctaW5wdXQnKSxcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJHNldHVwLnBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lm5vdGVTcGFjaW5nLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAyLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC51cGRhdGVMYXlvdXRGdW5jKCdub3RlU3BhY2luZycpXG4gICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wiZG9tSWRcIiwgXCJpbml0aWFsVmFsdWVcIiwgXCJjaGFuZ2VDYlwiXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jYWNoZVsxMl0gfHwgKF9jYWNoZVsxMl0gPSBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHsgY2xhc3M6IFwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCIgfSwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHsgY2xhc3M6IFwiZm9ybS1jaGVjay1sYWJlbFwiIH0sIFwiTm90ZSBTcGFjaW5nXCIpXG4gICAgICAgIF0sIC0xIC8qIENBQ0hFRCAqLykpLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzM1LCBbXG4gICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIm51bWJlcklucHV0QXBwXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdtYXgtbWVhc3VyZS1zeXN0ZW0taW5wdXQnKSxcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJHNldHVwLnBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lm1heE1lYXN1cmVTeXN0ZW0sXG4gICAgICAgICAgICBwcmVjaXNpb246IDAsXG4gICAgICAgICAgICBjaGFuZ2VDYjogJHNldHVwLnVwZGF0ZUxheW91dEZ1bmMoJ21heE1lYXN1cmVTeXN0ZW0nKVxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIl0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY2FjaGVbMTNdIHx8IChfY2FjaGVbMTNdID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIk1lYXN1cmVzL1N5c3RlbVwiKVxuICAgICAgICBdLCAtMSAvKiBDQUNIRUQgKi8pKVxuICAgICAgXSlcbiAgICBdKSxcbiAgICBfOiAxIC8qIFNUQUJMRSAqL1xuICB9LCA4IC8qIFBST1BTICovLCBbXCJkb21JZFwiLCBcImNvbW1pdENiXCIsIFwiY2FuY2VsQ2JcIiwgXCJsYWJlbFwiXSkpXG59IiwiPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cclxuaW1wb3J0IHsgcmVmLCBSZWYsIHdhdGNoLCByZWFjdGl2ZSB9IGZyb20gJ3Z1ZSc7XHJcbmltcG9ydCBzZWxlY3RDb21wIGZyb20gJy4vc2VsZWN0LnZ1ZSc7XHJcbmltcG9ydCBudW1iZXJJbnB1dEFwcCBmcm9tICcuL251bWJlcklucHV0LnZ1ZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbic7XHJcbmltcG9ydCB7IFNtb1BhcnRJbmZvLCBTbW9QYXJ0SW5mb1N0cmluZ1R5cGUsIFNtb1BhcnRJbmZvTnVtVHlwZSwgU21vUGFydEluZm9Cb29sZWFuVHlwZSB9IGZyb20gJy4uLy4uLy4uL3Ntby9kYXRhL3BhcnRJbmZvJztcclxuaW1wb3J0IHsgR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgU21vTGF5b3V0TWFuYWdlciwgR2xvYmFsTGF5b3V0QXR0cmlidXRlc0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vc21vL2RhdGEvc2NvcmVNb2RpZmllcnMnO1xyXG5pbXBvcnQgZGlhbG9nQ29udGFpbmVyIGZyb20gJy4vZGlhbG9nQ29udGFpbmVyLnZ1ZSc7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIGRvbUlkOiBzdHJpbmcsXHJcbiAgbGFiZWw6IHN0cmluZyxcclxuICBwYXJ0SW5mbzogU21vUGFydEluZm8sXHJcbiAgdXBkYXRlUGFydEluZm9DYjogKHBpOiBTbW9QYXJ0SW5mbykgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjb21taXRDYjogKCkgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjYW5jZWxDYjogKCkgPT4gUHJvbWlzZTx2b2lkPlxyXG59XHJcbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHM8UHJvcHM+KCk7XHJcbmNvbnN0IHsgZG9tSWQsIGxhYmVsLCBjb21taXRDYiwgY2FuY2VsQ2IsIHVwZGF0ZVBhcnRJbmZvQ2IgfSA9IHsgLi4ucHJvcHMgfTtcclxuY29uc3QgcGFydEluZm8gPSByZWFjdGl2ZShuZXcgU21vUGFydEluZm8ocHJvcHMucGFydEluZm8pKTtcclxuXHJcbmNvbnN0IHdyaXRlQm9vbGVhblZhbHVlID0gYXN5bmMgKGF0dHI6IFNtb1BhcnRJbmZvQm9vbGVhblR5cGUsIHZhbHVlOiBib29sZWFuKSA9PiB7XHJcbiAgcGFydEluZm9bYXR0cl0gPSB2YWx1ZTtcclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufVxyXG5jb25zdCB3cml0ZUxheW91dFZhbHVlID0gYXN5bmMgKGF0dHI6IEdsb2JhbExheW91dEF0dHJpYnV0ZXMsIHZhbHVlOiBudW1iZXIpID0+IHtcclxuICAgIC8vIG5vIGNoYW5nZT9cclxuICAgIGlmIChwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dFthdHRyXSA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXRbYXR0cl0gPSB2YWx1ZTtcclxuICAgIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IHBhZ2VTaXplczogU2VsZWN0T3B0aW9uW10gPSBbXHJcbiAgeyBsYWJlbDogJ0xldHRlcicsIHZhbHVlOiAnbGV0dGVyJyB9LFxyXG4gIHsgbGFiZWw6ICdMZWdhbCcsIHZhbHVlOiAnbGVnYWwnIH0sXHJcbiAgeyBsYWJlbDogJ1RhYmxvaWQnLCB2YWx1ZTogJ3RhYmxvaWQnIH0sXHJcbiAgeyBsYWJlbDogJ0E0JywgdmFsdWU6ICdhNCcgfSxcclxuICB7IGxhYmVsOiAnQ3VzdG9tJywgdmFsdWU6ICdjdXN0b20nIH1cclxuXTtcclxuaW50ZXJmYWNlIGRpbWVuc2lvbnMge1xyXG4gIHdpZHRoOiBudW1iZXIsXHJcbiAgaGVpZ2h0OiBudW1iZXJcclxufVxyXG5jb25zdCBwcmVkZWZpbmVkRGltZW5zaW9uczogeyBba2V5OiBzdHJpbmddOiBkaW1lbnNpb25zIH0gPSB7XHJcbiAgJ2xldHRlcic6IHsgd2lkdGg6IDgxNiwgaGVpZ2h0OiAxMDU2IH0sXHJcbiAgJ2xlZ2FsJzogeyB3aWR0aDogODE2LCBoZWlnaHQ6IDEzNDQgfSxcclxuICAndGFibG9pZCc6IHsgd2lkdGg6IDEwNTYsIGhlaWdodDogMTYzMiB9LFxyXG4gICdhNCc6IHsgd2lkdGg6IDc5NCwgaGVpZ2h0OiAxMTIzIH1cclxufTtcclxuLy8gUGFnZSBzaXplIGlzIGluIHBpeGVscywgYnV0IGlmIGl0IG1hdGNoZXMgYSBwcmVzZXQgd2UganVzdCBzaG93IHRoYXQuXHJcbi8vIFVzZXIgY2hvb3NlcyAnY3VzdG9tJyB0byB1bmxvY2sgd2lkdGgvaGVpZ2h0IGVkaXRpbmcuXHJcbmNvbnN0IHBhZ2VTaXplID0gcmVmKCdjdXN0b20nKTtcclxuXHJcbmNvbnN0IHBhZ2VDaGFuZ2UgPSAoKSA9PiB7XHJcbiBPYmplY3Qua2V5cyhwcmVkZWZpbmVkRGltZW5zaW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNba2V5XTtcclxuICAgIGlmIChkaW1zLndpZHRoID09PSBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggJiZcclxuICAgICAgZGltcy5oZWlnaHQgPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQpIHtcclxuICAgICAgcGFnZVNpemUudmFsdWUgPSBrZXk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn07XHJcbmNvbnN0IHBhZ2VTaXplQ2IgPSBhc3luYyAodmFsOiBzdHJpbmcpID0+IHtcclxuICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNbdmFsXTtcclxuICBpZiAoZGltcykge1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoID0gZGltcy53aWR0aDtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQgPSBkaW1zLmhlaWdodDtcclxuICB9XHJcbiAgcGFnZVNpemUudmFsdWUgPSB2YWw7XHJcbiAgLy8gVGhlIHdhdGNoIHdpbGwgdHJpZ2dlciB0aGUgY2FsbGJhY2tcclxufVxyXG5jb25zdCBsb2NrRGltZW5zaW9ucyA9IHJlZihmYWxzZSk7XHJcbnBhZ2VDaGFuZ2UoKTtcclxud2F0Y2ggKHBhZ2VTaXplLCBhc3luYyAobmV3VmFsKSA9PiB7XHJcbiAgaWYgKHByZWRlZmluZWREaW1lbnNpb25zW25ld1ZhbF0pIHtcclxuICAgIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1tuZXdWYWxdO1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoID0gZGltcy53aWR0aDtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQgPSBkaW1zLmhlaWdodDtcclxuICB9IGVsc2Uge1xyXG4gICAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSBmYWxzZTtcclxuICB9XHJcbiAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn0pO1xyXG5pZiAocHJlZGVmaW5lZERpbWVuc2lvbnNbcGFnZVNpemUudmFsdWVdKSB7XHJcbiAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSB0cnVlXHJcbn1cclxuY29uc3QgdXBkYXRlID1hc3luYyAoKSA9PiB7XHJcbiAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3QgaW5jbHVkZU5leHQgPSByZWYoZmFsc2UpO1xyXG5pZiAocGFydEluZm8uc3RhdmVzQWZ0ZXIgPiAwKSB7XHJcbiAgaW5jbHVkZU5leHQudmFsdWUgPSB0cnVlO1xyXG59XHJcbndhdGNoIChpbmNsdWRlTmV4dCwgYXN5bmMgKG5ld1ZhbCwgb2xkVmFsKSA9PiB7XHJcbiAgaWYgKG5ld1ZhbCAhPT0gb2xkVmFsKSB7XHJcbiAgICBwYXJ0SW5mby5zdGF2ZXNBZnRlciA9IG5ld1ZhbCA/IDEgOiAwO1xyXG4gICAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbnR5cGUgbnVtYmVyV3JpdGVyVHlwZSA9ICh2YWx1ZTogbnVtYmVyKSA9PiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuY29uc3QgdXBkYXRlTGF5b3V0RnVuYyA9IChwYXJhbTogR2xvYmFsTGF5b3V0QXR0cmlidXRlcyk6IG51bWJlcldyaXRlclR5cGUgPT4ge1xyXG4gIGNvbnN0IGNiID0gYXN5bmMgKHZhbHVlOiBudW1iZXIpID0+IHtcclxuICAgIGF3YWl0IHdyaXRlTGF5b3V0VmFsdWUocGFyYW0sIHZhbHVlKTtcclxuICB9XHJcbiAgcmV0dXJuIGNiO1xyXG59XHJcblxyXG5jb25zdCBnZXRJZCA9IChzdHI6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiBgJHtkb21JZH0tJHtzdHJ9YDtcclxufVxyXG5cclxuPC9zY3JpcHQ+XHJcbjx0ZW1wbGF0ZT5cclxuICA8ZGlhbG9nQ29udGFpbmVyIDpkb21JZD1cImRvbUlkXCIgOmNvbW1pdENiPVwiY29tbWl0Q2JcIiA6Y2FuY2VsQ2I9XCJjYW5jZWxDYlwiIDpsYWJlbD1cImxhYmVsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLThcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIDpwbGFjZWhvbGRlcj1cInBhcnRJbmZvLnBhcnROYW1lXCIgYXJpYS1sYWJlbD1cIlBhcnQgTmFtZVwiXHJcbiAgICAgICAgICA6aWQ9XCJnZXRJZCgncGFydC1uYW1lLWlucHV0JylcIiB2LW1vZGVsPVwicGFydEluZm8ucGFydE5hbWVcIiBAY2hhbmdlPVwidXBkYXRlXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiIDppZD1cImdldElkKCdwYXJ0LW5hbWUtbGFiZWwnKVwiPlBhcnQgTmFtZTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtOFwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgOnBsYWNlaG9sZGVyPVwicGFydEluZm8ucGFydEFiYnJldmlhdGlvblwiIGFyaWEtbGFiZWw9XCJQYXJ0IEFiYnJldmlhdGlvblwiXHJcbiAgICAgICAgICA6aWQ9XCJnZXRJZCgncGFydC1hYmJyZXZpYXRpb24taW5wdXQnKVwiIHYtbW9kZWw9XCJwYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uXCIgQGNoYW5nZT1cInVwZGF0ZVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJcIiA6aWQ9XCJnZXRJZCgncGFydC1hYmJyZXZpYXRpb24tbGFiZWwnKVwiPlBhcnQgQWJicmV2aWF0aW9uPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0xXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHYtbW9kZWw9XCJwYXJ0SW5mby5wcmVzZXJ2ZVRleHRHcm91cHNcIiA6aWQ9XCJnZXRJZCgncHJlc2VydmVUZXh0JylcIlxyXG4gICAgICAgICAgQGNoYW5nZT1cIndyaXRlQm9vbGVhblZhbHVlKCdwcmVzZXJ2ZVRleHRHcm91cHMnLCBwYXJ0SW5mby5wcmVzZXJ2ZVRleHRHcm91cHMpXCI+PC9pbnB1dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTVcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgOmZvcj1cImdldElkKCdwcmVzZXJ2ZVRleHQnKVwiPlByZXNlcnZlIFRleHQgR3JvdXBzPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdi1tb2RlbD1cInBhcnRJbmZvLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzXCIgOmlkPVwiZ2V0SWQoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJylcIlxyXG4gICAgICAgICAgQGNoYW5nZT1cIndyaXRlQm9vbGVhblZhbHVlKCdleHBhbmRNdWx0aW1lYXN1cmVSZXN0cycsIHBhcnRJbmZvLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzKVwiPjwvaW5wdXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC01XCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIDpmb3I9XCJnZXRJZCgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnKVwiPkV4cGFuZCBNdWx0aW1lYXN1cmUgUmVzdHM8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0xXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHYtbW9kZWw9XCJpbmNsdWRlTmV4dFwiIDppZD1cImdldElkKCdpbmNsdWRlTmV4dCcpXCI+PC9pbnB1dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTVcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgOmZvcj1cImdldElkKCdpbmNsdWRlTmV4dCcpXCI+SW5jbHVkZSBOZXh0IFN0YXZlPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0zIHRleHQtZW5kXCI+UGFnZSBTaXplPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTZcIj5cclxuICAgICAgICA8c2VsZWN0Q29tcCA6ZG9tSWQ9XCJnZXRJZCgncGFnZS1zaXplLXNlbGVjdCcpXCIgOmxhYmVsPVwiJydcIiA6c2VsZWN0aW9ucz1cInBhZ2VTaXplc1wiIDppbml0aWFsVmFsdWU9XCJwYWdlU2l6ZVwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJwYWdlU2l6ZUNiXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgncGFnZS13aWR0aC1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aFwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3BhZ2VXaWR0aCcpXCIgOmRpc2FibGVkPVwibG9ja0RpbWVuc2lvbnNcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlBhZ2UgV2lkdGg8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdwYWdlLWhlaWdodC1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHRcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdwYWdlSGVpZ2h0JylcIiA6ZGlzYWJsZWQ9XCJsb2NrRGltZW5zaW9uc1wiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+UGFnZSBIZWlnaHQ8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ3pvb20tc2NhbGUtaW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC56b29tU2NhbGVcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6cGVyY2VudD10cnVlIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3pvb21TY2FsZScpXCIgOm1pblZhbHVlPVwiMC4yNVwiIDptYXhWYWx1ZT1cIjhcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlpvb20gU2NhbGUgKCUpPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCBtcy1uNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnc3ZnLXNjYWxlLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQuc3ZnU2NhbGVcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6cGVyY2VudD1cInRydWVcIiA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdzdmdTY2FsZScpXCIgOm1pblZhbHVlPVwiMC4yNVwiIDptYXhWYWx1ZT1cIjJcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPk5vdGUgU2l6ZSAoJSk8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ25vdGUtc3BhY2luZy1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lm5vdGVTcGFjaW5nXCIgOnByZWNpc2lvbj1cIjJcIlxyXG4gICAgICAgICAgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnbm90ZVNwYWNpbmcnKVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Tm90ZSBTcGFjaW5nPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCBtcy1uNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnbWF4LW1lYXN1cmUtc3lzdGVtLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQubWF4TWVhc3VyZVN5c3RlbVwiXHJcbiAgICAgICAgICA6cHJlY2lzaW9uPVwiMFwiIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ21heE1lYXN1cmVTeXN0ZW0nKVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+TWVhc3VyZXMvU3lzdGVtPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGlhbG9nQ29udGFpbmVyPlxyXG48L3RlbXBsYXRlPiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/ts-loader/index.js??clonedRuleSet-1.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[1].rules[6].use[0]!./src/ui/components/dialogs/partInfo.vue?vue&type=template&id=7c417a1c&ts=true\n\n}");
811
811
 
812
812
  /***/ },
813
813
 
@@ -3865,7 +3865,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
3865
3865
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3866
3866
 
3867
3867
  "use strict";
3868
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SuiPartInfoDialogVue: () => (/* binding */ SuiPartInfoDialogVue)\n/* harmony export */ });\n/* harmony import */ var _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../smo/data/partInfo */ \"./src/smo/data/partInfo.ts\");\n/* harmony import */ var _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../smo/xform/selections */ \"./src/smo/xform/selections.ts\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dialog */ \"./src/ui/dialogs/dialog.ts\");\n/* harmony import */ var _ui_components_dialogs_partInfo_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../ui/components/dialogs/partInfo.vue */ \"./src/ui/components/dialogs/partInfo.vue\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common */ \"./src/ui/common.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\nconst SuiPartInfoDialogVue = (parameters) => __awaiter(void 0, void 0, void 0, function* () {\n const selector = _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__.SmoSelector.default;\n const selection = _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__.SmoSelection.measureSelection(parameters.view.score, selector.staff, selector.measure);\n const backup = new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__.SmoPartInfo(selection.staff.partInfo);\n let current = backup;\n let changed = false;\n const updatePartInfoCb = (partInfo) => __awaiter(void 0, void 0, void 0, function* () {\n changed = true;\n // Since update will change the displayed score, wait for any display change to complete first.\n yield parameters.view.renderer.updatePromise();\n yield parameters.view.updatePartInfo(partInfo);\n // If we are expanding rests, we need to reload the part after setting the \n // part change. So we update the part display a second time with the new value.\n if (current.expandMultimeasureRests !== partInfo.expandMultimeasureRests) {\n parameters.view.resetPartView();\n yield parameters.view.refreshViewport();\n }\n current = new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__.SmoPartInfo(partInfo);\n });\n const commitCb = () => __awaiter(void 0, void 0, void 0, function* () {\n });\n const cancelCb = () => __awaiter(void 0, void 0, void 0, function* () {\n if (changed) {\n yield parameters.view.renderer.updatePromise();\n if (current.expandMultimeasureRests !== backup.expandMultimeasureRests) {\n parameters.view.resetPartView();\n }\n yield parameters.view.updatePartInfo(backup);\n }\n });\n const rootId = (0,_common__WEBPACK_IMPORTED_MODULE_4__.replaceVueRoot)(_common__WEBPACK_IMPORTED_MODULE_4__.modalContainerId);\n const appParams = {\n domId: rootId,\n partInfo: current,\n label: 'Part Properties',\n updatePartInfoCb\n };\n (0,_dialog__WEBPACK_IMPORTED_MODULE_2__.InstallDialog)({\n app: _ui_components_dialogs_partInfo_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n appParams,\n root: rootId,\n dialogParams: parameters,\n commitCb,\n cancelCb\n });\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWkvZGlhbG9ncy9wYXJ0SW5mby50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHc0Q7QUFDaUI7QUFFYjtBQUNTO0FBQ047QUFHdEQsTUFBTSxvQkFBb0IsR0FBRyxDQUFPLFVBQTJCLEVBQUUsRUFBRTtJQUN4RSxNQUFNLFFBQVEsR0FBRyw4REFBVyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxNQUFNLFNBQVMsR0FBRywrREFBWSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBRSxDQUFDO0lBQzFHLE1BQU0sTUFBTSxHQUFHLElBQUksMkRBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNyQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFPLFFBQXFCLEVBQUUsRUFBRTtRQUN2RCxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsK0ZBQStGO1FBQy9GLE1BQU0sVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFL0MsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQywyRUFBMkU7UUFDM0UsZ0ZBQWdGO1FBQ2hGLElBQUksT0FBTyxDQUFDLHVCQUF1QixLQUFLLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ3pFLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEMsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLEdBQUcsSUFBSSwyREFBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFTLEVBQUU7SUFDNUIsQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLEdBQVMsRUFBRTtRQUMxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMvQyxJQUFJLE9BQU8sQ0FBQyx1QkFBdUIsS0FBSyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztnQkFDdkUsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLHVEQUFjLENBQUMscURBQWdCLENBQUMsQ0FBQztJQUNoRCxNQUFNLFNBQVMsR0FBRztRQUNoQixLQUFLLEVBQUUsTUFBTTtRQUNiLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLEtBQUssRUFBRSxpQkFBaUI7UUFDeEIsZ0JBQWdCO0tBQ2pCLENBQUM7SUFDRixzREFBYSxDQUFDO1FBQ1osR0FBRyxFQUFFLDJFQUFXO1FBQ2hCLFNBQVM7UUFDVCxJQUFJLEVBQUUsTUFBTTtRQUNaLFlBQVksRUFBRSxVQUFVO1FBQ3hCLFFBQVE7UUFDUixRQUFRO0tBQ1QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL1Ntby8uL3NyYy91aS9kaWFsb2dzL3BhcnRJbmZvLnRzPzFiMzAiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gW1Ntb29zaWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9BYXJvbkRhdmlkTmV3bWFuL1Ntb29zaWMpXHJcbi8vIENvcHlyaWdodCAoYykgQWFyb24gRGF2aWQgTmV3bWFuIDIwMjEuXHJcbmltcG9ydCB7IFNtb1Njb3JlIH0gZnJvbSAnLi4vLi4vc21vL2RhdGEvc2NvcmUnO1xyXG5pbXBvcnQgeyBTbW9QYXJ0SW5mbyB9IGZyb20gJy4uLy4uL3Ntby9kYXRhL3BhcnRJbmZvJztcclxuaW1wb3J0IHsgU21vU2VsZWN0aW9uLCBTbW9TZWxlY3RvciB9IGZyb20gJy4uLy4uL3Ntby94Zm9ybS9zZWxlY3Rpb25zJztcclxuXHJcbmltcG9ydCB7IFN1aURpYWxvZ1BhcmFtcywgSW5zdGFsbERpYWxvZyB9IGZyb20gJy4vZGlhbG9nJztcclxuaW1wb3J0IHBhcnRJbmZvQXBwIGZyb20gJy4uLy4uL3VpL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0SW5mby52dWUnO1xyXG5pbXBvcnQgeyByZXBsYWNlVnVlUm9vdCwgbW9kYWxDb250YWluZXJJZCB9IGZyb20gJy4uL2NvbW1vbic7XHJcblxyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcbmV4cG9ydCBjb25zdCBTdWlQYXJ0SW5mb0RpYWxvZ1Z1ZSA9IGFzeW5jIChwYXJhbWV0ZXJzOiBTdWlEaWFsb2dQYXJhbXMpID0+IHtcclxuICBjb25zdCBzZWxlY3RvciA9IFNtb1NlbGVjdG9yLmRlZmF1bHQ7XHJcbiAgY29uc3Qgc2VsZWN0aW9uID0gU21vU2VsZWN0aW9uLm1lYXN1cmVTZWxlY3Rpb24ocGFyYW1ldGVycy52aWV3LnNjb3JlLCBzZWxlY3Rvci5zdGFmZiwgc2VsZWN0b3IubWVhc3VyZSkhO1xyXG4gIGNvbnN0IGJhY2t1cCA9IG5ldyBTbW9QYXJ0SW5mbyhzZWxlY3Rpb24uc3RhZmYucGFydEluZm8pO1xyXG4gIGxldCBjdXJyZW50ID0gYmFja3VwO1xyXG4gIGxldCBjaGFuZ2VkID0gZmFsc2U7XHJcbiAgY29uc3QgdXBkYXRlUGFydEluZm9DYiA9IGFzeW5jIChwYXJ0SW5mbzogU21vUGFydEluZm8pID0+IHtcclxuICAgIGNoYW5nZWQgPSB0cnVlO1xyXG4gICAgLy8gU2luY2UgdXBkYXRlIHdpbGwgY2hhbmdlIHRoZSBkaXNwbGF5ZWQgc2NvcmUsIHdhaXQgZm9yIGFueSBkaXNwbGF5IGNoYW5nZSB0byBjb21wbGV0ZSBmaXJzdC5cclxuICAgIGF3YWl0IHBhcmFtZXRlcnMudmlldy5yZW5kZXJlci51cGRhdGVQcm9taXNlKCk7XHJcbiAgICBcclxuICAgIGF3YWl0IHBhcmFtZXRlcnMudmlldy51cGRhdGVQYXJ0SW5mbyhwYXJ0SW5mbyk7XHJcbiAgICAvLyBJZiB3ZSBhcmUgZXhwYW5kaW5nIHJlc3RzLCB3ZSBuZWVkIHRvIHJlbG9hZCB0aGUgcGFydCBhZnRlciBzZXR0aW5nIHRoZSBcclxuICAgIC8vIHBhcnQgY2hhbmdlLiAgU28gd2UgdXBkYXRlIHRoZSBwYXJ0IGRpc3BsYXkgYSBzZWNvbmQgdGltZSB3aXRoIHRoZSBuZXcgdmFsdWUuXHJcbiAgICBpZiAoY3VycmVudC5leHBhbmRNdWx0aW1lYXN1cmVSZXN0cyAhPT0gcGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMpIHtcclxuICAgICAgcGFyYW1ldGVycy52aWV3LnJlc2V0UGFydFZpZXcoKTtcclxuICAgICAgYXdhaXQgcGFyYW1ldGVycy52aWV3LnJlZnJlc2hWaWV3cG9ydCgpO1xyXG4gICAgfVxyXG4gICAgY3VycmVudCA9IG5ldyBTbW9QYXJ0SW5mbyhwYXJ0SW5mbyk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBjb21taXRDYiA9IGFzeW5jICgpID0+IHtcclxuICB9XHJcbiAgY29uc3QgY2FuY2VsQ2IgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAoY2hhbmdlZCkge1xyXG4gICAgICBhd2FpdCBwYXJhbWV0ZXJzLnZpZXcucmVuZGVyZXIudXBkYXRlUHJvbWlzZSgpO1xyXG4gICAgICBpZiAoY3VycmVudC5leHBhbmRNdWx0aW1lYXN1cmVSZXN0cyAhPT0gYmFja3VwLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzKSB7XHJcbiAgICAgICAgcGFyYW1ldGVycy52aWV3LnJlc2V0UGFydFZpZXcoKTtcclxuICAgICAgfVxyXG4gICAgICBhd2FpdCBwYXJhbWV0ZXJzLnZpZXcudXBkYXRlUGFydEluZm8oYmFja3VwKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29uc3Qgcm9vdElkID0gcmVwbGFjZVZ1ZVJvb3QobW9kYWxDb250YWluZXJJZCk7XHJcbiAgY29uc3QgYXBwUGFyYW1zID0ge1xyXG4gICAgZG9tSWQ6IHJvb3RJZCxcclxuICAgIHBhcnRJbmZvOiBjdXJyZW50LFxyXG4gICAgbGFiZWw6ICdQYXJ0IFByb3BlcnRpZXMnLFxyXG4gICAgdXBkYXRlUGFydEluZm9DYlxyXG4gIH07XHJcbiAgSW5zdGFsbERpYWxvZyh7XHJcbiAgICBhcHA6IHBhcnRJbmZvQXBwLFxyXG4gICAgYXBwUGFyYW1zLFxyXG4gICAgcm9vdDogcm9vdElkLFxyXG4gICAgZGlhbG9nUGFyYW1zOiBwYXJhbWV0ZXJzLFxyXG4gICAgY29tbWl0Q2IsIFxyXG4gICAgY2FuY2VsQ2JcclxuICB9KTtcclxufVxyXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/dialogs/partInfo.ts\n\n}");
3868
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SuiPartInfoDialogVue: () => (/* binding */ SuiPartInfoDialogVue)\n/* harmony export */ });\n/* harmony import */ var _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../smo/data/partInfo */ \"./src/smo/data/partInfo.ts\");\n/* harmony import */ var _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../smo/xform/selections */ \"./src/smo/xform/selections.ts\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dialog */ \"./src/ui/dialogs/dialog.ts\");\n/* harmony import */ var _ui_components_dialogs_partInfo_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../ui/components/dialogs/partInfo.vue */ \"./src/ui/components/dialogs/partInfo.vue\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common */ \"./src/ui/common.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\nconst SuiPartInfoDialogVue = (parameters) => __awaiter(void 0, void 0, void 0, function* () {\n const selector = _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__.SmoSelector.default;\n const selection = _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__.SmoSelection.measureSelection(parameters.view.score, selector.staff, selector.measure);\n const backup = new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__.SmoPartInfo(selection.staff.partInfo);\n let current = backup;\n let changed = false;\n const updatePartInfoCb = (partInfo) => __awaiter(void 0, void 0, void 0, function* () {\n changed = true;\n // Since update will change the displayed score, wait for any display change to complete first.\n yield parameters.view.renderer.updatePromise();\n yield parameters.view.updatePartInfo(partInfo);\n // If we are expanding rests, we need to reload the part after setting the \n // part change. So we update the part display a second time with the new value.\n if (current.expandMultimeasureRests !== partInfo.expandMultimeasureRests ||\n current.stavesAfter !== partInfo.stavesAfter) {\n parameters.view.resetPartView();\n yield parameters.view.refreshViewport();\n }\n current = new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__.SmoPartInfo(partInfo);\n });\n const commitCb = () => __awaiter(void 0, void 0, void 0, function* () {\n });\n const cancelCb = () => __awaiter(void 0, void 0, void 0, function* () {\n if (changed) {\n yield parameters.view.renderer.updatePromise();\n if (current.expandMultimeasureRests !== backup.expandMultimeasureRests) {\n parameters.view.resetPartView();\n }\n yield parameters.view.updatePartInfo(backup);\n }\n });\n const rootId = (0,_common__WEBPACK_IMPORTED_MODULE_4__.replaceVueRoot)(_common__WEBPACK_IMPORTED_MODULE_4__.modalContainerId);\n const appParams = {\n domId: rootId,\n partInfo: current,\n label: 'Part Properties',\n updatePartInfoCb\n };\n (0,_dialog__WEBPACK_IMPORTED_MODULE_2__.InstallDialog)({\n app: _ui_components_dialogs_partInfo_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n appParams,\n root: rootId,\n dialogParams: parameters,\n commitCb,\n cancelCb\n });\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWkvZGlhbG9ncy9wYXJ0SW5mby50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHc0Q7QUFDaUI7QUFFYjtBQUNTO0FBQ047QUFHdEQsTUFBTSxvQkFBb0IsR0FBRyxDQUFPLFVBQTJCLEVBQUUsRUFBRTtJQUN4RSxNQUFNLFFBQVEsR0FBRyw4REFBVyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxNQUFNLFNBQVMsR0FBRywrREFBWSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBRSxDQUFDO0lBQzFHLE1BQU0sTUFBTSxHQUFHLElBQUksMkRBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNyQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFPLFFBQXFCLEVBQUUsRUFBRTtRQUN2RCxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsK0ZBQStGO1FBQy9GLE1BQU0sVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFL0MsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQywyRUFBMkU7UUFDM0UsZ0ZBQWdGO1FBQ2hGLElBQUksT0FBTyxDQUFDLHVCQUF1QixLQUFLLFFBQVEsQ0FBQyx1QkFBdUI7WUFDdEUsT0FBTyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0MsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNoQyxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJLDJEQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLEdBQVMsRUFBRTtJQUM1QixDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsR0FBUyxFQUFFO1FBQzFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9DLElBQUksT0FBTyxDQUFDLHVCQUF1QixLQUFLLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUN2RSxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2xDLENBQUM7WUFDRCxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsdURBQWMsQ0FBQyxxREFBZ0IsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sU0FBUyxHQUFHO1FBQ2hCLEtBQUssRUFBRSxNQUFNO1FBQ2IsUUFBUSxFQUFFLE9BQU87UUFDakIsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixnQkFBZ0I7S0FDakIsQ0FBQztJQUNGLHNEQUFhLENBQUM7UUFDWixHQUFHLEVBQUUsMkVBQVc7UUFDaEIsU0FBUztRQUNULElBQUksRUFBRSxNQUFNO1FBQ1osWUFBWSxFQUFFLFVBQVU7UUFDeEIsUUFBUTtRQUNSLFFBQVE7S0FDVCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vU21vLy4vc3JjL3VpL2RpYWxvZ3MvcGFydEluZm8udHM/MWIzMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBbU21vb3NpY10oaHR0cHM6Ly9naXRodWIuY29tL0Fhcm9uRGF2aWROZXdtYW4vU21vb3NpYylcclxuLy8gQ29weXJpZ2h0IChjKSBBYXJvbiBEYXZpZCBOZXdtYW4gMjAyMS5cclxuaW1wb3J0IHsgU21vU2NvcmUgfSBmcm9tICcuLi8uLi9zbW8vZGF0YS9zY29yZSc7XHJcbmltcG9ydCB7IFNtb1BhcnRJbmZvIH0gZnJvbSAnLi4vLi4vc21vL2RhdGEvcGFydEluZm8nO1xyXG5pbXBvcnQgeyBTbW9TZWxlY3Rpb24sIFNtb1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vc21vL3hmb3JtL3NlbGVjdGlvbnMnO1xyXG5cclxuaW1wb3J0IHsgU3VpRGlhbG9nUGFyYW1zLCBJbnN0YWxsRGlhbG9nIH0gZnJvbSAnLi9kaWFsb2cnO1xyXG5pbXBvcnQgcGFydEluZm9BcHAgZnJvbSAnLi4vLi4vdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZSc7XHJcbmltcG9ydCB7IHJlcGxhY2VWdWVSb290LCBtb2RhbENvbnRhaW5lcklkIH0gZnJvbSAnLi4vY29tbW9uJztcclxuXHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuZXhwb3J0IGNvbnN0IFN1aVBhcnRJbmZvRGlhbG9nVnVlID0gYXN5bmMgKHBhcmFtZXRlcnM6IFN1aURpYWxvZ1BhcmFtcykgPT4ge1xyXG4gIGNvbnN0IHNlbGVjdG9yID0gU21vU2VsZWN0b3IuZGVmYXVsdDtcclxuICBjb25zdCBzZWxlY3Rpb24gPSBTbW9TZWxlY3Rpb24ubWVhc3VyZVNlbGVjdGlvbihwYXJhbWV0ZXJzLnZpZXcuc2NvcmUsIHNlbGVjdG9yLnN0YWZmLCBzZWxlY3Rvci5tZWFzdXJlKSE7XHJcbiAgY29uc3QgYmFja3VwID0gbmV3IFNtb1BhcnRJbmZvKHNlbGVjdGlvbi5zdGFmZi5wYXJ0SW5mbyk7XHJcbiAgbGV0IGN1cnJlbnQgPSBiYWNrdXA7XHJcbiAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcclxuICBjb25zdCB1cGRhdGVQYXJ0SW5mb0NiID0gYXN5bmMgKHBhcnRJbmZvOiBTbW9QYXJ0SW5mbykgPT4ge1xyXG4gICAgY2hhbmdlZCA9IHRydWU7XHJcbiAgICAvLyBTaW5jZSB1cGRhdGUgd2lsbCBjaGFuZ2UgdGhlIGRpc3BsYXllZCBzY29yZSwgd2FpdCBmb3IgYW55IGRpc3BsYXkgY2hhbmdlIHRvIGNvbXBsZXRlIGZpcnN0LlxyXG4gICAgYXdhaXQgcGFyYW1ldGVycy52aWV3LnJlbmRlcmVyLnVwZGF0ZVByb21pc2UoKTtcclxuICAgIFxyXG4gICAgYXdhaXQgcGFyYW1ldGVycy52aWV3LnVwZGF0ZVBhcnRJbmZvKHBhcnRJbmZvKTtcclxuICAgIC8vIElmIHdlIGFyZSBleHBhbmRpbmcgcmVzdHMsIHdlIG5lZWQgdG8gcmVsb2FkIHRoZSBwYXJ0IGFmdGVyIHNldHRpbmcgdGhlIFxyXG4gICAgLy8gcGFydCBjaGFuZ2UuICBTbyB3ZSB1cGRhdGUgdGhlIHBhcnQgZGlzcGxheSBhIHNlY29uZCB0aW1lIHdpdGggdGhlIG5ldyB2YWx1ZS5cclxuICAgIGlmIChjdXJyZW50LmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzICE9PSBwYXJ0SW5mby5leHBhbmRNdWx0aW1lYXN1cmVSZXN0cyB8fFxyXG4gICAgICBjdXJyZW50LnN0YXZlc0FmdGVyICE9PSBwYXJ0SW5mby5zdGF2ZXNBZnRlcikge1xyXG4gICAgICBwYXJhbWV0ZXJzLnZpZXcucmVzZXRQYXJ0VmlldygpO1xyXG4gICAgICBhd2FpdCBwYXJhbWV0ZXJzLnZpZXcucmVmcmVzaFZpZXdwb3J0KCk7XHJcbiAgICB9XHJcbiAgICBjdXJyZW50ID0gbmV3IFNtb1BhcnRJbmZvKHBhcnRJbmZvKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGNvbW1pdENiID0gYXN5bmMgKCkgPT4ge1xyXG4gIH1cclxuICBjb25zdCBjYW5jZWxDYiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChjaGFuZ2VkKSB7XHJcbiAgICAgIGF3YWl0IHBhcmFtZXRlcnMudmlldy5yZW5kZXJlci51cGRhdGVQcm9taXNlKCk7XHJcbiAgICAgIGlmIChjdXJyZW50LmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzICE9PSBiYWNrdXAuZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMpIHtcclxuICAgICAgICBwYXJhbWV0ZXJzLnZpZXcucmVzZXRQYXJ0VmlldygpO1xyXG4gICAgICB9XHJcbiAgICAgIGF3YWl0IHBhcmFtZXRlcnMudmlldy51cGRhdGVQYXJ0SW5mbyhiYWNrdXApO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb25zdCByb290SWQgPSByZXBsYWNlVnVlUm9vdChtb2RhbENvbnRhaW5lcklkKTtcclxuICBjb25zdCBhcHBQYXJhbXMgPSB7XHJcbiAgICBkb21JZDogcm9vdElkLFxyXG4gICAgcGFydEluZm86IGN1cnJlbnQsXHJcbiAgICBsYWJlbDogJ1BhcnQgUHJvcGVydGllcycsXHJcbiAgICB1cGRhdGVQYXJ0SW5mb0NiXHJcbiAgfTtcclxuICBJbnN0YWxsRGlhbG9nKHtcclxuICAgIGFwcDogcGFydEluZm9BcHAsXHJcbiAgICBhcHBQYXJhbXMsXHJcbiAgICByb290OiByb290SWQsXHJcbiAgICBkaWFsb2dQYXJhbXM6IHBhcmFtZXRlcnMsXHJcbiAgICBjb21taXRDYiwgXHJcbiAgICBjYW5jZWxDYlxyXG4gIH0pO1xyXG59XHJcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/dialogs/partInfo.ts\n\n}");
3869
3869
 
3870
3870
  /***/ },
3871
3871
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smoosic",
3
- "version": "1.0.28",
3
+ "version": "1.0.29",
4
4
  "devDependencies": {
5
5
  "copy-webpack-plugin": "^12.0.2",
6
6
  "jquery": "^3.6.0",
@@ -26,7 +26,7 @@
26
26
  "xmldom": "^0.6.0"
27
27
  },
28
28
  "main": "build/smoosic.js",
29
- "description": "<sub>[Github site](https://github.com/Smoosic/smoosic) | [source documentation](https://smoosic.github.io/Smoosic/release/docs/modules.html) | [change notes](https://aarondavidnewman.github.io/Smoosic/changes.html) | [application](https://smoosic.github.io/Smoosic/release/html/smoosic.html)<sub>",
29
+ "description": "<sub>[Github site](https://github.com/Smoosic/smoosic) | [source documentation](https://smoosic.github.io/Smoosic/release/docs/modules.html) | [change notes](https://aarondavidnewman.github.io/Smoosic/changes.html) | [demo](https://smoosic.github.io/Smoosic/release/html/smoosic.html)<sub>",
30
30
  "directories": {
31
31
  "test": "tests"
32
32
  },
@@ -378,7 +378,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
378
378
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
379
379
 
380
380
  "use strict";
381
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _select_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select.vue */ \"./src/ui/components/dialogs/select.vue\");\n/* harmony import */ var _numberInput_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./numberInput.vue */ \"./src/ui/components/dialogs/numberInput.vue\");\n/* harmony import */ var _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../smo/data/partInfo */ \"./src/smo/data/partInfo.ts\");\n/* harmony import */ var _dialogContainer_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dialogContainer.vue */ \"./src/ui/components/dialogs/dialogContainer.vue\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*@__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({\n __name: 'partInfo',\n props: {\n domId: { type: String, required: true },\n label: { type: String, required: true },\n partInfo: { type: Object, required: true },\n updatePartInfoCb: { type: Function, required: true },\n commitCb: { type: Function, required: true },\n cancelCb: { type: Function, required: true }\n },\n setup(__props, { expose: __expose }) {\n __expose();\n const props = __props;\n const { domId, label, commitCb, cancelCb, updatePartInfoCb } = Object.assign({}, props);\n const partInfo = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)(new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_3__.SmoPartInfo(props.partInfo));\n const writeBooleanValue = (attr, value) => __awaiter(this, void 0, void 0, function* () {\n partInfo[attr] = value;\n yield updatePartInfoCb(partInfo);\n });\n const writeLayoutValue = (attr, value) => __awaiter(this, void 0, void 0, function* () {\n // no change?\n if (partInfo.layoutManager.globalLayout[attr] === value) {\n return;\n }\n partInfo.layoutManager.globalLayout[attr] = value;\n yield updatePartInfoCb(partInfo);\n });\n const pageSizes = [\n { label: 'Letter', value: 'letter' },\n { label: 'Legal', value: 'legal' },\n { label: 'Tabloid', value: 'tabloid' },\n { label: 'A4', value: 'a4' },\n { label: 'Custom', value: 'custom' }\n ];\n const predefinedDimensions = {\n 'letter': { width: 816, height: 1056 },\n 'legal': { width: 816, height: 1344 },\n 'tabloid': { width: 1056, height: 1632 },\n 'a4': { width: 794, height: 1123 }\n };\n // Page size is in pixels, but if it matches a preset we just show that.\n // User chooses 'custom' to unlock width/height editing.\n const pageSize = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)('custom');\n const pageChange = () => {\n Object.keys(predefinedDimensions).forEach((key) => {\n const dims = predefinedDimensions[key];\n if (dims.width === partInfo.layoutManager.globalLayout.pageWidth &&\n dims.height === partInfo.layoutManager.globalLayout.pageHeight) {\n pageSize.value = key;\n }\n });\n };\n const lockDimensions = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n pageChange();\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(pageSize, (newVal) => __awaiter(this, void 0, void 0, function* () {\n if (predefinedDimensions[newVal]) {\n lockDimensions.value = true;\n const dims = predefinedDimensions[newVal];\n partInfo.layoutManager.globalLayout.pageWidth = dims.width;\n partInfo.layoutManager.globalLayout.pageHeight = dims.height;\n }\n else {\n lockDimensions.value = false;\n }\n yield updatePartInfoCb(partInfo);\n }));\n if (predefinedDimensions[pageSize.value]) {\n lockDimensions.value = true;\n }\n const update = () => __awaiter(this, void 0, void 0, function* () {\n yield updatePartInfoCb(partInfo);\n });\n const includeNext = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n if (partInfo.stavesAfter > 0) {\n includeNext.value = true;\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(includeNext, (newVal, oldVal) => __awaiter(this, void 0, void 0, function* () {\n if (newVal !== oldVal) {\n partInfo.stavesAfter = newVal ? 1 : 0;\n yield updatePartInfoCb(partInfo);\n }\n }));\n const updateLayoutFunc = (param) => {\n const cb = (value) => __awaiter(this, void 0, void 0, function* () {\n yield writeLayoutValue(param, value);\n });\n return cb;\n };\n const getId = (str) => {\n return `${domId}-${str}`;\n };\n const __returned__ = { props, domId, label, commitCb, cancelCb, updatePartInfoCb, partInfo, writeBooleanValue, writeLayoutValue, pageSizes, predefinedDimensions, pageSize, pageChange, lockDimensions, update, includeNext, updateLayoutFunc, getId, selectComp: _select_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], numberInputApp: _numberInput_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"], dialogContainer: _dialogContainer_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"] };\n Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });\n return __returned__;\n }\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTEudXNlWzBdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1s2XS51c2VbMF0hLi9zcmMvdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF5RDtBQ0NUO0FBQ1Y7QUFDUztBQUU2RTtBQUV4RTtBRGlCcEQsOEVBQTRCLG9EQUFnQixDQUFDO0lBQzNDLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUN2QyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7UUFDdkMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQzFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQ3BELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUM1QyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7S0FDN0M7SUFDRCxLQUFLLENBQUMsT0FBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtRQUN4QyxRQUFRLEVBQUUsQ0FBQztRQ2xCYixNQUFNLEtBQUssR0FBRyxPQUFvQixDQUFDO1FBQ25DLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUscUJBQVEsS0FBSyxDQUFFLENBQUM7UUFDNUUsTUFBTSxRQUFRLEdBQUcsNkNBQVEsQ0FBQyxJQUFJLDJEQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFM0QsTUFBTSxpQkFBaUIsR0FBRyxDQUFPLElBQTRCLEVBQUUsS0FBYyxFQUFFLEVBQUU7WUFDL0UsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUN2QixNQUFNLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxNQUFNLGdCQUFnQixHQUFHLENBQU8sSUFBNEIsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUMzRSxhQUFhO1lBQ2IsSUFBSSxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDeEQsT0FBTztZQUNULENBQUM7WUFDRCxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDbEQsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQW1CO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ3BDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQ2xDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3RDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQzVCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1NBQ3JDLENBQUM7UUFLRixNQUFNLG9CQUFvQixHQUFrQztZQUMxRCxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFDdEMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUN4QyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7U0FDbkMsQ0FBQztRQUNGLHdFQUF3RTtRQUN4RSx3REFBd0Q7UUFDeEQsTUFBTSxRQUFRLEdBQUcsd0NBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUMvQyxNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVM7b0JBQzlELElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2pFLFFBQVEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO2dCQUN2QixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyx3Q0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLFVBQVUsRUFBRSxDQUFDO1FBQ2IsMENBQUssQ0FBRSxRQUFRLEVBQUUsQ0FBTyxNQUFNLEVBQUUsRUFBRTtZQUNoQyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDMUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQzNELFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQy9ELENBQUM7aUJBQU0sQ0FBQztnQkFDTixjQUFjLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUMvQixDQUFDO1lBQ0QsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxDQUFDLEVBQUMsQ0FBQztRQUNILElBQUksb0JBQW9CLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekMsY0FBYyxDQUFDLEtBQUssR0FBRyxJQUFJO1FBQzdCLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRSxHQUFTLEVBQUU7WUFDdkIsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsd0NBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixJQUFJLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0IsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQztRQUNELDBDQUFLLENBQUUsV0FBVyxFQUFFLENBQU8sTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixRQUFRLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLE1BQU0sZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUMsRUFBQyxDQUFDO1FBSUgsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEtBQTZCLEVBQW9CLEVBQUU7WUFDM0UsTUFBTSxFQUFFLEdBQUcsQ0FBTyxLQUFhLEVBQUUsRUFBRTtnQkFDakMsTUFBTSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkMsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDNUIsT0FBTyxHQUFHLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FEaUJELE1BQU0sWUFBWSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFVBQVUsdURBQUUsY0FBYyw0REFBRSxlQUFlLGdFQUFFO1FBQ25TLE1BQU0sQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDMUYsT0FBTyxZQUFZO0lBQ25CLENBQUM7Q0FFQSxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vU21vLy4vc3JjL3VpL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0SW5mby52dWU/MGE1MyIsIndlYnBhY2s6Ly9TbW8vLi9zcmMvdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZT9jNWFkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZUNvbXBvbmVudCBhcyBfZGVmaW5lQ29tcG9uZW50IH0gZnJvbSAndnVlJ1xuaW1wb3J0IHsgcmVmLCBSZWYsIHdhdGNoLCByZWFjdGl2ZSB9IGZyb20gJ3Z1ZSc7XHJcbmltcG9ydCBzZWxlY3RDb21wIGZyb20gJy4vc2VsZWN0LnZ1ZSc7XHJcbmltcG9ydCBudW1iZXJJbnB1dEFwcCBmcm9tICcuL251bWJlcklucHV0LnZ1ZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbic7XHJcbmltcG9ydCB7IFNtb1BhcnRJbmZvLCBTbW9QYXJ0SW5mb1N0cmluZ1R5cGUsIFNtb1BhcnRJbmZvTnVtVHlwZSwgU21vUGFydEluZm9Cb29sZWFuVHlwZSB9IGZyb20gJy4uLy4uLy4uL3Ntby9kYXRhL3BhcnRJbmZvJztcclxuaW1wb3J0IHsgR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgU21vTGF5b3V0TWFuYWdlciwgR2xvYmFsTGF5b3V0QXR0cmlidXRlc0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vc21vL2RhdGEvc2NvcmVNb2RpZmllcnMnO1xyXG5pbXBvcnQgZGlhbG9nQ29udGFpbmVyIGZyb20gJy4vZGlhbG9nQ29udGFpbmVyLnZ1ZSc7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIGRvbUlkOiBzdHJpbmcsXHJcbiAgbGFiZWw6IHN0cmluZyxcclxuICBwYXJ0SW5mbzogU21vUGFydEluZm8sXHJcbiAgdXBkYXRlUGFydEluZm9DYjogKHBpOiBTbW9QYXJ0SW5mbykgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjb21taXRDYjogKCkgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjYW5jZWxDYjogKCkgPT4gUHJvbWlzZTx2b2lkPlxyXG59XHJcbmludGVyZmFjZSBkaW1lbnNpb25zIHtcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbn1cclxudHlwZSBudW1iZXJXcml0ZXJUeXBlID0gKHZhbHVlOiBudW1iZXIpID0+IFByb21pc2U8dm9pZD47XHJcblxyXG5cbmV4cG9ydCBkZWZhdWx0IC8qQF9fUFVSRV9fKi9fZGVmaW5lQ29tcG9uZW50KHtcbiAgX19uYW1lOiAncGFydEluZm8nLFxuICBwcm9wczoge1xuICAgIGRvbUlkOiB7IHR5cGU6IFN0cmluZywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICBsYWJlbDogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgcGFydEluZm86IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIHVwZGF0ZVBhcnRJbmZvQ2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgY29tbWl0Q2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgY2FuY2VsQ2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH1cbiAgfSxcbiAgc2V0dXAoX19wcm9wczogYW55LCB7IGV4cG9zZTogX19leHBvc2UgfSkge1xuICBfX2V4cG9zZSgpO1xuXHJcbmNvbnN0IHByb3BzID0gX19wcm9wcztcclxuY29uc3QgeyBkb21JZCwgbGFiZWwsIGNvbW1pdENiLCBjYW5jZWxDYiwgdXBkYXRlUGFydEluZm9DYiB9ID0geyAuLi5wcm9wcyB9O1xyXG5jb25zdCBwYXJ0SW5mbyA9IHJlYWN0aXZlKG5ldyBTbW9QYXJ0SW5mbyhwcm9wcy5wYXJ0SW5mbykpO1xyXG5cclxuY29uc3Qgd3JpdGVCb29sZWFuVmFsdWUgPSBhc3luYyAoYXR0cjogU21vUGFydEluZm9Cb29sZWFuVHlwZSwgdmFsdWU6IGJvb2xlYW4pID0+IHtcclxuICBwYXJ0SW5mb1thdHRyXSA9IHZhbHVlO1xyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IHdyaXRlTGF5b3V0VmFsdWUgPSBhc3luYyAoYXR0cjogR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgdmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgLy8gbm8gY2hhbmdlP1xyXG4gICAgaWYgKHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0W2F0dHJdID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dFthdHRyXSA9IHZhbHVlO1xyXG4gICAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3QgcGFnZVNpemVzOiBTZWxlY3RPcHRpb25bXSA9IFtcclxuICB7IGxhYmVsOiAnTGV0dGVyJywgdmFsdWU6ICdsZXR0ZXInIH0sXHJcbiAgeyBsYWJlbDogJ0xlZ2FsJywgdmFsdWU6ICdsZWdhbCcgfSxcclxuICB7IGxhYmVsOiAnVGFibG9pZCcsIHZhbHVlOiAndGFibG9pZCcgfSxcclxuICB7IGxhYmVsOiAnQTQnLCB2YWx1ZTogJ2E0JyB9LFxyXG4gIHsgbGFiZWw6ICdDdXN0b20nLCB2YWx1ZTogJ2N1c3RvbScgfVxyXG5dO1xyXG5jb25zdCBwcmVkZWZpbmVkRGltZW5zaW9uczogeyBba2V5OiBzdHJpbmddOiBkaW1lbnNpb25zIH0gPSB7XHJcbiAgJ2xldHRlcic6IHsgd2lkdGg6IDgxNiwgaGVpZ2h0OiAxMDU2IH0sXHJcbiAgJ2xlZ2FsJzogeyB3aWR0aDogODE2LCBoZWlnaHQ6IDEzNDQgfSxcclxuICAndGFibG9pZCc6IHsgd2lkdGg6IDEwNTYsIGhlaWdodDogMTYzMiB9LFxyXG4gICdhNCc6IHsgd2lkdGg6IDc5NCwgaGVpZ2h0OiAxMTIzIH1cclxufTtcclxuLy8gUGFnZSBzaXplIGlzIGluIHBpeGVscywgYnV0IGlmIGl0IG1hdGNoZXMgYSBwcmVzZXQgd2UganVzdCBzaG93IHRoYXQuXHJcbi8vIFVzZXIgY2hvb3NlcyAnY3VzdG9tJyB0byB1bmxvY2sgd2lkdGgvaGVpZ2h0IGVkaXRpbmcuXHJcbmNvbnN0IHBhZ2VTaXplID0gcmVmKCdjdXN0b20nKTtcclxuY29uc3QgcGFnZUNoYW5nZSA9ICgpID0+IHtcclxuIE9iamVjdC5rZXlzKHByZWRlZmluZWREaW1lbnNpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1trZXldO1xyXG4gICAgaWYgKGRpbXMud2lkdGggPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aCAmJlxyXG4gICAgICBkaW1zLmhlaWdodCA9PT0gcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCkge1xyXG4gICAgICBwYWdlU2l6ZS52YWx1ZSA9IGtleTtcclxuICAgIH1cclxuICB9KTtcclxufTtcclxuY29uc3QgbG9ja0RpbWVuc2lvbnMgPSByZWYoZmFsc2UpO1xyXG5wYWdlQ2hhbmdlKCk7XHJcbndhdGNoIChwYWdlU2l6ZSwgYXN5bmMgKG5ld1ZhbCkgPT4ge1xyXG4gIGlmIChwcmVkZWZpbmVkRGltZW5zaW9uc1tuZXdWYWxdKSB7XHJcbiAgICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IHRydWU7XHJcbiAgICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNbbmV3VmFsXTtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aCA9IGRpbXMud2lkdGg7XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlSGVpZ2h0ID0gZGltcy5oZWlnaHQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gZmFsc2U7XHJcbiAgfVxyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59KTtcclxuaWYgKHByZWRlZmluZWREaW1lbnNpb25zW3BhZ2VTaXplLnZhbHVlXSkge1xyXG4gIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gdHJ1ZVxyXG59XHJcbmNvbnN0IHVwZGF0ZSA9YXN5bmMgKCkgPT4ge1xyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IGluY2x1ZGVOZXh0ID0gcmVmKGZhbHNlKTtcclxuaWYgKHBhcnRJbmZvLnN0YXZlc0FmdGVyID4gMCkge1xyXG4gIGluY2x1ZGVOZXh0LnZhbHVlID0gdHJ1ZTtcclxufVxyXG53YXRjaCAoaW5jbHVkZU5leHQsIGFzeW5jIChuZXdWYWwsIG9sZFZhbCkgPT4ge1xyXG4gIGlmIChuZXdWYWwgIT09IG9sZFZhbCkge1xyXG4gICAgcGFydEluZm8uc3RhdmVzQWZ0ZXIgPSBuZXdWYWwgPyAxIDogMDtcclxuICAgIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG4gIH1cclxufSk7XHJcblxyXG5jb25zdCB1cGRhdGVMYXlvdXRGdW5jID0gKHBhcmFtOiBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzKTogbnVtYmVyV3JpdGVyVHlwZSA9PiB7XHJcbiAgY29uc3QgY2IgPSBhc3luYyAodmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgYXdhaXQgd3JpdGVMYXlvdXRWYWx1ZShwYXJhbSwgdmFsdWUpO1xyXG4gIH1cclxuICByZXR1cm4gY2I7XHJcbn1cclxuXHJcbmNvbnN0IGdldElkID0gKHN0cjogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIGAke2RvbUlkfS0ke3N0cn1gO1xyXG59XHJcblxyXG5cbmNvbnN0IF9fcmV0dXJuZWRfXyA9IHsgcHJvcHMsIGRvbUlkLCBsYWJlbCwgY29tbWl0Q2IsIGNhbmNlbENiLCB1cGRhdGVQYXJ0SW5mb0NiLCBwYXJ0SW5mbywgd3JpdGVCb29sZWFuVmFsdWUsIHdyaXRlTGF5b3V0VmFsdWUsIHBhZ2VTaXplcywgcHJlZGVmaW5lZERpbWVuc2lvbnMsIHBhZ2VTaXplLCBwYWdlQ2hhbmdlLCBsb2NrRGltZW5zaW9ucywgdXBkYXRlLCBpbmNsdWRlTmV4dCwgdXBkYXRlTGF5b3V0RnVuYywgZ2V0SWQsIHNlbGVjdENvbXAsIG51bWJlcklucHV0QXBwLCBkaWFsb2dDb250YWluZXIgfVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KF9fcmV0dXJuZWRfXywgJ19faXNTY3JpcHRTZXR1cCcsIHsgZW51bWVyYWJsZTogZmFsc2UsIHZhbHVlOiB0cnVlIH0pXG5yZXR1cm4gX19yZXR1cm5lZF9fXG59XG5cbn0pIiwiPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cclxuaW1wb3J0IHsgcmVmLCBSZWYsIHdhdGNoLCByZWFjdGl2ZSB9IGZyb20gJ3Z1ZSc7XHJcbmltcG9ydCBzZWxlY3RDb21wIGZyb20gJy4vc2VsZWN0LnZ1ZSc7XHJcbmltcG9ydCBudW1iZXJJbnB1dEFwcCBmcm9tICcuL251bWJlcklucHV0LnZ1ZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbic7XHJcbmltcG9ydCB7IFNtb1BhcnRJbmZvLCBTbW9QYXJ0SW5mb1N0cmluZ1R5cGUsIFNtb1BhcnRJbmZvTnVtVHlwZSwgU21vUGFydEluZm9Cb29sZWFuVHlwZSB9IGZyb20gJy4uLy4uLy4uL3Ntby9kYXRhL3BhcnRJbmZvJztcclxuaW1wb3J0IHsgR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgU21vTGF5b3V0TWFuYWdlciwgR2xvYmFsTGF5b3V0QXR0cmlidXRlc0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vc21vL2RhdGEvc2NvcmVNb2RpZmllcnMnO1xyXG5pbXBvcnQgZGlhbG9nQ29udGFpbmVyIGZyb20gJy4vZGlhbG9nQ29udGFpbmVyLnZ1ZSc7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIGRvbUlkOiBzdHJpbmcsXHJcbiAgbGFiZWw6IHN0cmluZyxcclxuICBwYXJ0SW5mbzogU21vUGFydEluZm8sXHJcbiAgdXBkYXRlUGFydEluZm9DYjogKHBpOiBTbW9QYXJ0SW5mbykgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjb21taXRDYjogKCkgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjYW5jZWxDYjogKCkgPT4gUHJvbWlzZTx2b2lkPlxyXG59XHJcbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHM8UHJvcHM+KCk7XHJcbmNvbnN0IHsgZG9tSWQsIGxhYmVsLCBjb21taXRDYiwgY2FuY2VsQ2IsIHVwZGF0ZVBhcnRJbmZvQ2IgfSA9IHsgLi4ucHJvcHMgfTtcclxuY29uc3QgcGFydEluZm8gPSByZWFjdGl2ZShuZXcgU21vUGFydEluZm8ocHJvcHMucGFydEluZm8pKTtcclxuXHJcbmNvbnN0IHdyaXRlQm9vbGVhblZhbHVlID0gYXN5bmMgKGF0dHI6IFNtb1BhcnRJbmZvQm9vbGVhblR5cGUsIHZhbHVlOiBib29sZWFuKSA9PiB7XHJcbiAgcGFydEluZm9bYXR0cl0gPSB2YWx1ZTtcclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufVxyXG5jb25zdCB3cml0ZUxheW91dFZhbHVlID0gYXN5bmMgKGF0dHI6IEdsb2JhbExheW91dEF0dHJpYnV0ZXMsIHZhbHVlOiBudW1iZXIpID0+IHtcclxuICAgIC8vIG5vIGNoYW5nZT9cclxuICAgIGlmIChwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dFthdHRyXSA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXRbYXR0cl0gPSB2YWx1ZTtcclxuICAgIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IHBhZ2VTaXplczogU2VsZWN0T3B0aW9uW10gPSBbXHJcbiAgeyBsYWJlbDogJ0xldHRlcicsIHZhbHVlOiAnbGV0dGVyJyB9LFxyXG4gIHsgbGFiZWw6ICdMZWdhbCcsIHZhbHVlOiAnbGVnYWwnIH0sXHJcbiAgeyBsYWJlbDogJ1RhYmxvaWQnLCB2YWx1ZTogJ3RhYmxvaWQnIH0sXHJcbiAgeyBsYWJlbDogJ0E0JywgdmFsdWU6ICdhNCcgfSxcclxuICB7IGxhYmVsOiAnQ3VzdG9tJywgdmFsdWU6ICdjdXN0b20nIH1cclxuXTtcclxuaW50ZXJmYWNlIGRpbWVuc2lvbnMge1xyXG4gIHdpZHRoOiBudW1iZXIsXHJcbiAgaGVpZ2h0OiBudW1iZXJcclxufVxyXG5jb25zdCBwcmVkZWZpbmVkRGltZW5zaW9uczogeyBba2V5OiBzdHJpbmddOiBkaW1lbnNpb25zIH0gPSB7XHJcbiAgJ2xldHRlcic6IHsgd2lkdGg6IDgxNiwgaGVpZ2h0OiAxMDU2IH0sXHJcbiAgJ2xlZ2FsJzogeyB3aWR0aDogODE2LCBoZWlnaHQ6IDEzNDQgfSxcclxuICAndGFibG9pZCc6IHsgd2lkdGg6IDEwNTYsIGhlaWdodDogMTYzMiB9LFxyXG4gICdhNCc6IHsgd2lkdGg6IDc5NCwgaGVpZ2h0OiAxMTIzIH1cclxufTtcclxuLy8gUGFnZSBzaXplIGlzIGluIHBpeGVscywgYnV0IGlmIGl0IG1hdGNoZXMgYSBwcmVzZXQgd2UganVzdCBzaG93IHRoYXQuXHJcbi8vIFVzZXIgY2hvb3NlcyAnY3VzdG9tJyB0byB1bmxvY2sgd2lkdGgvaGVpZ2h0IGVkaXRpbmcuXHJcbmNvbnN0IHBhZ2VTaXplID0gcmVmKCdjdXN0b20nKTtcclxuY29uc3QgcGFnZUNoYW5nZSA9ICgpID0+IHtcclxuIE9iamVjdC5rZXlzKHByZWRlZmluZWREaW1lbnNpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1trZXldO1xyXG4gICAgaWYgKGRpbXMud2lkdGggPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aCAmJlxyXG4gICAgICBkaW1zLmhlaWdodCA9PT0gcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCkge1xyXG4gICAgICBwYWdlU2l6ZS52YWx1ZSA9IGtleTtcclxuICAgIH1cclxuICB9KTtcclxufTtcclxuY29uc3QgbG9ja0RpbWVuc2lvbnMgPSByZWYoZmFsc2UpO1xyXG5wYWdlQ2hhbmdlKCk7XHJcbndhdGNoIChwYWdlU2l6ZSwgYXN5bmMgKG5ld1ZhbCkgPT4ge1xyXG4gIGlmIChwcmVkZWZpbmVkRGltZW5zaW9uc1tuZXdWYWxdKSB7XHJcbiAgICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IHRydWU7XHJcbiAgICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNbbmV3VmFsXTtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aCA9IGRpbXMud2lkdGg7XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlSGVpZ2h0ID0gZGltcy5oZWlnaHQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gZmFsc2U7XHJcbiAgfVxyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59KTtcclxuaWYgKHByZWRlZmluZWREaW1lbnNpb25zW3BhZ2VTaXplLnZhbHVlXSkge1xyXG4gIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gdHJ1ZVxyXG59XHJcbmNvbnN0IHVwZGF0ZSA9YXN5bmMgKCkgPT4ge1xyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IGluY2x1ZGVOZXh0ID0gcmVmKGZhbHNlKTtcclxuaWYgKHBhcnRJbmZvLnN0YXZlc0FmdGVyID4gMCkge1xyXG4gIGluY2x1ZGVOZXh0LnZhbHVlID0gdHJ1ZTtcclxufVxyXG53YXRjaCAoaW5jbHVkZU5leHQsIGFzeW5jIChuZXdWYWwsIG9sZFZhbCkgPT4ge1xyXG4gIGlmIChuZXdWYWwgIT09IG9sZFZhbCkge1xyXG4gICAgcGFydEluZm8uc3RhdmVzQWZ0ZXIgPSBuZXdWYWwgPyAxIDogMDtcclxuICAgIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG4gIH1cclxufSk7XHJcblxyXG50eXBlIG51bWJlcldyaXRlclR5cGUgPSAodmFsdWU6IG51bWJlcikgPT4gUHJvbWlzZTx2b2lkPjtcclxuXHJcbmNvbnN0IHVwZGF0ZUxheW91dEZ1bmMgPSAocGFyYW06IEdsb2JhbExheW91dEF0dHJpYnV0ZXMpOiBudW1iZXJXcml0ZXJUeXBlID0+IHtcclxuICBjb25zdCBjYiA9IGFzeW5jICh2YWx1ZTogbnVtYmVyKSA9PiB7XHJcbiAgICBhd2FpdCB3cml0ZUxheW91dFZhbHVlKHBhcmFtLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIHJldHVybiBjYjtcclxufVxyXG5cclxuY29uc3QgZ2V0SWQgPSAoc3RyOiBzdHJpbmcpID0+IHtcclxuICByZXR1cm4gYCR7ZG9tSWR9LSR7c3RyfWA7XHJcbn1cclxuXHJcbjwvc2NyaXB0PlxyXG48dGVtcGxhdGU+XHJcbiAgPGRpYWxvZ0NvbnRhaW5lciA6ZG9tSWQ9XCJkb21JZFwiIDpjb21taXRDYj1cImNvbW1pdENiXCIgOmNhbmNlbENiPVwiY2FuY2VsQ2JcIiA6bGFiZWw9XCJsYWJlbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC04XCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiA6cGxhY2Vob2xkZXI9XCJwYXJ0SW5mby5wYXJ0TmFtZVwiIGFyaWEtbGFiZWw9XCJQYXJ0IE5hbWVcIlxyXG4gICAgICAgICAgOmlkPVwiZ2V0SWQoJ3BhcnQtbmFtZS1pbnB1dCcpXCIgdi1tb2RlbD1cInBhcnRJbmZvLnBhcnROYW1lXCIgQGNoYW5nZT1cInVwZGF0ZVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJcIiA6aWQ9XCJnZXRJZCgncGFydC1uYW1lLWxhYmVsJylcIj5QYXJ0IE5hbWU8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLThcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIDpwbGFjZWhvbGRlcj1cInBhcnRJbmZvLnBhcnRBYmJyZXZpYXRpb25cIiBhcmlhLWxhYmVsPVwiUGFydCBBYmJyZXZpYXRpb25cIlxyXG4gICAgICAgICAgOmlkPVwiZ2V0SWQoJ3BhcnQtYWJicmV2aWF0aW9uLWlucHV0JylcIiB2LW1vZGVsPVwicGFydEluZm8ucGFydEFiYnJldmlhdGlvblwiIEBjaGFuZ2U9XCJ1cGRhdGVcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTQgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiXCIgOmlkPVwiZ2V0SWQoJ3BhcnQtYWJicmV2aWF0aW9uLWxhYmVsJylcIj5QYXJ0IEFiYnJldmlhdGlvbjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMVwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2LW1vZGVsPVwicGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzXCIgOmlkPVwiZ2V0SWQoJ3ByZXNlcnZlVGV4dCcpXCJcclxuICAgICAgICAgIEBjaGFuZ2U9XCJ3cml0ZUJvb2xlYW5WYWx1ZSgncHJlc2VydmVUZXh0R3JvdXBzJywgcGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzKVwiPjwvaW5wdXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC01XCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIDpmb3I9XCJnZXRJZCgncHJlc2VydmVUZXh0JylcIj5QcmVzZXJ2ZSBUZXh0IEdyb3VwczwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0xXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHYtbW9kZWw9XCJwYXJ0SW5mby5leHBhbmRNdWx0aW1lYXN1cmVSZXN0c1wiIDppZD1cImdldElkKCdleHBhbmRNdWx0aW1lYXN1cmVSZXN0cycpXCJcclxuICAgICAgICAgIEBjaGFuZ2U9XCJ3cml0ZUJvb2xlYW5WYWx1ZSgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnLCBwYXJ0SW5mby5leHBhbmRNdWx0aW1lYXN1cmVSZXN0cylcIj48L2lucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA6Zm9yPVwiZ2V0SWQoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJylcIj5FeHBhbmQgTXVsdGltZWFzdXJlIFJlc3RzPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMVwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2LW1vZGVsPVwicGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzXCIgOmlkPVwiZ2V0SWQoJ3ByZXNlcnZlVGV4dCcpXCJcclxuICAgICAgICAgIEBjaGFuZ2U9XCJ3cml0ZUJvb2xlYW5WYWx1ZSgncHJlc2VydmVUZXh0R3JvdXBzJywgcGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzKVwiPjwvaW5wdXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC01XCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIDpmb3I9XCJnZXRJZCgncHJlc2VydmVUZXh0JylcIj5JbmNsdWRlIE5leHQgU3RhdmU8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTMgdGV4dC1lbmRcIj5QYWdlIFNpemU8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNlwiPlxyXG4gICAgICAgIDxzZWxlY3RDb21wIDpkb21JZD1cImdldElkKCdwYWdlLXNpemUtc2VsZWN0JylcIiA6bGFiZWw9XCInJ1wiIDpzZWxlY3Rpb25zPVwicGFnZVNpemVzXCIgOmluaXRpYWxWYWx1ZT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInBhZ2VDaGFuZ2VcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdwYWdlLXdpZHRoLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoXCIgOnByZWNpc2lvbj1cIjBcIlxyXG4gICAgICAgICAgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygncGFnZVdpZHRoJylcIiA6ZGlzYWJsZWQ9XCJsb2NrRGltZW5zaW9uc1wiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+UGFnZSBXaWR0aDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTQgbXMtbjRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ3BhZ2UtaGVpZ2h0LWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodFwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3BhZ2VIZWlnaHQnKVwiIDpkaXNhYmxlZD1cImxvY2tEaW1lbnNpb25zXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5QYWdlIEhlaWdodDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnem9vbS1zY2FsZS1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lnpvb21TY2FsZVwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpwZXJjZW50PXRydWUgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnem9vbVNjYWxlJylcIiA6bWluVmFsdWU9XCIwLjI1XCIgOm1heFZhbHVlPVwiOFwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Wm9vbSBTY2FsZSAoJSk8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdzdmctc2NhbGUtaW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5zdmdTY2FsZVwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpwZXJjZW50PVwidHJ1ZVwiIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3N2Z1NjYWxlJylcIiA6bWluVmFsdWU9XCIwLjI1XCIgOm1heFZhbHVlPVwiMlwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Tm90ZSBTaXplICglKTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnbm90ZS1zcGFjaW5nLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQubm90ZVNwYWNpbmdcIiA6cHJlY2lzaW9uPVwiMlwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdub3RlU3BhY2luZycpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5Ob3RlIFNwYWNpbmc8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdtYXgtbWVhc3VyZS1zeXN0ZW0taW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5tYXhNZWFzdXJlU3lzdGVtXCJcclxuICAgICAgICAgIDpwcmVjaXNpb249XCIwXCIgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnbWF4TWVhc3VyZVN5c3RlbScpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5NZWFzdXJlcy9TeXN0ZW08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaWFsb2dDb250YWluZXI+XHJcbjwvdGVtcGxhdGU+Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/ts-loader/index.js??clonedRuleSet-1.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[1].rules[6].use[0]!./src/ui/components/dialogs/partInfo.vue?vue&type=script&setup=true&lang=ts\n\n}");
381
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n/* harmony import */ var _select_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select.vue */ \"./src/ui/components/dialogs/select.vue\");\n/* harmony import */ var _numberInput_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./numberInput.vue */ \"./src/ui/components/dialogs/numberInput.vue\");\n/* harmony import */ var _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../smo/data/partInfo */ \"./src/smo/data/partInfo.ts\");\n/* harmony import */ var _dialogContainer_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dialogContainer.vue */ \"./src/ui/components/dialogs/dialogContainer.vue\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*@__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({\n __name: 'partInfo',\n props: {\n domId: { type: String, required: true },\n label: { type: String, required: true },\n partInfo: { type: Object, required: true },\n updatePartInfoCb: { type: Function, required: true },\n commitCb: { type: Function, required: true },\n cancelCb: { type: Function, required: true }\n },\n setup(__props, { expose: __expose }) {\n __expose();\n const props = __props;\n const { domId, label, commitCb, cancelCb, updatePartInfoCb } = Object.assign({}, props);\n const partInfo = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)(new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_3__.SmoPartInfo(props.partInfo));\n const writeBooleanValue = (attr, value) => __awaiter(this, void 0, void 0, function* () {\n partInfo[attr] = value;\n yield updatePartInfoCb(partInfo);\n });\n const writeLayoutValue = (attr, value) => __awaiter(this, void 0, void 0, function* () {\n // no change?\n if (partInfo.layoutManager.globalLayout[attr] === value) {\n return;\n }\n partInfo.layoutManager.globalLayout[attr] = value;\n yield updatePartInfoCb(partInfo);\n });\n const pageSizes = [\n { label: 'Letter', value: 'letter' },\n { label: 'Legal', value: 'legal' },\n { label: 'Tabloid', value: 'tabloid' },\n { label: 'A4', value: 'a4' },\n { label: 'Custom', value: 'custom' }\n ];\n const predefinedDimensions = {\n 'letter': { width: 816, height: 1056 },\n 'legal': { width: 816, height: 1344 },\n 'tabloid': { width: 1056, height: 1632 },\n 'a4': { width: 794, height: 1123 }\n };\n // Page size is in pixels, but if it matches a preset we just show that.\n // User chooses 'custom' to unlock width/height editing.\n const pageSize = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)('custom');\n const pageChange = () => {\n Object.keys(predefinedDimensions).forEach((key) => {\n const dims = predefinedDimensions[key];\n if (dims.width === partInfo.layoutManager.globalLayout.pageWidth &&\n dims.height === partInfo.layoutManager.globalLayout.pageHeight) {\n pageSize.value = key;\n }\n });\n };\n const pageSizeCb = (val) => __awaiter(this, void 0, void 0, function* () {\n const dims = predefinedDimensions[val];\n if (dims) {\n partInfo.layoutManager.globalLayout.pageWidth = dims.width;\n partInfo.layoutManager.globalLayout.pageHeight = dims.height;\n }\n pageSize.value = val;\n // The watch will trigger the callback\n });\n const lockDimensions = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n pageChange();\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(pageSize, (newVal) => __awaiter(this, void 0, void 0, function* () {\n if (predefinedDimensions[newVal]) {\n lockDimensions.value = true;\n const dims = predefinedDimensions[newVal];\n partInfo.layoutManager.globalLayout.pageWidth = dims.width;\n partInfo.layoutManager.globalLayout.pageHeight = dims.height;\n }\n else {\n lockDimensions.value = false;\n }\n yield updatePartInfoCb(partInfo);\n }));\n if (predefinedDimensions[pageSize.value]) {\n lockDimensions.value = true;\n }\n const update = () => __awaiter(this, void 0, void 0, function* () {\n yield updatePartInfoCb(partInfo);\n });\n const includeNext = (0,vue__WEBPACK_IMPORTED_MODULE_0__.ref)(false);\n if (partInfo.stavesAfter > 0) {\n includeNext.value = true;\n }\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.watch)(includeNext, (newVal, oldVal) => __awaiter(this, void 0, void 0, function* () {\n if (newVal !== oldVal) {\n partInfo.stavesAfter = newVal ? 1 : 0;\n yield updatePartInfoCb(partInfo);\n }\n }));\n const updateLayoutFunc = (param) => {\n const cb = (value) => __awaiter(this, void 0, void 0, function* () {\n yield writeLayoutValue(param, value);\n });\n return cb;\n };\n const getId = (str) => {\n return `${domId}-${str}`;\n };\n const __returned__ = { props, domId, label, commitCb, cancelCb, updatePartInfoCb, partInfo, writeBooleanValue, writeLayoutValue, pageSizes, predefinedDimensions, pageSize, pageChange, pageSizeCb, lockDimensions, update, includeNext, updateLayoutFunc, getId, selectComp: _select_vue__WEBPACK_IMPORTED_MODULE_1__[\"default\"], numberInputApp: _numberInput_vue__WEBPACK_IMPORTED_MODULE_2__[\"default\"], dialogContainer: _dialogContainer_vue__WEBPACK_IMPORTED_MODULE_4__[\"default\"] };\n Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });\n return __returned__;\n }\n}));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTEudXNlWzBdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC9pbmRleC5qcz8/cnVsZVNldFsxXS5ydWxlc1s2XS51c2VbMF0hLi9zcmMvdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPXRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF5RDtBQ0NUO0FBQ1Y7QUFDUztBQUU2RTtBQUV4RTtBRGlCcEQsOEVBQTRCLG9EQUFnQixDQUFDO0lBQzNDLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUN2QyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7UUFDdkMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQzFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQ3BELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtRQUM1QyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7S0FDN0M7SUFDRCxLQUFLLENBQUMsT0FBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtRQUN4QyxRQUFRLEVBQUUsQ0FBQztRQ2xCYixNQUFNLEtBQUssR0FBRyxPQUFvQixDQUFDO1FBQ25DLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUscUJBQVEs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cy9wYXJ0SW5mby52dWU/MGE1MyIsIndlYnBhY2s6Ly9TbW8vLi9zcmMvdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZT9jNWFkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZUNvbXBvbmVudCBhcyBfZGVmaW5lQ29tcG9uZW50IH0gZnJvbSAndnVlJ1xuaW1wb3J0IHsgcmVmLCBSZWYsIHdhdGNoLCByZWFjdGl2ZSB9IGZyb20gJ3Z1ZSc7XHJcbmltcG9ydCBzZWxlY3RDb21wIGZyb20gJy4vc2VsZWN0LnZ1ZSc7XHJcbmltcG9ydCBudW1iZXJJbnB1dEFwcCBmcm9tICcuL251bWJlcklucHV0LnZ1ZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbic7XHJcbmltcG9ydCB7IFNtb1BhcnRJbmZvLCBTbW9QYXJ0SW5mb1N0cmluZ1R5cGUsIFNtb1BhcnRJbmZvTnVtVHlwZSwgU21vUGFydEluZm9Cb29sZWFuVHlwZSB9IGZyb20gJy4uLy4uLy4uL3Ntby9kYXRhL3BhcnRJbmZvJztcclxuaW1wb3J0IHsgR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgU21vTGF5b3V0TWFuYWdlciwgR2xvYmFsTGF5b3V0QXR0cmlidXRlc0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vc21vL2RhdGEvc2NvcmVNb2RpZmllcnMnO1xyXG5pbXBvcnQgZGlhbG9nQ29udGFpbmVyIGZyb20gJy4vZGlhbG9nQ29udGFpbmVyLnZ1ZSc7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIGRvbUlkOiBzdHJpbmcsXHJcbiAgbGFiZWw6IHN0cmluZyxcclxuICBwYXJ0SW5mbzogU21vUGFydEluZm8sXHJcbiAgdXBkYXRlUGFydEluZm9DYjogKHBpOiBTbW9QYXJ0SW5mbykgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjb21taXRDYjogKCkgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjYW5jZWxDYjogKCkgPT4gUHJvbWlzZTx2b2lkPlxyXG59XHJcbmludGVyZmFjZSBkaW1lbnNpb25zIHtcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbn1cclxudHlwZSBudW1iZXJXcml0ZXJUeXBlID0gKHZhbHVlOiBudW1iZXIpID0+IFByb21pc2U8dm9pZD47XHJcblxyXG5cbmV4cG9ydCBkZWZhdWx0IC8qQF9fUFVSRV9fKi9fZGVmaW5lQ29tcG9uZW50KHtcbiAgX19uYW1lOiAncGFydEluZm8nLFxuICBwcm9wczoge1xuICAgIGRvbUlkOiB7IHR5cGU6IFN0cmluZywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICBsYWJlbDogeyB0eXBlOiBTdHJpbmcsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgcGFydEluZm86IHsgdHlwZTogT2JqZWN0LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgIHVwZGF0ZVBhcnRJbmZvQ2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgY29tbWl0Q2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgY2FuY2VsQ2I6IHsgdHlwZTogRnVuY3Rpb24sIHJlcXVpcmVkOiB0cnVlIH1cbiAgfSxcbiAgc2V0dXAoX19wcm9wczogYW55LCB7IGV4cG9zZTogX19leHBvc2UgfSkge1xuICBfX2V4cG9zZSgpO1xuXHJcbmNvbnN0IHByb3BzID0gX19wcm9wcztcclxuY29uc3QgeyBkb21JZCwgbGFiZWwsIGNvbW1pdENiLCBjYW5jZWxDYiwgdXBkYXRlUGFydEluZm9DYiB9ID0geyAuLi5wcm9wcyB9O1xyXG5jb25zdCBwYXJ0SW5mbyA9IHJlYWN0aXZlKG5ldyBTbW9QYXJ0SW5mbyhwcm9wcy5wYXJ0SW5mbykpO1xyXG5cclxuY29uc3Qgd3JpdGVCb29sZWFuVmFsdWUgPSBhc3luYyAoYXR0cjogU21vUGFydEluZm9Cb29sZWFuVHlwZSwgdmFsdWU6IGJvb2xlYW4pID0+IHtcclxuICBwYXJ0SW5mb1thdHRyXSA9IHZhbHVlO1xyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IHdyaXRlTGF5b3V0VmFsdWUgPSBhc3luYyAoYXR0cjogR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgdmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgLy8gbm8gY2hhbmdlP1xyXG4gICAgaWYgKHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0W2F0dHJdID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dFthdHRyXSA9IHZhbHVlO1xyXG4gICAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3QgcGFnZVNpemVzOiBTZWxlY3RPcHRpb25bXSA9IFtcclxuICB7IGxhYmVsOiAnTGV0dGVyJywgdmFsdWU6ICdsZXR0ZXInIH0sXHJcbiAgeyBsYWJlbDogJ0xlZ2FsJywgdmFsdWU6ICdsZWdhbCcgfSxcclxuICB7IGxhYmVsOiAnVGFibG9pZCcsIHZhbHVlOiAndGFibG9pZCcgfSxcclxuICB7IGxhYmVsOiAnQTQnLCB2YWx1ZTogJ2E0JyB9LFxyXG4gIHsgbGFiZWw6ICdDdXN0b20nLCB2YWx1ZTogJ2N1c3RvbScgfVxyXG5dO1xyXG5jb25zdCBwcmVkZWZpbmVkRGltZW5zaW9uczogeyBba2V5OiBzdHJpbmddOiBkaW1lbnNpb25zIH0gPSB7XHJcbiAgJ2xldHRlcic6IHsgd2lkdGg6IDgxNiwgaGVpZ2h0OiAxMDU2IH0sXHJcbiAgJ2xlZ2FsJzogeyB3aWR0aDogODE2LCBoZWlnaHQ6IDEzNDQgfSxcclxuICAndGFibG9pZCc6IHsgd2lkdGg6IDEwNTYsIGhlaWdodDogMTYzMiB9LFxyXG4gICdhNCc6IHsgd2lkdGg6IDc5NCwgaGVpZ2h0OiAxMTIzIH1cclxufTtcclxuLy8gUGFnZSBzaXplIGlzIGluIHBpeGVscywgYnV0IGlmIGl0IG1hdGNoZXMgYSBwcmVzZXQgd2UganVzdCBzaG93IHRoYXQuXHJcbi8vIFVzZXIgY2hvb3NlcyAnY3VzdG9tJyB0byB1bmxvY2sgd2lkdGgvaGVpZ2h0IGVkaXRpbmcuXHJcbmNvbnN0IHBhZ2VTaXplID0gcmVmKCdjdXN0b20nKTtcclxuXHJcbmNvbnN0IHBhZ2VDaGFuZ2UgPSAoKSA9PiB7XHJcbiBPYmplY3Qua2V5cyhwcmVkZWZpbmVkRGltZW5zaW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNba2V5XTtcclxuICAgIGlmIChkaW1zLndpZHRoID09PSBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggJiZcclxuICAgICAgZGltcy5oZWlnaHQgPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQpIHtcclxuICAgICAgcGFnZVNpemUudmFsdWUgPSBrZXk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn07XHJcbmNvbnN0IHBhZ2VTaXplQ2IgPSBhc3luYyAodmFsOiBzdHJpbmcpID0+IHtcclxuICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNbdmFsXTtcclxuICBpZiAoZGltcykge1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoID0gZGltcy53aWR0aDtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQgPSBkaW1zLmhlaWdodDtcclxuICB9XHJcbiAgcGFnZVNpemUudmFsdWUgPSB2YWw7XHJcbiAgLy8gVGhlIHdhdGNoIHdpbGwgdHJpZ2dlciB0aGUgY2FsbGJhY2tcclxufVxyXG5jb25zdCBsb2NrRGltZW5zaW9ucyA9IHJlZihmYWxzZSk7XHJcbnBhZ2VDaGFuZ2UoKTtcclxud2F0Y2ggKHBhZ2VTaXplLCBhc3luYyAobmV3VmFsKSA9PiB7XHJcbiAgaWYgKHByZWRlZmluZWREaW1lbnNpb25zW25ld1ZhbF0pIHtcclxuICAgIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1tuZXdWYWxdO1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoID0gZGltcy53aWR0aDtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQgPSBkaW1zLmhlaWdodDtcclxuICB9IGVsc2Uge1xyXG4gICAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSBmYWxzZTtcclxuICB9XHJcbiAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn0pO1xyXG5pZiAocHJlZGVmaW5lZERpbWVuc2lvbnNbcGFnZVNpemUudmFsdWVdKSB7XHJcbiAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSB0cnVlXHJcbn1cclxuY29uc3QgdXBkYXRlID1hc3luYyAoKSA9PiB7XHJcbiAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3QgaW5jbHVkZU5leHQgPSByZWYoZmFsc2UpO1xyXG5pZiAocGFydEluZm8uc3RhdmVzQWZ0ZXIgPiAwKSB7XHJcbiAgaW5jbHVkZU5leHQudmFsdWUgPSB0cnVlO1xyXG59XHJcbndhdGNoIChpbmNsdWRlTmV4dCwgYXN5bmMgKG5ld1ZhbCwgb2xkVmFsKSA9PiB7XHJcbiAgaWYgKG5ld1ZhbCAhPT0gb2xkVmFsKSB7XHJcbiAgICBwYXJ0SW5mby5zdGF2ZXNBZnRlciA9IG5ld1ZhbCA/IDEgOiAwO1xyXG4gICAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbmNvbnN0IHVwZGF0ZUxheW91dEZ1bmMgPSAocGFyYW06IEdsb2JhbExheW91dEF0dHJpYnV0ZXMpOiBudW1iZXJXcml0ZXJUeXBlID0+IHtcclxuICBjb25zdCBjYiA9IGFzeW5jICh2YWx1ZTogbnVtYmVyKSA9PiB7XHJcbiAgICBhd2FpdCB3cml0ZUxheW91dFZhbHVlKHBhcmFtLCB2YWx1ZSk7XHJcbiAgfVxyXG4gIHJldHVybiBjYjtcclxufVxyXG5cclxuY29uc3QgZ2V0SWQgPSAoc3RyOiBzdHJpbmcpID0+IHtcclxuICByZXR1cm4gYCR7ZG9tSWR9LSR7c3RyfWA7XHJcbn1cclxuXHJcblxuY29uc3QgX19yZXR1cm5lZF9fID0geyBwcm9wcywgZG9tSWQsIGxhYmVsLCBjb21taXRDYiwgY2FuY2VsQ2IsIHVwZGF0ZVBhcnRJbmZvQ2IsIHBhcnRJbmZvLCB3cml0ZUJvb2xlYW5WYWx1ZSwgd3JpdGVMYXlvdXRWYWx1ZSwgcGFnZVNpemVzLCBwcmVkZWZpbmVkRGltZW5zaW9ucywgcGFnZVNpemUsIHBhZ2VDaGFuZ2UsIHBhZ2VTaXplQ2IsIGxvY2tEaW1lbnNpb25zLCB1cGRhdGUsIGluY2x1ZGVOZXh0LCB1cGRhdGVMYXlvdXRGdW5jLCBnZXRJZCwgc2VsZWN0Q29tcCwgbnVtYmVySW5wdXRBcHAsIGRpYWxvZ0NvbnRhaW5lciB9XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoX19yZXR1cm5lZF9fLCAnX19pc1NjcmlwdFNldHVwJywgeyBlbnVtZXJhYmxlOiBmYWxzZSwgdmFsdWU6IHRydWUgfSlcbnJldHVybiBfX3JldHVybmVkX19cbn1cblxufSkiLCI8c2NyaXB0IHNldHVwIGxhbmc9XCJ0c1wiPlxyXG5pbXBvcnQgeyByZWYsIFJlZiwgd2F0Y2gsIHJlYWN0aXZlIH0gZnJvbSAndnVlJztcclxuaW1wb3J0IHNlbGVjdENvbXAgZnJvbSAnLi9zZWxlY3QudnVlJztcclxuaW1wb3J0IG51bWJlcklucHV0QXBwIGZyb20gJy4vbnVtYmVySW5wdXQudnVlJztcclxuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcclxuaW1wb3J0IHsgU21vUGFydEluZm8sIFNtb1BhcnRJbmZvU3RyaW5nVHlwZSwgU21vUGFydEluZm9OdW1UeXBlLCBTbW9QYXJ0SW5mb0Jvb2xlYW5UeXBlIH0gZnJvbSAnLi4vLi4vLi4vc21vL2RhdGEvcGFydEluZm8nO1xyXG5pbXBvcnQgeyBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzLCBTbW9MYXlvdXRNYW5hZ2VyLCBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzQXJyYXkgfSBmcm9tICcuLi8uLi8uLi9zbW8vZGF0YS9zY29yZU1vZGlmaWVycyc7XHJcbmltcG9ydCBkaWFsb2dDb250YWluZXIgZnJvbSAnLi9kaWFsb2dDb250YWluZXIudnVlJztcclxuXHJcbmludGVyZmFjZSBQcm9wcyB7XHJcbiAgZG9tSWQ6IHN0cmluZyxcclxuICBsYWJlbDogc3RyaW5nLFxyXG4gIHBhcnRJbmZvOiBTbW9QYXJ0SW5mbyxcclxuICB1cGRhdGVQYXJ0SW5mb0NiOiAocGk6IFNtb1BhcnRJbmZvKSA9PiBQcm9taXNlPHZvaWQ+LFxyXG4gIGNvbW1pdENiOiAoKSA9PiBQcm9taXNlPHZvaWQ+LFxyXG4gIGNhbmNlbENiOiAoKSA9PiBQcm9taXNlPHZvaWQ+XHJcbn1cclxuY29uc3QgcHJvcHMgPSBkZWZpbmVQcm9wczxQcm9wcz4oKTtcclxuY29uc3QgeyBkb21JZCwgbGFiZWwsIGNvbW1pdENiLCBjYW5jZWxDYiwgdXBkYXRlUGFydEluZm9DYiB9ID0geyAuLi5wcm9wcyB9O1xyXG5jb25zdCBwYXJ0SW5mbyA9IHJlYWN0aXZlKG5ldyBTbW9QYXJ0SW5mbyhwcm9wcy5wYXJ0SW5mbykpO1xyXG5cclxuY29uc3Qgd3JpdGVCb29sZWFuVmFsdWUgPSBhc3luYyAoYXR0cjogU21vUGFydEluZm9Cb29sZWFuVHlwZSwgdmFsdWU6IGJvb2xlYW4pID0+IHtcclxuICBwYXJ0SW5mb1thdHRyXSA9IHZhbHVlO1xyXG4gIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IHdyaXRlTGF5b3V0VmFsdWUgPSBhc3luYyAoYXR0cjogR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgdmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgLy8gbm8gY2hhbmdlP1xyXG4gICAgaWYgKHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0W2F0dHJdID09PSB2YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dFthdHRyXSA9IHZhbHVlO1xyXG4gICAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3QgcGFnZVNpemVzOiBTZWxlY3RPcHRpb25bXSA9IFtcclxuICB7IGxhYmVsOiAnTGV0dGVyJywgdmFsdWU6ICdsZXR0ZXInIH0sXHJcbiAgeyBsYWJlbDogJ0xlZ2FsJywgdmFsdWU6ICdsZWdhbCcgfSxcclxuICB7IGxhYmVsOiAnVGFibG9pZCcsIHZhbHVlOiAndGFibG9pZCcgfSxcclxuICB7IGxhYmVsOiAnQTQnLCB2YWx1ZTogJ2E0JyB9LFxyXG4gIHsgbGFiZWw6ICdDdXN0b20nLCB2YWx1ZTogJ2N1c3RvbScgfVxyXG5dO1xyXG5pbnRlcmZhY2UgZGltZW5zaW9ucyB7XHJcbiAgd2lkdGg6IG51bWJlcixcclxuICBoZWlnaHQ6IG51bWJlclxyXG59XHJcbmNvbnN0IHByZWRlZmluZWREaW1lbnNpb25zOiB7IFtrZXk6IHN0cmluZ106IGRpbWVuc2lvbnMgfSA9IHtcclxuICAnbGV0dGVyJzogeyB3aWR0aDogODE2LCBoZWlnaHQ6IDEwNTYgfSxcclxuICAnbGVnYWwnOiB7IHdpZHRoOiA4MTYsIGhlaWdodDogMTM0NCB9LFxyXG4gICd0YWJsb2lkJzogeyB3aWR0aDogMTA1NiwgaGVpZ2h0OiAxNjMyIH0sXHJcbiAgJ2E0JzogeyB3aWR0aDogNzk0LCBoZWlnaHQ6IDExMjMgfVxyXG59O1xyXG4vLyBQYWdlIHNpemUgaXMgaW4gcGl4ZWxzLCBidXQgaWYgaXQgbWF0Y2hlcyBhIHByZXNldCB3ZSBqdXN0IHNob3cgdGhhdC5cclxuLy8gVXNlciBjaG9vc2VzICdjdXN0b20nIHRvIHVubG9jayB3aWR0aC9oZWlnaHQgZWRpdGluZy5cclxuY29uc3QgcGFnZVNpemUgPSByZWYoJ2N1c3RvbScpO1xyXG5cclxuY29uc3QgcGFnZUNoYW5nZSA9ICgpID0+IHtcclxuIE9iamVjdC5rZXlzKHByZWRlZmluZWREaW1lbnNpb25zKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1trZXldO1xyXG4gICAgaWYgKGRpbXMud2lkdGggPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aCAmJlxyXG4gICAgICBkaW1zLmhlaWdodCA9PT0gcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCkge1xyXG4gICAgICBwYWdlU2l6ZS52YWx1ZSA9IGtleTtcclxuICAgIH1cclxuICB9KTtcclxufTtcclxuY29uc3QgcGFnZVNpemVDYiA9IGFzeW5jICh2YWw6IHN0cmluZykgPT4ge1xyXG4gIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1t2YWxdO1xyXG4gIGlmIChkaW1zKSB7XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggPSBkaW1zLndpZHRoO1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCA9IGRpbXMuaGVpZ2h0O1xyXG4gIH1cclxuICBwYWdlU2l6ZS52YWx1ZSA9IHZhbDtcclxuICAvLyBUaGUgd2F0Y2ggd2lsbCB0cmlnZ2VyIHRoZSBjYWxsYmFja1xyXG59XHJcbmNvbnN0IGxvY2tEaW1lbnNpb25zID0gcmVmKGZhbHNlKTtcclxucGFnZUNoYW5nZSgpO1xyXG53YXRjaCAocGFnZVNpemUsIGFzeW5jIChuZXdWYWwpID0+IHtcclxuICBpZiAocHJlZGVmaW5lZERpbWVuc2lvbnNbbmV3VmFsXSkge1xyXG4gICAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSB0cnVlO1xyXG4gICAgY29uc3QgZGltcyA9IHByZWRlZmluZWREaW1lbnNpb25zW25ld1ZhbF07XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggPSBkaW1zLndpZHRoO1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCA9IGRpbXMuaGVpZ2h0O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IGZhbHNlO1xyXG4gIH1cclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufSk7XHJcbmlmIChwcmVkZWZpbmVkRGltZW5zaW9uc1twYWdlU2l6ZS52YWx1ZV0pIHtcclxuICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IHRydWVcclxufVxyXG5jb25zdCB1cGRhdGUgPWFzeW5jICgpID0+IHtcclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufVxyXG5jb25zdCBpbmNsdWRlTmV4dCA9IHJlZihmYWxzZSk7XHJcbmlmIChwYXJ0SW5mby5zdGF2ZXNBZnRlciA+IDApIHtcclxuICBpbmNsdWRlTmV4dC52YWx1ZSA9IHRydWU7XHJcbn1cclxud2F0Y2ggKGluY2x1ZGVOZXh0LCBhc3luYyAobmV3VmFsLCBvbGRWYWwpID0+IHtcclxuICBpZiAobmV3VmFsICE9PSBvbGRWYWwpIHtcclxuICAgIHBhcnRJbmZvLnN0YXZlc0FmdGVyID0gbmV3VmFsID8gMSA6IDA7XHJcbiAgICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxuICB9XHJcbn0pO1xyXG5cclxudHlwZSBudW1iZXJXcml0ZXJUeXBlID0gKHZhbHVlOiBudW1iZXIpID0+IFByb21pc2U8dm9pZD47XHJcblxyXG5jb25zdCB1cGRhdGVMYXlvdXRGdW5jID0gKHBhcmFtOiBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzKTogbnVtYmVyV3JpdGVyVHlwZSA9PiB7XHJcbiAgY29uc3QgY2IgPSBhc3luYyAodmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgYXdhaXQgd3JpdGVMYXlvdXRWYWx1ZShwYXJhbSwgdmFsdWUpO1xyXG4gIH1cclxuICByZXR1cm4gY2I7XHJcbn1cclxuXHJcbmNvbnN0IGdldElkID0gKHN0cjogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIGAke2RvbUlkfS0ke3N0cn1gO1xyXG59XHJcblxyXG48L3NjcmlwdD5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaWFsb2dDb250YWluZXIgOmRvbUlkPVwiZG9tSWRcIiA6Y29tbWl0Q2I9XCJjb21taXRDYlwiIDpjYW5jZWxDYj1cImNhbmNlbENiXCIgOmxhYmVsPVwibGFiZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtOFwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgOnBsYWNlaG9sZGVyPVwicGFydEluZm8ucGFydE5hbWVcIiBhcmlhLWxhYmVsPVwiUGFydCBOYW1lXCJcclxuICAgICAgICAgIDppZD1cImdldElkKCdwYXJ0LW5hbWUtaW5wdXQnKVwiIHYtbW9kZWw9XCJwYXJ0SW5mby5wYXJ0TmFtZVwiIEBjaGFuZ2U9XCJ1cGRhdGVcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTQgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiXCIgOmlkPVwiZ2V0SWQoJ3BhcnQtbmFtZS1sYWJlbCcpXCI+UGFydCBOYW1lPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC04XCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiA6cGxhY2Vob2xkZXI9XCJwYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uXCIgYXJpYS1sYWJlbD1cIlBhcnQgQWJicmV2aWF0aW9uXCJcclxuICAgICAgICAgIDppZD1cImdldElkKCdwYXJ0LWFiYnJldmlhdGlvbi1pbnB1dCcpXCIgdi1tb2RlbD1cInBhcnRJbmZvLnBhcnRBYmJyZXZpYXRpb25cIiBAY2hhbmdlPVwidXBkYXRlXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiIDppZD1cImdldElkKCdwYXJ0LWFiYnJldmlhdGlvbi1sYWJlbCcpXCI+UGFydCBBYmJyZXZpYXRpb248L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdi1tb2RlbD1cInBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3Vwc1wiIDppZD1cImdldElkKCdwcmVzZXJ2ZVRleHQnKVwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwid3JpdGVCb29sZWFuVmFsdWUoJ3ByZXNlcnZlVGV4dEdyb3VwcycsIHBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3VwcylcIj48L2lucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA6Zm9yPVwiZ2V0SWQoJ3ByZXNlcnZlVGV4dCcpXCI+UHJlc2VydmUgVGV4dCBHcm91cHM8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMVwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2LW1vZGVsPVwicGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHNcIiA6aWQ9XCJnZXRJZCgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnKVwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwid3JpdGVCb29sZWFuVmFsdWUoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJywgcGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMpXCI+PC9pbnB1dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTVcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgOmZvcj1cImdldElkKCdleHBhbmRNdWx0aW1lYXN1cmVSZXN0cycpXCI+RXhwYW5kIE11bHRpbWVhc3VyZSBSZXN0czwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdi1tb2RlbD1cImluY2x1ZGVOZXh0XCIgOmlkPVwiZ2V0SWQoJ2luY2x1ZGVOZXh0JylcIj48L2lucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA6Zm9yPVwiZ2V0SWQoJ2luY2x1ZGVOZXh0JylcIj5JbmNsdWRlIE5leHQgU3RhdmU8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTMgdGV4dC1lbmRcIj5QYWdlIFNpemU8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNlwiPlxyXG4gICAgICAgIDxzZWxlY3RDb21wIDpkb21JZD1cImdldElkKCdwYWdlLXNpemUtc2VsZWN0JylcIiA6bGFiZWw9XCInJ1wiIDpzZWxlY3Rpb25zPVwicGFnZVNpemVzXCIgOmluaXRpYWxWYWx1ZT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInBhZ2VTaXplQ2JcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdwYWdlLXdpZHRoLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoXCIgOnByZWNpc2lvbj1cIjBcIlxyXG4gICAgICAgICAgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygncGFnZVdpZHRoJylcIiA6ZGlzYWJsZWQ9XCJsb2NrRGltZW5zaW9uc1wiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+UGFnZSBXaWR0aDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTQgbXMtbjRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ3BhZ2UtaGVpZ2h0LWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodFwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3BhZ2VIZWlnaHQnKVwiIDpkaXNhYmxlZD1cImxvY2tEaW1lbnNpb25zXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5QYWdlIEhlaWdodDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnem9vbS1zY2FsZS1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lnpvb21TY2FsZVwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpwZXJjZW50PXRydWUgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnem9vbVNjYWxlJylcIiA6bWluVmFsdWU9XCIwLjI1XCIgOm1heFZhbHVlPVwiOFwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Wm9vbSBTY2FsZSAoJSk8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdzdmctc2NhbGUtaW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5zdmdTY2FsZVwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpwZXJjZW50PVwidHJ1ZVwiIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3N2Z1NjYWxlJylcIiA6bWluVmFsdWU9XCIwLjI1XCIgOm1heFZhbHVlPVwiMlwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Tm90ZSBTaXplICglKTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnbm90ZS1zcGFjaW5nLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQubm90ZVNwYWNpbmdcIiA6cHJlY2lzaW9uPVwiMlwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdub3RlU3BhY2luZycpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5Ob3RlIFNwYWNpbmc8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdtYXgtbWVhc3VyZS1zeXN0ZW0taW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5tYXhNZWFzdXJlU3lzdGVtXCJcclxuICAgICAgICAgIDpwcmVjaXNpb249XCIwXCIgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnbWF4TWVhc3VyZVN5c3RlbScpXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj5NZWFzdXJlcy9TeXN0ZW08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaWFsb2dDb250YWluZXI+XHJcbjwvdGVtcGxhdGU+Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/ts-loader/index.js??clonedRuleSet-1.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[1].rules[6].use[0]!./src/ui/components/dialogs/partInfo.vue?vue&type=script&setup=true&lang=ts\n\n}");
382
382
 
383
383
  /***/ },
384
384
 
@@ -807,7 +807,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
807
807
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
808
808
 
809
809
  "use strict";
810
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _hoisted_1 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_2 = { class: \"col col-8\" };\nconst _hoisted_3 = [\"placeholder\", \"id\"];\nconst _hoisted_4 = { class: \"col col-4 text-start\" };\nconst _hoisted_5 = [\"id\"];\nconst _hoisted_6 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_7 = { class: \"col col-8\" };\nconst _hoisted_8 = [\"placeholder\", \"id\"];\nconst _hoisted_9 = { class: \"col col-4 text-start\" };\nconst _hoisted_10 = [\"id\"];\nconst _hoisted_11 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_12 = { class: \"col col-1\" };\nconst _hoisted_13 = [\"id\"];\nconst _hoisted_14 = { class: \"col col-5\" };\nconst _hoisted_15 = [\"for\"];\nconst _hoisted_16 = { class: \"col col-1\" };\nconst _hoisted_17 = [\"id\"];\nconst _hoisted_18 = { class: \"col col-5\" };\nconst _hoisted_19 = [\"for\"];\nconst _hoisted_20 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_21 = { class: \"col col-1\" };\nconst _hoisted_22 = [\"id\"];\nconst _hoisted_23 = { class: \"col col-5\" };\nconst _hoisted_24 = [\"for\"];\nconst _hoisted_25 = { class: \"row mb-2\" };\nconst _hoisted_26 = { class: \"col col-6\" };\nconst _hoisted_27 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_28 = { class: \"col col-4\" };\nconst _hoisted_29 = { class: \"col col-4 ms-n4\" };\nconst _hoisted_30 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_31 = { class: \"col col-4\" };\nconst _hoisted_32 = { class: \"col col-4 ms-n4\" };\nconst _hoisted_33 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_34 = { class: \"col col-4\" };\nconst _hoisted_35 = { class: \"col col-4 ms-n4\" };\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"dialogContainer\"], {\n domId: $setup.domId,\n commitCb: $setup.commitCb,\n cancelCb: $setup.cancelCb,\n label: $setup.label\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"text\",\n class: \"form-control\",\n placeholder: $setup.partInfo.partName,\n \"aria-label\": \"Part Name\",\n id: $setup.getId('part-name-input'),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => (($setup.partInfo.partName) = $event)),\n onChange: $setup.update\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_3), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.partInfo.partName]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"\",\n id: $setup.getId('part-name-label')\n }, \"Part Name\", 8 /* PROPS */, _hoisted_5)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"text\",\n class: \"form-control\",\n placeholder: $setup.partInfo.partAbbreviation,\n \"aria-label\": \"Part Abbreviation\",\n id: $setup.getId('part-abbreviation-input'),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => (($setup.partInfo.partAbbreviation) = $event)),\n onChange: $setup.update\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_8), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.partInfo.partAbbreviation]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"\",\n id: $setup.getId('part-abbreviation-label')\n }, \"Part Abbreviation\", 8 /* PROPS */, _hoisted_10)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_11, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_12, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => (($setup.partInfo.preserveTextGroups) = $event)),\n id: $setup.getId('preserveText'),\n onChange: _cache[3] || (_cache[3] = ($event) => ($setup.writeBooleanValue('preserveTextGroups', $setup.partInfo.preserveTextGroups)))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_13), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.partInfo.preserveTextGroups]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_14, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('preserveText')\n }, \"Preserve Text Groups\", 8 /* PROPS */, _hoisted_15)\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_16, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event) => (($setup.partInfo.expandMultimeasureRests) = $event)),\n id: $setup.getId('expandMultimeasureRests'),\n onChange: _cache[5] || (_cache[5] = ($event) => ($setup.writeBooleanValue('expandMultimeasureRests', $setup.partInfo.expandMultimeasureRests)))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_17), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.partInfo.expandMultimeasureRests]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_18, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('expandMultimeasureRests')\n }, \"Expand Multimeasure Rests\", 8 /* PROPS */, _hoisted_19)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_20, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_21, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event) => (($setup.partInfo.preserveTextGroups) = $event)),\n id: $setup.getId('preserveText'),\n onChange: _cache[7] || (_cache[7] = ($event) => ($setup.writeBooleanValue('preserveTextGroups', $setup.partInfo.preserveTextGroups)))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_22), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.partInfo.preserveTextGroups]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_23, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('preserveText')\n }, \"Include Next Stave\", 8 /* PROPS */, _hoisted_24)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_25, [\n _cache[8] || (_cache[8] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-3 text-end\" }, \"Page Size\", -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_26, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"selectComp\"], {\n domId: $setup.getId('page-size-select'),\n label: '',\n selections: $setup.pageSizes,\n initialValue: $setup.pageSize,\n changeCb: $setup.pageChange\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\"])\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_27, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_28, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('page-width-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.pageWidth,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('pageWidth'),\n disabled: $setup.lockDimensions\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\", \"disabled\"])\n ]),\n _cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Page Width\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_29, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('page-height-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.pageHeight,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('pageHeight'),\n disabled: $setup.lockDimensions\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\", \"disabled\"])\n ]),\n _cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Page Height\")\n ], -1 /* CACHED */))\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_30, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_31, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('zoom-scale-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.zoomScale,\n precision: 0,\n percent: true,\n changeCb: $setup.updateLayoutFunc('zoomScale'),\n minValue: 0.25,\n maxValue: 8\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Zoom Scale (%)\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_32, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('svg-scale-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.svgScale,\n precision: 0,\n percent: true,\n changeCb: $setup.updateLayoutFunc('svgScale'),\n minValue: 0.25,\n maxValue: 2\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Note Size (%)\")\n ], -1 /* CACHED */))\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_33, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_34, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('note-spacing-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.noteSpacing,\n precision: 2,\n changeCb: $setup.updateLayoutFunc('noteSpacing')\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[13] || (_cache[13] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Note Spacing\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_35, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('max-measure-system-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.maxMeasureSystem,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('maxMeasureSystem')\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[14] || (_cache[14] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Measures/System\")\n ], -1 /* CACHED */))\n ])\n ]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"domId\", \"commitCb\", \"cancelCb\", \"label\"]));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTEudXNlWzBdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC90ZW1wbGF0ZUxvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1syXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbNl0udXNlWzBdIS4vc3JjL3VpL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0SW5mby52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0MTdhMWMmdHM9dHJ1ZSIsIm1hcHBpbmdzIjoiOzs7OztBQUF3UTtBQUV4USxNQUFNLFVBQVUsR0FBRyxFQzBHVixLQUFLLEVBQUMsNkJBQTZCO0FEekc1QyxNQUFNLFVBQVUsR0FBRyxFQzBHUixLQUFLLEVBQUMsV0FBVztBRHpHNUIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDO0FBQ3hDLE1BQU0sVUFBVSxHQUFHLEVDNEdSLEtBQUssRUFBQyxzQkFBc0I7QUQzR3ZDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ3pCLE1BQU0sVUFBVSxHQUFHLEVDOEdWLEtBQUssRUFBQyw2QkFBNkI7QUQ3RzVDLE1BQU0sVUFBVSxHQUFHLEVDOEdSLEtBQUssRUFBQyxXQUFXO0FEN0c1QixNQUFNLFVBQVUsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM7QUFDeEMsTUFBTSxVQUFVLEdBQUcsRUNnSFIsS0FBSyxFQUFDLHNCQUFzQjtBRC9HdkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDMUIsTUFBTSxXQUFXLEdBQUcsRUNrSFgsS0FBSyxFQUFDLDZCQUE2QjtBRGpINUMsTUFBTSxXQUFXLEdBQUcsRUNrSFQsS0FBSyxFQUFDLFdBQVc7QURqSDVCLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQzFCLE1BQU0sV0FBVyxHQUFHLEVDb0hU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QUM7U0FDSCxDQUFDO1FBQ0YsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZO0tBQ2xCLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL1Ntby8uL3NyYy91aS9jb21wb25lbnRzL2RpYWxvZ3MvcGFydEluZm8udnVlP2MwNmMiLCJ3ZWJwYWNrOi8vU21vLy4vc3JjL3VpL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0SW5mby52dWU/YzVhZCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2TW9kZWxUZXh0IGFzIF92TW9kZWxUZXh0LCBjcmVhdGVFbGVtZW50Vk5vZGUgYXMgX2NyZWF0ZUVsZW1lbnRWTm9kZSwgd2l0aERpcmVjdGl2ZXMgYXMgX3dpdGhEaXJlY3RpdmVzLCB2TW9kZWxDaGVja2JveCBhcyBfdk1vZGVsQ2hlY2tib3gsIGNyZWF0ZVZOb2RlIGFzIF9jcmVhdGVWTm9kZSwgd2l0aEN0eCBhcyBfd2l0aEN0eCwgb3BlbkJsb2NrIGFzIF9vcGVuQmxvY2ssIGNyZWF0ZUJsb2NrIGFzIF9jcmVhdGVCbG9jayB9IGZyb20gXCJ2dWVcIlxuXG5jb25zdCBfaG9pc3RlZF8xID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF8yID0geyBjbGFzczogXCJjb2wgY29sLThcIiB9XG5jb25zdCBfaG9pc3RlZF8zID0gW1wicGxhY2Vob2xkZXJcIiwgXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfNCA9IHsgY2xhc3M6IFwiY29sIGNvbC00IHRleHQtc3RhcnRcIiB9XG5jb25zdCBfaG9pc3RlZF81ID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzYgPSB7IGNsYXNzOiBcInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiIH1cbmNvbnN0IF9ob2lzdGVkXzcgPSB7IGNsYXNzOiBcImNvbCBjb2wtOFwiIH1cbmNvbnN0IF9ob2lzdGVkXzggPSBbXCJwbGFjZWhvbGRlclwiLCBcImlkXCJdXG5jb25zdCBfaG9pc3RlZF85ID0geyBjbGFzczogXCJjb2wgY29sLTQgdGV4dC1zdGFydFwiIH1cbmNvbnN0IF9ob2lzdGVkXzEwID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzExID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF8xMiA9IHsgY2xhc3M6IFwiY29sIGNvbC0xXCIgfVxuY29uc3QgX2hvaXN0ZWRfMTMgPSBbXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfMTQgPSB7IGNsYXNzOiBcImNvbCBjb2wtNVwiIH1cbmNvbnN0IF9ob2lzdGVkXzE1ID0gW1wiZm9yXCJdXG5jb25zdCBfaG9pc3RlZF8xNiA9IHsgY2xhc3M6IFwiY29sIGNvbC0xXCIgfVxuY29uc3QgX2hvaXN0ZWRfMTcgPSBbXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfMTggPSB7IGNsYXNzOiBcImNvbCBjb2wtNVwiIH1cbmNvbnN0IF9ob2lzdGVkXzE5ID0gW1wiZm9yXCJdXG5jb25zdCBfaG9pc3RlZF8yMCA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMjEgPSB7IGNsYXNzOiBcImNvbCBjb2wtMVwiIH1cbmNvbnN0IF9ob2lzdGVkXzIyID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzIzID0geyBjbGFzczogXCJjb2wgY29sLTVcIiB9XG5jb25zdCBfaG9pc3RlZF8yNCA9IFtcImZvclwiXVxuY29uc3QgX2hvaXN0ZWRfMjUgPSB7IGNsYXNzOiBcInJvdyBtYi0yXCIgfVxuY29uc3QgX2hvaXN0ZWRfMjYgPSB7IGNsYXNzOiBcImNvbCBjb2wtNlwiIH1cbmNvbnN0IF9ob2lzdGVkXzI3ID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF8yOCA9IHsgY2xhc3M6IFwiY29sIGNvbC00XCIgfVxuY29uc3QgX2hvaXN0ZWRfMjkgPSB7IGNsYXNzOiBcImNvbCBjb2wtNCBtcy1uNFwiIH1cbmNvbnN0IF9ob2lzdGVkXzMwID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF8zMSA9IHsgY2xhc3M6IFwiY29sIGNvbC00XCIgfVxuY29uc3QgX2hvaXN0ZWRfMzIgPSB7IGNsYXNzOiBcImNvbCBjb2wtNCBtcy1uNFwiIH1cbmNvbnN0IF9ob2lzdGVkXzMzID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF8zNCA9IHsgY2xhc3M6IFwiY29sIGNvbC00XCIgfVxuY29uc3QgX2hvaXN0ZWRfMzUgPSB7IGNsYXNzOiBcImNvbCBjb2wtNCBtcy1uNFwiIH1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlcihfY3R4OiBhbnksX2NhY2hlOiBhbnksJHByb3BzOiBhbnksJHNldHVwOiBhbnksJGRhdGE6IGFueSwkb3B0aW9uczogYW55KSB7XG4gIHJldHVybiAoX29wZW5CbG9jaygpLCBfY3JlYXRlQmxvY2soJHNldHVwW1wiZGlhbG9nQ29udGFpbmVyXCJdLCB7XG4gICAgZG9tSWQ6ICRzZXR1cC5kb21JZCxcbiAgICBjb21taXRDYjogJHNldHVwLmNvbW1pdENiLFxuICAgIGNhbmNlbENiOiAkc2V0dXAuY2FuY2VsQ2IsXG4gICAgbGFiZWw6ICRzZXR1cC5sYWJlbFxuICB9LCB7XG4gICAgZGVmYXVsdDogX3dpdGhDdHgoKCkgPT4gW1xuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xLCBbXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMiwgW1xuICAgICAgICAgIF93aXRoRGlyZWN0aXZlcyhfY3JlYXRlRWxlbWVudFZOb2RlKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNvbnRyb2xcIixcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAkc2V0dXAucGFydEluZm8ucGFydE5hbWUsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogXCJQYXJ0IE5hbWVcIixcbiAgICAgICAgICAgIGlkOiAkc2V0dXAuZ2V0SWQoJ3BhcnQtbmFtZS1pbnB1dCcpLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTptb2RlbFZhbHVlXCI6IF9jYWNoZVswXSB8fCAoX2NhY2hlWzBdID0gKCRldmVudDogYW55KSA9PiAoKCRzZXR1cC5wYXJ0SW5mby5wYXJ0TmFtZSkgPSAkZXZlbnQpKSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAkc2V0dXAudXBkYXRlXG4gICAgICAgICAgfSwgbnVsbCwgNDAgLyogUFJPUFMsIE5FRURfSFlEUkFUSU9OICovLCBfaG9pc3RlZF8zKSwgW1xuICAgICAgICAgICAgW192TW9kZWxUZXh0LCAkc2V0dXAucGFydEluZm8ucGFydE5hbWVdXG4gICAgICAgICAgXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNCwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcIlwiLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgncGFydC1uYW1lLWxhYmVsJylcbiAgICAgICAgICB9LCBcIlBhcnQgTmFtZVwiLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF81KVxuICAgICAgICBdKVxuICAgICAgXSksXG4gICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzYsIFtcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF83LCBbXG4gICAgICAgICAgX3dpdGhEaXJlY3RpdmVzKF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY29udHJvbFwiLFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICRzZXR1cC5wYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uLFxuICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiUGFydCBBYmJyZXZpYXRpb25cIixcbiAgICAgICAgICAgIGlkOiAkc2V0dXAuZ2V0SWQoJ3BhcnQtYWJicmV2aWF0aW9uLWlucHV0JyksXG4gICAgICAgICAgICBcIm9uVXBkYXRlOm1vZGVsVmFsdWVcIjogX2NhY2hlWzFdIHx8IChfY2FjaGVbMV0gPSAoJGV2ZW50OiBhbnkpID0+ICgoJHNldHVwLnBhcnRJbmZvLnBhcnRBYmJyZXZpYXRpb24pID0gJGV2ZW50KSksXG4gICAgICAgICAgICBvbkNoYW5nZTogJHNldHVwLnVwZGF0ZVxuICAgICAgICAgIH0sIG51bGwsIDQwIC8qIFBST1BTLCBORUVEX0hZRFJBVElPTiAqLywgX2hvaXN0ZWRfOCksIFtcbiAgICAgICAgICAgIFtfdk1vZGVsVGV4dCwgJHNldHVwLnBhcnRJbmZvLnBhcnRBYmJyZXZpYXRpb25dXG4gICAgICAgICAgXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfOSwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcIlwiLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgncGFydC1hYmJyZXZpYXRpb24tbGFiZWwnKVxuICAgICAgICAgIH0sIFwiUGFydCBBYmJyZXZpYXRpb25cIiwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMTApXG4gICAgICAgIF0pXG4gICAgICBdKSxcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMTEsIFtcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xMiwgW1xuICAgICAgICAgIF93aXRoRGlyZWN0aXZlcyhfY3JlYXRlRWxlbWVudFZOb2RlKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiZm9ybS1jaGVjay1pbnB1dFwiLFxuICAgICAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTptb2RlbFZhbHVlXCI6IF9jYWNoZVsyXSB8fCAoX2NhY2hlWzJdID0gKCRldmVudDogYW55KSA9PiAoKCRzZXR1cC5wYXJ0SW5mby5wcmVzZXJ2ZVRleHRHcm91cHMpID0gJGV2ZW50KSksXG4gICAgICAgICAgICBpZDogJHNldHVwLmdldElkKCdwcmVzZXJ2ZVRleHQnKSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBfY2FjaGVbM10gfHwgKF9jYWNoZVszXSA9ICgkZXZlbnQ6IGFueSkgPT4gKCRzZXR1cC53cml0ZUJvb2xlYW5WYWx1ZSgncHJlc2VydmVUZXh0R3JvdXBzJywgJHNldHVwLnBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3VwcykpKVxuICAgICAgICAgIH0sIG51bGwsIDQwIC8qIFBST1BTLCBORUVEX0hZRFJBVElPTiAqLywgX2hvaXN0ZWRfMTMpLCBbXG4gICAgICAgICAgICBbX3ZNb2RlbENoZWNrYm94LCAkc2V0dXAucGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzXVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzE0LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImxhYmVsXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIixcbiAgICAgICAgICAgIGZvcjogJHNldHVwLmdldElkKCdwcmVzZXJ2ZVRleHQnKVxuICAgICAgICAgIH0sIFwiUHJlc2VydmUgVGV4dCBHcm91cHNcIiwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMTUpXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzE2LCBbXG4gICAgICAgICAgX3dpdGhEaXJlY3RpdmVzKF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNoZWNrLWlucHV0XCIsXG4gICAgICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgICAgICBcIm9uVXBkYXRlOm1vZGVsVmFsdWVcIjogX2NhY2hlWzRdIHx8IChfY2FjaGVbNF0gPSAoJGV2ZW50OiBhbnkpID0+ICgoJHNldHVwLnBhcnRJbmZvLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnKSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiBfY2FjaGVbNV0gfHwgKF9jYWNoZVs1XSA9ICgkZXZlbnQ6IGFueSkgPT4gKCRzZXR1cC53cml0ZUJvb2xlYW5WYWx1ZSgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnLCAkc2V0dXAucGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMpKSlcbiAgICAgICAgICB9LCBudWxsLCA0MCAvKiBQUk9QUywgTkVFRF9IWURSQVRJT04gKi8sIF9ob2lzdGVkXzE3KSwgW1xuICAgICAgICAgICAgW192TW9kZWxDaGVja2JveCwgJHNldHVwLnBhcnRJbmZvLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzXVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzE4LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImxhYmVsXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIixcbiAgICAgICAgICAgIGZvcjogJHNldHVwLmdldElkKCdleHBhbmRNdWx0aW1lYXN1cmVSZXN0cycpXG4gICAgICAgICAgfSwgXCJFeHBhbmQgTXVsdGltZWFzdXJlIFJlc3RzXCIsIDggLyogUFJPUFMgKi8sIF9ob2lzdGVkXzE5KVxuICAgICAgICBdKVxuICAgICAgXSksXG4gICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIwLCBbXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMjEsIFtcbiAgICAgICAgICBfd2l0aERpcmVjdGl2ZXMoX2NyZWF0ZUVsZW1lbnRWTm9kZShcImlucHV0XCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY2hlY2staW5wdXRcIixcbiAgICAgICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgICAgIFwib25VcGRhdGU6bW9kZWxWYWx1ZVwiOiBfY2FjaGVbNl0gfHwgKF9jYWNoZVs2XSA9ICgkZXZlbnQ6IGFueSkgPT4gKCgkc2V0dXAucGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgncHJlc2VydmVUZXh0JyksXG4gICAgICAgICAgICBvbkNoYW5nZTogX2NhY2hlWzddIHx8IChfY2FjaGVbN10gPSAoJGV2ZW50OiBhbnkpID0+ICgkc2V0dXAud3JpdGVCb29sZWFuVmFsdWUoJ3ByZXNlcnZlVGV4dEdyb3VwcycsICRzZXR1cC5wYXJ0SW5mby5wcmVzZXJ2ZVRleHRHcm91cHMpKSlcbiAgICAgICAgICB9LCBudWxsLCA0MCAvKiBQUk9QUywgTkVFRF9IWURSQVRJT04gKi8sIF9ob2lzdGVkXzIyKSwgW1xuICAgICAgICAgICAgW192TW9kZWxDaGVja2JveCwgJHNldHVwLnBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3Vwc11cbiAgICAgICAgICBdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yMywgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJsYWJlbFwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIsXG4gICAgICAgICAgICBmb3I6ICRzZXR1cC5nZXRJZCgncHJlc2VydmVUZXh0JylcbiAgICAgICAgICB9LCBcIkluY2x1ZGUgTmV4dCBTdGF2ZVwiLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF8yNClcbiAgICAgICAgXSlcbiAgICAgIF0pLFxuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yNSwgW1xuICAgICAgICBfY2FjaGVbOF0gfHwgKF9jYWNoZVs4XSA9IF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBjbGFzczogXCJjb2wgY29sLTMgdGV4dC1lbmRcIiB9LCBcIlBhZ2UgU2l6ZVwiLCAtMSAvKiBDQUNIRUQgKi8pKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yNiwgW1xuICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJzZWxlY3RDb21wXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdwYWdlLXNpemUtc2VsZWN0JyksXG4gICAgICAgICAgICBsYWJlbDogJycsXG4gICAgICAgICAgICBzZWxlY3Rpb25zOiAkc2V0dXAucGFnZVNpemVzLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAkc2V0dXAucGFnZVNpemUsXG4gICAgICAgICAgICBjaGFuZ2VDYjogJHNldHVwLnBhZ2VDaGFuZ2VcbiAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJkb21JZFwiLCBcImluaXRpYWxWYWx1ZVwiXSlcbiAgICAgICAgXSlcbiAgICAgIF0pLFxuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yNywgW1xuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzI4LCBbXG4gICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIm51bWJlcklucHV0QXBwXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdwYWdlLXdpZHRoLWlucHV0JyksXG4gICAgICAgICAgICBpbml0aWFsVmFsdWU6ICRzZXR1cC5wYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGgsXG4gICAgICAgICAgICBwcmVjaXNpb246IDAsXG4gICAgICAgICAgICBjaGFuZ2VDYjogJHNldHVwLnVwZGF0ZUxheW91dEZ1bmMoJ3BhZ2VXaWR0aCcpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6ICRzZXR1cC5sb2NrRGltZW5zaW9uc1xuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIiwgXCJkaXNhYmxlZFwiXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jYWNoZVs5XSB8fCAoX2NhY2hlWzldID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIlBhZ2UgV2lkdGhcIilcbiAgICAgICAgXSwgLTEgLyogQ0FDSEVEICovKSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMjksIFtcbiAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wibnVtYmVySW5wdXRBcHBcIl0sIHtcbiAgICAgICAgICAgIGRvbUlkOiAkc2V0dXAuZ2V0SWQoJ3BhZ2UtaGVpZ2h0LWlucHV0JyksXG4gICAgICAgICAgICBpbml0aWFsVmFsdWU6ICRzZXR1cC5wYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlSGVpZ2h0LFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAwLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC51cGRhdGVMYXlvdXRGdW5jKCdwYWdlSGVpZ2h0JyksXG4gICAgICAgICAgICBkaXNhYmxlZDogJHNldHVwLmxvY2tEaW1lbnNpb25zXG4gICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wiZG9tSWRcIiwgXCJpbml0aWFsVmFsdWVcIiwgXCJjaGFuZ2VDYlwiLCBcImRpc2FibGVkXCJdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NhY2hlWzEwXSB8fCAoX2NhY2hlWzEwXSA9IF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBjbGFzczogXCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIiB9LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwgeyBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIgfSwgXCJQYWdlIEhlaWdodFwiKVxuICAgICAgICBdLCAtMSAvKiBDQUNIRUQgKi8pKVxuICAgICAgXSksXG4gICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzMwLCBbXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMzEsIFtcbiAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wibnVtYmVySW5wdXRBcHBcIl0sIHtcbiAgICAgICAgICAgIGRvbUlkOiAkc2V0dXAuZ2V0SWQoJ3pvb20tc2NhbGUtaW5wdXQnKSxcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJHNldHVwLnBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lnpvb21TY2FsZSxcbiAgICAgICAgICAgIHByZWNpc2lvbjogMCxcbiAgICAgICAgICAgIHBlcmNlbnQ6IHRydWUsXG4gICAgICAgICAgICBjaGFuZ2VDYjogJHNldHVwLnVwZGF0ZUxheW91dEZ1bmMoJ3pvb21TY2FsZScpLFxuICAgICAgICAgICAgbWluVmFsdWU6IDAuMjUsXG4gICAgICAgICAgICBtYXhWYWx1ZTogOFxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIl0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY2FjaGVbMTFdIHx8IChfY2FjaGVbMTFdID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIlpvb20gU2NhbGUgKCUpXCIpXG4gICAgICAgIF0sIC0xIC8qIENBQ0hFRCAqLykpLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzMyLCBbXG4gICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIm51bWJlcklucHV0QXBwXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdzdmctc2NhbGUtaW5wdXQnKSxcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJHNldHVwLnBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnN2Z1NjYWxlLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAwLFxuICAgICAgICAgICAgcGVyY2VudDogdHJ1ZSxcbiAgICAgICAgICAgIGNoYW5nZUNiOiAkc2V0dXAudXBkYXRlTGF5b3V0RnVuYygnc3ZnU2NhbGUnKSxcbiAgICAgICAgICAgIG1pblZhbHVlOiAwLjI1LFxuICAgICAgICAgICAgbWF4VmFsdWU6IDJcbiAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJkb21JZFwiLCBcImluaXRpYWxWYWx1ZVwiLCBcImNoYW5nZUNiXCJdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NhY2hlWzEyXSB8fCAoX2NhY2hlWzEyXSA9IF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBjbGFzczogXCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIiB9LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwgeyBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIgfSwgXCJOb3RlIFNpemUgKCUpXCIpXG4gICAgICAgIF0sIC0xIC8qIENBQ0hFRCAqLykpXG4gICAgICBdKSxcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMzMsIFtcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zNCwgW1xuICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJudW1iZXJJbnB1dEFwcFwiXSwge1xuICAgICAgICAgICAgZG9tSWQ6ICRzZXR1cC5nZXRJZCgnbm90ZS1zcGFjaW5nLWlucHV0JyksXG4gICAgICAgICAgICBpbml0aWFsVmFsdWU6ICRzZXR1cC5wYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5ub3RlU3BhY2luZyxcbiAgICAgICAgICAgIHByZWNpc2lvbjogMixcbiAgICAgICAgICAgIGNoYW5nZUNiOiAkc2V0dXAudXBkYXRlTGF5b3V0RnVuYygnbm90ZVNwYWNpbmcnKVxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIl0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY2FjaGVbMTNdIHx8IChfY2FjaGVbMTNdID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIk5vdGUgU3BhY2luZ1wiKVxuICAgICAgICBdLCAtMSAvKiBDQUNIRUQgKi8pKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zNSwgW1xuICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJudW1iZXJJbnB1dEFwcFwiXSwge1xuICAgICAgICAgICAgZG9tSWQ6ICRzZXR1cC5nZXRJZCgnbWF4LW1lYXN1cmUtc3lzdGVtLWlucHV0JyksXG4gICAgICAgICAgICBpbml0aWFsVmFsdWU6ICRzZXR1cC5wYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5tYXhNZWFzdXJlU3lzdGVtLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAwLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC51cGRhdGVMYXlvdXRGdW5jKCdtYXhNZWFzdXJlU3lzdGVtJylcbiAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJkb21JZFwiLCBcImluaXRpYWxWYWx1ZVwiLCBcImNoYW5nZUNiXCJdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NhY2hlWzE0XSB8fCAoX2NhY2hlWzE0XSA9IF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBjbGFzczogXCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIiB9LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwgeyBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIgfSwgXCJNZWFzdXJlcy9TeXN0ZW1cIilcbiAgICAgICAgXSwgLTEgLyogQ0FDSEVEICovKSlcbiAgICAgIF0pXG4gICAgXSksXG4gICAgXzogMSAvKiBTVEFCTEUgKi9cbiAgfSwgOCAvKiBQUk9QUyAqLywgW1wiZG9tSWRcIiwgXCJjb21taXRDYlwiLCBcImNhbmNlbENiXCIsIFwibGFiZWxcIl0pKVxufSIsIjxzY3JpcHQgc2V0dXAgbGFuZz1cInRzXCI+XHJcbmltcG9ydCB7IHJlZiwgUmVmLCB3YXRjaCwgcmVhY3RpdmUgfSBmcm9tICd2dWUnO1xyXG5pbXBvcnQgc2VsZWN0Q29tcCBmcm9tICcuL3NlbGVjdC52dWUnO1xyXG5pbXBvcnQgbnVtYmVySW5wdXRBcHAgZnJvbSAnLi9udW1iZXJJbnB1dC52dWUnO1xyXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9jb21tb24nO1xyXG5pbXBvcnQgeyBTbW9QYXJ0SW5mbywgU21vUGFydEluZm9TdHJpbmdUeXBlLCBTbW9QYXJ0SW5mb051bVR5cGUsIFNtb1BhcnRJbmZvQm9vbGVhblR5cGUgfSBmcm9tICcuLi8uLi8uLi9zbW8vZGF0YS9wYXJ0SW5mbyc7XHJcbmltcG9ydCB7IEdsb2JhbExheW91dEF0dHJpYnV0ZXMsIFNtb0xheW91dE1hbmFnZXIsIEdsb2JhbExheW91dEF0dHJpYnV0ZXNBcnJheSB9IGZyb20gJy4uLy4uLy4uL3Ntby9kYXRhL3Njb3JlTW9kaWZpZXJzJztcclxuaW1wb3J0IGRpYWxvZ0NvbnRhaW5lciBmcm9tICcuL2RpYWxvZ0NvbnRhaW5lci52dWUnO1xyXG5cclxuaW50ZXJmYWNlIFByb3BzIHtcclxuICBkb21JZDogc3RyaW5nLFxyXG4gIGxhYmVsOiBzdHJpbmcsXHJcbiAgcGFydEluZm86IFNtb1BhcnRJbmZvLFxyXG4gIHVwZGF0ZVBhcnRJbmZvQ2I6IChwaTogU21vUGFydEluZm8pID0+IFByb21pc2U8dm9pZD4sXHJcbiAgY29tbWl0Q2I6ICgpID0+IFByb21pc2U8dm9pZD4sXHJcbiAgY2FuY2VsQ2I6ICgpID0+IFByb21pc2U8dm9pZD5cclxufVxyXG5jb25zdCBwcm9wcyA9IGRlZmluZVByb3BzPFByb3BzPigpO1xyXG5jb25zdCB7IGRvbUlkLCBsYWJlbCwgY29tbWl0Q2IsIGNhbmNlbENiLCB1cGRhdGVQYXJ0SW5mb0NiIH0gPSB7IC4uLnByb3BzIH07XHJcbmNvbnN0IHBhcnRJbmZvID0gcmVhY3RpdmUobmV3IFNtb1BhcnRJbmZvKHByb3BzLnBhcnRJbmZvKSk7XHJcblxyXG5jb25zdCB3cml0ZUJvb2xlYW5WYWx1ZSA9IGFzeW5jIChhdHRyOiBTbW9QYXJ0SW5mb0Jvb2xlYW5UeXBlLCB2YWx1ZTogYm9vbGVhbikgPT4ge1xyXG4gIHBhcnRJbmZvW2F0dHJdID0gdmFsdWU7XHJcbiAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3Qgd3JpdGVMYXlvdXRWYWx1ZSA9IGFzeW5jIChhdHRyOiBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzLCB2YWx1ZTogbnVtYmVyKSA9PiB7XHJcbiAgICAvLyBubyBjaGFuZ2U/XHJcbiAgICBpZiAocGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXRbYXR0cl0gPT09IHZhbHVlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0W2F0dHJdID0gdmFsdWU7XHJcbiAgICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufVxyXG5jb25zdCBwYWdlU2l6ZXM6IFNlbGVjdE9wdGlvbltdID0gW1xyXG4gIHsgbGFiZWw6ICdMZXR0ZXInLCB2YWx1ZTogJ2xldHRlcicgfSxcclxuICB7IGxhYmVsOiAnTGVnYWwnLCB2YWx1ZTogJ2xlZ2FsJyB9LFxyXG4gIHsgbGFiZWw6ICdUYWJsb2lkJywgdmFsdWU6ICd0YWJsb2lkJyB9LFxyXG4gIHsgbGFiZWw6ICdBNCcsIHZhbHVlOiAnYTQnIH0sXHJcbiAgeyBsYWJlbDogJ0N1c3RvbScsIHZhbHVlOiAnY3VzdG9tJyB9XHJcbl07XHJcbmludGVyZmFjZSBkaW1lbnNpb25zIHtcclxuICB3aWR0aDogbnVtYmVyLFxyXG4gIGhlaWdodDogbnVtYmVyXHJcbn1cclxuY29uc3QgcHJlZGVmaW5lZERpbWVuc2lvbnM6IHsgW2tleTogc3RyaW5nXTogZGltZW5zaW9ucyB9ID0ge1xyXG4gICdsZXR0ZXInOiB7IHdpZHRoOiA4MTYsIGhlaWdodDogMTA1NiB9LFxyXG4gICdsZWdhbCc6IHsgd2lkdGg6IDgxNiwgaGVpZ2h0OiAxMzQ0IH0sXHJcbiAgJ3RhYmxvaWQnOiB7IHdpZHRoOiAxMDU2LCBoZWlnaHQ6IDE2MzIgfSxcclxuICAnYTQnOiB7IHdpZHRoOiA3OTQsIGhlaWdodDogMTEyMyB9XHJcbn07XHJcbi8vIFBhZ2Ugc2l6ZSBpcyBpbiBwaXhlbHMsIGJ1dCBpZiBpdCBtYXRjaGVzIGEgcHJlc2V0IHdlIGp1c3Qgc2hvdyB0aGF0LlxyXG4vLyBVc2VyIGNob29zZXMgJ2N1c3RvbScgdG8gdW5sb2NrIHdpZHRoL2hlaWdodCBlZGl0aW5nLlxyXG5jb25zdCBwYWdlU2l6ZSA9IHJlZignY3VzdG9tJyk7XHJcbmNvbnN0IHBhZ2VDaGFuZ2UgPSAoKSA9PiB7XHJcbiBPYmplY3Qua2V5cyhwcmVkZWZpbmVkRGltZW5zaW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNba2V5XTtcclxuICAgIGlmIChkaW1zLndpZHRoID09PSBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggJiZcclxuICAgICAgZGltcy5oZWlnaHQgPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQpIHtcclxuICAgICAgcGFnZVNpemUudmFsdWUgPSBrZXk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn07XHJcbmNvbnN0IGxvY2tEaW1lbnNpb25zID0gcmVmKGZhbHNlKTtcclxucGFnZUNoYW5nZSgpO1xyXG53YXRjaCAocGFnZVNpemUsIGFzeW5jIChuZXdWYWwpID0+IHtcclxuICBpZiAocHJlZGVmaW5lZERpbWVuc2lvbnNbbmV3VmFsXSkge1xyXG4gICAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSB0cnVlO1xyXG4gICAgY29uc3QgZGltcyA9IHByZWRlZmluZWREaW1lbnNpb25zW25ld1ZhbF07XHJcbiAgICBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggPSBkaW1zLndpZHRoO1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCA9IGRpbXMuaGVpZ2h0O1xyXG4gIH0gZWxzZSB7XHJcbiAgICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IGZhbHNlO1xyXG4gIH1cclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufSk7XHJcbmlmIChwcmVkZWZpbmVkRGltZW5zaW9uc1twYWdlU2l6ZS52YWx1ZV0pIHtcclxuICBsb2NrRGltZW5zaW9ucy52YWx1ZSA9IHRydWVcclxufVxyXG5jb25zdCB1cGRhdGUgPWFzeW5jICgpID0+IHtcclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufVxyXG5jb25zdCBpbmNsdWRlTmV4dCA9IHJlZihmYWxzZSk7XHJcbmlmIChwYXJ0SW5mby5zdGF2ZXNBZnRlciA+IDApIHtcclxuICBpbmNsdWRlTmV4dC52YWx1ZSA9IHRydWU7XHJcbn1cclxud2F0Y2ggKGluY2x1ZGVOZXh0LCBhc3luYyAobmV3VmFsLCBvbGRWYWwpID0+IHtcclxuICBpZiAobmV3VmFsICE9PSBvbGRWYWwpIHtcclxuICAgIHBhcnRJbmZvLnN0YXZlc0FmdGVyID0gbmV3VmFsID8gMSA6IDA7XHJcbiAgICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxuICB9XHJcbn0pO1xyXG5cclxudHlwZSBudW1iZXJXcml0ZXJUeXBlID0gKHZhbHVlOiBudW1iZXIpID0+IFByb21pc2U8dm9pZD47XHJcblxyXG5jb25zdCB1cGRhdGVMYXlvdXRGdW5jID0gKHBhcmFtOiBHbG9iYWxMYXlvdXRBdHRyaWJ1dGVzKTogbnVtYmVyV3JpdGVyVHlwZSA9PiB7XHJcbiAgY29uc3QgY2IgPSBhc3luYyAodmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgYXdhaXQgd3JpdGVMYXlvdXRWYWx1ZShwYXJhbSwgdmFsdWUpO1xyXG4gIH1cclxuICByZXR1cm4gY2I7XHJcbn1cclxuXHJcbmNvbnN0IGdldElkID0gKHN0cjogc3RyaW5nKSA9PiB7XHJcbiAgcmV0dXJuIGAke2RvbUlkfS0ke3N0cn1gO1xyXG59XHJcblxyXG48L3NjcmlwdD5cclxuPHRlbXBsYXRlPlxyXG4gIDxkaWFsb2dDb250YWluZXIgOmRvbUlkPVwiZG9tSWRcIiA6Y29tbWl0Q2I9XCJjb21taXRDYlwiIDpjYW5jZWxDYj1cImNhbmNlbENiXCIgOmxhYmVsPVwibGFiZWxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtOFwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgOnBsYWNlaG9sZGVyPVwicGFydEluZm8ucGFydE5hbWVcIiBhcmlhLWxhYmVsPVwiUGFydCBOYW1lXCJcclxuICAgICAgICAgIDppZD1cImdldElkKCdwYXJ0LW5hbWUtaW5wdXQnKVwiIHYtbW9kZWw9XCJwYXJ0SW5mby5wYXJ0TmFtZVwiIEBjaGFuZ2U9XCJ1cGRhdGVcIj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTQgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiXCIgOmlkPVwiZ2V0SWQoJ3BhcnQtbmFtZS1sYWJlbCcpXCI+UGFydCBOYW1lPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC04XCI+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiA6cGxhY2Vob2xkZXI9XCJwYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uXCIgYXJpYS1sYWJlbD1cIlBhcnQgQWJicmV2aWF0aW9uXCJcclxuICAgICAgICAgIDppZD1cImdldElkKCdwYXJ0LWFiYnJldmlhdGlvbi1pbnB1dCcpXCIgdi1tb2RlbD1cInBhcnRJbmZvLnBhcnRBYmJyZXZpYXRpb25cIiBAY2hhbmdlPVwidXBkYXRlXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiIDppZD1cImdldElkKCdwYXJ0LWFiYnJldmlhdGlvbi1sYWJlbCcpXCI+UGFydCBBYmJyZXZpYXRpb248L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdi1tb2RlbD1cInBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3Vwc1wiIDppZD1cImdldElkKCdwcmVzZXJ2ZVRleHQnKVwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwid3JpdGVCb29sZWFuVmFsdWUoJ3ByZXNlcnZlVGV4dEdyb3VwcycsIHBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3VwcylcIj48L2lucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA6Zm9yPVwiZ2V0SWQoJ3ByZXNlcnZlVGV4dCcpXCI+UHJlc2VydmUgVGV4dCBHcm91cHM8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMVwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2LW1vZGVsPVwicGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHNcIiA6aWQ9XCJnZXRJZCgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnKVwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwid3JpdGVCb29sZWFuVmFsdWUoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJywgcGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMpXCI+PC9pbnB1dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTVcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgOmZvcj1cImdldElkKCdleHBhbmRNdWx0aW1lYXN1cmVSZXN0cycpXCI+RXhwYW5kIE11bHRpbWVhc3VyZSBSZXN0czwvbGFiZWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdi1tb2RlbD1cInBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3Vwc1wiIDppZD1cImdldElkKCdwcmVzZXJ2ZVRleHQnKVwiXHJcbiAgICAgICAgICBAY2hhbmdlPVwid3JpdGVCb29sZWFuVmFsdWUoJ3ByZXNlcnZlVGV4dEdyb3VwcycsIHBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3VwcylcIj48L2lucHV0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNVwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiA6Zm9yPVwiZ2V0SWQoJ3ByZXNlcnZlVGV4dCcpXCI+SW5jbHVkZSBOZXh0IFN0YXZlPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0zIHRleHQtZW5kXCI+UGFnZSBTaXplPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTZcIj5cclxuICAgICAgICA8c2VsZWN0Q29tcCA6ZG9tSWQ9XCJnZXRJZCgncGFnZS1zaXplLXNlbGVjdCcpXCIgOmxhYmVsPVwiJydcIiA6c2VsZWN0aW9ucz1cInBhZ2VTaXplc1wiIDppbml0aWFsVmFsdWU9XCJwYWdlU2l6ZVwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJwYWdlQ2hhbmdlXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgncGFnZS13aWR0aC1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aFwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3BhZ2VXaWR0aCcpXCIgOmRpc2FibGVkPVwibG9ja0RpbWVuc2lvbnNcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlBhZ2UgV2lkdGg8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdwYWdlLWhlaWdodC1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHRcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdwYWdlSGVpZ2h0JylcIiA6ZGlzYWJsZWQ9XCJsb2NrRGltZW5zaW9uc1wiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+UGFnZSBIZWlnaHQ8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ3pvb20tc2NhbGUtaW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC56b29tU2NhbGVcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6cGVyY2VudD10cnVlIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3pvb21TY2FsZScpXCIgOm1pblZhbHVlPVwiMC4yNVwiIDptYXhWYWx1ZT1cIjhcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlpvb20gU2NhbGUgKCUpPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCBtcy1uNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnc3ZnLXNjYWxlLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQuc3ZnU2NhbGVcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6cGVyY2VudD1cInRydWVcIiA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdzdmdTY2FsZScpXCIgOm1pblZhbHVlPVwiMC4yNVwiIDptYXhWYWx1ZT1cIjJcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPk5vdGUgU2l6ZSAoJSk8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ25vdGUtc3BhY2luZy1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lm5vdGVTcGFjaW5nXCIgOnByZWNpc2lvbj1cIjJcIlxyXG4gICAgICAgICAgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnbm90ZVNwYWNpbmcnKVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Tm90ZSBTcGFjaW5nPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCBtcy1uNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnbWF4LW1lYXN1cmUtc3lzdGVtLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQubWF4TWVhc3VyZVN5c3RlbVwiXHJcbiAgICAgICAgICA6cHJlY2lzaW9uPVwiMFwiIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ21heE1lYXN1cmVTeXN0ZW0nKVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+TWVhc3VyZXMvU3lzdGVtPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGlhbG9nQ29udGFpbmVyPlxyXG48L3RlbXBsYXRlPiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/ts-loader/index.js??clonedRuleSet-1.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[1].rules[6].use[0]!./src/ui/components/dialogs/partInfo.vue?vue&type=template&id=7c417a1c&ts=true\n\n}");
810
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ render: () => (/* binding */ render)\n/* harmony export */ });\n/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ \"./node_modules/vue/dist/vue.runtime.esm-bundler.js\");\n\nconst _hoisted_1 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_2 = { class: \"col col-8\" };\nconst _hoisted_3 = [\"placeholder\", \"id\"];\nconst _hoisted_4 = { class: \"col col-4 text-start\" };\nconst _hoisted_5 = [\"id\"];\nconst _hoisted_6 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_7 = { class: \"col col-8\" };\nconst _hoisted_8 = [\"placeholder\", \"id\"];\nconst _hoisted_9 = { class: \"col col-4 text-start\" };\nconst _hoisted_10 = [\"id\"];\nconst _hoisted_11 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_12 = { class: \"col col-1\" };\nconst _hoisted_13 = [\"id\"];\nconst _hoisted_14 = { class: \"col col-5\" };\nconst _hoisted_15 = [\"for\"];\nconst _hoisted_16 = { class: \"col col-1\" };\nconst _hoisted_17 = [\"id\"];\nconst _hoisted_18 = { class: \"col col-5\" };\nconst _hoisted_19 = [\"for\"];\nconst _hoisted_20 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_21 = { class: \"col col-1\" };\nconst _hoisted_22 = [\"id\"];\nconst _hoisted_23 = { class: \"col col-5\" };\nconst _hoisted_24 = [\"for\"];\nconst _hoisted_25 = { class: \"row mb-2\" };\nconst _hoisted_26 = { class: \"col col-6\" };\nconst _hoisted_27 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_28 = { class: \"col col-4\" };\nconst _hoisted_29 = { class: \"col col-4 ms-n4\" };\nconst _hoisted_30 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_31 = { class: \"col col-4\" };\nconst _hoisted_32 = { class: \"col col-4 ms-n4\" };\nconst _hoisted_33 = { class: \"row mb-2 align-items-center\" };\nconst _hoisted_34 = { class: \"col col-4\" };\nconst _hoisted_35 = { class: \"col col-4 ms-n4\" };\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createBlock)($setup[\"dialogContainer\"], {\n domId: $setup.domId,\n commitCb: $setup.commitCb,\n cancelCb: $setup.cancelCb,\n label: $setup.label\n }, {\n default: (0,vue__WEBPACK_IMPORTED_MODULE_0__.withCtx)(() => [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_1, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_2, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"text\",\n class: \"form-control\",\n placeholder: $setup.partInfo.partName,\n \"aria-label\": \"Part Name\",\n id: $setup.getId('part-name-input'),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => (($setup.partInfo.partName) = $event)),\n onChange: $setup.update\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_3), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.partInfo.partName]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_4, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"\",\n id: $setup.getId('part-name-label')\n }, \"Part Name\", 8 /* PROPS */, _hoisted_5)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_6, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_7, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n type: \"text\",\n class: \"form-control\",\n placeholder: $setup.partInfo.partAbbreviation,\n \"aria-label\": \"Part Abbreviation\",\n id: $setup.getId('part-abbreviation-input'),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => (($setup.partInfo.partAbbreviation) = $event)),\n onChange: $setup.update\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_8), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelText, $setup.partInfo.partAbbreviation]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_9, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", {\n class: \"\",\n id: $setup.getId('part-abbreviation-label')\n }, \"Part Abbreviation\", 8 /* PROPS */, _hoisted_10)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_11, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_12, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => (($setup.partInfo.preserveTextGroups) = $event)),\n id: $setup.getId('preserveText'),\n onChange: _cache[3] || (_cache[3] = ($event) => ($setup.writeBooleanValue('preserveTextGroups', $setup.partInfo.preserveTextGroups)))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_13), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.partInfo.preserveTextGroups]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_14, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('preserveText')\n }, \"Preserve Text Groups\", 8 /* PROPS */, _hoisted_15)\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_16, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event) => (($setup.partInfo.expandMultimeasureRests) = $event)),\n id: $setup.getId('expandMultimeasureRests'),\n onChange: _cache[5] || (_cache[5] = ($event) => ($setup.writeBooleanValue('expandMultimeasureRests', $setup.partInfo.expandMultimeasureRests)))\n }, null, 40 /* PROPS, NEED_HYDRATION */, _hoisted_17), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.partInfo.expandMultimeasureRests]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_18, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('expandMultimeasureRests')\n }, \"Expand Multimeasure Rests\", 8 /* PROPS */, _hoisted_19)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_20, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_21, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.withDirectives)((0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"input\", {\n class: \"form-check-input\",\n type: \"checkbox\",\n \"onUpdate:modelValue\": _cache[6] || (_cache[6] = ($event) => (($setup.includeNext) = $event)),\n id: $setup.getId('includeNext')\n }, null, 8 /* PROPS */, _hoisted_22), [\n [vue__WEBPACK_IMPORTED_MODULE_0__.vModelCheckbox, $setup.includeNext]\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_23, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"label\", {\n class: \"form-check-label\",\n for: $setup.getId('includeNext')\n }, \"Include Next Stave\", 8 /* PROPS */, _hoisted_24)\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_25, [\n _cache[7] || (_cache[7] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-3 text-end\" }, \"Page Size\", -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_26, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"selectComp\"], {\n domId: $setup.getId('page-size-select'),\n label: '',\n selections: $setup.pageSizes,\n initialValue: $setup.pageSize,\n changeCb: $setup.pageSizeCb\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\"])\n ])\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_27, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_28, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('page-width-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.pageWidth,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('pageWidth'),\n disabled: $setup.lockDimensions\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\", \"disabled\"])\n ]),\n _cache[8] || (_cache[8] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Page Width\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_29, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('page-height-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.pageHeight,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('pageHeight'),\n disabled: $setup.lockDimensions\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\", \"disabled\"])\n ]),\n _cache[9] || (_cache[9] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Page Height\")\n ], -1 /* CACHED */))\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_30, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_31, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('zoom-scale-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.zoomScale,\n precision: 0,\n percent: true,\n changeCb: $setup.updateLayoutFunc('zoomScale'),\n minValue: 0.25,\n maxValue: 8\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[10] || (_cache[10] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Zoom Scale (%)\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_32, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('svg-scale-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.svgScale,\n precision: 0,\n percent: true,\n changeCb: $setup.updateLayoutFunc('svgScale'),\n minValue: 0.25,\n maxValue: 2\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[11] || (_cache[11] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Note Size (%)\")\n ], -1 /* CACHED */))\n ]),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_33, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_34, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('note-spacing-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.noteSpacing,\n precision: 2,\n changeCb: $setup.updateLayoutFunc('noteSpacing')\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[12] || (_cache[12] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Note Spacing\")\n ], -1 /* CACHED */)),\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", _hoisted_35, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)($setup[\"numberInputApp\"], {\n domId: $setup.getId('max-measure-system-input'),\n initialValue: $setup.partInfo.layoutManager.globalLayout.maxMeasureSystem,\n precision: 0,\n changeCb: $setup.updateLayoutFunc('maxMeasureSystem')\n }, null, 8 /* PROPS */, [\"domId\", \"initialValue\", \"changeCb\"])\n ]),\n _cache[13] || (_cache[13] = (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"div\", { class: \"col col-2 fs-7 ms-n4 ps-0 text-start\" }, [\n (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)(\"span\", { class: \"form-check-label\" }, \"Measures/System\")\n ], -1 /* CACHED */))\n ])\n ]),\n _: 1 /* STABLE */\n }, 8 /* PROPS */, [\"domId\", \"commitCb\", \"cancelCb\", \"label\"]));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvdHMtbG9hZGVyL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTEudXNlWzBdIS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvZGlzdC90ZW1wbGF0ZUxvYWRlci5qcz8/cnVsZVNldFsxXS5ydWxlc1syXSEuL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2Rpc3QvaW5kZXguanM/P3J1bGVTZXRbMV0ucnVsZXNbNl0udXNlWzBdIS4vc3JjL3VpL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0SW5mby52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2M0MTdhMWMmdHM9dHJ1ZSIsIm1hcHBpbmdzIjoiOzs7OztBQUF3UTtBQUV4USxNQUFNLFVBQVUsR0FBRyxFQ29IVixLQUFLLEVBQUMsNkJBQTZCO0FEbkg1QyxNQUFNLFVBQVUsR0FBRyxFQ29IUixLQUFLLEVBQUMsV0FBVztBRG5INUIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDO0FBQ3hDLE1BQU0sVUFBVSxHQUFHLEVDc0hSLEtBQUssRUFBQyxzQkFBc0I7QURySHZDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ3pCLE1BQU0sVUFBVSxHQUFHLEVDd0hWLEtBQUssRUFBQyw2QkFBNkI7QUR2SDVDLE1BQU0sVUFBVSxHQUFHLEVDd0hSLEtBQUssRUFBQyxXQUFXO0FEdkg1QixNQUFNLFVBQVUsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUM7QUFDeEMsTUFBTSxVQUFVLEdBQUcsRUMwSFIsS0FBSyxFQUFDLHNCQUFzQjtBRHpIdkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDMUIsTUFBTSxXQUFXLEdBQUcsRUM0SFgsS0FBSyxFQUFDLDZCQUE2QjtBRDNINUMsTUFBTSxXQUFXLEdBQUcsRUM0SFQsS0FBSyxFQUFDLFdBQVc7QUQzSDVCLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQzFCLE1BQU0sV0FBVyxHQUFHLEVDOEhU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LEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9TbW8vLi9zcmMvdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZT9jMDZjIiwid2VicGFjazovL1Ntby8uL3NyYy91aS9jb21wb25lbnRzL2RpYWxvZ3MvcGFydEluZm8udnVlP2M1YWQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdk1vZGVsVGV4dCBhcyBfdk1vZGVsVGV4dCwgY3JlYXRlRWxlbWVudFZOb2RlIGFzIF9jcmVhdGVFbGVtZW50Vk5vZGUsIHdpdGhEaXJlY3RpdmVzIGFzIF93aXRoRGlyZWN0aXZlcywgdk1vZGVsQ2hlY2tib3ggYXMgX3ZNb2RlbENoZWNrYm94LCBjcmVhdGVWTm9kZSBhcyBfY3JlYXRlVk5vZGUsIHdpdGhDdHggYXMgX3dpdGhDdHgsIG9wZW5CbG9jayBhcyBfb3BlbkJsb2NrLCBjcmVhdGVCbG9jayBhcyBfY3JlYXRlQmxvY2sgfSBmcm9tIFwidnVlXCJcblxuY29uc3QgX2hvaXN0ZWRfMSA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMiA9IHsgY2xhc3M6IFwiY29sIGNvbC04XCIgfVxuY29uc3QgX2hvaXN0ZWRfMyA9IFtcInBsYWNlaG9sZGVyXCIsIFwiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzQgPSB7IGNsYXNzOiBcImNvbCBjb2wtNCB0ZXh0LXN0YXJ0XCIgfVxuY29uc3QgX2hvaXN0ZWRfNSA9IFtcImlkXCJdXG5jb25zdCBfaG9pc3RlZF82ID0geyBjbGFzczogXCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIiB9XG5jb25zdCBfaG9pc3RlZF83ID0geyBjbGFzczogXCJjb2wgY29sLThcIiB9XG5jb25zdCBfaG9pc3RlZF84ID0gW1wicGxhY2Vob2xkZXJcIiwgXCJpZFwiXVxuY29uc3QgX2hvaXN0ZWRfOSA9IHsgY2xhc3M6IFwiY29sIGNvbC00IHRleHQtc3RhcnRcIiB9XG5jb25zdCBfaG9pc3RlZF8xMCA9IFtcImlkXCJdXG5jb25zdCBfaG9pc3RlZF8xMSA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMTIgPSB7IGNsYXNzOiBcImNvbCBjb2wtMVwiIH1cbmNvbnN0IF9ob2lzdGVkXzEzID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzE0ID0geyBjbGFzczogXCJjb2wgY29sLTVcIiB9XG5jb25zdCBfaG9pc3RlZF8xNSA9IFtcImZvclwiXVxuY29uc3QgX2hvaXN0ZWRfMTYgPSB7IGNsYXNzOiBcImNvbCBjb2wtMVwiIH1cbmNvbnN0IF9ob2lzdGVkXzE3ID0gW1wiaWRcIl1cbmNvbnN0IF9ob2lzdGVkXzE4ID0geyBjbGFzczogXCJjb2wgY29sLTVcIiB9XG5jb25zdCBfaG9pc3RlZF8xOSA9IFtcImZvclwiXVxuY29uc3QgX2hvaXN0ZWRfMjAgPSB7IGNsYXNzOiBcInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiIH1cbmNvbnN0IF9ob2lzdGVkXzIxID0geyBjbGFzczogXCJjb2wgY29sLTFcIiB9XG5jb25zdCBfaG9pc3RlZF8yMiA9IFtcImlkXCJdXG5jb25zdCBfaG9pc3RlZF8yMyA9IHsgY2xhc3M6IFwiY29sIGNvbC01XCIgfVxuY29uc3QgX2hvaXN0ZWRfMjQgPSBbXCJmb3JcIl1cbmNvbnN0IF9ob2lzdGVkXzI1ID0geyBjbGFzczogXCJyb3cgbWItMlwiIH1cbmNvbnN0IF9ob2lzdGVkXzI2ID0geyBjbGFzczogXCJjb2wgY29sLTZcIiB9XG5jb25zdCBfaG9pc3RlZF8yNyA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMjggPSB7IGNsYXNzOiBcImNvbCBjb2wtNFwiIH1cbmNvbnN0IF9ob2lzdGVkXzI5ID0geyBjbGFzczogXCJjb2wgY29sLTQgbXMtbjRcIiB9XG5jb25zdCBfaG9pc3RlZF8zMCA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMzEgPSB7IGNsYXNzOiBcImNvbCBjb2wtNFwiIH1cbmNvbnN0IF9ob2lzdGVkXzMyID0geyBjbGFzczogXCJjb2wgY29sLTQgbXMtbjRcIiB9XG5jb25zdCBfaG9pc3RlZF8zMyA9IHsgY2xhc3M6IFwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCIgfVxuY29uc3QgX2hvaXN0ZWRfMzQgPSB7IGNsYXNzOiBcImNvbCBjb2wtNFwiIH1cbmNvbnN0IF9ob2lzdGVkXzM1ID0geyBjbGFzczogXCJjb2wgY29sLTQgbXMtbjRcIiB9XG5cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXIoX2N0eDogYW55LF9jYWNoZTogYW55LCRwcm9wczogYW55LCRzZXR1cDogYW55LCRkYXRhOiBhbnksJG9wdGlvbnM6IGFueSkge1xuICByZXR1cm4gKF9vcGVuQmxvY2soKSwgX2NyZWF0ZUJsb2NrKCRzZXR1cFtcImRpYWxvZ0NvbnRhaW5lclwiXSwge1xuICAgIGRvbUlkOiAkc2V0dXAuZG9tSWQsXG4gICAgY29tbWl0Q2I6ICRzZXR1cC5jb21taXRDYixcbiAgICBjYW5jZWxDYjogJHNldHVwLmNhbmNlbENiLFxuICAgIGxhYmVsOiAkc2V0dXAubGFiZWxcbiAgfSwge1xuICAgIGRlZmF1bHQ6IF93aXRoQ3R4KCgpID0+IFtcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMSwgW1xuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIsIFtcbiAgICAgICAgICBfd2l0aERpcmVjdGl2ZXMoX2NyZWF0ZUVsZW1lbnRWTm9kZShcImlucHV0XCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgY2xhc3M6IFwiZm9ybS1jb250cm9sXCIsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJHNldHVwLnBhcnRJbmZvLnBhcnROYW1lLFxuICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiUGFydCBOYW1lXCIsXG4gICAgICAgICAgICBpZDogJHNldHVwLmdldElkKCdwYXJ0LW5hbWUtaW5wdXQnKSxcbiAgICAgICAgICAgIFwib25VcGRhdGU6bW9kZWxWYWx1ZVwiOiBfY2FjaGVbMF0gfHwgKF9jYWNoZVswXSA9ICgkZXZlbnQ6IGFueSkgPT4gKCgkc2V0dXAucGFydEluZm8ucGFydE5hbWUpID0gJGV2ZW50KSksXG4gICAgICAgICAgICBvbkNoYW5nZTogJHNldHVwLnVwZGF0ZVxuICAgICAgICAgIH0sIG51bGwsIDQwIC8qIFBST1BTLCBORUVEX0hZRFJBVElPTiAqLywgX2hvaXN0ZWRfMyksIFtcbiAgICAgICAgICAgIFtfdk1vZGVsVGV4dCwgJHNldHVwLnBhcnRJbmZvLnBhcnROYW1lXVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzQsIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJcIixcbiAgICAgICAgICAgIGlkOiAkc2V0dXAuZ2V0SWQoJ3BhcnQtbmFtZS1sYWJlbCcpXG4gICAgICAgICAgfSwgXCJQYXJ0IE5hbWVcIiwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfNSlcbiAgICAgICAgXSlcbiAgICAgIF0pLFxuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF82LCBbXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfNywgW1xuICAgICAgICAgIF93aXRoRGlyZWN0aXZlcyhfY3JlYXRlRWxlbWVudFZOb2RlKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNvbnRyb2xcIixcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAkc2V0dXAucGFydEluZm8ucGFydEFiYnJldmlhdGlvbixcbiAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBcIlBhcnQgQWJicmV2aWF0aW9uXCIsXG4gICAgICAgICAgICBpZDogJHNldHVwLmdldElkKCdwYXJ0LWFiYnJldmlhdGlvbi1pbnB1dCcpLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTptb2RlbFZhbHVlXCI6IF9jYWNoZVsxXSB8fCAoX2NhY2hlWzFdID0gKCRldmVudDogYW55KSA9PiAoKCRzZXR1cC5wYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgb25DaGFuZ2U6ICRzZXR1cC51cGRhdGVcbiAgICAgICAgICB9LCBudWxsLCA0MCAvKiBQUk9QUywgTkVFRF9IWURSQVRJT04gKi8sIF9ob2lzdGVkXzgpLCBbXG4gICAgICAgICAgICBbX3ZNb2RlbFRleHQsICRzZXR1cC5wYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uXVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzksIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJcIixcbiAgICAgICAgICAgIGlkOiAkc2V0dXAuZ2V0SWQoJ3BhcnQtYWJicmV2aWF0aW9uLWxhYmVsJylcbiAgICAgICAgICB9LCBcIlBhcnQgQWJicmV2aWF0aW9uXCIsIDggLyogUFJPUFMgKi8sIF9ob2lzdGVkXzEwKVxuICAgICAgICBdKVxuICAgICAgXSksXG4gICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzExLCBbXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMTIsIFtcbiAgICAgICAgICBfd2l0aERpcmVjdGl2ZXMoX2NyZWF0ZUVsZW1lbnRWTm9kZShcImlucHV0XCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY2hlY2staW5wdXRcIixcbiAgICAgICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgICAgIFwib25VcGRhdGU6bW9kZWxWYWx1ZVwiOiBfY2FjaGVbMl0gfHwgKF9jYWNoZVsyXSA9ICgkZXZlbnQ6IGFueSkgPT4gKCgkc2V0dXAucGFydEluZm8ucHJlc2VydmVUZXh0R3JvdXBzKSA9ICRldmVudCkpLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgncHJlc2VydmVUZXh0JyksXG4gICAgICAgICAgICBvbkNoYW5nZTogX2NhY2hlWzNdIHx8IChfY2FjaGVbM10gPSAoJGV2ZW50OiBhbnkpID0+ICgkc2V0dXAud3JpdGVCb29sZWFuVmFsdWUoJ3ByZXNlcnZlVGV4dEdyb3VwcycsICRzZXR1cC5wYXJ0SW5mby5wcmVzZXJ2ZVRleHRHcm91cHMpKSlcbiAgICAgICAgICB9LCBudWxsLCA0MCAvKiBQUk9QUywgTkVFRF9IWURSQVRJT04gKi8sIF9ob2lzdGVkXzEzKSwgW1xuICAgICAgICAgICAgW192TW9kZWxDaGVja2JveCwgJHNldHVwLnBhcnRJbmZvLnByZXNlcnZlVGV4dEdyb3Vwc11cbiAgICAgICAgICBdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xNCwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJsYWJlbFwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIsXG4gICAgICAgICAgICBmb3I6ICRzZXR1cC5nZXRJZCgncHJlc2VydmVUZXh0JylcbiAgICAgICAgICB9LCBcIlByZXNlcnZlIFRleHQgR3JvdXBzXCIsIDggLyogUFJPUFMgKi8sIF9ob2lzdGVkXzE1KVxuICAgICAgICBdKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xNiwgW1xuICAgICAgICAgIF93aXRoRGlyZWN0aXZlcyhfY3JlYXRlRWxlbWVudFZOb2RlKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiZm9ybS1jaGVjay1pbnB1dFwiLFxuICAgICAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICAgICAgXCJvblVwZGF0ZTptb2RlbFZhbHVlXCI6IF9jYWNoZVs0XSB8fCAoX2NhY2hlWzRdID0gKCRldmVudDogYW55KSA9PiAoKCRzZXR1cC5wYXJ0SW5mby5leHBhbmRNdWx0aW1lYXN1cmVSZXN0cykgPSAkZXZlbnQpKSxcbiAgICAgICAgICAgIGlkOiAkc2V0dXAuZ2V0SWQoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJyksXG4gICAgICAgICAgICBvbkNoYW5nZTogX2NhY2hlWzVdIHx8IChfY2FjaGVbNV0gPSAoJGV2ZW50OiBhbnkpID0+ICgkc2V0dXAud3JpdGVCb29sZWFuVmFsdWUoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJywgJHNldHVwLnBhcnRJbmZvLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzKSkpXG4gICAgICAgICAgfSwgbnVsbCwgNDAgLyogUFJPUFMsIE5FRURfSFlEUkFUSU9OICovLCBfaG9pc3RlZF8xNyksIFtcbiAgICAgICAgICAgIFtfdk1vZGVsQ2hlY2tib3gsICRzZXR1cC5wYXJ0SW5mby5leHBhbmRNdWx0aW1lYXN1cmVSZXN0c11cbiAgICAgICAgICBdKVxuICAgICAgICBdKSxcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8xOCwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJsYWJlbFwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIsXG4gICAgICAgICAgICBmb3I6ICRzZXR1cC5nZXRJZCgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnKVxuICAgICAgICAgIH0sIFwiRXhwYW5kIE11bHRpbWVhc3VyZSBSZXN0c1wiLCA4IC8qIFBST1BTICovLCBfaG9pc3RlZF8xOSlcbiAgICAgICAgXSlcbiAgICAgIF0pLFxuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yMCwgW1xuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIxLCBbXG4gICAgICAgICAgX3dpdGhEaXJlY3RpdmVzKF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJpbnB1dFwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJmb3JtLWNoZWNrLWlucHV0XCIsXG4gICAgICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgICAgICBcIm9uVXBkYXRlOm1vZGVsVmFsdWVcIjogX2NhY2hlWzZdIHx8IChfY2FjaGVbNl0gPSAoJGV2ZW50OiBhbnkpID0+ICgoJHNldHVwLmluY2x1ZGVOZXh0KSA9ICRldmVudCkpLFxuICAgICAgICAgICAgaWQ6ICRzZXR1cC5nZXRJZCgnaW5jbHVkZU5leHQnKVxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIF9ob2lzdGVkXzIyKSwgW1xuICAgICAgICAgICAgW192TW9kZWxDaGVja2JveCwgJHNldHVwLmluY2x1ZGVOZXh0XVxuICAgICAgICAgIF0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzIzLCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImxhYmVsXCIsIHtcbiAgICAgICAgICAgIGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIixcbiAgICAgICAgICAgIGZvcjogJHNldHVwLmdldElkKCdpbmNsdWRlTmV4dCcpXG4gICAgICAgICAgfSwgXCJJbmNsdWRlIE5leHQgU3RhdmVcIiwgOCAvKiBQUk9QUyAqLywgX2hvaXN0ZWRfMjQpXG4gICAgICAgIF0pXG4gICAgICBdKSxcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMjUsIFtcbiAgICAgICAgX2NhY2hlWzddIHx8IChfY2FjaGVbN10gPSBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHsgY2xhc3M6IFwiY29sIGNvbC0zIHRleHQtZW5kXCIgfSwgXCJQYWdlIFNpemVcIiwgLTEgLyogQ0FDSEVEICovKSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMjYsIFtcbiAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wic2VsZWN0Q29tcFwiXSwge1xuICAgICAgICAgICAgZG9tSWQ6ICRzZXR1cC5nZXRJZCgncGFnZS1zaXplLXNlbGVjdCcpLFxuICAgICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgICAgc2VsZWN0aW9uczogJHNldHVwLnBhZ2VTaXplcyxcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJHNldHVwLnBhZ2VTaXplLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC5wYWdlU2l6ZUNiXG4gICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wiZG9tSWRcIiwgXCJpbml0aWFsVmFsdWVcIl0pXG4gICAgICAgIF0pXG4gICAgICBdKSxcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMjcsIFtcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8yOCwgW1xuICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJudW1iZXJJbnB1dEFwcFwiXSwge1xuICAgICAgICAgICAgZG9tSWQ6ICRzZXR1cC5nZXRJZCgncGFnZS13aWR0aC1pbnB1dCcpLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAkc2V0dXAucGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAwLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC51cGRhdGVMYXlvdXRGdW5jKCdwYWdlV2lkdGgnKSxcbiAgICAgICAgICAgIGRpc2FibGVkOiAkc2V0dXAubG9ja0RpbWVuc2lvbnNcbiAgICAgICAgICB9LCBudWxsLCA4IC8qIFBST1BTICovLCBbXCJkb21JZFwiLCBcImluaXRpYWxWYWx1ZVwiLCBcImNoYW5nZUNiXCIsIFwiZGlzYWJsZWRcIl0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY2FjaGVbOF0gfHwgKF9jYWNoZVs4XSA9IF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgeyBjbGFzczogXCJjb2wgY29sLTIgZnMtNyBtcy1uNCBwcy0wIHRleHQtc3RhcnRcIiB9LCBbXG4gICAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcInNwYW5cIiwgeyBjbGFzczogXCJmb3JtLWNoZWNrLWxhYmVsXCIgfSwgXCJQYWdlIFdpZHRoXCIpXG4gICAgICAgIF0sIC0xIC8qIENBQ0hFRCAqLykpLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzI5LCBbXG4gICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIm51bWJlcklucHV0QXBwXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdwYWdlLWhlaWdodC1pbnB1dCcpLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAkc2V0dXAucGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZUhlaWdodCxcbiAgICAgICAgICAgIHByZWNpc2lvbjogMCxcbiAgICAgICAgICAgIGNoYW5nZUNiOiAkc2V0dXAudXBkYXRlTGF5b3V0RnVuYygncGFnZUhlaWdodCcpLFxuICAgICAgICAgICAgZGlzYWJsZWQ6ICRzZXR1cC5sb2NrRGltZW5zaW9uc1xuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIiwgXCJkaXNhYmxlZFwiXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jYWNoZVs5XSB8fCAoX2NhY2hlWzldID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIlBhZ2UgSGVpZ2h0XCIpXG4gICAgICAgIF0sIC0xIC8qIENBQ0hFRCAqLykpXG4gICAgICBdKSxcbiAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMzAsIFtcbiAgICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zMSwgW1xuICAgICAgICAgIF9jcmVhdGVWTm9kZSgkc2V0dXBbXCJudW1iZXJJbnB1dEFwcFwiXSwge1xuICAgICAgICAgICAgZG9tSWQ6ICRzZXR1cC5nZXRJZCgnem9vbS1zY2FsZS1pbnB1dCcpLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAkc2V0dXAucGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQuem9vbVNjYWxlLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAwLFxuICAgICAgICAgICAgcGVyY2VudDogdHJ1ZSxcbiAgICAgICAgICAgIGNoYW5nZUNiOiAkc2V0dXAudXBkYXRlTGF5b3V0RnVuYygnem9vbVNjYWxlJyksXG4gICAgICAgICAgICBtaW5WYWx1ZTogMC4yNSxcbiAgICAgICAgICAgIG1heFZhbHVlOiA4XG4gICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wiZG9tSWRcIiwgXCJpbml0aWFsVmFsdWVcIiwgXCJjaGFuZ2VDYlwiXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jYWNoZVsxMF0gfHwgKF9jYWNoZVsxMF0gPSBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHsgY2xhc3M6IFwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCIgfSwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHsgY2xhc3M6IFwiZm9ybS1jaGVjay1sYWJlbFwiIH0sIFwiWm9vbSBTY2FsZSAoJSlcIilcbiAgICAgICAgXSwgLTEgLyogQ0FDSEVEICovKSksXG4gICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJkaXZcIiwgX2hvaXN0ZWRfMzIsIFtcbiAgICAgICAgICBfY3JlYXRlVk5vZGUoJHNldHVwW1wibnVtYmVySW5wdXRBcHBcIl0sIHtcbiAgICAgICAgICAgIGRvbUlkOiAkc2V0dXAuZ2V0SWQoJ3N2Zy1zY2FsZS1pbnB1dCcpLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlOiAkc2V0dXAucGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQuc3ZnU2NhbGUsXG4gICAgICAgICAgICBwcmVjaXNpb246IDAsXG4gICAgICAgICAgICBwZXJjZW50OiB0cnVlLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC51cGRhdGVMYXlvdXRGdW5jKCdzdmdTY2FsZScpLFxuICAgICAgICAgICAgbWluVmFsdWU6IDAuMjUsXG4gICAgICAgICAgICBtYXhWYWx1ZTogMlxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIl0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY2FjaGVbMTFdIHx8IChfY2FjaGVbMTFdID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIk5vdGUgU2l6ZSAoJSlcIilcbiAgICAgICAgXSwgLTEgLyogQ0FDSEVEICovKSlcbiAgICAgIF0pLFxuICAgICAgX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCBfaG9pc3RlZF8zMywgW1xuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzM0LCBbXG4gICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIm51bWJlcklucHV0QXBwXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdub3RlLXNwYWNpbmctaW5wdXQnKSxcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJHNldHVwLnBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lm5vdGVTcGFjaW5nLFxuICAgICAgICAgICAgcHJlY2lzaW9uOiAyLFxuICAgICAgICAgICAgY2hhbmdlQ2I6ICRzZXR1cC51cGRhdGVMYXlvdXRGdW5jKCdub3RlU3BhY2luZycpXG4gICAgICAgICAgfSwgbnVsbCwgOCAvKiBQUk9QUyAqLywgW1wiZG9tSWRcIiwgXCJpbml0aWFsVmFsdWVcIiwgXCJjaGFuZ2VDYlwiXSlcbiAgICAgICAgXSksXG4gICAgICAgIF9jYWNoZVsxMl0gfHwgKF9jYWNoZVsxMl0gPSBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIHsgY2xhc3M6IFwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCIgfSwgW1xuICAgICAgICAgIF9jcmVhdGVFbGVtZW50Vk5vZGUoXCJzcGFuXCIsIHsgY2xhc3M6IFwiZm9ybS1jaGVjay1sYWJlbFwiIH0sIFwiTm90ZSBTcGFjaW5nXCIpXG4gICAgICAgIF0sIC0xIC8qIENBQ0hFRCAqLykpLFxuICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwiZGl2XCIsIF9ob2lzdGVkXzM1LCBbXG4gICAgICAgICAgX2NyZWF0ZVZOb2RlKCRzZXR1cFtcIm51bWJlcklucHV0QXBwXCJdLCB7XG4gICAgICAgICAgICBkb21JZDogJHNldHVwLmdldElkKCdtYXgtbWVhc3VyZS1zeXN0ZW0taW5wdXQnKSxcbiAgICAgICAgICAgIGluaXRpYWxWYWx1ZTogJHNldHVwLnBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lm1heE1lYXN1cmVTeXN0ZW0sXG4gICAgICAgICAgICBwcmVjaXNpb246IDAsXG4gICAgICAgICAgICBjaGFuZ2VDYjogJHNldHVwLnVwZGF0ZUxheW91dEZ1bmMoJ21heE1lYXN1cmVTeXN0ZW0nKVxuICAgICAgICAgIH0sIG51bGwsIDggLyogUFJPUFMgKi8sIFtcImRvbUlkXCIsIFwiaW5pdGlhbFZhbHVlXCIsIFwiY2hhbmdlQ2JcIl0pXG4gICAgICAgIF0pLFxuICAgICAgICBfY2FjaGVbMTNdIHx8IChfY2FjaGVbMTNdID0gX2NyZWF0ZUVsZW1lbnRWTm9kZShcImRpdlwiLCB7IGNsYXNzOiBcImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiIH0sIFtcbiAgICAgICAgICBfY3JlYXRlRWxlbWVudFZOb2RlKFwic3BhblwiLCB7IGNsYXNzOiBcImZvcm0tY2hlY2stbGFiZWxcIiB9LCBcIk1lYXN1cmVzL1N5c3RlbVwiKVxuICAgICAgICBdLCAtMSAvKiBDQUNIRUQgKi8pKVxuICAgICAgXSlcbiAgICBdKSxcbiAgICBfOiAxIC8qIFNUQUJMRSAqL1xuICB9LCA4IC8qIFBST1BTICovLCBbXCJkb21JZFwiLCBcImNvbW1pdENiXCIsIFwiY2FuY2VsQ2JcIiwgXCJsYWJlbFwiXSkpXG59IiwiPHNjcmlwdCBzZXR1cCBsYW5nPVwidHNcIj5cclxuaW1wb3J0IHsgcmVmLCBSZWYsIHdhdGNoLCByZWFjdGl2ZSB9IGZyb20gJ3Z1ZSc7XHJcbmltcG9ydCBzZWxlY3RDb21wIGZyb20gJy4vc2VsZWN0LnZ1ZSc7XHJcbmltcG9ydCBudW1iZXJJbnB1dEFwcCBmcm9tICcuL251bWJlcklucHV0LnZ1ZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvbW1vbic7XHJcbmltcG9ydCB7IFNtb1BhcnRJbmZvLCBTbW9QYXJ0SW5mb1N0cmluZ1R5cGUsIFNtb1BhcnRJbmZvTnVtVHlwZSwgU21vUGFydEluZm9Cb29sZWFuVHlwZSB9IGZyb20gJy4uLy4uLy4uL3Ntby9kYXRhL3BhcnRJbmZvJztcclxuaW1wb3J0IHsgR2xvYmFsTGF5b3V0QXR0cmlidXRlcywgU21vTGF5b3V0TWFuYWdlciwgR2xvYmFsTGF5b3V0QXR0cmlidXRlc0FycmF5IH0gZnJvbSAnLi4vLi4vLi4vc21vL2RhdGEvc2NvcmVNb2RpZmllcnMnO1xyXG5pbXBvcnQgZGlhbG9nQ29udGFpbmVyIGZyb20gJy4vZGlhbG9nQ29udGFpbmVyLnZ1ZSc7XHJcblxyXG5pbnRlcmZhY2UgUHJvcHMge1xyXG4gIGRvbUlkOiBzdHJpbmcsXHJcbiAgbGFiZWw6IHN0cmluZyxcclxuICBwYXJ0SW5mbzogU21vUGFydEluZm8sXHJcbiAgdXBkYXRlUGFydEluZm9DYjogKHBpOiBTbW9QYXJ0SW5mbykgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjb21taXRDYjogKCkgPT4gUHJvbWlzZTx2b2lkPixcclxuICBjYW5jZWxDYjogKCkgPT4gUHJvbWlzZTx2b2lkPlxyXG59XHJcbmNvbnN0IHByb3BzID0gZGVmaW5lUHJvcHM8UHJvcHM+KCk7XHJcbmNvbnN0IHsgZG9tSWQsIGxhYmVsLCBjb21taXRDYiwgY2FuY2VsQ2IsIHVwZGF0ZVBhcnRJbmZvQ2IgfSA9IHsgLi4ucHJvcHMgfTtcclxuY29uc3QgcGFydEluZm8gPSByZWFjdGl2ZShuZXcgU21vUGFydEluZm8ocHJvcHMucGFydEluZm8pKTtcclxuXHJcbmNvbnN0IHdyaXRlQm9vbGVhblZhbHVlID0gYXN5bmMgKGF0dHI6IFNtb1BhcnRJbmZvQm9vbGVhblR5cGUsIHZhbHVlOiBib29sZWFuKSA9PiB7XHJcbiAgcGFydEluZm9bYXR0cl0gPSB2YWx1ZTtcclxuICBhd2FpdCB1cGRhdGVQYXJ0SW5mb0NiKHBhcnRJbmZvKTtcclxufVxyXG5jb25zdCB3cml0ZUxheW91dFZhbHVlID0gYXN5bmMgKGF0dHI6IEdsb2JhbExheW91dEF0dHJpYnV0ZXMsIHZhbHVlOiBudW1iZXIpID0+IHtcclxuICAgIC8vIG5vIGNoYW5nZT9cclxuICAgIGlmIChwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dFthdHRyXSA9PT0gdmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXRbYXR0cl0gPSB2YWx1ZTtcclxuICAgIGF3YWl0IHVwZGF0ZVBhcnRJbmZvQ2IocGFydEluZm8pO1xyXG59XHJcbmNvbnN0IHBhZ2VTaXplczogU2VsZWN0T3B0aW9uW10gPSBbXHJcbiAgeyBsYWJlbDogJ0xldHRlcicsIHZhbHVlOiAnbGV0dGVyJyB9LFxyXG4gIHsgbGFiZWw6ICdMZWdhbCcsIHZhbHVlOiAnbGVnYWwnIH0sXHJcbiAgeyBsYWJlbDogJ1RhYmxvaWQnLCB2YWx1ZTogJ3RhYmxvaWQnIH0sXHJcbiAgeyBsYWJlbDogJ0E0JywgdmFsdWU6ICdhNCcgfSxcclxuICB7IGxhYmVsOiAnQ3VzdG9tJywgdmFsdWU6ICdjdXN0b20nIH1cclxuXTtcclxuaW50ZXJmYWNlIGRpbWVuc2lvbnMge1xyXG4gIHdpZHRoOiBudW1iZXIsXHJcbiAgaGVpZ2h0OiBudW1iZXJcclxufVxyXG5jb25zdCBwcmVkZWZpbmVkRGltZW5zaW9uczogeyBba2V5OiBzdHJpbmddOiBkaW1lbnNpb25zIH0gPSB7XHJcbiAgJ2xldHRlcic6IHsgd2lkdGg6IDgxNiwgaGVpZ2h0OiAxMDU2IH0sXHJcbiAgJ2xlZ2FsJzogeyB3aWR0aDogODE2LCBoZWlnaHQ6IDEzNDQgfSxcclxuICAndGFibG9pZCc6IHsgd2lkdGg6IDEwNTYsIGhlaWdodDogMTYzMiB9LFxyXG4gICdhNCc6IHsgd2lkdGg6IDc5NCwgaGVpZ2h0OiAxMTIzIH1cclxufTtcclxuLy8gUGFnZSBzaXplIGlzIGluIHBpeGVscywgYnV0IGlmIGl0IG1hdGNoZXMgYSBwcmVzZXQgd2UganVzdCBzaG93IHRoYXQuXHJcbi8vIFVzZXIgY2hvb3NlcyAnY3VzdG9tJyB0byB1bmxvY2sgd2lkdGgvaGVpZ2h0IGVkaXRpbmcuXHJcbmNvbnN0IHBhZ2VTaXplID0gcmVmKCdjdXN0b20nKTtcclxuXHJcbmNvbnN0IHBhZ2VDaGFuZ2UgPSAoKSA9PiB7XHJcbiBPYmplY3Qua2V5cyhwcmVkZWZpbmVkRGltZW5zaW9ucykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNba2V5XTtcclxuICAgIGlmIChkaW1zLndpZHRoID09PSBwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC5wYWdlV2lkdGggJiZcclxuICAgICAgZGltcy5oZWlnaHQgPT09IHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQpIHtcclxuICAgICAgcGFnZVNpemUudmFsdWUgPSBrZXk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn07XHJcbmNvbnN0IHBhZ2VTaXplQ2IgPSBhc3luYyAodmFsOiBzdHJpbmcpID0+IHtcclxuICBjb25zdCBkaW1zID0gcHJlZGVmaW5lZERpbWVuc2lvbnNbdmFsXTtcclxuICBpZiAoZGltcykge1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoID0gZGltcy53aWR0aDtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQgPSBkaW1zLmhlaWdodDtcclxuICB9XHJcbiAgcGFnZVNpemUudmFsdWUgPSB2YWw7XHJcbiAgLy8gVGhlIHdhdGNoIHdpbGwgdHJpZ2dlciB0aGUgY2FsbGJhY2tcclxufVxyXG5jb25zdCBsb2NrRGltZW5zaW9ucyA9IHJlZihmYWxzZSk7XHJcbnBhZ2VDaGFuZ2UoKTtcclxud2F0Y2ggKHBhZ2VTaXplLCBhc3luYyAobmV3VmFsKSA9PiB7XHJcbiAgaWYgKHByZWRlZmluZWREaW1lbnNpb25zW25ld1ZhbF0pIHtcclxuICAgIGxvY2tEaW1lbnNpb25zLnZhbHVlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGRpbXMgPSBwcmVkZWZpbmVkRGltZW5zaW9uc1tuZXdWYWxdO1xyXG4gICAgcGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQucGFnZVdpZHRoID0gZGltcy53aWR0aDtcclxuICAgIHBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHQgPSBkaW1zLmhlaWdodDtcclxuICB9IGVsc2Uge1xyXG4gICAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSBmYWxzZTtcclxuICB9XHJcbiAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn0pO1xyXG5pZiAocHJlZGVmaW5lZERpbWVuc2lvbnNbcGFnZVNpemUudmFsdWVdKSB7XHJcbiAgbG9ja0RpbWVuc2lvbnMudmFsdWUgPSB0cnVlXHJcbn1cclxuY29uc3QgdXBkYXRlID1hc3luYyAoKSA9PiB7XHJcbiAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbn1cclxuY29uc3QgaW5jbHVkZU5leHQgPSByZWYoZmFsc2UpO1xyXG5pZiAocGFydEluZm8uc3RhdmVzQWZ0ZXIgPiAwKSB7XHJcbiAgaW5jbHVkZU5leHQudmFsdWUgPSB0cnVlO1xyXG59XHJcbndhdGNoIChpbmNsdWRlTmV4dCwgYXN5bmMgKG5ld1ZhbCwgb2xkVmFsKSA9PiB7XHJcbiAgaWYgKG5ld1ZhbCAhPT0gb2xkVmFsKSB7XHJcbiAgICBwYXJ0SW5mby5zdGF2ZXNBZnRlciA9IG5ld1ZhbCA/IDEgOiAwO1xyXG4gICAgYXdhaXQgdXBkYXRlUGFydEluZm9DYihwYXJ0SW5mbyk7XHJcbiAgfVxyXG59KTtcclxuXHJcbnR5cGUgbnVtYmVyV3JpdGVyVHlwZSA9ICh2YWx1ZTogbnVtYmVyKSA9PiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuY29uc3QgdXBkYXRlTGF5b3V0RnVuYyA9IChwYXJhbTogR2xvYmFsTGF5b3V0QXR0cmlidXRlcyk6IG51bWJlcldyaXRlclR5cGUgPT4ge1xyXG4gIGNvbnN0IGNiID0gYXN5bmMgKHZhbHVlOiBudW1iZXIpID0+IHtcclxuICAgIGF3YWl0IHdyaXRlTGF5b3V0VmFsdWUocGFyYW0sIHZhbHVlKTtcclxuICB9XHJcbiAgcmV0dXJuIGNiO1xyXG59XHJcblxyXG5jb25zdCBnZXRJZCA9IChzdHI6IHN0cmluZykgPT4ge1xyXG4gIHJldHVybiBgJHtkb21JZH0tJHtzdHJ9YDtcclxufVxyXG5cclxuPC9zY3JpcHQ+XHJcbjx0ZW1wbGF0ZT5cclxuICA8ZGlhbG9nQ29udGFpbmVyIDpkb21JZD1cImRvbUlkXCIgOmNvbW1pdENiPVwiY29tbWl0Q2JcIiA6Y2FuY2VsQ2I9XCJjYW5jZWxDYlwiIDpsYWJlbD1cImxhYmVsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLThcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIDpwbGFjZWhvbGRlcj1cInBhcnRJbmZvLnBhcnROYW1lXCIgYXJpYS1sYWJlbD1cIlBhcnQgTmFtZVwiXHJcbiAgICAgICAgICA6aWQ9XCJnZXRJZCgncGFydC1uYW1lLWlucHV0JylcIiB2LW1vZGVsPVwicGFydEluZm8ucGFydE5hbWVcIiBAY2hhbmdlPVwidXBkYXRlXCI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IHRleHQtc3RhcnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiIDppZD1cImdldElkKCdwYXJ0LW5hbWUtbGFiZWwnKVwiPlBhcnQgTmFtZTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtOFwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgOnBsYWNlaG9sZGVyPVwicGFydEluZm8ucGFydEFiYnJldmlhdGlvblwiIGFyaWEtbGFiZWw9XCJQYXJ0IEFiYnJldmlhdGlvblwiXHJcbiAgICAgICAgICA6aWQ9XCJnZXRJZCgncGFydC1hYmJyZXZpYXRpb24taW5wdXQnKVwiIHYtbW9kZWw9XCJwYXJ0SW5mby5wYXJ0QWJicmV2aWF0aW9uXCIgQGNoYW5nZT1cInVwZGF0ZVwiPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJcIiA6aWQ9XCJnZXRJZCgncGFydC1hYmJyZXZpYXRpb24tbGFiZWwnKVwiPlBhcnQgQWJicmV2aWF0aW9uPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0xXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHYtbW9kZWw9XCJwYXJ0SW5mby5wcmVzZXJ2ZVRleHRHcm91cHNcIiA6aWQ9XCJnZXRJZCgncHJlc2VydmVUZXh0JylcIlxyXG4gICAgICAgICAgQGNoYW5nZT1cIndyaXRlQm9vbGVhblZhbHVlKCdwcmVzZXJ2ZVRleHRHcm91cHMnLCBwYXJ0SW5mby5wcmVzZXJ2ZVRleHRHcm91cHMpXCI+PC9pbnB1dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTVcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgOmZvcj1cImdldElkKCdwcmVzZXJ2ZVRleHQnKVwiPlByZXNlcnZlIFRleHQgR3JvdXBzPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTFcIj5cclxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdi1tb2RlbD1cInBhcnRJbmZvLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzXCIgOmlkPVwiZ2V0SWQoJ2V4cGFuZE11bHRpbWVhc3VyZVJlc3RzJylcIlxyXG4gICAgICAgICAgQGNoYW5nZT1cIndyaXRlQm9vbGVhblZhbHVlKCdleHBhbmRNdWx0aW1lYXN1cmVSZXN0cycsIHBhcnRJbmZvLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzKVwiPjwvaW5wdXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC01XCI+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIDpmb3I9XCJnZXRJZCgnZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMnKVwiPkV4cGFuZCBNdWx0aW1lYXN1cmUgUmVzdHM8L2xhYmVsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0xXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHYtbW9kZWw9XCJpbmNsdWRlTmV4dFwiIDppZD1cImdldElkKCdpbmNsdWRlTmV4dCcpXCI+PC9pbnB1dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTVcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgOmZvcj1cImdldElkKCdpbmNsdWRlTmV4dCcpXCI+SW5jbHVkZSBOZXh0IFN0YXZlPC9sYWJlbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0zIHRleHQtZW5kXCI+UGFnZSBTaXplPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTZcIj5cclxuICAgICAgICA8c2VsZWN0Q29tcCA6ZG9tSWQ9XCJnZXRJZCgncGFnZS1zaXplLXNlbGVjdCcpXCIgOmxhYmVsPVwiJydcIiA6c2VsZWN0aW9ucz1cInBhZ2VTaXplc1wiIDppbml0aWFsVmFsdWU9XCJwYWdlU2l6ZVwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJwYWdlU2l6ZUNiXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgncGFnZS13aWR0aC1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VXaWR0aFwiIDpwcmVjaXNpb249XCIwXCJcclxuICAgICAgICAgIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3BhZ2VXaWR0aCcpXCIgOmRpc2FibGVkPVwibG9ja0RpbWVuc2lvbnNcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlBhZ2UgV2lkdGg8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC00IG1zLW40XCI+XHJcbiAgICAgICAgPG51bWJlcklucHV0QXBwIDpkb21JZD1cImdldElkKCdwYWdlLWhlaWdodC1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0LnBhZ2VIZWlnaHRcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdwYWdlSGVpZ2h0JylcIiA6ZGlzYWJsZWQ9XCJsb2NrRGltZW5zaW9uc1wiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+UGFnZSBIZWlnaHQ8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ3pvb20tc2NhbGUtaW5wdXQnKVwiIDppbml0aWFsVmFsdWU9XCJwYXJ0SW5mby5sYXlvdXRNYW5hZ2VyLmdsb2JhbExheW91dC56b29tU2NhbGVcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6cGVyY2VudD10cnVlIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ3pvb21TY2FsZScpXCIgOm1pblZhbHVlPVwiMC4yNVwiIDptYXhWYWx1ZT1cIjhcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlpvb20gU2NhbGUgKCUpPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCBtcy1uNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnc3ZnLXNjYWxlLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQuc3ZnU2NhbGVcIiA6cHJlY2lzaW9uPVwiMFwiXHJcbiAgICAgICAgICA6cGVyY2VudD1cInRydWVcIiA6Y2hhbmdlQ2I9XCJ1cGRhdGVMYXlvdXRGdW5jKCdzdmdTY2FsZScpXCIgOm1pblZhbHVlPVwiMC4yNVwiIDptYXhWYWx1ZT1cIjJcIiAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtMiBmcy03IG1zLW40IHBzLTAgdGV4dC1zdGFydFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPk5vdGUgU2l6ZSAoJSk8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgY29sLTRcIj5cclxuICAgICAgICA8bnVtYmVySW5wdXRBcHAgOmRvbUlkPVwiZ2V0SWQoJ25vdGUtc3BhY2luZy1pbnB1dCcpXCIgOmluaXRpYWxWYWx1ZT1cInBhcnRJbmZvLmxheW91dE1hbmFnZXIuZ2xvYmFsTGF5b3V0Lm5vdGVTcGFjaW5nXCIgOnByZWNpc2lvbj1cIjJcIlxyXG4gICAgICAgICAgOmNoYW5nZUNiPVwidXBkYXRlTGF5b3V0RnVuYygnbm90ZVNwYWNpbmcnKVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+Tm90ZSBTcGFjaW5nPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtNCBtcy1uNFwiPlxyXG4gICAgICAgIDxudW1iZXJJbnB1dEFwcCA6ZG9tSWQ9XCJnZXRJZCgnbWF4LW1lYXN1cmUtc3lzdGVtLWlucHV0JylcIiA6aW5pdGlhbFZhbHVlPVwicGFydEluZm8ubGF5b3V0TWFuYWdlci5nbG9iYWxMYXlvdXQubWF4TWVhc3VyZVN5c3RlbVwiXHJcbiAgICAgICAgICA6cHJlY2lzaW9uPVwiMFwiIDpjaGFuZ2VDYj1cInVwZGF0ZUxheW91dEZ1bmMoJ21heE1lYXN1cmVTeXN0ZW0nKVwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIGNvbC0yIGZzLTcgbXMtbjQgcHMtMCB0ZXh0LXN0YXJ0XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCI+TWVhc3VyZXMvU3lzdGVtPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGlhbG9nQ29udGFpbmVyPlxyXG48L3RlbXBsYXRlPiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/ts-loader/index.js??clonedRuleSet-1.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[1].rules[6].use[0]!./src/ui/components/dialogs/partInfo.vue?vue&type=template&id=7c417a1c&ts=true\n\n}");
811
811
 
812
812
  /***/ },
813
813
 
@@ -3865,7 +3865,7 @@ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpa
3865
3865
  (__unused_webpack_module, __webpack_exports__, __webpack_require__) {
3866
3866
 
3867
3867
  "use strict";
3868
- eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SuiPartInfoDialogVue: () => (/* binding */ SuiPartInfoDialogVue)\n/* harmony export */ });\n/* harmony import */ var _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../smo/data/partInfo */ \"./src/smo/data/partInfo.ts\");\n/* harmony import */ var _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../smo/xform/selections */ \"./src/smo/xform/selections.ts\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dialog */ \"./src/ui/dialogs/dialog.ts\");\n/* harmony import */ var _ui_components_dialogs_partInfo_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../ui/components/dialogs/partInfo.vue */ \"./src/ui/components/dialogs/partInfo.vue\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common */ \"./src/ui/common.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\nconst SuiPartInfoDialogVue = (parameters) => __awaiter(void 0, void 0, void 0, function* () {\n const selector = _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__.SmoSelector.default;\n const selection = _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__.SmoSelection.measureSelection(parameters.view.score, selector.staff, selector.measure);\n const backup = new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__.SmoPartInfo(selection.staff.partInfo);\n let current = backup;\n let changed = false;\n const updatePartInfoCb = (partInfo) => __awaiter(void 0, void 0, void 0, function* () {\n changed = true;\n // Since update will change the displayed score, wait for any display change to complete first.\n yield parameters.view.renderer.updatePromise();\n yield parameters.view.updatePartInfo(partInfo);\n // If we are expanding rests, we need to reload the part after setting the \n // part change. So we update the part display a second time with the new value.\n if (current.expandMultimeasureRests !== partInfo.expandMultimeasureRests) {\n parameters.view.resetPartView();\n yield parameters.view.refreshViewport();\n }\n current = new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__.SmoPartInfo(partInfo);\n });\n const commitCb = () => __awaiter(void 0, void 0, void 0, function* () {\n });\n const cancelCb = () => __awaiter(void 0, void 0, void 0, function* () {\n if (changed) {\n yield parameters.view.renderer.updatePromise();\n if (current.expandMultimeasureRests !== backup.expandMultimeasureRests) {\n parameters.view.resetPartView();\n }\n yield parameters.view.updatePartInfo(backup);\n }\n });\n const rootId = (0,_common__WEBPACK_IMPORTED_MODULE_4__.replaceVueRoot)(_common__WEBPACK_IMPORTED_MODULE_4__.modalContainerId);\n const appParams = {\n domId: rootId,\n partInfo: current,\n label: 'Part Properties',\n updatePartInfoCb\n };\n (0,_dialog__WEBPACK_IMPORTED_MODULE_2__.InstallDialog)({\n app: _ui_components_dialogs_partInfo_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n appParams,\n root: rootId,\n dialogParams: parameters,\n commitCb,\n cancelCb\n });\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWkvZGlhbG9ncy9wYXJ0SW5mby50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHc0Q7QUFDaUI7QUFFYjtBQUNTO0FBQ047QUFHdEQsTUFBTSxvQkFBb0IsR0FBRyxDQUFPLFVBQTJCLEVBQUUsRUFBRTtJQUN4RSxNQUFNLFFBQVEsR0FBRyw4REFBVyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxNQUFNLFNBQVMsR0FBRywrREFBWSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBRSxDQUFDO0lBQzFHLE1BQU0sTUFBTSxHQUFHLElBQUksMkRBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNyQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFPLFFBQXFCLEVBQUUsRUFBRTtRQUN2RCxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsK0ZBQStGO1FBQy9GLE1BQU0sVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFL0MsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQywyRUFBMkU7UUFDM0UsZ0ZBQWdGO1FBQ2hGLElBQUksT0FBTyxDQUFDLHVCQUF1QixLQUFLLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ3pFLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEMsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzFDLENBQUM7UUFDRCxPQUFPLEdBQUcsSUFBSSwyREFBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxHQUFTLEVBQUU7SUFDNUIsQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLEdBQVMsRUFBRTtRQUMxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMvQyxJQUFJLE9BQU8sQ0FBQyx1QkFBdUIsS0FBSyxNQUFNLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztnQkFDdkUsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1lBQ0QsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLHVEQUFjLENBQUMscURBQWdCLENBQUMsQ0FBQztJQUNoRCxNQUFNLFNBQVMsR0FBRztRQUNoQixLQUFLLEVBQUUsTUFBTTtRQUNiLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLEtBQUssRUFBRSxpQkFBaUI7UUFDeEIsZ0JBQWdCO0tBQ2pCLENBQUM7SUFDRixzREFBYSxDQUFDO1FBQ1osR0FBRyxFQUFFLDJFQUFXO1FBQ2hCLFNBQVM7UUFDVCxJQUFJLEVBQUUsTUFBTTtRQUNaLFlBQVksRUFBRSxVQUFVO1FBQ3hCLFFBQVE7UUFDUixRQUFRO0tBQ1QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL1Ntby8uL3NyYy91aS9kaWFsb2dzL3BhcnRJbmZvLnRzPzFiMzAiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gW1Ntb29zaWNdKGh0dHBzOi8vZ2l0aHViLmNvbS9BYXJvbkRhdmlkTmV3bWFuL1Ntb29zaWMpXHJcbi8vIENvcHlyaWdodCAoYykgQWFyb24gRGF2aWQgTmV3bWFuIDIwMjEuXHJcbmltcG9ydCB7IFNtb1Njb3JlIH0gZnJvbSAnLi4vLi4vc21vL2RhdGEvc2NvcmUnO1xyXG5pbXBvcnQgeyBTbW9QYXJ0SW5mbyB9IGZyb20gJy4uLy4uL3Ntby9kYXRhL3BhcnRJbmZvJztcclxuaW1wb3J0IHsgU21vU2VsZWN0aW9uLCBTbW9TZWxlY3RvciB9IGZyb20gJy4uLy4uL3Ntby94Zm9ybS9zZWxlY3Rpb25zJztcclxuXHJcbmltcG9ydCB7IFN1aURpYWxvZ1BhcmFtcywgSW5zdGFsbERpYWxvZyB9IGZyb20gJy4vZGlhbG9nJztcclxuaW1wb3J0IHBhcnRJbmZvQXBwIGZyb20gJy4uLy4uL3VpL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0SW5mby52dWUnO1xyXG5pbXBvcnQgeyByZXBsYWNlVnVlUm9vdCwgbW9kYWxDb250YWluZXJJZCB9IGZyb20gJy4uL2NvbW1vbic7XHJcblxyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcbmV4cG9ydCBjb25zdCBTdWlQYXJ0SW5mb0RpYWxvZ1Z1ZSA9IGFzeW5jIChwYXJhbWV0ZXJzOiBTdWlEaWFsb2dQYXJhbXMpID0+IHtcclxuICBjb25zdCBzZWxlY3RvciA9IFNtb1NlbGVjdG9yLmRlZmF1bHQ7XHJcbiAgY29uc3Qgc2VsZWN0aW9uID0gU21vU2VsZWN0aW9uLm1lYXN1cmVTZWxlY3Rpb24ocGFyYW1ldGVycy52aWV3LnNjb3JlLCBzZWxlY3Rvci5zdGFmZiwgc2VsZWN0b3IubWVhc3VyZSkhO1xyXG4gIGNvbnN0IGJhY2t1cCA9IG5ldyBTbW9QYXJ0SW5mbyhzZWxlY3Rpb24uc3RhZmYucGFydEluZm8pO1xyXG4gIGxldCBjdXJyZW50ID0gYmFja3VwO1xyXG4gIGxldCBjaGFuZ2VkID0gZmFsc2U7XHJcbiAgY29uc3QgdXBkYXRlUGFydEluZm9DYiA9IGFzeW5jIChwYXJ0SW5mbzogU21vUGFydEluZm8pID0+IHtcclxuICAgIGNoYW5nZWQgPSB0cnVlO1xyXG4gICAgLy8gU2luY2UgdXBkYXRlIHdpbGwgY2hhbmdlIHRoZSBkaXNwbGF5ZWQgc2NvcmUsIHdhaXQgZm9yIGFueSBkaXNwbGF5IGNoYW5nZSB0byBjb21wbGV0ZSBmaXJzdC5cclxuICAgIGF3YWl0IHBhcmFtZXRlcnMudmlldy5yZW5kZXJlci51cGRhdGVQcm9taXNlKCk7XHJcbiAgICBcclxuICAgIGF3YWl0IHBhcmFtZXRlcnMudmlldy51cGRhdGVQYXJ0SW5mbyhwYXJ0SW5mbyk7XHJcbiAgICAvLyBJZiB3ZSBhcmUgZXhwYW5kaW5nIHJlc3RzLCB3ZSBuZWVkIHRvIHJlbG9hZCB0aGUgcGFydCBhZnRlciBzZXR0aW5nIHRoZSBcclxuICAgIC8vIHBhcnQgY2hhbmdlLiAgU28gd2UgdXBkYXRlIHRoZSBwYXJ0IGRpc3BsYXkgYSBzZWNvbmQgdGltZSB3aXRoIHRoZSBuZXcgdmFsdWUuXHJcbiAgICBpZiAoY3VycmVudC5leHBhbmRNdWx0aW1lYXN1cmVSZXN0cyAhPT0gcGFydEluZm8uZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMpIHtcclxuICAgICAgcGFyYW1ldGVycy52aWV3LnJlc2V0UGFydFZpZXcoKTtcclxuICAgICAgYXdhaXQgcGFyYW1ldGVycy52aWV3LnJlZnJlc2hWaWV3cG9ydCgpO1xyXG4gICAgfVxyXG4gICAgY3VycmVudCA9IG5ldyBTbW9QYXJ0SW5mbyhwYXJ0SW5mbyk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBjb21taXRDYiA9IGFzeW5jICgpID0+IHtcclxuICB9XHJcbiAgY29uc3QgY2FuY2VsQ2IgPSBhc3luYyAoKSA9PiB7XHJcbiAgICBpZiAoY2hhbmdlZCkge1xyXG4gICAgICBhd2FpdCBwYXJhbWV0ZXJzLnZpZXcucmVuZGVyZXIudXBkYXRlUHJvbWlzZSgpO1xyXG4gICAgICBpZiAoY3VycmVudC5leHBhbmRNdWx0aW1lYXN1cmVSZXN0cyAhPT0gYmFja3VwLmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzKSB7XHJcbiAgICAgICAgcGFyYW1ldGVycy52aWV3LnJlc2V0UGFydFZpZXcoKTtcclxuICAgICAgfVxyXG4gICAgICBhd2FpdCBwYXJhbWV0ZXJzLnZpZXcudXBkYXRlUGFydEluZm8oYmFja3VwKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29uc3Qgcm9vdElkID0gcmVwbGFjZVZ1ZVJvb3QobW9kYWxDb250YWluZXJJZCk7XHJcbiAgY29uc3QgYXBwUGFyYW1zID0ge1xyXG4gICAgZG9tSWQ6IHJvb3RJZCxcclxuICAgIHBhcnRJbmZvOiBjdXJyZW50LFxyXG4gICAgbGFiZWw6ICdQYXJ0IFByb3BlcnRpZXMnLFxyXG4gICAgdXBkYXRlUGFydEluZm9DYlxyXG4gIH07XHJcbiAgSW5zdGFsbERpYWxvZyh7XHJcbiAgICBhcHA6IHBhcnRJbmZvQXBwLFxyXG4gICAgYXBwUGFyYW1zLFxyXG4gICAgcm9vdDogcm9vdElkLFxyXG4gICAgZGlhbG9nUGFyYW1zOiBwYXJhbWV0ZXJzLFxyXG4gICAgY29tbWl0Q2IsIFxyXG4gICAgY2FuY2VsQ2JcclxuICB9KTtcclxufVxyXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/ui/dialogs/partInfo.ts\n\n}");
3868
+ eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SuiPartInfoDialogVue: () => (/* binding */ SuiPartInfoDialogVue)\n/* harmony export */ });\n/* harmony import */ var _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../smo/data/partInfo */ \"./src/smo/data/partInfo.ts\");\n/* harmony import */ var _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../smo/xform/selections */ \"./src/smo/xform/selections.ts\");\n/* harmony import */ var _dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dialog */ \"./src/ui/dialogs/dialog.ts\");\n/* harmony import */ var _ui_components_dialogs_partInfo_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../ui/components/dialogs/partInfo.vue */ \"./src/ui/components/dialogs/partInfo.vue\");\n/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../common */ \"./src/ui/common.ts\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\nconst SuiPartInfoDialogVue = (parameters) => __awaiter(void 0, void 0, void 0, function* () {\n const selector = _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__.SmoSelector.default;\n const selection = _smo_xform_selections__WEBPACK_IMPORTED_MODULE_1__.SmoSelection.measureSelection(parameters.view.score, selector.staff, selector.measure);\n const backup = new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__.SmoPartInfo(selection.staff.partInfo);\n let current = backup;\n let changed = false;\n const updatePartInfoCb = (partInfo) => __awaiter(void 0, void 0, void 0, function* () {\n changed = true;\n // Since update will change the displayed score, wait for any display change to complete first.\n yield parameters.view.renderer.updatePromise();\n yield parameters.view.updatePartInfo(partInfo);\n // If we are expanding rests, we need to reload the part after setting the \n // part change. So we update the part display a second time with the new value.\n if (current.expandMultimeasureRests !== partInfo.expandMultimeasureRests ||\n current.stavesAfter !== partInfo.stavesAfter) {\n parameters.view.resetPartView();\n yield parameters.view.refreshViewport();\n }\n current = new _smo_data_partInfo__WEBPACK_IMPORTED_MODULE_0__.SmoPartInfo(partInfo);\n });\n const commitCb = () => __awaiter(void 0, void 0, void 0, function* () {\n });\n const cancelCb = () => __awaiter(void 0, void 0, void 0, function* () {\n if (changed) {\n yield parameters.view.renderer.updatePromise();\n if (current.expandMultimeasureRests !== backup.expandMultimeasureRests) {\n parameters.view.resetPartView();\n }\n yield parameters.view.updatePartInfo(backup);\n }\n });\n const rootId = (0,_common__WEBPACK_IMPORTED_MODULE_4__.replaceVueRoot)(_common__WEBPACK_IMPORTED_MODULE_4__.modalContainerId);\n const appParams = {\n domId: rootId,\n partInfo: current,\n label: 'Part Properties',\n updatePartInfoCb\n };\n (0,_dialog__WEBPACK_IMPORTED_MODULE_2__.InstallDialog)({\n app: _ui_components_dialogs_partInfo_vue__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n appParams,\n root: rootId,\n dialogParams: parameters,\n commitCb,\n cancelCb\n });\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvdWkvZGlhbG9ncy9wYXJ0SW5mby50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHc0Q7QUFDaUI7QUFFYjtBQUNTO0FBQ047QUFHdEQsTUFBTSxvQkFBb0IsR0FBRyxDQUFPLFVBQTJCLEVBQUUsRUFBRTtJQUN4RSxNQUFNLFFBQVEsR0FBRyw4REFBVyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxNQUFNLFNBQVMsR0FBRywrREFBWSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBRSxDQUFDO0lBQzFHLE1BQU0sTUFBTSxHQUFHLElBQUksMkRBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNyQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFPLFFBQXFCLEVBQUUsRUFBRTtRQUN2RCxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsK0ZBQStGO1FBQy9GLE1BQU0sVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFL0MsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQywyRUFBMkU7UUFDM0UsZ0ZBQWdGO1FBQ2hGLElBQUksT0FBTyxDQUFDLHVCQUF1QixLQUFLLFFBQVEsQ0FBQyx1QkFBdUI7WUFDdEUsT0FBTyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0MsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNoQyxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUNELE9BQU8sR0FBRyxJQUFJLDJEQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLEdBQVMsRUFBRTtJQUM1QixDQUFDO0lBQ0QsTUFBTSxRQUFRLEdBQUcsR0FBUyxFQUFFO1FBQzFCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9DLElBQUksT0FBTyxDQUFDLHVCQUF1QixLQUFLLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUN2RSxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2xDLENBQUM7WUFDRCxNQUFNLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsdURBQWMsQ0FBQyxxREFBZ0IsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sU0FBUyxHQUFHO1FBQ2hCLEtBQUssRUFBRSxNQUFNO1FBQ2IsUUFBUSxFQUFFLE9BQU87UUFDakIsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixnQkFBZ0I7S0FDakIsQ0FBQztJQUNGLHNEQUFhLENBQUM7UUFDWixHQUFHLEVBQUUsMkVBQVc7UUFDaEIsU0FBUztRQUNULElBQUksRUFBRSxNQUFNO1FBQ1osWUFBWSxFQUFFLFVBQVU7UUFDeEIsUUFBUTtRQUNSLFFBQVE7S0FDVCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vU21vLy4vc3JjL3VpL2RpYWxvZ3MvcGFydEluZm8udHM/MWIzMCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBbU21vb3NpY10oaHR0cHM6Ly9naXRodWIuY29tL0Fhcm9uRGF2aWROZXdtYW4vU21vb3NpYylcclxuLy8gQ29weXJpZ2h0IChjKSBBYXJvbiBEYXZpZCBOZXdtYW4gMjAyMS5cclxuaW1wb3J0IHsgU21vU2NvcmUgfSBmcm9tICcuLi8uLi9zbW8vZGF0YS9zY29yZSc7XHJcbmltcG9ydCB7IFNtb1BhcnRJbmZvIH0gZnJvbSAnLi4vLi4vc21vL2RhdGEvcGFydEluZm8nO1xyXG5pbXBvcnQgeyBTbW9TZWxlY3Rpb24sIFNtb1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vc21vL3hmb3JtL3NlbGVjdGlvbnMnO1xyXG5cclxuaW1wb3J0IHsgU3VpRGlhbG9nUGFyYW1zLCBJbnN0YWxsRGlhbG9nIH0gZnJvbSAnLi9kaWFsb2cnO1xyXG5pbXBvcnQgcGFydEluZm9BcHAgZnJvbSAnLi4vLi4vdWkvY29tcG9uZW50cy9kaWFsb2dzL3BhcnRJbmZvLnZ1ZSc7XHJcbmltcG9ydCB7IHJlcGxhY2VWdWVSb290LCBtb2RhbENvbnRhaW5lcklkIH0gZnJvbSAnLi4vY29tbW9uJztcclxuXHJcbmRlY2xhcmUgdmFyICQ6IGFueTtcclxuZXhwb3J0IGNvbnN0IFN1aVBhcnRJbmZvRGlhbG9nVnVlID0gYXN5bmMgKHBhcmFtZXRlcnM6IFN1aURpYWxvZ1BhcmFtcykgPT4ge1xyXG4gIGNvbnN0IHNlbGVjdG9yID0gU21vU2VsZWN0b3IuZGVmYXVsdDtcclxuICBjb25zdCBzZWxlY3Rpb24gPSBTbW9TZWxlY3Rpb24ubWVhc3VyZVNlbGVjdGlvbihwYXJhbWV0ZXJzLnZpZXcuc2NvcmUsIHNlbGVjdG9yLnN0YWZmLCBzZWxlY3Rvci5tZWFzdXJlKSE7XHJcbiAgY29uc3QgYmFja3VwID0gbmV3IFNtb1BhcnRJbmZvKHNlbGVjdGlvbi5zdGFmZi5wYXJ0SW5mbyk7XHJcbiAgbGV0IGN1cnJlbnQgPSBiYWNrdXA7XHJcbiAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcclxuICBjb25zdCB1cGRhdGVQYXJ0SW5mb0NiID0gYXN5bmMgKHBhcnRJbmZvOiBTbW9QYXJ0SW5mbykgPT4ge1xyXG4gICAgY2hhbmdlZCA9IHRydWU7XHJcbiAgICAvLyBTaW5jZSB1cGRhdGUgd2lsbCBjaGFuZ2UgdGhlIGRpc3BsYXllZCBzY29yZSwgd2FpdCBmb3IgYW55IGRpc3BsYXkgY2hhbmdlIHRvIGNvbXBsZXRlIGZpcnN0LlxyXG4gICAgYXdhaXQgcGFyYW1ldGVycy52aWV3LnJlbmRlcmVyLnVwZGF0ZVByb21pc2UoKTtcclxuICAgIFxyXG4gICAgYXdhaXQgcGFyYW1ldGVycy52aWV3LnVwZGF0ZVBhcnRJbmZvKHBhcnRJbmZvKTtcclxuICAgIC8vIElmIHdlIGFyZSBleHBhbmRpbmcgcmVzdHMsIHdlIG5lZWQgdG8gcmVsb2FkIHRoZSBwYXJ0IGFmdGVyIHNldHRpbmcgdGhlIFxyXG4gICAgLy8gcGFydCBjaGFuZ2UuICBTbyB3ZSB1cGRhdGUgdGhlIHBhcnQgZGlzcGxheSBhIHNlY29uZCB0aW1lIHdpdGggdGhlIG5ldyB2YWx1ZS5cclxuICAgIGlmIChjdXJyZW50LmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzICE9PSBwYXJ0SW5mby5leHBhbmRNdWx0aW1lYXN1cmVSZXN0cyB8fFxyXG4gICAgICBjdXJyZW50LnN0YXZlc0FmdGVyICE9PSBwYXJ0SW5mby5zdGF2ZXNBZnRlcikge1xyXG4gICAgICBwYXJhbWV0ZXJzLnZpZXcucmVzZXRQYXJ0VmlldygpO1xyXG4gICAgICBhd2FpdCBwYXJhbWV0ZXJzLnZpZXcucmVmcmVzaFZpZXdwb3J0KCk7XHJcbiAgICB9XHJcbiAgICBjdXJyZW50ID0gbmV3IFNtb1BhcnRJbmZvKHBhcnRJbmZvKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGNvbW1pdENiID0gYXN5bmMgKCkgPT4ge1xyXG4gIH1cclxuICBjb25zdCBjYW5jZWxDYiA9IGFzeW5jICgpID0+IHtcclxuICAgIGlmIChjaGFuZ2VkKSB7XHJcbiAgICAgIGF3YWl0IHBhcmFtZXRlcnMudmlldy5yZW5kZXJlci51cGRhdGVQcm9taXNlKCk7XHJcbiAgICAgIGlmIChjdXJyZW50LmV4cGFuZE11bHRpbWVhc3VyZVJlc3RzICE9PSBiYWNrdXAuZXhwYW5kTXVsdGltZWFzdXJlUmVzdHMpIHtcclxuICAgICAgICBwYXJhbWV0ZXJzLnZpZXcucmVzZXRQYXJ0VmlldygpO1xyXG4gICAgICB9XHJcbiAgICAgIGF3YWl0IHBhcmFtZXRlcnMudmlldy51cGRhdGVQYXJ0SW5mbyhiYWNrdXApO1xyXG4gICAgfVxyXG4gIH1cclxuICBjb25zdCByb290SWQgPSByZXBsYWNlVnVlUm9vdChtb2RhbENvbnRhaW5lcklkKTtcclxuICBjb25zdCBhcHBQYXJhbXMgPSB7XHJcbiAgICBkb21JZDogcm9vdElkLFxyXG4gICAgcGFydEluZm86IGN1cnJlbnQsXHJcbiAgICBsYWJlbDogJ1BhcnQgUHJvcGVydGllcycsXHJcbiAgICB1cGRhdGVQYXJ0SW5mb0NiXHJcbiAgfTtcclxuICBJbnN0YWxsRGlhbG9nKHtcclxuICAgIGFwcDogcGFydEluZm9BcHAsXHJcbiAgICBhcHBQYXJhbXMsXHJcbiAgICByb290OiByb290SWQsXHJcbiAgICBkaWFsb2dQYXJhbXM6IHBhcmFtZXRlcnMsXHJcbiAgICBjb21taXRDYiwgXHJcbiAgICBjYW5jZWxDYlxyXG4gIH0pO1xyXG59XHJcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/dialogs/partInfo.ts\n\n}");
3869
3869
 
3870
3870
  /***/ },
3871
3871
 
@@ -278,9 +278,8 @@ body.printing .media div.d-flex
278
278
 
279
279
  }
280
280
 
281
- body.printing .workspace-container {
282
- display:none;
283
- }
281
+ body.printing .workspace-container,
282
+ body.printing #top-bar ,
284
283
  body.printing .controls-left,
285
284
  body.printing .control-bar
286
285
  {
@@ -51,6 +51,7 @@ const predefinedDimensions: { [key: string]: dimensions } = {
51
51
  // Page size is in pixels, but if it matches a preset we just show that.
52
52
  // User chooses 'custom' to unlock width/height editing.
53
53
  const pageSize = ref('custom');
54
+
54
55
  const pageChange = () => {
55
56
  Object.keys(predefinedDimensions).forEach((key) => {
56
57
  const dims = predefinedDimensions[key];
@@ -60,6 +61,15 @@ const pageChange = () => {
60
61
  }
61
62
  });
62
63
  };
64
+ const pageSizeCb = async (val: string) => {
65
+ const dims = predefinedDimensions[val];
66
+ if (dims) {
67
+ partInfo.layoutManager.globalLayout.pageWidth = dims.width;
68
+ partInfo.layoutManager.globalLayout.pageHeight = dims.height;
69
+ }
70
+ pageSize.value = val;
71
+ // The watch will trigger the callback
72
+ }
63
73
  const lockDimensions = ref(false);
64
74
  pageChange();
65
75
  watch (pageSize, async (newVal) => {
@@ -142,18 +152,17 @@ const getId = (str: string) => {
142
152
  </div>
143
153
  <div class="row mb-2 align-items-center">
144
154
  <div class="col col-1">
145
- <input class="form-check-input" type="checkbox" v-model="partInfo.preserveTextGroups" :id="getId('preserveText')"
146
- @change="writeBooleanValue('preserveTextGroups', partInfo.preserveTextGroups)"></input>
155
+ <input class="form-check-input" type="checkbox" v-model="includeNext" :id="getId('includeNext')"></input>
147
156
  </div>
148
157
  <div class="col col-5">
149
- <label class="form-check-label" :for="getId('preserveText')">Include Next Stave</label>
158
+ <label class="form-check-label" :for="getId('includeNext')">Include Next Stave</label>
150
159
  </div>
151
160
  </div>
152
161
  <div class="row mb-2">
153
162
  <div class="col col-3 text-end">Page Size</div>
154
163
  <div class="col col-6">
155
164
  <selectComp :domId="getId('page-size-select')" :label="''" :selections="pageSizes" :initialValue="pageSize"
156
- :changeCb="pageChange" />
165
+ :changeCb="pageSizeCb" />
157
166
  </div>
158
167
  </div>
159
168
  <div class="row mb-2 align-items-center">
@@ -23,7 +23,8 @@ export const SuiPartInfoDialogVue = async (parameters: SuiDialogParams) => {
23
23
  await parameters.view.updatePartInfo(partInfo);
24
24
  // If we are expanding rests, we need to reload the part after setting the
25
25
  // part change. So we update the part display a second time with the new value.
26
- if (current.expandMultimeasureRests !== partInfo.expandMultimeasureRests) {
26
+ if (current.expandMultimeasureRests !== partInfo.expandMultimeasureRests ||
27
+ current.stavesAfter !== partInfo.stavesAfter) {
27
28
  parameters.view.resetPartView();
28
29
  await parameters.view.refreshViewport();
29
30
  }