@merchi/product-form 1.19.30 → 1.19.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/Variations.d.ts +2 -1
- package/lib/components/Variations.js +39 -6
- package/lib/components/VariationsGroups.js +2 -1
- package/lib/components/drafts/DraftApprovePanel.js +99 -26
- package/lib/components/drafts/ProductDraftsHost.js +7 -4
- package/lib/components/utils.js +9 -4
- package/lib/styles/globals.css +19 -0
- package/lib/styles/globals.css.map +1 -1
- package/lib/styles/globals.scss +21 -0
- package/lib/utils/designerInputs.d.ts +34 -0
- package/lib/utils/designerInputs.js +141 -0
- package/lib/utils/designerInputs.test.js +154 -0
- package/lib/utils/draftStorage.d.ts +4 -0
- package/lib/utils/draftStorage.js +36 -3
- package/lib/utils/draftStorage.test.js +48 -2
- package/lib/utils/variationLayout.d.ts +3 -0
- package/lib/utils/variationLayout.js +13 -0
- package/lib/utils/variationLayout.test.js +13 -0
- package/package.json +2 -2
|
@@ -25,7 +25,7 @@ import DropzoneInput from '../DropzoneInput';
|
|
|
25
25
|
import { templateDownloadHref, templateImageSources } from '../../utils/draftExport';
|
|
26
26
|
import { downloadableDraftTemplates, productAllowsClientDesign } from '../../utils/draftTemplates';
|
|
27
27
|
import { isProductLeadForm } from '../utils';
|
|
28
|
-
import {
|
|
28
|
+
import { clearDraftWork, clearOtherProductDrafts, completeGroupCount, loadArtworkPath, loadDrafts, loadTemplateUploads, missingDesignSlots, saveArtworkPath, saveDesignMethod, saveTemplateUploads } from '../../utils/draftStorage';
|
|
29
29
|
import DraftApprovePanel from './DraftApprovePanel';
|
|
30
30
|
import DraftDesignerSheet from './DraftDesignerSheet';
|
|
31
31
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
@@ -111,8 +111,12 @@ export function ProductDraftsCta() {
|
|
|
111
111
|
}, [apiUrl, formValues, product]);
|
|
112
112
|
React.useEffect(function () {
|
|
113
113
|
if (!(product !== null && product !== void 0 && product.id)) return;
|
|
114
|
+
clearOtherProductDrafts(product.id);
|
|
114
115
|
setArtworkPath(loadArtworkPath(product.id));
|
|
115
116
|
setUploads(loadTemplateUploads(product.id));
|
|
117
|
+
setDraftRevision(function (value) {
|
|
118
|
+
return value + 1;
|
|
119
|
+
});
|
|
116
120
|
}, [product === null || product === void 0 ? void 0 : product.id]);
|
|
117
121
|
if (!allowed || isProductLeadForm(product)) return null;
|
|
118
122
|
function choosePath(path) {
|
|
@@ -123,8 +127,7 @@ export function ProductDraftsCta() {
|
|
|
123
127
|
if (!(product !== null && product !== void 0 && product.id)) return;
|
|
124
128
|
var confirmed = window.confirm('This will clear your saved artwork. Start again from scratch?');
|
|
125
129
|
if (!confirmed) return;
|
|
126
|
-
|
|
127
|
-
saveTemplateUploads(product.id, []);
|
|
130
|
+
clearDraftWork(product.id);
|
|
128
131
|
setUploads([]);
|
|
129
132
|
setJob(_objectSpread(_objectSpread({}, job), {}, {
|
|
130
133
|
ownDrafts: [],
|
|
@@ -361,4 +364,4 @@ export default function ProductDraftsHost() {
|
|
|
361
364
|
}), document.body) : null]
|
|
362
365
|
});
|
|
363
366
|
}
|
|
364
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIm93bktleXMiLCJlIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX25vbkl0ZXJhYmxlUmVzdCIsImEiLCJ0b1N0cmluZyIsInNsaWNlIiwibmFtZSIsInRlc3QiLCJuIiwibCIsInUiLCJmIiwibmV4dCIsImRvbmUiLCJSZWFjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIkZhQ2hldnJvbkRvd24iLCJGYURvd25sb2FkIiwiRmFQYWludEJydXNoIiwiRmFUaW1lcyIsInVzZU1lcmNoaUZvcm1Db250ZXh0IiwiRHJvcHpvbmVJbnB1dCIsInRlbXBsYXRlRG93bmxvYWRIcmVmIiwidGVtcGxhdGVJbWFnZVNvdXJjZXMiLCJkb3dubG9hZGFibGVEcmFmdFRlbXBsYXRlcyIsInByb2R1Y3RBbGxvd3NDbGllbnREZXNpZ24iLCJpc1Byb2R1Y3RMZWFkRm9ybSIsImNsZWFyRHJhZnRzIiwiY29tcGxldGVHcm91cENvdW50IiwibG9hZEFydHdvcmtQYXRoIiwibG9hZERyYWZ0cyIsImxvYWRUZW1wbGF0ZVVwbG9hZHMiLCJtaXNzaW5nRGVzaWduU2xvdHMiLCJzYXZlQXJ0d29ya1BhdGgiLCJzYXZlRGVzaWduTWV0aG9kIiwic2F2ZVRlbXBsYXRlVXBsb2FkcyIsIkRyYWZ0QXBwcm92ZVBhbmVsIiwiRHJhZnREZXNpZ25lclNoZWV0IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIkZyYWdtZW50IiwiX0ZyYWdtZW50IiwiVGVtcGxhdGVBdmF0YXIiLCJfcmVmIiwic3JjIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImZhaWxlZCIsInNldEZhaWxlZCIsImNsYXNzTmFtZSIsImNoaWxkcmVuIiwidG9VcHBlckNhc2UiLCJhbHQiLCJvbkVycm9yIiwiZmluZENoZWNrb3V0QnV0dG9uc0VsIiwibWFya2VkIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiSFRNTEVsZW1lbnQiLCJuYW1lZCIsInN1Ym1pdCIsInBhcmVudEVsZW1lbnQiLCJQcm9kdWN0RHJhZnRzQ3RhIiwiX2hvb2tGb3JtJGdldFZhbHVlcyIsIl91c2VNZXJjaGlGb3JtQ29udGV4dCIsImFwaVVybCIsImNsYXNzTmFtZURyYWZ0Q3RhIiwiaG9va0Zvcm0iLCJqb2IiLCJwcm9kdWN0Iiwic2V0SXNEcmFmdERlc2lnbmVyT3BlbiIsInNldEpvYiIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZHJhZnRSZXZpc2lvbiIsInNldERyYWZ0UmV2aXNpb24iLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImFydHdvcmtQYXRoIiwic2V0QXJ0d29ya1BhdGgiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsInRlbXBsYXRlc09wZW4iLCJzZXRUZW1wbGF0ZXNPcGVuIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJ1cGxvYWRzIiwic2V0VXBsb2FkcyIsImFsbG93ZWQiLCJmb3JtVmFsdWVzIiwid2F0Y2giLCJnZXRWYWx1ZXMiLCJkcmFmdHMiLCJ3aW5kb3ciLCJpZCIsInN0YXR1cyIsImhhc1NhdmVkIiwiY29tcGxldGUiLCJkb3dubG9hZHMiLCJ0ZW1wbGF0ZXMiLCJtYXAiLCJ0ZW1wbGF0ZSIsImluZGV4IiwiX3RlbXBsYXRlJGZpbGUiLCJfdGVtcGxhdGUkaWQiLCJfdGVtcGxhdGUkZmlsZTIiLCJmaWxlIiwidHJpbSIsImNvbmNhdCIsImtleSIsImhyZWYiLCJwcmV2aWV3IiwiZmlsZU5hbWUiLCJpdGVtIiwidXNlRWZmZWN0IiwiY2hvb3NlUGF0aCIsInBhdGgiLCJzdGFydEFnYWluIiwiY29uZmlybWVkIiwiY29uZmlybSIsIm93bkRyYWZ0cyIsImNsaWVudEZpbGVzIiwib3BlbkRlc2lnbmVyIiwidG9nZ2xlVGVtcGxhdGVzIiwib3BlbiIsInJlbWVtYmVyVXBsb2FkcyIsImFkZFVwbG9hZCIsInByb2R1Y3RJZCIsImN1cnJlbnQiLCJ2aWV3VXJsIiwiY2FjaGVkVmlld1VybCIsImRvd25sb2FkVXJsIiwicmVtb3ZlVXBsb2FkIiwicm9sZSIsInR5cGUiLCJvbkNsaWNrIiwidG90YWwiLCJkb3dubG9hZCIsInRhcmdldCIsInJlbCIsIm11bHRpcGxlIiwiYWNjZXB0IiwicGxhY2Vob2xkZXIiLCJvblVwbG9hZFN1Y2Nlc3MiLCJQcm9kdWN0RHJhZnRzSG9zdCIsIl9ob29rRm9ybSRnZXRWYWx1ZXMyIiwiX21pc3NpbmckIiwiX3VzZU1lcmNoaUZvcm1Db250ZXh0MiIsImlzRHJhZnREZXNpZ25lck9wZW4iLCJpc0RyYWZ0TW9kYWxPcGVuIiwiY29uc3VtZVBlbmRpbmdDaGVja291dCIsIm1pc3NpbmciLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJjdGFBbmNob3IiLCJzZXRDdGFBbmNob3IiLCJidXR0b25zIiwic2xvdCIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJpbnNlcnRCZWZvcmUiLCJyZW1vdmUiLCJoYW5kbGVTYXZlZCIsInBlbmRpbmciLCJCb29sZWFuIiwiaW5pdGlhbEdyb3VwSW5kZXgiLCJncm91cEluZGV4Iiwib25DbG9zZSIsIm9uU2F2ZWQiLCJib2R5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvZHJhZnRzL1Byb2R1Y3REcmFmdHNIb3N0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCB7IEZhQ2hldnJvbkRvd24sIEZhRG93bmxvYWQsIEZhUGFpbnRCcnVzaCwgRmFUaW1lcyB9IGZyb20gJ3JlYWN0LWljb25zL2ZhJztcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcbmltcG9ydCBEcm9wem9uZUlucHV0IGZyb20gJy4uL0Ryb3B6b25lSW5wdXQnO1xuaW1wb3J0IHsgdGVtcGxhdGVEb3dubG9hZEhyZWYsIHRlbXBsYXRlSW1hZ2VTb3VyY2VzIH0gZnJvbSAnLi4vLi4vdXRpbHMvZHJhZnRFeHBvcnQnO1xuaW1wb3J0IHtcbiAgZG93bmxvYWRhYmxlRHJhZnRUZW1wbGF0ZXMsXG4gIHByb2R1Y3RBbGxvd3NDbGllbnREZXNpZ24sXG59IGZyb20gJy4uLy4uL3V0aWxzL2RyYWZ0VGVtcGxhdGVzJztcbmltcG9ydCB7IGlzUHJvZHVjdExlYWRGb3JtIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgQXJ0d29ya1BhdGgsXG4gIFRlbXBsYXRlVXBsb2FkLFxuICBjbGVhckRyYWZ0cyxcbiAgY29tcGxldGVHcm91cENvdW50LFxuICBsb2FkQXJ0d29ya1BhdGgsXG4gIGxvYWREcmFmdHMsXG4gIGxvYWRUZW1wbGF0ZVVwbG9hZHMsXG4gIG1pc3NpbmdEZXNpZ25TbG90cyxcbiAgc2F2ZUFydHdvcmtQYXRoLFxuICBzYXZlRGVzaWduTWV0aG9kLFxuICBzYXZlVGVtcGxhdGVVcGxvYWRzLFxufSBmcm9tICcuLi8uLi91dGlscy9kcmFmdFN0b3JhZ2UnO1xuaW1wb3J0IERyYWZ0QXBwcm92ZVBhbmVsIGZyb20gJy4vRHJhZnRBcHByb3ZlUGFuZWwnO1xuaW1wb3J0IERyYWZ0RGVzaWduZXJTaGVldCBmcm9tICcuL0RyYWZ0RGVzaWduZXJTaGVldCc7XG5cbmZ1bmN0aW9uIFRlbXBsYXRlQXZhdGFyKHsgc3JjLCBuYW1lIH06IHsgc3JjOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KSB7XG4gIGNvbnN0IFtmYWlsZWQsIHNldEZhaWxlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGlmICghc3JjIHx8IGZhaWxlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LXRlbXBsYXRlLWF2YXRhciBpcy1lbXB0eScgYXJpYS1oaWRkZW49J3RydWUnPlxuICAgICAgICB7bmFtZS5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpfVxuICAgICAgPC9zcGFuPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8aW1nXG4gICAgICBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LXRlbXBsYXRlLWF2YXRhcidcbiAgICAgIHNyYz17c3JjfVxuICAgICAgYWx0PScnXG4gICAgICBvbkVycm9yPXsoKSA9PiBzZXRGYWlsZWQodHJ1ZSl9XG4gICAgLz5cbiAgKTtcbn1cblxuZnVuY3Rpb24gZmluZENoZWNrb3V0QnV0dG9uc0VsKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IG1hcmtlZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1lcmNoaS1jaGVja291dC1idXR0b25zXScpO1xuICBpZiAobWFya2VkIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHJldHVybiBtYXJrZWQ7XG4gIGNvbnN0IG5hbWVkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAnLm1lcmNoaS1wcm9kdWN0LWJ1dHRvbnMtc3VibWl0LWNvbnRhaW5lciwgLm1lcmNoaS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXInLFxuICApO1xuICBpZiAobmFtZWQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgcmV0dXJuIG5hbWVkO1xuICBjb25zdCBzdWJtaXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWVyY2hpLWVtYmVkLWZvcm1fYnV0dG9uLXN1Ym1pdCcpO1xuICByZXR1cm4gc3VibWl0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgPyBzdWJtaXQucGFyZW50RWxlbWVudCA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQcm9kdWN0RHJhZnRzQ3RhKCkge1xuICBjb25zdCB7XG4gICAgYXBpVXJsLFxuICAgIGNsYXNzTmFtZURyYWZ0Q3RhLFxuICAgIGhvb2tGb3JtLFxuICAgIGpvYixcbiAgICBwcm9kdWN0LFxuICAgIHNldElzRHJhZnREZXNpZ25lck9wZW4sXG4gICAgc2V0Sm9iLFxuICB9ID0gdXNlTWVyY2hpRm9ybUNvbnRleHQoKTtcbiAgY29uc3QgW2RyYWZ0UmV2aXNpb24sIHNldERyYWZ0UmV2aXNpb25dID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IFthcnR3b3JrUGF0aCwgc2V0QXJ0d29ya1BhdGhdID0gdXNlU3RhdGU8QXJ0d29ya1BhdGg+KCdzZWxmJyk7XG4gIGNvbnN0IFt0ZW1wbGF0ZXNPcGVuLCBzZXRUZW1wbGF0ZXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3VwbG9hZHMsIHNldFVwbG9hZHNdID0gdXNlU3RhdGU8VGVtcGxhdGVVcGxvYWRbXT4oW10pO1xuXG4gIGNvbnN0IGFsbG93ZWQgPSBwcm9kdWN0QWxsb3dzQ2xpZW50RGVzaWduKHByb2R1Y3QpO1xuICBjb25zdCBmb3JtVmFsdWVzID0gaG9va0Zvcm0ud2F0Y2ggPyBob29rRm9ybS53YXRjaCgpIDogaG9va0Zvcm0uZ2V0VmFsdWVzPy4oKSB8fCB7fTtcbiAgY29uc3QgZHJhZnRzID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvZHVjdD8uaWRcbiAgICA/IGxvYWREcmFmdHMocHJvZHVjdC5pZClcbiAgICA6IFtdO1xuICBjb25zdCBzdGF0dXMgPSB1c2VNZW1vKFxuICAgICgpID0+IGNvbXBsZXRlR3JvdXBDb3VudChwcm9kdWN0LCBmb3JtVmFsdWVzLCBkcmFmdHMpLFxuICAgIFtwcm9kdWN0LCBmb3JtVmFsdWVzLCBkcmFmdHMsIGRyYWZ0UmV2aXNpb25dLFxuICApO1xuICBjb25zdCBoYXNTYXZlZCA9IHN0YXR1cy5jb21wbGV0ZSA+IDA7XG4gIGNvbnN0IGRvd25sb2FkcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlcyA9IGRvd25sb2FkYWJsZURyYWZ0VGVtcGxhdGVzKHByb2R1Y3QsIGZvcm1WYWx1ZXMpO1xuICAgIHJldHVybiB0ZW1wbGF0ZXNcbiAgICAgIC5tYXAoKHRlbXBsYXRlLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBuYW1lID0gU3RyaW5nKHRlbXBsYXRlPy5uYW1lIHx8IHRlbXBsYXRlPy5maWxlPy5uYW1lIHx8ICcnKS50cmltKClcbiAgICAgICAgICB8fCBgVGVtcGxhdGUgJHtpbmRleCArIDF9YDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBrZXk6IHRlbXBsYXRlPy5pZCA/PyBpbmRleCxcbiAgICAgICAgICBocmVmOiB0ZW1wbGF0ZURvd25sb2FkSHJlZih0ZW1wbGF0ZSwgYXBpVXJsKSxcbiAgICAgICAgICBwcmV2aWV3OiB0ZW1wbGF0ZUltYWdlU291cmNlcyh0ZW1wbGF0ZSwgYXBpVXJsKVswXSB8fCAnJyxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIGZpbGVOYW1lOiBTdHJpbmcodGVtcGxhdGU/LmZpbGU/Lm5hbWUgfHwgJycpLnRyaW0oKSB8fCBuYW1lLFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaHJlZik7XG4gIH0sIFthcGlVcmwsIGZvcm1WYWx1ZXMsIHByb2R1Y3RdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcHJvZHVjdD8uaWQpIHJldHVybjtcbiAgICBzZXRBcnR3b3JrUGF0aChsb2FkQXJ0d29ya1BhdGgocHJvZHVjdC5pZCkpO1xuICAgIHNldFVwbG9hZHMobG9hZFRlbXBsYXRlVXBsb2Fkcyhwcm9kdWN0LmlkKSk7XG4gIH0sIFtwcm9kdWN0Py5pZF0pO1xuXG4gIGlmICghYWxsb3dlZCB8fCBpc1Byb2R1Y3RMZWFkRm9ybShwcm9kdWN0KSkgcmV0dXJuIG51bGw7XG5cbiAgZnVuY3Rpb24gY2hvb3NlUGF0aChwYXRoOiBBcnR3b3JrUGF0aCkge1xuICAgIHNldEFydHdvcmtQYXRoKHBhdGgpO1xuICAgIGlmIChwcm9kdWN0Py5pZCkgc2F2ZUFydHdvcmtQYXRoKHByb2R1Y3QuaWQsIHBhdGgpO1xuICB9XG5cbiAgZnVuY3Rpb24gc3RhcnRBZ2FpbigpIHtcbiAgICBpZiAoIXByb2R1Y3Q/LmlkKSByZXR1cm47XG4gICAgY29uc3QgY29uZmlybWVkID0gd2luZG93LmNvbmZpcm0oXG4gICAgICAnVGhpcyB3aWxsIGNsZWFyIHlvdXIgc2F2ZWQgYXJ0d29yay4gU3RhcnQgYWdhaW4gZnJvbSBzY3JhdGNoPycsXG4gICAgKTtcbiAgICBpZiAoIWNvbmZpcm1lZCkgcmV0dXJuO1xuICAgIGNsZWFyRHJhZnRzKHByb2R1Y3QuaWQpO1xuICAgIHNhdmVUZW1wbGF0ZVVwbG9hZHMocHJvZHVjdC5pZCwgW10pO1xuICAgIHNldFVwbG9hZHMoW10pO1xuICAgIHNldEpvYih7XG4gICAgICAuLi5qb2IsXG4gICAgICBvd25EcmFmdHM6IFtdLFxuICAgICAgY2xpZW50RmlsZXM6IFtdLFxuICAgIH0pO1xuICAgIHNldERyYWZ0UmV2aXNpb24oKHZhbHVlKSA9PiB2YWx1ZSArIDEpO1xuICAgIGNob29zZVBhdGgoJ3NlbGYnKTtcbiAgICBzYXZlRGVzaWduTWV0aG9kKHByb2R1Y3QuaWQsICdkZXNpZ25lcicpO1xuICAgIHNldFRlbXBsYXRlc09wZW4oZmFsc2UpO1xuICAgIHNldElzRHJhZnREZXNpZ25lck9wZW4odHJ1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBvcGVuRGVzaWduZXIoKSB7XG4gICAgaWYgKHByb2R1Y3Q/LmlkKSBzYXZlRGVzaWduTWV0aG9kKHByb2R1Y3QuaWQsICdkZXNpZ25lcicpO1xuICAgIHNldFRlbXBsYXRlc09wZW4oZmFsc2UpO1xuICAgIHNldElzRHJhZnREZXNpZ25lck9wZW4odHJ1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiB0b2dnbGVUZW1wbGF0ZXMoKSB7XG4gICAgc2V0VGVtcGxhdGVzT3Blbigob3BlbikgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9ICFvcGVuO1xuICAgICAgaWYgKG5leHQgJiYgcHJvZHVjdD8uaWQpIHNhdmVEZXNpZ25NZXRob2QocHJvZHVjdC5pZCwgJ3RlbXBsYXRlcycpO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiByZW1lbWJlclVwbG9hZHMobmV4dDogVGVtcGxhdGVVcGxvYWRbXSkge1xuICAgIHNldFVwbG9hZHMobmV4dCk7XG4gICAgaWYgKHByb2R1Y3Q/LmlkKSB7XG4gICAgICBzYXZlVGVtcGxhdGVVcGxvYWRzKHByb2R1Y3QuaWQsIG5leHQpO1xuICAgICAgc2F2ZURlc2lnbk1ldGhvZChwcm9kdWN0LmlkLCAndGVtcGxhdGVzJyk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gYWRkVXBsb2FkKGZpbGU6IGFueSkge1xuICAgIGlmIChmaWxlPy5pZCA9PSBudWxsIHx8ICFwcm9kdWN0Py5pZCkgcmV0dXJuO1xuICAgIGNvbnN0IHByb2R1Y3RJZCA9IHByb2R1Y3QuaWQ7XG4gICAgc2V0VXBsb2FkcygoY3VycmVudCkgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IFtcbiAgICAgICAgLi4uY3VycmVudC5maWx0ZXIoKGl0ZW0pID0+IFN0cmluZyhpdGVtLmlkKSAhPT0gU3RyaW5nKGZpbGUuaWQpKSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiBmaWxlLmlkLFxuICAgICAgICAgIG5hbWU6IFN0cmluZyhmaWxlLm5hbWUgfHwgJ1VwbG9hZCcpLFxuICAgICAgICAgIHZpZXdVcmw6IGZpbGUudmlld1VybCB8fCBmaWxlLmNhY2hlZFZpZXdVcmwgfHwgJycsXG4gICAgICAgICAgZG93bmxvYWRVcmw6IGZpbGUuZG93bmxvYWRVcmwgfHwgJycsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgICAgc2F2ZVRlbXBsYXRlVXBsb2Fkcyhwcm9kdWN0SWQsIG5leHQpO1xuICAgICAgc2F2ZURlc2lnbk1ldGhvZChwcm9kdWN0SWQsICd0ZW1wbGF0ZXMnKTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlVXBsb2FkKGlkOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICByZW1lbWJlclVwbG9hZHModXBsb2Fkcy5maWx0ZXIoKGl0ZW0pID0+IFN0cmluZyhpdGVtLmlkKSAhPT0gU3RyaW5nKGlkKSkpO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YCR7Y2xhc3NOYW1lRHJhZnRDdGEgfHwgJyd9IG1lcmNoaS1wcm9kdWN0LWRyYWZ0LWN0YWB9PlxuICAgICAgPHN0cm9uZyBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LWN0YS1oZWFkaW5nJz5BcnR3b3JrPC9zdHJvbmc+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtY3RhLXRhYnMnIHJvbGU9J3RhYmxpc3QnIGFyaWEtbGFiZWw9J0FydHdvcmsgb3B0aW9ucyc+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPSdidXR0b24nXG4gICAgICAgICAgcm9sZT0ndGFiJ1xuICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2FydHdvcmtQYXRoID09PSAnc2VsZid9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgbWVyY2hpLXByb2R1Y3QtZHJhZnQtY3RhLXRhYiR7YXJ0d29ya1BhdGggPT09ICdzZWxmJyA/ICcgaXMtYWN0aXZlJyA6ICcnfWB9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gY2hvb3NlUGF0aCgnc2VsZicpfVxuICAgICAgICA+XG4gICAgICAgICAgRGVzaWduIG15c2VsZlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgICByb2xlPSd0YWInXG4gICAgICAgICAgYXJpYS1zZWxlY3RlZD17YXJ0d29ya1BhdGggPT09ICdzZXJ2aWNlJ31cbiAgICAgICAgICBjbGFzc05hbWU9e2BtZXJjaGktcHJvZHVjdC1kcmFmdC1jdGEtdGFiJHthcnR3b3JrUGF0aCA9PT0gJ3NlcnZpY2UnID8gJyBpcy1hY3RpdmUnIDogJyd9YH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjaG9vc2VQYXRoKCdzZXJ2aWNlJyl9XG4gICAgICAgID5cbiAgICAgICAgICBGcmVlIGRlc2lnbiBzZXJ2aWNlXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICB7YXJ0d29ya1BhdGggPT09ICdzZWxmJyA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LWN0YS1wYW5lbCcgcm9sZT0ndGFicGFuZWwnPlxuICAgICAgICAgIHtoYXNTYXZlZCA/IChcbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICB7c3RhdHVzLnRvdGFsID09PSAxXG4gICAgICAgICAgICAgICAgPyAnRHJhZnQgc2F2ZWQnXG4gICAgICAgICAgICAgICAgOiBgJHtzdGF0dXMuY29tcGxldGV9IG9mICR7c3RhdHVzLnRvdGFsfSBncm91cHMgc2F2ZWRgfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC1jdGEtY2hvaWNlcyc+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC1jdGEtYnRuJ1xuICAgICAgICAgICAgICBvbkNsaWNrPXtvcGVuRGVzaWduZXJ9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxGYVBhaW50QnJ1c2ggLz5cbiAgICAgICAgICAgICAgT3BlbiBEZXNpZ25lclxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgbWVyY2hpLXByb2R1Y3QtZHJhZnQtY3RhLWRvd25sb2FkJHt0ZW1wbGF0ZXNPcGVuID8gJyBpcy1vcGVuJyA6ICcnfWB9XG4gICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3RlbXBsYXRlc09wZW59XG4gICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9J21lcmNoaS10ZW1wbGF0ZS1kb3dubG9hZHMnXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e3RvZ2dsZVRlbXBsYXRlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEZhRG93bmxvYWQgLz5cbiAgICAgICAgICAgICAgRG93bmxvYWQgdGVtcGxhdGVzXG4gICAgICAgICAgICAgIDxGYUNoZXZyb25Eb3duIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7dGVtcGxhdGVzT3BlbiA/IChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgaWQ9J21lcmNoaS10ZW1wbGF0ZS1kb3dubG9hZHMnXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtdGVtcGxhdGUtbWVudSdcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHA+RG93bmxvYWQgdGhlIHRlbXBsYXRlcywgZWRpdCB0aGVtIGFuZCB0aGVuIHJldXBsb2FkIHRoZW08L3A+XG4gICAgICAgICAgICAgIHtkb3dubG9hZHMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LXRlbXBsYXRlLWxpc3QnPlxuICAgICAgICAgICAgICAgICAge2Rvd25sb2Fkcy5tYXAoKGl0ZW0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17aXRlbS5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUZW1wbGF0ZUF2YXRhciBzcmM9e2l0ZW0ucHJldmlld30gbmFtZT17aXRlbS5uYW1lfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtdGVtcGxhdGUtbmFtZSc+e2l0ZW0ubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtdGVtcGxhdGUtZG93bmxvYWQnXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZD17aXRlbS5maWxlTmFtZSB8fCB0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSdfYmxhbmsnXG4gICAgICAgICAgICAgICAgICAgICAgICByZWw9J25vb3BlbmVyIG5vcmVmZXJyZXInXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEZhRG93bmxvYWQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3Bhbj5ObyB0ZW1wbGF0ZXMgYXJlIGF2YWlsYWJsZSB0byBkb3dubG9hZC48L3NwYW4+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC10ZW1wbGF0ZS1kcm9wJz5cbiAgICAgICAgICAgICAgICA8RHJvcHpvbmVJbnB1dFxuICAgICAgICAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgIGFjY2VwdD0nLmpwZywuanBlZywucG5nLC5naWYsLnBkZiwuc3ZnLC5haSwuZXBzJ1xuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9J1VwbG9hZCBlZGl0ZWQgdGVtcGxhdGVzJ1xuICAgICAgICAgICAgICAgICAgb25VcGxvYWRTdWNjZXNzPXthZGRVcGxvYWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIHt1cGxvYWRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC11cGxvYWQtbGlzdCc+XG4gICAgICAgICAgICAgICAgICB7dXBsb2Fkcy5tYXAoKGZpbGUpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17ZmlsZS5pZH0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRlbXBsYXRlQXZhdGFyIHNyYz17ZmlsZS52aWV3VXJsIHx8ICcnfSBuYW1lPXtmaWxlLm5hbWV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC10ZW1wbGF0ZS1uYW1lJz57ZmlsZS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdidXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LXVwbG9hZC1yZW1vdmUnXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtgUmVtb3ZlICR7ZmlsZS5uYW1lfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiByZW1vdmVVcGxvYWQoZmlsZS5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEZhVGltZXMgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAge2hhc1NhdmVkID8gKFxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPSdidXR0b24nXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtY3RhLXJlc2V0J1xuICAgICAgICAgICAgICBvbkNsaWNrPXtzdGFydEFnYWlufVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBTdGFydCBhZ2FpblxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LWN0YS1wYW5lbCcgcm9sZT0ndGFicGFuZWwnPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgU2tpcCB0aGUgZGVzaWduZXIgYW5kIGFkZCB0byBjYXJ0LCBidXkgbm93LCBvciBnZXQgYSBxdW90ZS4gV2UmYXBvcztsbCBjcmVhdGUgYSBmcmVlXG4gICAgICAgICAgICBkcmFmdCBmb3IgeW91IGFmdGVyIHRoZSBvcmRlci5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUHJvZHVjdERyYWZ0c0hvc3QoKSB7XG4gIGNvbnN0IHtcbiAgICBob29rRm9ybSxcbiAgICBpc0RyYWZ0RGVzaWduZXJPcGVuLFxuICAgIGlzRHJhZnRNb2RhbE9wZW4sXG4gICAgcHJvZHVjdCxcbiAgICBzZXRJc0RyYWZ0RGVzaWduZXJPcGVuLFxuICAgIGNvbnN1bWVQZW5kaW5nQ2hlY2tvdXQsXG4gIH0gPSB1c2VNZXJjaGlGb3JtQ29udGV4dCgpO1xuXG4gIGNvbnN0IGFsbG93ZWQgPSBwcm9kdWN0QWxsb3dzQ2xpZW50RGVzaWduKHByb2R1Y3QpO1xuICBjb25zdCBmb3JtVmFsdWVzID0gaG9va0Zvcm0ud2F0Y2ggPyBob29rRm9ybS53YXRjaCgpIDogaG9va0Zvcm0uZ2V0VmFsdWVzPy4oKSB8fCB7fTtcbiAgY29uc3QgZHJhZnRzID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvZHVjdD8uaWRcbiAgICA/IGxvYWREcmFmdHMocHJvZHVjdC5pZClcbiAgICA6IFtdO1xuICBjb25zdCBtaXNzaW5nID0gdXNlTWVtbyhcbiAgICAoKSA9PiBtaXNzaW5nRGVzaWduU2xvdHMocHJvZHVjdCwgZm9ybVZhbHVlcywgZHJhZnRzKSxcbiAgICBbcHJvZHVjdCwgZm9ybVZhbHVlcywgZHJhZnRzXSxcbiAgKTtcbiAgY29uc3QgW2N0YUFuY2hvciwgc2V0Q3RhQW5jaG9yXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWFsbG93ZWQgfHwgaXNQcm9kdWN0TGVhZEZvcm0ocHJvZHVjdCkpIHJldHVybjtcbiAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1lcmNoaS1wcm9kdWN0LWRyYWZ0LWN0YScpKSByZXR1cm47XG5cbiAgICBjb25zdCBidXR0b25zID0gZmluZENoZWNrb3V0QnV0dG9uc0VsKCk7XG4gICAgaWYgKCFidXR0b25zPy5wYXJlbnRFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBzbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgc2xvdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVyY2hpLWRyYWZ0LWN0YS1zbG90JywgJ3RydWUnKTtcbiAgICBidXR0b25zLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKHNsb3QsIGJ1dHRvbnMpO1xuICAgIHNldEN0YUFuY2hvcihzbG90KTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgc2xvdC5yZW1vdmUoKTtcbiAgICAgIHNldEN0YUFuY2hvcihudWxsKTtcbiAgICB9O1xuICB9LCBbYWxsb3dlZCwgcHJvZHVjdF0pO1xuXG4gIGlmICghYWxsb3dlZCB8fCBpc1Byb2R1Y3RMZWFkRm9ybShwcm9kdWN0KSkgcmV0dXJuIG51bGw7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU2F2ZWQoKSB7XG4gICAgc2V0SXNEcmFmdERlc2lnbmVyT3BlbihmYWxzZSk7XG4gICAgY29uc3QgcGVuZGluZyA9IGNvbnN1bWVQZW5kaW5nQ2hlY2tvdXQ/LigpO1xuICAgIGlmIChwZW5kaW5nKSB7XG4gICAgICBwZW5kaW5nKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2N0YUFuY2hvciA/IGNyZWF0ZVBvcnRhbCg8UHJvZHVjdERyYWZ0c0N0YSAvPiwgY3RhQW5jaG9yKSA6IG51bGx9XG5cbiAgICAgIDxEcmFmdERlc2lnbmVyU2hlZXRcbiAgICAgICAgb3Blbj17Qm9vbGVhbihpc0RyYWZ0RGVzaWduZXJPcGVuKX1cbiAgICAgICAgaW5pdGlhbEdyb3VwSW5kZXg9e21pc3NpbmdbMF0/Lmdyb3VwSW5kZXggfHwgMH1cbiAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0SXNEcmFmdERlc2lnbmVyT3BlbihmYWxzZSl9XG4gICAgICAgIG9uU2F2ZWQ9e2hhbmRsZVNhdmVkfVxuICAgICAgLz5cblxuICAgICAge2lzRHJhZnRNb2RhbE9wZW4gJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LWFwcHJvdmUnXG4gICAgICAgICAgICByb2xlPSdkaWFsb2cnXG4gICAgICAgICAgICBhcmlhLW1vZGFsPSd0cnVlJ1xuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSdtZXJjaGktcHJvZHVjdC1kcmFmdC1hcHByb3ZlLXRpdGxlJ1xuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC1hcHByb3ZlLXBhbmVsJz5cbiAgICAgICAgICAgICAgPERyYWZ0QXBwcm92ZVBhbmVsIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgKVxuICAgICAgICA6IG51bGx9XG4gICAgPC8+XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFB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QUFZLENBQUMsSUFBSSxDQUFDO0lBQ3BCLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ25FLE9BQU8sRUFBRW5CLE9BQU8sQ0FBQyxDQUFDO0VBRXRCLElBQUksQ0FBQ21CLE9BQU8sSUFBSWhFLGlCQUFpQixDQUFDNkMsT0FBTyxDQUFDLEVBQUUsT0FBTyxJQUFJO0VBRXZELFNBQVM2RixXQUFXQSxDQUFBLEVBQUc7SUFDckI1RixzQkFBc0IsQ0FBQyxLQUFLLENBQUM7SUFDN0IsSUFBTTZGLE9BQU8sR0FBR2Isc0JBQXNCLGFBQXRCQSxzQkFBc0IsdUJBQXRCQSxzQkFBc0IsQ0FBRyxDQUFDO0lBQzFDLElBQUlhLE9BQU8sRUFBRTtNQUNYQSxPQUFPLENBQUMsQ0FBQztNQUNUO0lBQ0Y7RUFDRjtFQUVBLG9CQUNFNUgsS0FBQSxDQUFBRSxTQUFBO0lBQUFTLFFBQUEsR0FDR3dHLFNBQVMsZ0JBQUc3SSxZQUFZLGNBQUN3QixJQUFBLENBQUN5QixnQkFBZ0IsSUFBRSxDQUFDLEVBQUU0RixTQUFTLENBQUMsR0FBRyxJQUFJLGVBRWpFckgsSUFBQSxDQUFDRixrQkFBa0I7TUFDakJ5RixJQUFJLEVBQUV3QyxPQUFPLENBQUNoQixtQkFBbUIsQ0FBRTtNQUNuQ2lCLGlCQUFpQixFQUFFLEVBQUFuQixTQUFBLEdBQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBQUwsU0FBQSx1QkFBVkEsU0FBQSxDQUFZb0IsVUFBVSxLQUFJLENBQUU7TUFDL0NDLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBO1FBQUEsT0FBUWpHLHNCQUFzQixDQUFDLEtBQUssQ0FBQztNQUFBLENBQUM7TUFDN0NrRyxPQUFPLEVBQUVOO0lBQVksQ0FDdEIsQ0FBQyxFQUVEYixnQkFBZ0IsSUFBSSxPQUFPN0YsUUFBUSxLQUFLLFdBQVcsZ0JBQ2hEM0MsWUFBWSxjQUNad0IsSUFBQTtNQUNFWSxTQUFTLEVBQUMsOEJBQThCO01BQ3hDb0YsSUFBSSxFQUFDLFFBQVE7TUFDYixjQUFXLE1BQU07TUFDakIsbUJBQWdCLG9DQUFvQztNQUFBbkYsUUFBQSxlQUVwRGIsSUFBQTtRQUFLWSxTQUFTLEVBQUMsb0NBQW9DO1FBQUFDLFFBQUEsZUFDakRiLElBQUEsQ0FBQ0gsaUJBQWlCLElBQUU7TUFBQyxDQUNsQjtJQUFDLENBQ0gsQ0FBQyxFQUNOc0IsUUFBUSxDQUFDaUgsSUFDWCxDQUFDLEdBQ0MsSUFBSTtFQUFBLENBQ1IsQ0FBQztBQUVQIiwiaWdub3JlTGlzdCI6W119
|
|
367
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIlR5cGVFcnJvciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIm93bktleXMiLCJlIiwidCIsIk9iamVjdCIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlN0cmluZyIsIk51bWJlciIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX25vbkl0ZXJhYmxlUmVzdCIsImEiLCJ0b1N0cmluZyIsInNsaWNlIiwibmFtZSIsInRlc3QiLCJuIiwibCIsInUiLCJmIiwibmV4dCIsImRvbmUiLCJSZWFjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIkZhQ2hldnJvbkRvd24iLCJGYURvd25sb2FkIiwiRmFQYWludEJydXNoIiwiRmFUaW1lcyIsInVzZU1lcmNoaUZvcm1Db250ZXh0IiwiRHJvcHpvbmVJbnB1dCIsInRlbXBsYXRlRG93bmxvYWRIcmVmIiwidGVtcGxhdGVJbWFnZVNvdXJjZXMiLCJkb3dubG9hZGFibGVEcmFmdFRlbXBsYXRlcyIsInByb2R1Y3RBbGxvd3NDbGllbnREZXNpZ24iLCJpc1Byb2R1Y3RMZWFkRm9ybSIsImNsZWFyRHJhZnRXb3JrIiwiY2xlYXJPdGhlclByb2R1Y3REcmFmdHMiLCJjb21wbGV0ZUdyb3VwQ291bnQiLCJsb2FkQXJ0d29ya1BhdGgiLCJsb2FkRHJhZnRzIiwibG9hZFRlbXBsYXRlVXBsb2FkcyIsIm1pc3NpbmdEZXNpZ25TbG90cyIsInNhdmVBcnR3b3JrUGF0aCIsInNhdmVEZXNpZ25NZXRob2QiLCJzYXZlVGVtcGxhdGVVcGxvYWRzIiwiRHJhZnRBcHByb3ZlUGFuZWwiLCJEcmFmdERlc2lnbmVyU2hlZXQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJUZW1wbGF0ZUF2YXRhciIsIl9yZWYiLCJzcmMiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiZmFpbGVkIiwic2V0RmFpbGVkIiwiY2xhc3NOYW1lIiwiY2hpbGRyZW4iLCJ0b1VwcGVyQ2FzZSIsImFsdCIsIm9uRXJyb3IiLCJmaW5kQ2hlY2tvdXRCdXR0b25zRWwiLCJtYXJrZWQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJIVE1MRWxlbWVudCIsIm5hbWVkIiwic3VibWl0IiwicGFyZW50RWxlbWVudCIsIlByb2R1Y3REcmFmdHNDdGEiLCJfaG9va0Zvcm0kZ2V0VmFsdWVzIiwiX3VzZU1lcmNoaUZvcm1Db250ZXh0IiwiYXBpVXJsIiwiY2xhc3NOYW1lRHJhZnRDdGEiLCJob29rRm9ybSIsImpvYiIsInByb2R1Y3QiLCJzZXRJc0RyYWZ0RGVzaWduZXJPcGVuIiwic2V0Sm9iIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJkcmFmdFJldmlzaW9uIiwic2V0RHJhZnRSZXZpc2lvbiIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiYXJ0d29ya1BhdGgiLCJzZXRBcnR3b3JrUGF0aCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwidGVtcGxhdGVzT3BlbiIsInNldFRlbXBsYXRlc09wZW4iLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsInVwbG9hZHMiLCJzZXRVcGxvYWRzIiwiYWxsb3dlZCIsImZvcm1WYWx1ZXMiLCJ3YXRjaCIsImdldFZhbHVlcyIsImRyYWZ0cyIsIndpbmRvdyIsImlkIiwic3RhdHVzIiwiaGFzU2F2ZWQiLCJjb21wbGV0ZSIsImRvd25sb2FkcyIsInRlbXBsYXRlcyIsIm1hcCIsInRlbXBsYXRlIiwiaW5kZXgiLCJfdGVtcGxhdGUkZmlsZSIsIl90ZW1wbGF0ZSRpZCIsIl90ZW1wbGF0ZSRmaWxlMiIsImZpbGUiLCJ0cmltIiwiY29uY2F0Iiwia2V5IiwiaHJlZiIsInByZXZpZXciLCJmaWxlTmFtZSIsIml0ZW0iLCJ1c2VFZmZlY3QiLCJjaG9vc2VQYXRoIiwicGF0aCIsInN0YXJ0QWdhaW4iLCJjb25maXJtZWQiLCJjb25maXJtIiwib3duRHJhZnRzIiwiY2xpZW50RmlsZXMiLCJvcGVuRGVzaWduZXIiLCJ0b2dnbGVUZW1wbGF0ZXMiLCJvcGVuIiwicmVtZW1iZXJVcGxvYWRzIiwiYWRkVXBsb2FkIiwicHJvZHVjdElkIiwiY3VycmVudCIsInZpZXdVcmwiLCJjYWNoZWRWaWV3VXJsIiwiZG93bmxvYWRVcmwiLCJyZW1vdmVVcGxvYWQiLCJyb2xlIiwidHlwZSIsIm9uQ2xpY2siLCJ0b3RhbCIsImRvd25sb2FkIiwidGFyZ2V0IiwicmVsIiwibXVsdGlwbGUiLCJhY2NlcHQiLCJwbGFjZWhvbGRlciIsIm9uVXBsb2FkU3VjY2VzcyIsIlByb2R1Y3REcmFmdHNIb3N0IiwiX2hvb2tGb3JtJGdldFZhbHVlczIiLCJfbWlzc2luZyQiLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQyIiwiaXNEcmFmdERlc2lnbmVyT3BlbiIsImlzRHJhZnRNb2RhbE9wZW4iLCJjb25zdW1lUGVuZGluZ0NoZWNrb3V0IiwibWlzc2luZyIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsImN0YUFuY2hvciIsInNldEN0YUFuY2hvciIsImJ1dHRvbnMiLCJzbG90IiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsImluc2VydEJlZm9yZSIsInJlbW92ZSIsImhhbmRsZVNhdmVkIiwicGVuZGluZyIsIkJvb2xlYW4iLCJpbml0aWFsR3JvdXBJbmRleCIsImdyb3VwSW5kZXgiLCJvbkNsb3NlIiwib25TYXZlZCIsImJvZHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9kcmFmdHMvUHJvZHVjdERyYWZ0c0hvc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IHsgRmFDaGV2cm9uRG93biwgRmFEb3dubG9hZCwgRmFQYWludEJydXNoLCBGYVRpbWVzIH0gZnJvbSAncmVhY3QtaWNvbnMvZmEnO1xuaW1wb3J0IHsgdXNlTWVyY2hpRm9ybUNvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0L01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXInO1xuaW1wb3J0IERyb3B6b25lSW5wdXQgZnJvbSAnLi4vRHJvcHpvbmVJbnB1dCc7XG5pbXBvcnQgeyB0ZW1wbGF0ZURvd25sb2FkSHJlZiwgdGVtcGxhdGVJbWFnZVNvdXJjZXMgfSBmcm9tICcuLi8uLi91dGlscy9kcmFmdEV4cG9ydCc7XG5pbXBvcnQge1xuICBkb3dubG9hZGFibGVEcmFmdFRlbXBsYXRlcyxcbiAgcHJvZHVjdEFsbG93c0NsaWVudERlc2lnbixcbn0gZnJvbSAnLi4vLi4vdXRpbHMvZHJhZnRUZW1wbGF0ZXMnO1xuaW1wb3J0IHsgaXNQcm9kdWN0TGVhZEZvcm0gfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBBcnR3b3JrUGF0aCxcbiAgVGVtcGxhdGVVcGxvYWQsXG4gIGNsZWFyRHJhZnRXb3JrLFxuICBjbGVhck90aGVyUHJvZHVjdERyYWZ0cyxcbiAgY29tcGxldGVHcm91cENvdW50LFxuICBsb2FkQXJ0d29ya1BhdGgsXG4gIGxvYWREcmFmdHMsXG4gIGxvYWRUZW1wbGF0ZVVwbG9hZHMsXG4gIG1pc3NpbmdEZXNpZ25TbG90cyxcbiAgc2F2ZUFydHdvcmtQYXRoLFxuICBzYXZlRGVzaWduTWV0aG9kLFxuICBzYXZlVGVtcGxhdGVVcGxvYWRzLFxufSBmcm9tICcuLi8uLi91dGlscy9kcmFmdFN0b3JhZ2UnO1xuaW1wb3J0IERyYWZ0QXBwcm92ZVBhbmVsIGZyb20gJy4vRHJhZnRBcHByb3ZlUGFuZWwnO1xuaW1wb3J0IERyYWZ0RGVzaWduZXJTaGVldCBmcm9tICcuL0RyYWZ0RGVzaWduZXJTaGVldCc7XG5cbmZ1bmN0aW9uIFRlbXBsYXRlQXZhdGFyKHsgc3JjLCBuYW1lIH06IHsgc3JjOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KSB7XG4gIGNvbnN0IFtmYWlsZWQsIHNldEZhaWxlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGlmICghc3JjIHx8IGZhaWxlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8c3BhbiBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LXRlbXBsYXRlLWF2YXRhciBpcy1lbXB0eScgYXJpYS1oaWRkZW49J3RydWUnPlxuICAgICAgICB7bmFtZS5zbGljZSgwLCAxKS50b1VwcGVyQ2FzZSgpfVxuICAgICAgPC9zcGFuPlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8aW1nXG4gICAgICBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LXRlbXBsYXRlLWF2YXRhcidcbiAgICAgIHNyYz17c3JjfVxuICAgICAgYWx0PScnXG4gICAgICBvbkVycm9yPXsoKSA9PiBzZXRGYWlsZWQodHJ1ZSl9XG4gICAgLz5cbiAgKTtcbn1cblxuZnVuY3Rpb24gZmluZENoZWNrb3V0QnV0dG9uc0VsKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IG1hcmtlZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1lcmNoaS1jaGVja291dC1idXR0b25zXScpO1xuICBpZiAobWFya2VkIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHJldHVybiBtYXJrZWQ7XG4gIGNvbnN0IG5hbWVkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAnLm1lcmNoaS1wcm9kdWN0LWJ1dHRvbnMtc3VibWl0LWNvbnRhaW5lciwgLm1lcmNoaS1hY3Rpb24tYnV0dG9ucy1jb250YWluZXInLFxuICApO1xuICBpZiAobmFtZWQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkgcmV0dXJuIG5hbWVkO1xuICBjb25zdCBzdWJtaXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWVyY2hpLWVtYmVkLWZvcm1fYnV0dG9uLXN1Ym1pdCcpO1xuICByZXR1cm4gc3VibWl0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgPyBzdWJtaXQucGFyZW50RWxlbWVudCA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQcm9kdWN0RHJhZnRzQ3RhKCkge1xuICBjb25zdCB7XG4gICAgYXBpVXJsLFxuICAgIGNsYXNzTmFtZURyYWZ0Q3RhLFxuICAgIGhvb2tGb3JtLFxuICAgIGpvYixcbiAgICBwcm9kdWN0LFxuICAgIHNldElzRHJhZnREZXNpZ25lck9wZW4sXG4gICAgc2V0Sm9iLFxuICB9ID0gdXNlTWVyY2hpRm9ybUNvbnRleHQoKTtcbiAgY29uc3QgW2RyYWZ0UmV2aXNpb24sIHNldERyYWZ0UmV2aXNpb25dID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IFthcnR3b3JrUGF0aCwgc2V0QXJ0d29ya1BhdGhdID0gdXNlU3RhdGU8QXJ0d29ya1BhdGg+KCdzZWxmJyk7XG4gIGNvbnN0IFt0ZW1wbGF0ZXNPcGVuLCBzZXRUZW1wbGF0ZXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW3VwbG9hZHMsIHNldFVwbG9hZHNdID0gdXNlU3RhdGU8VGVtcGxhdGVVcGxvYWRbXT4oW10pO1xuXG4gIGNvbnN0IGFsbG93ZWQgPSBwcm9kdWN0QWxsb3dzQ2xpZW50RGVzaWduKHByb2R1Y3QpO1xuICBjb25zdCBmb3JtVmFsdWVzID0gaG9va0Zvcm0ud2F0Y2ggPyBob29rRm9ybS53YXRjaCgpIDogaG9va0Zvcm0uZ2V0VmFsdWVzPy4oKSB8fCB7fTtcbiAgY29uc3QgZHJhZnRzID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvZHVjdD8uaWRcbiAgICA/IGxvYWREcmFmdHMocHJvZHVjdC5pZClcbiAgICA6IFtdO1xuICBjb25zdCBzdGF0dXMgPSB1c2VNZW1vKFxuICAgICgpID0+IGNvbXBsZXRlR3JvdXBDb3VudChwcm9kdWN0LCBmb3JtVmFsdWVzLCBkcmFmdHMpLFxuICAgIFtwcm9kdWN0LCBmb3JtVmFsdWVzLCBkcmFmdHMsIGRyYWZ0UmV2aXNpb25dLFxuICApO1xuICBjb25zdCBoYXNTYXZlZCA9IHN0YXR1cy5jb21wbGV0ZSA+IDA7XG4gIGNvbnN0IGRvd25sb2FkcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlcyA9IGRvd25sb2FkYWJsZURyYWZ0VGVtcGxhdGVzKHByb2R1Y3QsIGZvcm1WYWx1ZXMpO1xuICAgIHJldHVybiB0ZW1wbGF0ZXNcbiAgICAgIC5tYXAoKHRlbXBsYXRlLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBuYW1lID0gU3RyaW5nKHRlbXBsYXRlPy5uYW1lIHx8IHRlbXBsYXRlPy5maWxlPy5uYW1lIHx8ICcnKS50cmltKClcbiAgICAgICAgICB8fCBgVGVtcGxhdGUgJHtpbmRleCArIDF9YDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBrZXk6IHRlbXBsYXRlPy5pZCA/PyBpbmRleCxcbiAgICAgICAgICBocmVmOiB0ZW1wbGF0ZURvd25sb2FkSHJlZih0ZW1wbGF0ZSwgYXBpVXJsKSxcbiAgICAgICAgICBwcmV2aWV3OiB0ZW1wbGF0ZUltYWdlU291cmNlcyh0ZW1wbGF0ZSwgYXBpVXJsKVswXSB8fCAnJyxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIGZpbGVOYW1lOiBTdHJpbmcodGVtcGxhdGU/LmZpbGU/Lm5hbWUgfHwgJycpLnRyaW0oKSB8fCBuYW1lLFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaHJlZik7XG4gIH0sIFthcGlVcmwsIGZvcm1WYWx1ZXMsIHByb2R1Y3RdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghcHJvZHVjdD8uaWQpIHJldHVybjtcbiAgICBjbGVhck90aGVyUHJvZHVjdERyYWZ0cyhwcm9kdWN0LmlkKTtcbiAgICBzZXRBcnR3b3JrUGF0aChsb2FkQXJ0d29ya1BhdGgocHJvZHVjdC5pZCkpO1xuICAgIHNldFVwbG9hZHMobG9hZFRlbXBsYXRlVXBsb2Fkcyhwcm9kdWN0LmlkKSk7XG4gICAgc2V0RHJhZnRSZXZpc2lvbigodmFsdWUpID0+IHZhbHVlICsgMSk7XG4gIH0sIFtwcm9kdWN0Py5pZF0pO1xuXG4gIGlmICghYWxsb3dlZCB8fCBpc1Byb2R1Y3RMZWFkRm9ybShwcm9kdWN0KSkgcmV0dXJuIG51bGw7XG5cbiAgZnVuY3Rpb24gY2hvb3NlUGF0aChwYXRoOiBBcnR3b3JrUGF0aCkge1xuICAgIHNldEFydHdvcmtQYXRoKHBhdGgpO1xuICAgIGlmIChwcm9kdWN0Py5pZCkgc2F2ZUFydHdvcmtQYXRoKHByb2R1Y3QuaWQsIHBhdGgpO1xuICB9XG5cbiAgZnVuY3Rpb24gc3RhcnRBZ2FpbigpIHtcbiAgICBpZiAoIXByb2R1Y3Q/LmlkKSByZXR1cm47XG4gICAgY29uc3QgY29uZmlybWVkID0gd2luZG93LmNvbmZpcm0oXG4gICAgICAnVGhpcyB3aWxsIGNsZWFyIHlvdXIgc2F2ZWQgYXJ0d29yay4gU3RhcnQgYWdhaW4gZnJvbSBzY3JhdGNoPycsXG4gICAgKTtcbiAgICBpZiAoIWNvbmZpcm1lZCkgcmV0dXJuO1xuICAgIGNsZWFyRHJhZnRXb3JrKHByb2R1Y3QuaWQpO1xuICAgIHNldFVwbG9hZHMoW10pO1xuICAgIHNldEpvYih7XG4gICAgICAuLi5qb2IsXG4gICAgICBvd25EcmFmdHM6IFtdLFxuICAgICAgY2xpZW50RmlsZXM6IFtdLFxuICAgIH0pO1xuICAgIHNldERyYWZ0UmV2aXNpb24oKHZhbHVlKSA9PiB2YWx1ZSArIDEpO1xuICAgIGNob29zZVBhdGgoJ3NlbGYnKTtcbiAgICBzYXZlRGVzaWduTWV0aG9kKHByb2R1Y3QuaWQsICdkZXNpZ25lcicpO1xuICAgIHNldFRlbXBsYXRlc09wZW4oZmFsc2UpO1xuICAgIHNldElzRHJhZnREZXNpZ25lck9wZW4odHJ1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiBvcGVuRGVzaWduZXIoKSB7XG4gICAgaWYgKHByb2R1Y3Q/LmlkKSBzYXZlRGVzaWduTWV0aG9kKHByb2R1Y3QuaWQsICdkZXNpZ25lcicpO1xuICAgIHNldFRlbXBsYXRlc09wZW4oZmFsc2UpO1xuICAgIHNldElzRHJhZnREZXNpZ25lck9wZW4odHJ1ZSk7XG4gIH1cblxuICBmdW5jdGlvbiB0b2dnbGVUZW1wbGF0ZXMoKSB7XG4gICAgc2V0VGVtcGxhdGVzT3Blbigob3BlbikgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9ICFvcGVuO1xuICAgICAgaWYgKG5leHQgJiYgcHJvZHVjdD8uaWQpIHNhdmVEZXNpZ25NZXRob2QocHJvZHVjdC5pZCwgJ3RlbXBsYXRlcycpO1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiByZW1lbWJlclVwbG9hZHMobmV4dDogVGVtcGxhdGVVcGxvYWRbXSkge1xuICAgIHNldFVwbG9hZHMobmV4dCk7XG4gICAgaWYgKHByb2R1Y3Q/LmlkKSB7XG4gICAgICBzYXZlVGVtcGxhdGVVcGxvYWRzKHByb2R1Y3QuaWQsIG5leHQpO1xuICAgICAgc2F2ZURlc2lnbk1ldGhvZChwcm9kdWN0LmlkLCAndGVtcGxhdGVzJyk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gYWRkVXBsb2FkKGZpbGU6IGFueSkge1xuICAgIGlmIChmaWxlPy5pZCA9PSBudWxsIHx8ICFwcm9kdWN0Py5pZCkgcmV0dXJuO1xuICAgIGNvbnN0IHByb2R1Y3RJZCA9IHByb2R1Y3QuaWQ7XG4gICAgc2V0VXBsb2FkcygoY3VycmVudCkgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IFtcbiAgICAgICAgLi4uY3VycmVudC5maWx0ZXIoKGl0ZW0pID0+IFN0cmluZyhpdGVtLmlkKSAhPT0gU3RyaW5nKGZpbGUuaWQpKSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiBmaWxlLmlkLFxuICAgICAgICAgIG5hbWU6IFN0cmluZyhmaWxlLm5hbWUgfHwgJ1VwbG9hZCcpLFxuICAgICAgICAgIHZpZXdVcmw6IGZpbGUudmlld1VybCB8fCBmaWxlLmNhY2hlZFZpZXdVcmwgfHwgJycsXG4gICAgICAgICAgZG93bmxvYWRVcmw6IGZpbGUuZG93bmxvYWRVcmwgfHwgJycsXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgICAgc2F2ZVRlbXBsYXRlVXBsb2Fkcyhwcm9kdWN0SWQsIG5leHQpO1xuICAgICAgc2F2ZURlc2lnbk1ldGhvZChwcm9kdWN0SWQsICd0ZW1wbGF0ZXMnKTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVtb3ZlVXBsb2FkKGlkOiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICByZW1lbWJlclVwbG9hZHModXBsb2Fkcy5maWx0ZXIoKGl0ZW0pID0+IFN0cmluZyhpdGVtLmlkKSAhPT0gU3RyaW5nKGlkKSkpO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YCR7Y2xhc3NOYW1lRHJhZnRDdGEgfHwgJyd9IG1lcmNoaS1wcm9kdWN0LWRyYWZ0LWN0YWB9PlxuICAgICAgPHN0cm9uZyBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LWN0YS1oZWFkaW5nJz5BcnR3b3JrPC9zdHJvbmc+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtY3RhLXRhYnMnIHJvbGU9J3RhYmxpc3QnIGFyaWEtbGFiZWw9J0FydHdvcmsgb3B0aW9ucyc+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPSdidXR0b24nXG4gICAgICAgICAgcm9sZT0ndGFiJ1xuICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2FydHdvcmtQYXRoID09PSAnc2VsZid9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgbWVyY2hpLXByb2R1Y3QtZHJhZnQtY3RhLXRhYiR7YXJ0d29ya1BhdGggPT09ICdzZWxmJyA/ICcgaXMtYWN0aXZlJyA6ICcnfWB9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gY2hvb3NlUGF0aCgnc2VsZicpfVxuICAgICAgICA+XG4gICAgICAgICAgRGVzaWduIG15c2VsZlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgICByb2xlPSd0YWInXG4gICAgICAgICAgYXJpYS1zZWxlY3RlZD17YXJ0d29ya1BhdGggPT09ICdzZXJ2aWNlJ31cbiAgICAgICAgICBjbGFzc05hbWU9e2BtZXJjaGktcHJvZHVjdC1kcmFmdC1jdGEtdGFiJHthcnR3b3JrUGF0aCA9PT0gJ3NlcnZpY2UnID8gJyBpcy1hY3RpdmUnIDogJyd9YH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBjaG9vc2VQYXRoKCdzZXJ2aWNlJyl9XG4gICAgICAgID5cbiAgICAgICAgICBGcmVlIGRlc2lnbiBzZXJ2aWNlXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICB7YXJ0d29ya1BhdGggPT09ICdzZWxmJyA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LWN0YS1wYW5lbCcgcm9sZT0ndGFicGFuZWwnPlxuICAgICAgICAgIHtoYXNTYXZlZCA/IChcbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICB7c3RhdHVzLnRvdGFsID09PSAxXG4gICAgICAgICAgICAgICAgPyAnRHJhZnQgc2F2ZWQnXG4gICAgICAgICAgICAgICAgOiBgJHtzdGF0dXMuY29tcGxldGV9IG9mICR7c3RhdHVzLnRvdGFsfSBncm91cHMgc2F2ZWRgfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC1jdGEtY2hvaWNlcyc+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC1jdGEtYnRuJ1xuICAgICAgICAgICAgICBvbkNsaWNrPXtvcGVuRGVzaWduZXJ9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxGYVBhaW50QnJ1c2ggLz5cbiAgICAgICAgICAgICAgT3BlbiBEZXNpZ25lclxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9J2J1dHRvbidcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgbWVyY2hpLXByb2R1Y3QtZHJhZnQtY3RhLWRvd25sb2FkJHt0ZW1wbGF0ZXNPcGVuID8gJyBpcy1vcGVuJyA6ICcnfWB9XG4gICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3RlbXBsYXRlc09wZW59XG4gICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9J21lcmNoaS10ZW1wbGF0ZS1kb3dubG9hZHMnXG4gICAgICAgICAgICAgIG9uQ2xpY2s9e3RvZ2dsZVRlbXBsYXRlc31cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEZhRG93bmxvYWQgLz5cbiAgICAgICAgICAgICAgRG93bmxvYWQgdGVtcGxhdGVzXG4gICAgICAgICAgICAgIDxGYUNoZXZyb25Eb3duIC8+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7dGVtcGxhdGVzT3BlbiA/IChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgaWQ9J21lcmNoaS10ZW1wbGF0ZS1kb3dubG9hZHMnXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtdGVtcGxhdGUtbWVudSdcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHA+RG93bmxvYWQgdGhlIHRlbXBsYXRlcywgZWRpdCB0aGVtIGFuZCB0aGVuIHJldXBsb2FkIHRoZW08L3A+XG4gICAgICAgICAgICAgIHtkb3dubG9hZHMubGVuZ3RoID8gKFxuICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LXRlbXBsYXRlLWxpc3QnPlxuICAgICAgICAgICAgICAgICAge2Rvd25sb2Fkcy5tYXAoKGl0ZW0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17aXRlbS5rZXl9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUZW1wbGF0ZUF2YXRhciBzcmM9e2l0ZW0ucHJldmlld30gbmFtZT17aXRlbS5uYW1lfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtdGVtcGxhdGUtbmFtZSc+e2l0ZW0ubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtdGVtcGxhdGUtZG93bmxvYWQnXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZD17aXRlbS5maWxlTmFtZSB8fCB0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PSdfYmxhbmsnXG4gICAgICAgICAgICAgICAgICAgICAgICByZWw9J25vb3BlbmVyIG5vcmVmZXJyZXInXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEZhRG93bmxvYWQgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIERvd25sb2FkXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8c3Bhbj5ObyB0ZW1wbGF0ZXMgYXJlIGF2YWlsYWJsZSB0byBkb3dubG9hZC48L3NwYW4+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC10ZW1wbGF0ZS1kcm9wJz5cbiAgICAgICAgICAgICAgICA8RHJvcHpvbmVJbnB1dFxuICAgICAgICAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgIGFjY2VwdD0nLmpwZywuanBlZywucG5nLC5naWYsLnBkZiwuc3ZnLC5haSwuZXBzJ1xuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9J1VwbG9hZCBlZGl0ZWQgdGVtcGxhdGVzJ1xuICAgICAgICAgICAgICAgICAgb25VcGxvYWRTdWNjZXNzPXthZGRVcGxvYWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIHt1cGxvYWRzLmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC11cGxvYWQtbGlzdCc+XG4gICAgICAgICAgICAgICAgICB7dXBsb2Fkcy5tYXAoKGZpbGUpID0+IChcbiAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17ZmlsZS5pZH0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRlbXBsYXRlQXZhdGFyIHNyYz17ZmlsZS52aWV3VXJsIHx8ICcnfSBuYW1lPXtmaWxlLm5hbWV9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC10ZW1wbGF0ZS1uYW1lJz57ZmlsZS5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdidXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LXVwbG9hZC1yZW1vdmUnXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtgUmVtb3ZlICR7ZmlsZS5uYW1lfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiByZW1vdmVVcGxvYWQoZmlsZS5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEZhVGltZXMgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAge2hhc1NhdmVkID8gKFxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPSdidXR0b24nXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT0nbWVyY2hpLXByb2R1Y3QtZHJhZnQtY3RhLXJlc2V0J1xuICAgICAgICAgICAgICBvbkNsaWNrPXtzdGFydEFnYWlufVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBTdGFydCBhZ2FpblxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LWN0YS1wYW5lbCcgcm9sZT0ndGFicGFuZWwnPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgU2tpcCB0aGUgZGVzaWduZXIgYW5kIGFkZCB0byBjYXJ0LCBidXkgbm93LCBvciBnZXQgYSBxdW90ZS4gV2UmYXBvcztsbCBjcmVhdGUgYSBmcmVlXG4gICAgICAgICAgICBkcmFmdCBmb3IgeW91IGFmdGVyIHRoZSBvcmRlci5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUHJvZHVjdERyYWZ0c0hvc3QoKSB7XG4gIGNvbnN0IHtcbiAgICBob29rRm9ybSxcbiAgICBpc0RyYWZ0RGVzaWduZXJPcGVuLFxuICAgIGlzRHJhZnRNb2RhbE9wZW4sXG4gICAgcHJvZHVjdCxcbiAgICBzZXRJc0RyYWZ0RGVzaWduZXJPcGVuLFxuICAgIGNvbnN1bWVQZW5kaW5nQ2hlY2tvdXQsXG4gIH0gPSB1c2VNZXJjaGlGb3JtQ29udGV4dCgpO1xuXG4gIGNvbnN0IGFsbG93ZWQgPSBwcm9kdWN0QWxsb3dzQ2xpZW50RGVzaWduKHByb2R1Y3QpO1xuICBjb25zdCBmb3JtVmFsdWVzID0gaG9va0Zvcm0ud2F0Y2ggPyBob29rRm9ybS53YXRjaCgpIDogaG9va0Zvcm0uZ2V0VmFsdWVzPy4oKSB8fCB7fTtcbiAgY29uc3QgZHJhZnRzID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgcHJvZHVjdD8uaWRcbiAgICA/IGxvYWREcmFmdHMocHJvZHVjdC5pZClcbiAgICA6IFtdO1xuICBjb25zdCBtaXNzaW5nID0gdXNlTWVtbyhcbiAgICAoKSA9PiBtaXNzaW5nRGVzaWduU2xvdHMocHJvZHVjdCwgZm9ybVZhbHVlcywgZHJhZnRzKSxcbiAgICBbcHJvZHVjdCwgZm9ybVZhbHVlcywgZHJhZnRzXSxcbiAgKTtcbiAgY29uc3QgW2N0YUFuY2hvciwgc2V0Q3RhQW5jaG9yXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG5cbiAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWFsbG93ZWQgfHwgaXNQcm9kdWN0TGVhZEZvcm0ocHJvZHVjdCkpIHJldHVybjtcbiAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1lcmNoaS1wcm9kdWN0LWRyYWZ0LWN0YScpKSByZXR1cm47XG5cbiAgICBjb25zdCBidXR0b25zID0gZmluZENoZWNrb3V0QnV0dG9uc0VsKCk7XG4gICAgaWYgKCFidXR0b25zPy5wYXJlbnRFbGVtZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBzbG90ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgc2xvdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWVyY2hpLWRyYWZ0LWN0YS1zbG90JywgJ3RydWUnKTtcbiAgICBidXR0b25zLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKHNsb3QsIGJ1dHRvbnMpO1xuICAgIHNldEN0YUFuY2hvcihzbG90KTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgc2xvdC5yZW1vdmUoKTtcbiAgICAgIHNldEN0YUFuY2hvcihudWxsKTtcbiAgICB9O1xuICB9LCBbYWxsb3dlZCwgcHJvZHVjdF0pO1xuXG4gIGlmICghYWxsb3dlZCB8fCBpc1Byb2R1Y3RMZWFkRm9ybShwcm9kdWN0KSkgcmV0dXJuIG51bGw7XG5cbiAgZnVuY3Rpb24gaGFuZGxlU2F2ZWQoKSB7XG4gICAgc2V0SXNEcmFmdERlc2lnbmVyT3BlbihmYWxzZSk7XG4gICAgY29uc3QgcGVuZGluZyA9IGNvbnN1bWVQZW5kaW5nQ2hlY2tvdXQ/LigpO1xuICAgIGlmIChwZW5kaW5nKSB7XG4gICAgICBwZW5kaW5nKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2N0YUFuY2hvciA/IGNyZWF0ZVBvcnRhbCg8UHJvZHVjdERyYWZ0c0N0YSAvPiwgY3RhQW5jaG9yKSA6IG51bGx9XG5cbiAgICAgIDxEcmFmdERlc2lnbmVyU2hlZXRcbiAgICAgICAgb3Blbj17Qm9vbGVhbihpc0RyYWZ0RGVzaWduZXJPcGVuKX1cbiAgICAgICAgaW5pdGlhbEdyb3VwSW5kZXg9e21pc3NpbmdbMF0/Lmdyb3VwSW5kZXggfHwgMH1cbiAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0SXNEcmFmdERlc2lnbmVyT3BlbihmYWxzZSl9XG4gICAgICAgIG9uU2F2ZWQ9e2hhbmRsZVNhdmVkfVxuICAgICAgLz5cblxuICAgICAge2lzRHJhZnRNb2RhbE9wZW4gJiYgdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9J21lcmNoaS1wcm9kdWN0LWRyYWZ0LWFwcHJvdmUnXG4gICAgICAgICAgICByb2xlPSdkaWFsb2cnXG4gICAgICAgICAgICBhcmlhLW1vZGFsPSd0cnVlJ1xuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PSdtZXJjaGktcHJvZHVjdC1kcmFmdC1hcHByb3ZlLXRpdGxlJ1xuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktcHJvZHVjdC1kcmFmdC1hcHByb3ZlLXBhbmVsJz5cbiAgICAgICAgICAgICAgPERyYWZ0QXBwcm92ZVBhbmVsIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgZG9jdW1lbnQuYm9keSxcbiAgICAgICAgKVxuICAgICAgICA6IG51bGx9XG4gICAgPC8+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
|
package/lib/components/utils.js
CHANGED
|
@@ -121,13 +121,15 @@ export function allowedFileTypes(variationField) {
|
|
|
121
121
|
return allowedTypes.join(',');
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
// Published @merchi/sdk drops unknown keys. Register
|
|
125
|
-
// this package actually constructs, or
|
|
126
|
-
// as a limited field with no options and the preview hides it.
|
|
124
|
+
// Published @merchi/sdk drops unknown keys. Register flags on the class
|
|
125
|
+
// this package actually constructs, or a rebuilt variation loses them.
|
|
127
126
|
var VariationFieldClass = VariationField;
|
|
128
127
|
VariationFieldClass.property({
|
|
129
128
|
type: Boolean
|
|
130
129
|
})(VariationFieldClass.prototype, 'allowAllPantones');
|
|
130
|
+
VariationFieldClass.property({
|
|
131
|
+
type: Number
|
|
132
|
+
})(VariationFieldClass.prototype, 'layoutSpan');
|
|
131
133
|
var merchi = new Merchi();
|
|
132
134
|
function ensureVariationOptionFlags(variation) {
|
|
133
135
|
if (variation.isVisible === undefined) variation.isVisible = true;
|
|
@@ -147,6 +149,9 @@ export function buildEmptyVariationFromField(field) {
|
|
|
147
149
|
if (variationJson !== null && variationJson !== void 0 && variationJson.variationField && (field === null || field === void 0 ? void 0 : field.allowAllPantones) != null && variationJson.variationField.allowAllPantones == null) {
|
|
148
150
|
variationJson.variationField.allowAllPantones = Boolean(field.allowAllPantones);
|
|
149
151
|
}
|
|
152
|
+
if (variationJson !== null && variationJson !== void 0 && variationJson.variationField && (field === null || field === void 0 ? void 0 : field.layoutSpan) != null && variationJson.variationField.layoutSpan == null) {
|
|
153
|
+
variationJson.variationField.layoutSpan = field.layoutSpan;
|
|
154
|
+
}
|
|
150
155
|
ensureVariationOptionFlags(variationJson);
|
|
151
156
|
return variationJson;
|
|
152
157
|
}
|
|
@@ -508,4 +513,4 @@ export function cleanJobVariationsAndGroups(jobJson) {
|
|
|
508
513
|
}
|
|
509
514
|
return jobJson;
|
|
510
515
|
}
|
|
511
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXJjaGkiLCJWYXJpYXRpb25GaWVsZCIsImZvcm1hdEN1cnJlbmN5IiwiUHJvZHVjdFR5cGUiLCJGaWVsZFR5cGUiLCJjbGVhbkZvcm1WYXJpYXRpb25Kc29uIiwiZGVmYXVsdEdyb3VwUXVhbnRpdHkiLCJlbmZvcmNlTW9xUGVyR3JvdXAiLCJwcm9kdWN0TWluaW11bVF1YW50aXR5IiwicHJvZHVjdE1vcUZsb29yIiwicG5nT3B0aW9uTm90Rm91bmQiLCJyZXF1aXJlIiwicmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24iLCJjb3N0IiwiY3VycmVuY3lDb2RlIiwiY29zdFR5cGVTdHJpbmciLCJjdXJyZW5jeU9wdGlvbnMiLCJjdXJyZW5jeSIsInNob3dDb2RlSWZOb1N5bWJvbCIsImNvc3RTdHJpbmciLCJhbW91bnQiLCJwYXJzZUZsb2F0IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJjb3N0RGV0YWlsIiwib25jZU9mZkNvc3QiLCJ1bml0Q29zdCIsIm9uY2VPZmZDb3N0RGVzY3JpcHRpb24iLCJ1bml0Q29zdERlc2NyaXB0aW9uIiwidmFyaWF0aW9uRmllbGRDb3N0RGV0YWlsIiwidmFyaWF0aW9uRmllbGQiLCJ2YXJpYXRpb25Db3N0IiwidmFyaWF0aW9uVW5pdENvc3QiLCJ2YXJpYXRpb25Db3N0RGV0YWlsIiwidmFyaWF0aW9uIiwidmFyaWF0aW9uRmllbGRPcHRpb25Db3N0RGV0YWlsIiwib3B0aW9uIiwiX29wdGlvbiRvbmNlT2ZmQ29zdCIsIl9vcHRpb24kdW5pdENvc3QiLCJwcm9kdWN0U2V0dXBDb3N0RGV0YWlsIiwicHJvZHVjdCIsInNldHVwUHJpY2UiLCJsYWJlbCIsInNldHVwUGVyR3JvdXAiLCJzcGxpdFNlbGVjdGVkT3B0aW9ucyIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwic3BsaXQiLCJzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlIiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GIiwiX3R5cGVvZiIsImZpZWxkVHlwZSIsIkNPTE9VUl9FWFRSQUNUIiwic2VsZWN0YWJsZSIsInNlbGVjdGFibGVPcHRpb25zIiwibGVuZ3RoIiwic2VsZWN0ZWRJZHMiLCJtYXAiLCJTdHJpbmciLCJmaWx0ZXIiLCJCb29sZWFuIiwicmVzb2x2ZWQiLCJpbmNsdWRlcyIsIm9wdGlvbklkIiwiX29iamVjdFNwcmVhZCIsInNlbGVjdGVkT3B0aW9ucyIsInN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzIiwiam9iIiwibmV4dCIsInZhcmlhdGlvbnMiLCJ2YXJpYXRpb25zR3JvdXBzIiwiZ3JvdXAiLCJzdXBwbGllclNlbGxlckVkaXRhYmxlUHJvZHVjdFR5cGVzIiwiU1VQUExJRVJfTU9EIiwiQ0xPTkVEX1NVUFBMSUVSX01PRCIsIm9wdGlvbkltYWdlVXJsIiwiaW1hZ2UiLCJpbWFnZU5vdEZvdW5kIiwic3JjIiwibGlua2VkRmlsZSIsInZpZXdVcmwiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVNYXBwaW5nIiwiYWxsb3dGaWxlSnBlZyIsImFsbG93RmlsZUdpZiIsImFsbG93RmlsZVBkZiIsImFsbG93RmlsZVBuZyIsImFsbG93RmlsZUFpIiwiYWxsb3dlZFR5cGVzIiwiT2JqZWN0Iiwia2V5cyIsImF0dHJpYnV0ZU5hbWUiLCJqb2luIiwiVmFyaWF0aW9uRmllbGRDbGFzcyIsInByb3BlcnR5IiwidHlwZSIsInByb3RvdHlwZSIsIm1lcmNoaSIsImVuc3VyZVZhcmlhdGlvbk9wdGlvbkZsYWdzIiwiaXNWaXNpYmxlIiwidW5kZWZpbmVkIiwiZm9yRWFjaCIsImF2YWlsYWJsZSIsImJ1aWxkRW1wdHlWYXJpYXRpb25Gcm9tRmllbGQiLCJmaWVsZCIsImZpZWxkRW50IiwiZnJvbUpzb24iLCJtYWtlRGlydHkiLCJ2YXJpYXRpb25Kc29uIiwiYnVpbGRFbXB0eVZhcmlhdGlvbiIsInRvSnNvbiIsImFsbG93QWxsUGFudG9uZXMiLCJidWlsZEVtcHR5VmFyaWF0aW9uR3JvdXAiLCJwcm9kdWN0RW50IiwiUHJvZHVjdCIsIm5ld0dyb3VwIiwiZ3JvdXBDb3N0IiwicXVhbnRpdHkiLCJncm91cEpzb24iLCJpc1Byb2R1Y3RTdXBwbGllck1PRCIsInByb2R1Y3RUeXBlIiwiU1VQUExJRVJfUkVTRUxMX01PRCIsImlzUHJvZHVjdFR5cGVGaWxlRG93bmxvYWQiLCJwYXJzZUludCIsIlNFTExFUl9GSUxFX0RPV05MT0FEIiwiaXNQcm9kdWN0RmlsZURvd25sb2FkIiwiaXNQcm9kdWN0TGVhZEZvcm0iLCJMRUFEX0ZPUk0iLCJpc29Db3VudHJpZXMiLCJBRiIsIkFYIiwiQUwiLCJEWiIsIkFTIiwiQUQiLCJBTyIsIkFJIiwiQVEiLCJBRyIsIkFSIiwiQU0iLCJBVyIsIkFVIiwiQVQiLCJBWiIsIkJTIiwiQkgiLCJCRCIsIkJCIiwiQlkiLCJCRSIsIkJaIiwiQkoiLCJCTSIsIkJUIiwiQk8iLCJCQSIsIkJXIiwiQlYiLCJCUiIsIklPIiwiQk4iLCJCRyIsIkJGIiwiQkkiLCJLSCIsIkNNIiwiQ0EiLCJDViIsIktZIiwiQ0YiLCJURCIsIkNMIiwiQ04iLCJDWCIsIkNDIiwiQ08iLCJLTSIsIkNHIiwiQ0QiLCJDSyIsIkNSIiwiQ0kiLCJIUiIsIkNVIiwiQ1kiLCJDWiIsIkRLIiwiREoiLCJETSIsIkRPIiwiRUMiLCJFRyIsIlNWIiwiR1EiLCJFUiIsIkVFIiwiRVQiLCJGSyIsIkZPIiwiRkoiLCJGSSIsIkZSIiwiR0YiLCJQRiIsIlRGIiwiR0EiLCJHTSIsIkdFIiwiREUiLCJHSCIsIkdJIiwiR1IiLCJHTCIsIkdEIiwiR1AiLCJHVSIsIkdUIiwiR0ciLCJHTiIsIkdXIiwiR1kiLCJIVCIsIkhNIiwiVkEiLCJITiIsIkhLIiwiSFUiLCJJUyIsIklOIiwiSUQiLCJJUiIsIklRIiwiSUUiLCJJTSIsIklMIiwiSVQiLCJKTSIsIkpQIiwiSkUiLCJKTyIsIktaIiwiS0UiLCJLSSIsIktSIiwiS1ciLCJLRyIsIkxBIiwiTFYiLCJMQiIsIkxTIiwiTFIiLCJMWSIsIkxJIiwiTFQiLCJMVSIsIk1PIiwiTUsiLCJNRyIsIk1XIiwiTVkiLCJNViIsIk1MIiwiTVQiLCJNSCIsIk1RIiwiTVIiLCJNVSIsIllUIiwiTVgiLCJGTSIsIk1EIiwiTUMiLCJNTiIsIk1FIiwiTVMiLCJNQSIsIk1aIiwiTU0iLCJOQSIsIk5SIiwiTlAiLCJOTCIsIkFOIiwiTkMiLCJOWiIsIk5JIiwiTkUiLCJORyIsIk5VIiwiTkYiLCJNUCIsIk5PIiwiT00iLCJQSyIsIlBXIiwiUFMiLCJQQSIsIlBHIiwiUFkiLCJQRSIsIlBIIiwiUE4iLCJQTCIsIlBUIiwiUFIiLCJRQSIsIlJFIiwiUk8iLCJSVSIsIlJXIiwiQkwiLCJTSCIsIktOIiwiTEMiLCJNRiIsIlBNIiwiVkMiLCJXUyIsIlNNIiwiU1QiLCJTQSIsIlNOIiwiUlMiLCJTQyIsIlNMIiwiU0ciLCJTSyIsIlNJIiwiU0IiLCJTTyIsIlpBIiwiR1MiLCJFUyIsIkxLIiwiU0QiLCJTUiIsIlNKIiwiU1oiLCJTRSIsIkNIIiwiU1kiLCJUVyIsIlRKIiwiVFoiLCJUSCIsIlRMIiwiVEciLCJUSyIsIlRPIiwiVFQiLCJUTiIsIlRSIiwiVE0iLCJUQyIsIlRWIiwiVUciLCJVQSIsIkFFIiwiR0IiLCJVUyIsIlVNIiwiVVkiLCJVWiIsIlZVIiwiVkUiLCJWTiIsIlZHIiwiVkkiLCJXRiIsIkVIIiwiWUUiLCJaTSIsIlpXIiwiZ2V0Q291bnRyeU5hbWUiLCJjb3VudHJ5Q29kZSIsImhhc093blByb3BlcnR5IiwiY2xlYW5UYWdJZHMiLCJyYXciLCJpZCIsInRyaW0iLCJ0ZXN0IiwiZ2V0TWVyY2hpU291cmNlSm9iVGFncyIsImxvY2FsU3RvcmFnZSIsIm1lcmNoaVNvdXJjZSIsImdldEl0ZW0iLCJpZHMiLCJzb3J0QnlQb3NpdGlvbiIsIm9wdGlvbnMiLCJvYmoiLCJwb3NpdGlvbiIsInNvcnQiLCJhIiwiYiIsImFQb3NpdGlvbiIsImJQb3NpdGlvbiIsImNsZWFuSm9iVmFyaWF0aW9uc0FuZEdyb3VwcyIsImpvYkpzb24iLCJoYXNHcm91cHMiLCJoYXNWYXJpYXRpb25zIiwiaSIsImoiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50cy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXJjaGksIFZhcmlhdGlvbkZpZWxkIH0gZnJvbSAnQG1lcmNoaS9zZGsnO1xuaW1wb3J0IHsgZm9ybWF0Q3VycmVuY3kgfSBmcm9tICcuLi91dGlscy9jdXJyZW5jeSc7XG5pbXBvcnQgeyBQcm9kdWN0VHlwZSwgRmllbGRUeXBlIH0gZnJvbSAnLi4vdXRpbHMvdHlwZXMnO1xuZXhwb3J0IHsgY2xlYW5Gb3JtVmFyaWF0aW9uSnNvbiB9IGZyb20gJy4uL3V0aWxzL2NsZWFuRm9ybVZhcmlhdGlvbkpzb24nO1xuaW1wb3J0IHsgY2xlYW5Gb3JtVmFyaWF0aW9uSnNvbiB9IGZyb20gJy4uL3V0aWxzL2NsZWFuRm9ybVZhcmlhdGlvbkpzb24nO1xuaW1wb3J0IHsgZGVmYXVsdEdyb3VwUXVhbnRpdHkgfSBmcm9tICcuLi91dGlscy9xdWFudGl0eSc7XG5leHBvcnQge1xuICBkZWZhdWx0R3JvdXBRdWFudGl0eSxcbiAgZW5mb3JjZU1vcVBlckdyb3VwLFxuICBwcm9kdWN0TWluaW11bVF1YW50aXR5LFxuICBwcm9kdWN0TW9xRmxvb3IsXG59IGZyb20gJy4uL3V0aWxzL3F1YW50aXR5JztcbmNvbnN0IHBuZ09wdGlvbk5vdEZvdW5kID0gcmVxdWlyZSgnLi4vaW1hZ2VzL3Byb2R1Y3Qtbm90LWZvdW5kLnBuZycpO1xuXG5mdW5jdGlvbiByZW5kZXJTaW5nbGVDb3N0SW5kaWNhdGlvbihcbiAgY29zdDogYW55LFxuICBjdXJyZW5jeUNvZGU6IGFueSxcbiAgY29zdFR5cGVTdHJpbmc6IHN0cmluZ1xuKSB7XG4gIGxldCBjdXJyZW5jeU9wdGlvbnMgPSB7IGN1cnJlbmN5OiBjdXJyZW5jeUNvZGUsIHNob3dDb2RlSWZOb1N5bWJvbDogZmFsc2UgfTtcbiAgbGV0IGNvc3RTdHJpbmcgPSAnJztcbiAgY29uc3QgYW1vdW50ID0gcGFyc2VGbG9hdChjb3N0KTtcblxuICBpZiAoTnVtYmVyLmlzRmluaXRlKGFtb3VudCkgJiYgYW1vdW50ID4gMCkge1xuICAgIGNvc3RTdHJpbmcgPSBmb3JtYXRDdXJyZW5jeShhbW91bnQsIGN1cnJlbmN5T3B0aW9ucyk7XG4gICAgY29zdFN0cmluZyA9ICcgKyAnICsgY29zdFN0cmluZyArICcgJyArIGNvc3RUeXBlU3RyaW5nO1xuICB9XG4gIHJldHVybiBjb3N0U3RyaW5nO1xufVxuXG5jb25zdCBjb3N0RGV0YWlsID0gKG9uY2VPZmZDb3N0OiBhbnksIHVuaXRDb3N0OiBhbnksIGN1cnJlbmN5Q29kZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG9uY2VPZmZDb3N0RGVzY3JpcHRpb24gPSByZW5kZXJTaW5nbGVDb3N0SW5kaWNhdGlvbihcbiAgICBwYXJzZUZsb2F0KG9uY2VPZmZDb3N0KSxcbiAgICBjdXJyZW5jeUNvZGUsXG4gICAgJ29uY2Ugb2ZmJ1xuICApO1xuICBjb25zdCB1bml0Q29zdERlc2NyaXB0aW9uID0gcmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24oXG4gICAgcGFyc2VGbG9hdCh1bml0Q29zdCksXG4gICAgY3VycmVuY3lDb2RlLFxuICAgICdwZXIgdW5pdCdcbiAgKTtcbiAgcmV0dXJuIG9uY2VPZmZDb3N0RGVzY3JpcHRpb24gKyB1bml0Q29zdERlc2NyaXB0aW9uO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhdGlvbkZpZWxkQ29zdERldGFpbCh2YXJpYXRpb25GaWVsZDogYW55KSB7XG4gIGNvbnN0IHsgdmFyaWF0aW9uQ29zdCwgdmFyaWF0aW9uVW5pdENvc3QsIGN1cnJlbmN5IH0gPSB2YXJpYXRpb25GaWVsZDtcbiAgcmV0dXJuIGNvc3REZXRhaWwodmFyaWF0aW9uQ29zdCEsIHZhcmlhdGlvblVuaXRDb3N0ISwgY3VycmVuY3khKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhdGlvbkNvc3REZXRhaWwodmFyaWF0aW9uOiBhbnkpIHtcbiAgY29uc3QgeyBvbmNlT2ZmQ29zdCwgdW5pdENvc3QsIGN1cnJlbmN5IH0gPSB2YXJpYXRpb247XG4gIHJldHVybiBjb3N0RGV0YWlsKG9uY2VPZmZDb3N0ISwgdW5pdENvc3QhLCBjdXJyZW5jeSEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWF0aW9uRmllbGRPcHRpb25Db3N0RGV0YWlsKG9wdGlvbjogYW55KSB7XG4gIGNvbnN0IHsgY3VycmVuY3kgfSA9IG9wdGlvbjtcbiAgLy8gRmllbGQgb3B0aW9ucyB1c2UgdmFyaWF0aW9uQ29zdDsgc2VsZWN0YWJsZSBWYXJpYXRpb25PcHRpb25zIHVzZSBvbmNlT2ZmQ29zdC5cbiAgY29uc3Qgb25jZU9mZkNvc3QgPSBvcHRpb24ub25jZU9mZkNvc3QgPz8gb3B0aW9uLnZhcmlhdGlvbkNvc3Q7XG4gIGNvbnN0IHVuaXRDb3N0ID0gb3B0aW9uLnVuaXRDb3N0ID8/IG9wdGlvbi52YXJpYXRpb25Vbml0Q29zdDtcbiAgcmV0dXJuIGNvc3REZXRhaWwob25jZU9mZkNvc3QhLCB1bml0Q29zdCEsIGN1cnJlbmN5ISk7XG59XG5cbi8qKiBQcm9kdWN0LWxldmVsIHNldHVwIGZlZSwgc2FtZSBcIisgJFgg4oCmXCIgc3R5bGUgYXMgdmFyaWF0aW9uIG9uY2Utb2ZmIGNvc3RzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2R1Y3RTZXR1cENvc3REZXRhaWwocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHNldHVwUHJpY2UgPSBwYXJzZUZsb2F0KHByb2R1Y3Q/LnNldHVwUHJpY2UpO1xuICBpZiAoIXNldHVwUHJpY2UpIHJldHVybiAnJztcbiAgY29uc3QgbGFiZWwgPSBwcm9kdWN0LnNldHVwUGVyR3JvdXAgPyAnc2V0dXAgcGVyIGdyb3VwJyA6ICdzZXR1cCc7XG4gIHJldHVybiByZW5kZXJTaW5nbGVDb3N0SW5kaWNhdGlvbihzZXR1cFByaWNlLCBwcm9kdWN0LmN1cnJlbmN5LCBsYWJlbCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFNlbGVjdGVkT3B0aW9ucyh2YWx1ZTogYW55KSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5zcGxpdCgnLCcpO1xuICB9XG4gIHJldHVybiBbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN5bmNTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWUodmFyaWF0aW9uOiBhbnkpOiBhbnkge1xuICBpZiAoIXZhcmlhdGlvbiB8fCB0eXBlb2YgdmFyaWF0aW9uICE9PSAnb2JqZWN0JykgcmV0dXJuIHZhcmlhdGlvbjtcbiAgY29uc3QgZmllbGRUeXBlID0gTnVtYmVyKHZhcmlhdGlvbj8udmFyaWF0aW9uRmllbGQ/LmZpZWxkVHlwZSk7XG4gIGlmIChmaWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DT0xPVVJfRVhUUkFDVCkgcmV0dXJuIHZhcmlhdGlvbjtcblxuICBjb25zdCBzZWxlY3RhYmxlID0gdmFyaWF0aW9uPy5zZWxlY3RhYmxlT3B0aW9ucyB8fCBbXTtcbiAgaWYgKCFzZWxlY3RhYmxlLmxlbmd0aCkgcmV0dXJuIHZhcmlhdGlvbjtcblxuICBjb25zdCBzZWxlY3RlZElkcyA9IHNwbGl0U2VsZWN0ZWRPcHRpb25zKHZhcmlhdGlvbj8udmFsdWUpXG4gICAgLm1hcChTdHJpbmcpXG4gICAgLmZpbHRlcihCb29sZWFuKTtcbiAgaWYgKCFzZWxlY3RlZElkcy5sZW5ndGgpIHJldHVybiB2YXJpYXRpb247XG5cbiAgY29uc3QgcmVzb2x2ZWQgPSBzZWxlY3RhYmxlLmZpbHRlcigob3B0aW9uOiBhbnkpID0+XG4gICAgc2VsZWN0ZWRJZHMuaW5jbHVkZXMoU3RyaW5nKG9wdGlvbi5vcHRpb25JZCkpXG4gICk7XG4gIGlmICghcmVzb2x2ZWQubGVuZ3RoKSByZXR1cm4gdmFyaWF0aW9uO1xuXG4gIHJldHVybiB7IC4uLnZhcmlhdGlvbiwgc2VsZWN0ZWRPcHRpb25zOiByZXNvbHZlZCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3luY0pvYlNlbGVjdGVkT3B0aW9uc0Zyb21WYWx1ZXMoam9iOiBhbnkpOiBhbnkge1xuICBpZiAoIWpvYiB8fCB0eXBlb2Ygam9iICE9PSAnb2JqZWN0JykgcmV0dXJuIGpvYjtcbiAgY29uc3QgbmV4dCA9IHsgLi4uam9iIH07XG4gIGlmIChBcnJheS5pc0FycmF5KG5leHQudmFyaWF0aW9ucykpIHtcbiAgICBuZXh0LnZhcmlhdGlvbnMgPSBuZXh0LnZhcmlhdGlvbnMubWFwKHN5bmNTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWUpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KG5leHQudmFyaWF0aW9uc0dyb3VwcykpIHtcbiAgICBuZXh0LnZhcmlhdGlvbnNHcm91cHMgPSBuZXh0LnZhcmlhdGlvbnNHcm91cHMubWFwKChncm91cDogYW55KSA9PiAoe1xuICAgICAgLi4uZ3JvdXAsXG4gICAgICB2YXJpYXRpb25zOiBBcnJheS5pc0FycmF5KGdyb3VwPy52YXJpYXRpb25zKVxuICAgICAgICA/IGdyb3VwLnZhcmlhdGlvbnMubWFwKHN5bmNTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWUpXG4gICAgICAgIDogZ3JvdXA/LnZhcmlhdGlvbnMsXG4gICAgfSkpO1xuICB9XG4gIHJldHVybiBuZXh0O1xufVxuXG5leHBvcnQgY29uc3Qgc3VwcGxpZXJTZWxsZXJFZGl0YWJsZVByb2R1Y3RUeXBlczogQXJyYXk8bnVtYmVyPiA9IFtcbiAgUHJvZHVjdFR5cGUuU1VQUExJRVJfTU9ELFxuICBQcm9kdWN0VHlwZS5DTE9ORURfU1VQUExJRVJfTU9ELFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbkltYWdlVXJsKG9wdGlvbjogYW55KSB7XG4gIGNvbnN0IGltYWdlID0gcG5nT3B0aW9uTm90Rm91bmQgPyAocG5nT3B0aW9uTm90Rm91bmQuZGVmYXVsdCB8fCBwbmdPcHRpb25Ob3RGb3VuZCkgOiAnJztcbiAgY29uc3QgaW1hZ2VOb3RGb3VuZCA9IGltYWdlID8gKGltYWdlLnNyYyB8fCBpbWFnZSkgOiAnJztcbiAgcmV0dXJuIG9wdGlvbi5saW5rZWRGaWxlXG4gICAgPyBvcHRpb24ubGlua2VkRmlsZVxuICAgICAgPyBvcHRpb24ubGlua2VkRmlsZS52aWV3VXJsXG4gICAgICA6IGltYWdlTm90Rm91bmRcbiAgICA6IGltYWdlTm90Rm91bmQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbGxvd2VkRmlsZVR5cGVzKHZhcmlhdGlvbkZpZWxkOiBhbnkpOiBzdHJpbmcge1xuICBjb25zdCBmaWxlVHlwZU1hcHBpbmc6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgYWxsb3dGaWxlSnBlZzogJy5qcGVnJyxcbiAgICBhbGxvd0ZpbGVHaWY6ICcuZ2lmJyxcbiAgICBhbGxvd0ZpbGVQZGY6ICcucGRmJyxcbiAgICBhbGxvd0ZpbGVQbmc6ICcucG5nJyxcbiAgICBhbGxvd0ZpbGVBaTogJy5haScsXG4gIH07XG5cbiAgY29uc3QgYWxsb3dlZFR5cGVzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGZpbGVUeXBlTWFwcGluZylcbiAgICAuZmlsdGVyKChhdHRyaWJ1dGVOYW1lKSA9PiB2YXJpYXRpb25GaWVsZFthdHRyaWJ1dGVOYW1lXSlcbiAgICAubWFwKChhdHRyaWJ1dGVOYW1lKSA9PiBmaWxlVHlwZU1hcHBpbmdbYXR0cmlidXRlTmFtZV0pO1xuXG4gIHJldHVybiBhbGxvd2VkVHlwZXMuam9pbignLCcpO1xufVxuXG4vLyBQdWJsaXNoZWQgQG1lcmNoaS9zZGsgZHJvcHMgdW5rbm93biBrZXlzLiBSZWdpc3RlciB0aGUgZmxhZyBvbiB0aGUgY2xhc3Ncbi8vIHRoaXMgcGFja2FnZSBhY3R1YWxseSBjb25zdHJ1Y3RzLCBvciBhbiBhbGxvdy1hbGwgUGFudG9uZSBmaWVsZCBpcyBzYXZlZFxuLy8gYXMgYSBsaW1pdGVkIGZpZWxkIHdpdGggbm8gb3B0aW9ucyBhbmQgdGhlIHByZXZpZXcgaGlkZXMgaXQuXG5jb25zdCBWYXJpYXRpb25GaWVsZENsYXNzID0gVmFyaWF0aW9uRmllbGQgYXMgdW5rbm93biBhcyB7XG4gIHByb3BlcnR5OiAob3B0aW9ucz86IHsgdHlwZT86IHVua25vd24gfSkgPT4gKHRhcmdldDogb2JqZWN0LCBrZXk6IHN0cmluZykgPT4gdm9pZDtcbiAgcHJvdG90eXBlOiBvYmplY3Q7XG59O1xuVmFyaWF0aW9uRmllbGRDbGFzcy5wcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSkoXG4gIFZhcmlhdGlvbkZpZWxkQ2xhc3MucHJvdG90eXBlLFxuICAnYWxsb3dBbGxQYW50b25lcycsXG4pO1xuXG5jb25zdCBtZXJjaGkgPSBuZXcgTWVyY2hpKCk7XG5cbmZ1bmN0aW9uIGVuc3VyZVZhcmlhdGlvbk9wdGlvbkZsYWdzKHZhcmlhdGlvbjogYW55KSB7XG4gIGlmICh2YXJpYXRpb24uaXNWaXNpYmxlID09PSB1bmRlZmluZWQpIHZhcmlhdGlvbi5pc1Zpc2libGUgPSB0cnVlO1xuICAodmFyaWF0aW9uLnNlbGVjdGFibGVPcHRpb25zIHx8IFtdKS5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgIGlmIChvcHRpb24uaXNWaXNpYmxlID09PSB1bmRlZmluZWQpIG9wdGlvbi5pc1Zpc2libGUgPSB0cnVlO1xuICAgIGlmIChvcHRpb24uYXZhaWxhYmxlID09PSB1bmRlZmluZWQpIG9wdGlvbi5hdmFpbGFibGUgPSB0cnVlO1xuICB9KTtcbn1cblxuLyoqIEJ1aWxkIGEgZGVmYXVsdCB2YXJpYXRpb24gSlNPTiBmb3IgYSBwcm9kdWN0IHZhcmlhdGlvbiBmaWVsZCAoZ2F0ZWQgZmllbGRzKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVtcHR5VmFyaWF0aW9uRnJvbUZpZWxkKGZpZWxkOiBhbnkpIHtcbiAgY29uc3QgZmllbGRFbnQgPSBuZXcgbWVyY2hpLlZhcmlhdGlvbkZpZWxkKCk7XG4gIGZpZWxkRW50LmZyb21Kc29uKHsgLi4uZmllbGQgfSwgeyBtYWtlRGlydHk6IGZhbHNlIH0pO1xuICBjb25zdCB2YXJpYXRpb25Kc29uID0gZmllbGRFbnQuYnVpbGRFbXB0eVZhcmlhdGlvbigpLnRvSnNvbigpO1xuICBpZiAoXG4gICAgdmFyaWF0aW9uSnNvbj8udmFyaWF0aW9uRmllbGQgJiZcbiAgICBmaWVsZD8uYWxsb3dBbGxQYW50b25lcyAhPSBudWxsICYmXG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5hbGxvd0FsbFBhbnRvbmVzID09IG51bGxcbiAgKSB7XG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5hbGxvd0FsbFBhbnRvbmVzID0gQm9vbGVhbihmaWVsZC5hbGxvd0FsbFBhbnRvbmVzKTtcbiAgfVxuICBlbnN1cmVWYXJpYXRpb25PcHRpb25GbGFncyh2YXJpYXRpb25Kc29uKTtcbiAgcmV0dXJuIHZhcmlhdGlvbkpzb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVtcHR5VmFyaWF0aW9uR3JvdXAocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHByb2R1Y3RFbnQgPSBuZXcgbWVyY2hpLlByb2R1Y3QoKTtcbiAgcHJvZHVjdEVudC5mcm9tSnNvbih7Li4ucHJvZHVjdH0sIHsgbWFrZURpcnR5OiBmYWxzZX0pO1xuICBjb25zdCBuZXdHcm91cCA9IG5ldyBwcm9kdWN0RW50LmJ1aWxkRW1wdHlWYXJpYXRpb25Hcm91cCgpO1xuICBuZXdHcm91cC5ncm91cENvc3QgPSAwO1xuICBuZXdHcm91cC5xdWFudGl0eSA9IGRlZmF1bHRHcm91cFF1YW50aXR5KHByb2R1Y3QpO1xuICBjb25zdCBncm91cEpzb24gPSBuZXdHcm91cC50b0pzb24oKTtcbiAgLy8gVGhlIFNESydzIGJ1aWxkVmFyaWF0aW9uT3B0aW9uIGRvZXMgbm90IHNldCBgaXNWaXNpYmxlYC9gYXZhaWxhYmxlYCBvbiB0aGVcbiAgLy8gYnVpbHQgc2VsZWN0YWJsZSBvcHRpb25zLiBJbiBzZXJ2ZXIgbW9kZSB0aGVzZSBhcmUgcmVwb3B1bGF0ZWQgYnkgdGhlXG4gIC8vIGVzdGltYXRlIHJvdW5kLXRyaXAgKyBmb3JtIHJlc2V0LCBidXQgaW4gY2xpZW50IG1vZGUgKG5vIHJvdW5kLXRyaXApIHRoZVxuICAvLyBvcHRpb25zIHdvdWxkIHJlbmRlciBkaXNhYmxlZCAoXCItIGRpc2FibGVkXCIpLiBEZWZhdWx0IHRoZW0gaGVyZSBzbyBhIGZyZXNobHlcbiAgLy8gYWRkZWQgZ3JvdXAgaXMgdXNhYmxlOyBvcHRpb24tbGV2ZWwgY29uZGl0aW9uYWwgdmlzaWJpbGl0eSAoc2VsZWN0ZWRCeSkgaXNcbiAgLy8gcmVzb2x2ZWQgb24gc3Vic2VxdWVudCBpbnRlcmFjdGlvbnMgaW4gc2VydmVyIG1vZGUuXG4gIChncm91cEpzb24udmFyaWF0aW9ucyB8fCBbXSkuZm9yRWFjaChlbnN1cmVWYXJpYXRpb25PcHRpb25GbGFncyk7XG4gIHJldHVybiBncm91cEpzb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2R1Y3RTdXBwbGllck1PRChwcm9kdWN0OiBhbnkpIHtcbiAgY29uc3QgcHJvZHVjdFR5cGUgPSBwcm9kdWN0ICYmIHByb2R1Y3QucHJvZHVjdFR5cGU7XG4gIHJldHVybiAoXG4gICAgcHJvZHVjdCAmJlxuICAgIFtcbiAgICAgIFN0cmluZyhQcm9kdWN0VHlwZS5TVVBQTElFUl9NT0QpLFxuICAgICAgU3RyaW5nKFByb2R1Y3RUeXBlLlNVUFBMSUVSX1JFU0VMTF9NT0QpLFxuICAgIF0uaW5jbHVkZXMoU3RyaW5nKHByb2R1Y3RUeXBlKSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvZHVjdFR5cGVGaWxlRG93bmxvYWQocHJvZHVjdFR5cGU6IGFueSkge1xuICByZXR1cm4gcGFyc2VJbnQocHJvZHVjdFR5cGUsIDEwKSA9PT0gUHJvZHVjdFR5cGUuU0VMTEVSX0ZJTEVfRE9XTkxPQUQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2R1Y3RGaWxlRG93bmxvYWQocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHsgcHJvZHVjdFR5cGUgfSA9IHByb2R1Y3Q7XG4gIHJldHVybiBpc1Byb2R1Y3RUeXBlRmlsZURvd25sb2FkKHByb2R1Y3RUeXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvZHVjdExlYWRGb3JtKHByb2R1Y3Q6IGFueSkge1xuICBjb25zdCBwcm9kdWN0VHlwZSA9IHByb2R1Y3QgJiYgcHJvZHVjdC5wcm9kdWN0VHlwZTtcbiAgcmV0dXJuIHBhcnNlSW50KHByb2R1Y3RUeXBlLCAxMCkgPT09IFByb2R1Y3RUeXBlLkxFQURfRk9STTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzb0NvdW50cmllczogYW55ID0ge1xuICBBRjogJ0FmZ2hhbmlzdGFuJyxcbiAgQVg6ICdBbGFuZCBJc2xhbmRzJyxcbiAgQUw6ICdBbGJhbmlhJyxcbiAgRFo6ICdBbGdlcmlhJyxcbiAgQVM6ICdBbWVyaWNhbiBTYW1vYScsXG4gIEFEOiAnQW5kb3JyYScsXG4gIEFPOiAnQW5nb2xhJyxcbiAgQUk6ICdBbmd1aWxsYScsXG4gIEFROiAnQW50YXJjdGljYScsXG4gIEFHOiAnQW50aWd1YSBBbmQgQmFyYnVkYScsXG4gIEFSOiAnQXJnZW50aW5hJyxcbiAgQU06ICdBcm1lbmlhJyxcbiAgQVc6ICdBcnViYScsXG4gIEFVOiAnQXVzdHJhbGlhJyxcbiAgQVQ6ICdBdXN0cmlhJyxcbiAgQVo6ICdBemVyYmFpamFuJyxcbiAgQlM6ICdCYWhhbWFzJyxcbiAgQkg6ICdCYWhyYWluJyxcbiAgQkQ6ICdCYW5nbGFkZXNoJyxcbiAgQkI6ICdCYXJiYWRvcycsXG4gIEJZOiAnQmVsYXJ1cycsXG4gIEJFOiAnQmVsZ2l1bScsXG4gIEJaOiAnQmVsaXplJyxcbiAgQko6ICdCZW5pbicsXG4gIEJNOiAnQmVybXVkYScsXG4gIEJUOiAnQmh1dGFuJyxcbiAgQk86ICdCb2xpdmlhJyxcbiAgQkE6ICdCb3NuaWEgQW5kIEhlcnplZ292aW5hJyxcbiAgQlc6ICdCb3Rzd2FuYScsXG4gIEJWOiAnQm91dmV0IElzbGFuZCcsXG4gIEJSOiAnQnJhemlsJyxcbiAgSU86ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknLFxuICBCTjogJ0JydW5laSBEYXJ1c3NhbGFtJyxcbiAgQkc6ICdCdWxnYXJpYScsXG4gIEJGOiAnQnVya2luYSBGYXNvJyxcbiAgQkk6ICdCdXJ1bmRpJyxcbiAgS0g6ICdDYW1ib2RpYScsXG4gIENNOiAnQ2FtZXJvb24nLFxuICBDQTogJ0NhbmFkYScsXG4gIENWOiAnQ2FwZSBWZXJkZScsXG4gIEtZOiAnQ2F5bWFuIElzbGFuZHMnLFxuICBDRjogJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYycsXG4gIFREOiAnQ2hhZCcsXG4gIENMOiAnQ2hpbGUnLFxuICBDTjogJ0NoaW5hJyxcbiAgQ1g6ICdDaHJpc3RtYXMgSXNsYW5kJyxcbiAgQ0M6ICdDb2NvcyAoS2VlbGluZykgSXNsYW5kcycsXG4gIENPOiAnQ29sb21iaWEnLFxuICBLTTogJ0NvbW9yb3MnLFxuICBDRzogJ0NvbmdvJyxcbiAgQ0Q6ICdDb25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYycsXG4gIENLOiAnQ29vayBJc2xhbmRzJyxcbiAgQ1I6ICdDb3N0YSBSaWNhJyxcbiAgQ0k6IFwiQ290ZSBEJ0l2b2lyZVwiLFxuICBIUjogJ0Nyb2F0aWEnLFxuICBDVTogJ0N1YmEnLFxuICBDWTogJ0N5cHJ1cycsXG4gIENaOiAnQ3plY2ggUmVwdWJsaWMnLFxuICBESzogJ0Rlbm1hcmsnLFxuICBESjogJ0RqaWJvdXRpJyxcbiAgRE06ICdEb21pbmljYScsXG4gIERPOiAnRG9taW5pY2FuIFJlcHVibGljJyxcbiAgRUM6ICdFY3VhZG9yJyxcbiAgRUc6ICdFZ3lwdCcsXG4gIFNWOiAnRWwgU2FsdmFkb3InLFxuICBHUTogJ0VxdWF0b3JpYWwgR3VpbmVhJyxcbiAgRVI6ICdFcml0cmVhJyxcbiAgRUU6ICdFc3RvbmlhJyxcbiAgRVQ6ICdFdGhpb3BpYScsXG4gIEZLOiAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpJyxcbiAgRk86ICdGYXJvZSBJc2xhbmRzJyxcbiAgRko6ICdGaWppJyxcbiAgRkk6ICdGaW5sYW5kJyxcbiAgRlI6ICdGcmFuY2UnLFxuICBHRjogJ0ZyZW5jaCBHdWlhbmEnLFxuICBQRjogJ0ZyZW5jaCBQb2x5bmVzaWEnLFxuICBURjogJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcycsXG4gIEdBOiAnR2Fib24nLFxuICBHTTogJ0dhbWJpYScsXG4gIEdFOiAnR2VvcmdpYScsXG4gIERFOiAnR2VybWFueScsXG4gIEdIOiAnR2hhbmEnLFxuICBHSTogJ0dpYnJhbHRhcicsXG4gIEdSOiAnR3JlZWNlJyxcbiAgR0w6ICdHcmVlbmxhbmQnLFxuICBHRDogJ0dyZW5hZGEnLFxuICBHUDogJ0d1YWRlbG91cGUnLFxuICBHVTogJ0d1YW0nLFxuICBHVDogJ0d1YXRlbWFsYScsXG4gIEdHOiAnR3Vlcm5zZXknLFxuICBHTjogJ0d1aW5lYScsXG4gIEdXOiAnR3VpbmVhLUJpc3NhdScsXG4gIEdZOiAnR3V5YW5hJyxcbiAgSFQ6ICdIYWl0aScsXG4gIEhNOiAnSGVhcmQgSXNsYW5kICYgTWNkb25hbGQgSXNsYW5kcycsXG4gIFZBOiAnSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSknLFxuICBITjogJ0hvbmR1cmFzJyxcbiAgSEs6ICdIb25nIEtvbmcnLFxuICBIVTogJ0h1bmdhcnknLFxuICBJUzogJ0ljZWxhbmQnLFxuICBJTjogJ0luZGlhJyxcbiAgSUQ6ICdJbmRvbmVzaWEnLFxuICBJUjogJ0lyYW4sIElzbGFtaWMgUmVwdWJsaWMgT2YnLFxuICBJUTogJ0lyYXEnLFxuICBJRTogJ0lyZWxhbmQnLFxuICBJTTogJ0lzbGUgT2YgTWFuJyxcbiAgSUw6ICdJc3JhZWwnLFxuICBJVDogJ0l0YWx5JyxcbiAgSk06ICdKYW1haWNhJyxcbiAgSlA6ICdKYXBhbicsXG4gIEpFOiAnSmVyc2V5JyxcbiAgSk86ICdKb3JkYW4nLFxuICBLWjogJ0themFraHN0YW4nLFxuICBLRTogJ0tlbnlhJyxcbiAgS0k6ICdLaXJpYmF0aScsXG4gIEtSOiAnS29yZWEnLFxuICBLVzogJ0t1d2FpdCcsXG4gIEtHOiAnS3lyZ3l6c3RhbicsXG4gIExBOiBcIkxhbyBQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljXCIsXG4gIExWOiAnTGF0dmlhJyxcbiAgTEI6ICdMZWJhbm9uJyxcbiAgTFM6ICdMZXNvdGhvJyxcbiAgTFI6ICdMaWJlcmlhJyxcbiAgTFk6ICdMaWJ5YW4gQXJhYiBKYW1haGlyaXlhJyxcbiAgTEk6ICdMaWVjaHRlbnN0ZWluJyxcbiAgTFQ6ICdMaXRodWFuaWEnLFxuICBMVTogJ0x1eGVtYm91cmcnLFxuICBNTzogJ01hY2FvJyxcbiAgTUs6ICdNYWNlZG9uaWEnLFxuICBNRzogJ01hZGFnYXNjYXInLFxuICBNVzogJ01hbGF3aScsXG4gIE1ZOiAnTWFsYXlzaWEnLFxuICBNVjogJ01hbGRpdmVzJyxcbiAgTUw6ICdNYWxpJyxcbiAgTVQ6ICdNYWx0YScsXG4gIE1IOiAnTWFyc2hhbGwgSXNsYW5kcycsXG4gIE1ROiAnTWFydGluaXF1ZScsXG4gIE1SOiAnTWF1cml0YW5pYScsXG4gIE1VOiAnTWF1cml0aXVzJyxcbiAgWVQ6ICdNYXlvdHRlJyxcbiAgTVg6ICdNZXhpY28nLFxuICBGTTogJ01pY3JvbmVzaWEsIEZlZGVyYXRlZCBTdGF0ZXMgT2YnLFxuICBNRDogJ01vbGRvdmEnLFxuICBNQzogJ01vbmFjbycsXG4gIE1OOiAnTW9uZ29saWEnLFxuICBNRTogJ01vbnRlbmVncm8nLFxuICBNUzogJ01vbnRzZXJyYXQnLFxuICBNQTogJ01vcm9jY28nLFxuICBNWjogJ01vemFtYmlxdWUnLFxuICBNTTogJ015YW5tYXInLFxuICBOQTogJ05hbWliaWEnLFxuICBOUjogJ05hdXJ1JyxcbiAgTlA6ICdOZXBhbCcsXG4gIE5MOiAnTmV0aGVybGFuZHMnLFxuICBBTjogJ05ldGhlcmxhbmRzIEFudGlsbGVzJyxcbiAgTkM6ICdOZXcgQ2FsZWRvbmlhJyxcbiAgTlo6ICdOZXcgWmVhbGFuZCcsXG4gIE5JOiAnTmljYXJhZ3VhJyxcbiAgTkU6ICdOaWdlcicsXG4gIE5HOiAnTmlnZXJpYScsXG4gIE5VOiAnTml1ZScsXG4gIE5GOiAnTm9yZm9sayBJc2xhbmQnLFxuICBNUDogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcycsXG4gIE5POiAnTm9yd2F5JyxcbiAgT006ICdPbWFuJyxcbiAgUEs6ICdQYWtpc3RhbicsXG4gIFBXOiAnUGFsYXUnLFxuICBQUzogJ1BhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQnLFxuICBQQTogJ1BhbmFtYScsXG4gIFBHOiAnUGFwdWEgTmV3IEd1aW5lYScsXG4gIFBZOiAnUGFyYWd1YXknLFxuICBQRTogJ1BlcnUnLFxuICBQSDogJ1BoaWxpcHBpbmVzJyxcbiAgUE46ICdQaXRjYWlybicsXG4gIFBMOiAnUG9sYW5kJyxcbiAgUFQ6ICdQb3J0dWdhbCcsXG4gIFBSOiAnUHVlcnRvIFJpY28nLFxuICBRQTogJ1FhdGFyJyxcbiAgUkU6ICdSZXVuaW9uJyxcbiAgUk86ICdSb21hbmlhJyxcbiAgUlU6ICdSdXNzaWFuIEZlZGVyYXRpb24nLFxuICBSVzogJ1J3YW5kYScsXG4gIEJMOiAnU2FpbnQgQmFydGhlbGVteScsXG4gIFNIOiAnU2FpbnQgSGVsZW5hJyxcbiAgS046ICdTYWludCBLaXR0cyBBbmQgTmV2aXMnLFxuICBMQzogJ1NhaW50IEx1Y2lhJyxcbiAgTUY6ICdTYWludCBNYXJ0aW4nLFxuICBQTTogJ1NhaW50IFBpZXJyZSBBbmQgTWlxdWVsb24nLFxuICBWQzogJ1NhaW50IFZpbmNlbnQgQW5kIEdyZW5hZGluZXMnLFxuICBXUzogJ1NhbW9hJyxcbiAgU006ICdTYW4gTWFyaW5vJyxcbiAgU1Q6ICdTYW8gVG9tZSBBbmQgUHJpbmNpcGUnLFxuICBTQTogJ1NhdWRpIEFyYWJpYScsXG4gIFNOOiAnU2VuZWdhbCcsXG4gIFJTOiAnU2VyYmlhJyxcbiAgU0M6ICdTZXljaGVsbGVzJyxcbiAgU0w6ICdTaWVycmEgTGVvbmUnLFxuICBTRzogJ1NpbmdhcG9yZScsXG4gIFNLOiAnU2xvdmFraWEnLFxuICBTSTogJ1Nsb3ZlbmlhJyxcbiAgU0I6ICdTb2xvbW9uIElzbGFuZHMnLFxuICBTTzogJ1NvbWFsaWEnLFxuICBaQTogJ1NvdXRoIEFmcmljYScsXG4gIEdTOiAnU291dGggR2VvcmdpYSBBbmQgU2FuZHdpY2ggSXNsLicsXG4gIEVTOiAnU3BhaW4nLFxuICBMSzogJ1NyaSBMYW5rYScsXG4gIFNEOiAnU3VkYW4nLFxuICBTUjogJ1N1cmluYW1lJyxcbiAgU0o6ICdTdmFsYmFyZCBBbmQgSmFuIE1heWVuJyxcbiAgU1o6ICdTd2F6aWxhbmQnLFxuICBTRTogJ1N3ZWRlbicsXG4gIENIOiAnU3dpdHplcmxhbmQnLFxuICBTWTogJ1N5cmlhbiBBcmFiIFJlcHVibGljJyxcbiAgVFc6ICdUYWl3YW4nLFxuICBUSjogJ1RhamlraXN0YW4nLFxuICBUWjogJ1RhbnphbmlhJyxcbiAgVEg6ICdUaGFpbGFuZCcsXG4gIFRMOiAnVGltb3ItTGVzdGUnLFxuICBURzogJ1RvZ28nLFxuICBUSzogJ1Rva2VsYXUnLFxuICBUTzogJ1RvbmdhJyxcbiAgVFQ6ICdUcmluaWRhZCBBbmQgVG9iYWdvJyxcbiAgVE46ICdUdW5pc2lhJyxcbiAgVFI6ICdUdXJrZXknLFxuICBUTTogJ1R1cmttZW5pc3RhbicsXG4gIFRDOiAnVHVya3MgQW5kIENhaWNvcyBJc2xhbmRzJyxcbiAgVFY6ICdUdXZhbHUnLFxuICBVRzogJ1VnYW5kYScsXG4gIFVBOiAnVWtyYWluZScsXG4gIEFFOiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMnLFxuICBHQjogJ1VuaXRlZCBLaW5nZG9tJyxcbiAgVVM6ICdVbml0ZWQgU3RhdGVzJyxcbiAgVU06ICdVbml0ZWQgU3RhdGVzIE91dGx5aW5nIElzbGFuZHMnLFxuICBVWTogJ1VydWd1YXknLFxuICBVWjogJ1V6YmVraXN0YW4nLFxuICBWVTogJ1ZhbnVhdHUnLFxuICBWRTogJ1ZlbmV6dWVsYScsXG4gIFZOOiAnVmlldCBOYW0nLFxuICBWRzogJ1ZpcmdpbiBJc2xhbmRzLCBCcml0aXNoJyxcbiAgVkk6ICdWaXJnaW4gSXNsYW5kcywgVS5TLicsXG4gIFdGOiAnV2FsbGlzIEFuZCBGdXR1bmEnLFxuICBFSDogJ1dlc3Rlcm4gU2FoYXJhJyxcbiAgWUU6ICdZZW1lbicsXG4gIFpNOiAnWmFtYmlhJyxcbiAgWlc6ICdaaW1iYWJ3ZScsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q291bnRyeU5hbWUoY291bnRyeUNvZGU6IGFueSkge1xuICBpZiAoaXNvQ291bnRyaWVzLmhhc093blByb3BlcnR5KGNvdW50cnlDb2RlKSkge1xuICAgIHJldHVybiBpc29Db3VudHJpZXNbY291bnRyeUNvZGVdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjb3VudHJ5Q29kZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5UYWdJZHMocmF3OiBhbnlbXSkge1xuICByZXR1cm4gcmF3Lm1hcChpZCA9PiBpZC50cmltKCkpICAgICAgICAgICAgLy8gVHJpbSBlYWNoIElEIGVudHJ5IHRvIHJlbW92ZSB3aGl0ZXNwYWNlXG4gICAgLmZpbHRlcihpZCA9PiAvXlxcZCskLy50ZXN0KGlkKSkgIC8vIFVzZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBlbnN1cmUgdGhlIElEIGlzIGVudGlyZWx5IG51bWVyaWMuXG4gICAgLm1hcChpZCA9PiBOdW1iZXIoaWQpKTsgICAgICAgICAgLy8gQ29udmVydCB0aGUgcmVtYWluaW5nLCB2YWxpZCBJRCBlbnRyaWVzIGludG8gbnVtYmVyc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWVyY2hpU291cmNlSm9iVGFncygpOiBhbnlbXSB7XG4gIGlmICh0eXBlb2YgbG9jYWxTdG9yYWdlICE9PSAndW5kZWZpbmVkJyAmJiBsb2NhbFN0b3JhZ2UgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXJjaGlTb3VyY2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWVyY2hpX3NvdXJjZScpO1xuXG4gICAgaWYgKG1lcmNoaVNvdXJjZSkge1xuICAgICAgY29uc3QgaWRzID0gY2xlYW5UYWdJZHMobWVyY2hpU291cmNlLnNwbGl0KCcsJykpO1xuICAgICAgcmV0dXJuIGlkcy5tYXAoKGlkOiBudW1iZXIpID0+ICh7IGlkIH0pKTtcbiAgICB9XG4gICAgLy8gSWYgXCJtZXJjaGlfc291cmNlXCIgaXMgbm90IGZvdW5kIGluIGxvY2FsU3RvcmFnZSwgcmV0dXJuIGFuIGVtcHR5IGFycmF5LlxuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0QnlQb3NpdGlvbihvcHRpb25zOiBhbnlbXSk6IGFueVtdIHtcbiAgcmV0dXJuIG9wdGlvbnMubWFwKChvYmo6IGFueSkgPT4ge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdHlwZW9mIG9iai5wb3NpdGlvbiA9PT0gJ3N0cmluZydcbiAgICAgID8gcGFyc2VJbnQob2JqLnBvc2l0aW9uLCAxMClcbiAgICAgIDogb2JqLnBvc2l0aW9uO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5vYmosXG4gICAgICBwb3NpdGlvbjogdHlwZW9mIHBvc2l0aW9uID09PSAnbnVtYmVyJyA/IHBvc2l0aW9uIDogMCxcbiAgICB9O1xuICB9KS5zb3J0KChhLCBiKSA9PiB7XG4gICAgY29uc3QgYVBvc2l0aW9uID0gdHlwZW9mIGEucG9zaXRpb24gPT09ICdudW1iZXInID8gYS5wb3NpdGlvbiA6IDA7XG4gICAgY29uc3QgYlBvc2l0aW9uID0gdHlwZW9mIGIucG9zaXRpb24gPT09ICdudW1iZXInID8gYi5wb3NpdGlvbiA6IDA7XG4gICAgcmV0dXJuIGFQb3NpdGlvbiAtIGJQb3NpdGlvbjtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHMoam9iSnNvbjogYW55KSB7XG4gIGNvbnN0IHsgdmFyaWF0aW9ucywgdmFyaWF0aW9uc0dyb3VwcyB9ID0gam9iSnNvbjtcbiAgY29uc3QgaGFzR3JvdXBzID0gQm9vbGVhbih2YXJpYXRpb25zR3JvdXBzICYmIHZhcmlhdGlvbnNHcm91cHMubGVuZ3RoKTtcbiAgY29uc3QgaGFzVmFyaWF0aW9ucyA9IEJvb2xlYW4odmFyaWF0aW9ucyAmJiB2YXJpYXRpb25zLmxlbmd0aCk7XG4gIFxuICAvLyBMb29wIG92ZXIgaW5kaXZpZHVhbCB2YXJpYXRpb25zIGFuZCBjaGVjayBpZiB0aGUgdmFyaWF0aW9uIGlzIGEganNvbiBzdHJpbmcsIGlmIGl0IGlzIGNvbnZlcnQgaXQgdG8gYW4gb2JqZWN0XG4gIGlmIChoYXNWYXJpYXRpb25zKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YXJpYXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXJpYXRpb25zW2ldID0gY2xlYW5Gb3JtVmFyaWF0aW9uSnNvbih2YXJpYXRpb25zW2ldKTtcbiAgICB9XG4gICAgam9iSnNvbi52YXJpYXRpb25zID0gdmFyaWF0aW9ucztcbiAgfVxuICBcbiAgaWYgKGhhc0dyb3Vwcykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFyaWF0aW9uc0dyb3Vwcy5sZW5ndGg7IGkrKykge1xuICAgICAgLy8gU2V0IGRlZmF1bHQgcXVhbnRpdHkgaWYgbm90IHByZXNlbnRcbiAgICAgIGNvbnN0IGdyb3VwID0gdmFyaWF0aW9uc0dyb3Vwc1tpXTtcbiAgICAgIGlmICghZ3JvdXAucXVhbnRpdHkpIHtcbiAgICAgICAgZ3JvdXAucXVhbnRpdHkgPSAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBIYW5kbGUgdmFyaWF0aW9ucyB3aXRoaW4gdGhlIGdyb3VwIC0gY29udmVydCBKU09OIHN0cmluZ3MgdG8gb2JqZWN0c1xuICAgICAgaWYgKGdyb3VwLnZhcmlhdGlvbnMgJiYgQXJyYXkuaXNBcnJheShncm91cC52YXJpYXRpb25zKSkge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGdyb3VwLnZhcmlhdGlvbnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBncm91cC52YXJpYXRpb25zW2pdID0gY2xlYW5Gb3JtVmFyaWF0aW9uSnNvbihncm91cC52YXJpYXRpb25zW2pdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBqb2JKc29uLnZhcmlhdGlvbnNHcm91cHMgPSB2YXJpYXRpb25zR3Jv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
|
|
516
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXJjaGkiLCJWYXJpYXRpb25GaWVsZCIsImZvcm1hdEN1cnJlbmN5IiwiUHJvZHVjdFR5cGUiLCJGaWVsZFR5cGUiLCJjbGVhbkZvcm1WYXJpYXRpb25Kc29uIiwiZGVmYXVsdEdyb3VwUXVhbnRpdHkiLCJlbmZvcmNlTW9xUGVyR3JvdXAiLCJwcm9kdWN0TWluaW11bVF1YW50aXR5IiwicHJvZHVjdE1vcUZsb29yIiwicG5nT3B0aW9uTm90Rm91bmQiLCJyZXF1aXJlIiwicmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24iLCJjb3N0IiwiY3VycmVuY3lDb2RlIiwiY29zdFR5cGVTdHJpbmciLCJjdXJyZW5jeU9wdGlvbnMiLCJjdXJyZW5jeSIsInNob3dDb2RlSWZOb1N5bWJvbCIsImNvc3RTdHJpbmciLCJhbW91bnQiLCJwYXJzZUZsb2F0IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJjb3N0RGV0YWlsIiwib25jZU9mZkNvc3QiLCJ1bml0Q29zdCIsIm9uY2VPZmZDb3N0RGVzY3JpcHRpb24iLCJ1bml0Q29zdERlc2NyaXB0aW9uIiwidmFyaWF0aW9uRmllbGRDb3N0RGV0YWlsIiwidmFyaWF0aW9uRmllbGQiLCJ2YXJpYXRpb25Db3N0IiwidmFyaWF0aW9uVW5pdENvc3QiLCJ2YXJpYXRpb25Db3N0RGV0YWlsIiwidmFyaWF0aW9uIiwidmFyaWF0aW9uRmllbGRPcHRpb25Db3N0RGV0YWlsIiwib3B0aW9uIiwiX29wdGlvbiRvbmNlT2ZmQ29zdCIsIl9vcHRpb24kdW5pdENvc3QiLCJwcm9kdWN0U2V0dXBDb3N0RGV0YWlsIiwicHJvZHVjdCIsInNldHVwUHJpY2UiLCJsYWJlbCIsInNldHVwUGVyR3JvdXAiLCJzcGxpdFNlbGVjdGVkT3B0aW9ucyIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwic3BsaXQiLCJzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlIiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GIiwiX3R5cGVvZiIsImZpZWxkVHlwZSIsIkNPTE9VUl9FWFRSQUNUIiwic2VsZWN0YWJsZSIsInNlbGVjdGFibGVPcHRpb25zIiwibGVuZ3RoIiwic2VsZWN0ZWRJZHMiLCJtYXAiLCJTdHJpbmciLCJmaWx0ZXIiLCJCb29sZWFuIiwicmVzb2x2ZWQiLCJpbmNsdWRlcyIsIm9wdGlvbklkIiwiX29iamVjdFNwcmVhZCIsInNlbGVjdGVkT3B0aW9ucyIsInN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzIiwiam9iIiwibmV4dCIsInZhcmlhdGlvbnMiLCJ2YXJpYXRpb25zR3JvdXBzIiwiZ3JvdXAiLCJzdXBwbGllclNlbGxlckVkaXRhYmxlUHJvZHVjdFR5cGVzIiwiU1VQUExJRVJfTU9EIiwiQ0xPTkVEX1NVUFBMSUVSX01PRCIsIm9wdGlvbkltYWdlVXJsIiwiaW1hZ2UiLCJpbWFnZU5vdEZvdW5kIiwic3JjIiwibGlua2VkRmlsZSIsInZpZXdVcmwiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVNYXBwaW5nIiwiYWxsb3dGaWxlSnBlZyIsImFsbG93RmlsZUdpZiIsImFsbG93RmlsZVBkZiIsImFsbG93RmlsZVBuZyIsImFsbG93RmlsZUFpIiwiYWxsb3dlZFR5cGVzIiwiT2JqZWN0Iiwia2V5cyIsImF0dHJpYnV0ZU5hbWUiLCJqb2luIiwiVmFyaWF0aW9uRmllbGRDbGFzcyIsInByb3BlcnR5IiwidHlwZSIsInByb3RvdHlwZSIsIm1lcmNoaSIsImVuc3VyZVZhcmlhdGlvbk9wdGlvbkZsYWdzIiwiaXNWaXNpYmxlIiwidW5kZWZpbmVkIiwiZm9yRWFjaCIsImF2YWlsYWJsZSIsImJ1aWxkRW1wdHlWYXJpYXRpb25Gcm9tRmllbGQiLCJmaWVsZCIsImZpZWxkRW50IiwiZnJvbUpzb24iLCJtYWtlRGlydHkiLCJ2YXJpYXRpb25Kc29uIiwiYnVpbGRFbXB0eVZhcmlhdGlvbiIsInRvSnNvbiIsImFsbG93QWxsUGFudG9uZXMiLCJsYXlvdXRTcGFuIiwiYnVpbGRFbXB0eVZhcmlhdGlvbkdyb3VwIiwicHJvZHVjdEVudCIsIlByb2R1Y3QiLCJuZXdHcm91cCIsImdyb3VwQ29zdCIsInF1YW50aXR5IiwiZ3JvdXBKc29uIiwiaXNQcm9kdWN0U3VwcGxpZXJNT0QiLCJwcm9kdWN0VHlwZSIsIlNVUFBMSUVSX1JFU0VMTF9NT0QiLCJpc1Byb2R1Y3RUeXBlRmlsZURvd25sb2FkIiwicGFyc2VJbnQiLCJTRUxMRVJfRklMRV9ET1dOTE9BRCIsImlzUHJvZHVjdEZpbGVEb3dubG9hZCIsImlzUHJvZHVjdExlYWRGb3JtIiwiTEVBRF9GT1JNIiwiaXNvQ291bnRyaWVzIiwiQUYiLCJBWCIsIkFMIiwiRFoiLCJBUyIsIkFEIiwiQU8iLCJBSSIsIkFRIiwiQUciLCJBUiIsIkFNIiwiQVciLCJBVSIsIkFUIiwiQVoiLCJCUyIsIkJIIiwiQkQiLCJCQiIsIkJZIiwiQkUiLCJCWiIsIkJKIiwiQk0iLCJCVCIsIkJPIiwiQkEiLCJCVyIsIkJWIiwiQlIiLCJJTyIsIkJOIiwiQkciLCJCRiIsIkJJIiwiS0giLCJDTSIsIkNBIiwiQ1YiLCJLWSIsIkNGIiwiVEQiLCJDTCIsIkNOIiwiQ1giLCJDQyIsIkNPIiwiS00iLCJDRyIsIkNEIiwiQ0siLCJDUiIsIkNJIiwiSFIiLCJDVSIsIkNZIiwiQ1oiLCJESyIsIkRKIiwiRE0iLCJETyIsIkVDIiwiRUciLCJTViIsIkdRIiwiRVIiLCJFRSIsIkVUIiwiRksiLCJGTyIsIkZKIiwiRkkiLCJGUiIsIkdGIiwiUEYiLCJURiIsIkdBIiwiR00iLCJHRSIsIkRFIiwiR0giLCJHSSIsIkdSIiwiR0wiLCJHRCIsIkdQIiwiR1UiLCJHVCIsIkdHIiwiR04iLCJHVyIsIkdZIiwiSFQiLCJITSIsIlZBIiwiSE4iLCJISyIsIkhVIiwiSVMiLCJJTiIsIklEIiwiSVIiLCJJUSIsIklFIiwiSU0iLCJJTCIsIklUIiwiSk0iLCJKUCIsIkpFIiwiSk8iLCJLWiIsIktFIiwiS0kiLCJLUiIsIktXIiwiS0ciLCJMQSIsIkxWIiwiTEIiLCJMUyIsIkxSIiwiTFkiLCJMSSIsIkxUIiwiTFUiLCJNTyIsIk1LIiwiTUciLCJNVyIsIk1ZIiwiTVYiLCJNTCIsIk1UIiwiTUgiLCJNUSIsIk1SIiwiTVUiLCJZVCIsIk1YIiwiRk0iLCJNRCIsIk1DIiwiTU4iLCJNRSIsIk1TIiwiTUEiLCJNWiIsIk1NIiwiTkEiLCJOUiIsIk5QIiwiTkwiLCJBTiIsIk5DIiwiTloiLCJOSSIsIk5FIiwiTkciLCJOVSIsIk5GIiwiTVAiLCJOTyIsIk9NIiwiUEsiLCJQVyIsIlBTIiwiUEEiLCJQRyIsIlBZIiwiUEUiLCJQSCIsIlBOIiwiUEwiLCJQVCIsIlBSIiwiUUEiLCJSRSIsIlJPIiwiUlUiLCJSVyIsIkJMIiwiU0giLCJLTiIsIkxDIiwiTUYiLCJQTSIsIlZDIiwiV1MiLCJTTSIsIlNUIiwiU0EiLCJTTiIsIlJTIiwiU0MiLCJTTCIsIlNHIiwiU0siLCJTSSIsIlNCIiwiU08iLCJaQSIsIkdTIiwiRVMiLCJMSyIsIlNEIiwiU1IiLCJTSiIsIlNaIiwiU0UiLCJDSCIsIlNZIiwiVFciLCJUSiIsIlRaIiwiVEgiLCJUTCIsIlRHIiwiVEsiLCJUTyIsIlRUIiwiVE4iLCJUUiIsIlRNIiwiVEMiLCJUViIsIlVHIiwiVUEiLCJBRSIsIkdCIiwiVVMiLCJVTSIsIlVZIiwiVVoiLCJWVSIsIlZFIiwiVk4iLCJWRyIsIlZJIiwiV0YiLCJFSCIsIllFIiwiWk0iLCJaVyIsImdldENvdW50cnlOYW1lIiwiY291bnRyeUNvZGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNsZWFuVGFnSWRzIiwicmF3IiwiaWQiLCJ0cmltIiwidGVzdCIsImdldE1lcmNoaVNvdXJjZUpvYlRhZ3MiLCJsb2NhbFN0b3JhZ2UiLCJtZXJjaGlTb3VyY2UiLCJnZXRJdGVtIiwiaWRzIiwic29ydEJ5UG9zaXRpb24iLCJvcHRpb25zIiwib2JqIiwicG9zaXRpb24iLCJzb3J0IiwiYSIsImIiLCJhUG9zaXRpb24iLCJiUG9zaXRpb24iLCJjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHMiLCJqb2JKc29uIiwiaGFzR3JvdXBzIiwiaGFzVmFyaWF0aW9ucyIsImkiLCJqIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVyY2hpLCBWYXJpYXRpb25GaWVsZCB9IGZyb20gJ0BtZXJjaGkvc2RrJztcbmltcG9ydCB7IGZvcm1hdEN1cnJlbmN5IH0gZnJvbSAnLi4vdXRpbHMvY3VycmVuY3knO1xuaW1wb3J0IHsgUHJvZHVjdFR5cGUsIEZpZWxkVHlwZSB9IGZyb20gJy4uL3V0aWxzL3R5cGVzJztcbmV4cG9ydCB7IGNsZWFuRm9ybVZhcmlhdGlvbkpzb24gfSBmcm9tICcuLi91dGlscy9jbGVhbkZvcm1WYXJpYXRpb25Kc29uJztcbmltcG9ydCB7IGNsZWFuRm9ybVZhcmlhdGlvbkpzb24gfSBmcm9tICcuLi91dGlscy9jbGVhbkZvcm1WYXJpYXRpb25Kc29uJztcbmltcG9ydCB7IGRlZmF1bHRHcm91cFF1YW50aXR5IH0gZnJvbSAnLi4vdXRpbHMvcXVhbnRpdHknO1xuZXhwb3J0IHtcbiAgZGVmYXVsdEdyb3VwUXVhbnRpdHksXG4gIGVuZm9yY2VNb3FQZXJHcm91cCxcbiAgcHJvZHVjdE1pbmltdW1RdWFudGl0eSxcbiAgcHJvZHVjdE1vcUZsb29yLFxufSBmcm9tICcuLi91dGlscy9xdWFudGl0eSc7XG5jb25zdCBwbmdPcHRpb25Ob3RGb3VuZCA9IHJlcXVpcmUoJy4uL2ltYWdlcy9wcm9kdWN0LW5vdC1mb3VuZC5wbmcnKTtcblxuZnVuY3Rpb24gcmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24oXG4gIGNvc3Q6IGFueSxcbiAgY3VycmVuY3lDb2RlOiBhbnksXG4gIGNvc3RUeXBlU3RyaW5nOiBzdHJpbmdcbikge1xuICBsZXQgY3VycmVuY3lPcHRpb25zID0geyBjdXJyZW5jeTogY3VycmVuY3lDb2RlLCBzaG93Q29kZUlmTm9TeW1ib2w6IGZhbHNlIH07XG4gIGxldCBjb3N0U3RyaW5nID0gJyc7XG4gIGNvbnN0IGFtb3VudCA9IHBhcnNlRmxvYXQoY29zdCk7XG5cbiAgaWYgKE51bWJlci5pc0Zpbml0ZShhbW91bnQpICYmIGFtb3VudCA+IDApIHtcbiAgICBjb3N0U3RyaW5nID0gZm9ybWF0Q3VycmVuY3koYW1vdW50LCBjdXJyZW5jeU9wdGlvbnMpO1xuICAgIGNvc3RTdHJpbmcgPSAnICsgJyArIGNvc3RTdHJpbmcgKyAnICcgKyBjb3N0VHlwZVN0cmluZztcbiAgfVxuICByZXR1cm4gY29zdFN0cmluZztcbn1cblxuY29uc3QgY29zdERldGFpbCA9IChvbmNlT2ZmQ29zdDogYW55LCB1bml0Q29zdDogYW55LCBjdXJyZW5jeUNvZGU6IHN0cmluZykgPT4ge1xuICBjb25zdCBvbmNlT2ZmQ29zdERlc2NyaXB0aW9uID0gcmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24oXG4gICAgcGFyc2VGbG9hdChvbmNlT2ZmQ29zdCksXG4gICAgY3VycmVuY3lDb2RlLFxuICAgICdvbmNlIG9mZidcbiAgKTtcbiAgY29uc3QgdW5pdENvc3REZXNjcmlwdGlvbiA9IHJlbmRlclNpbmdsZUNvc3RJbmRpY2F0aW9uKFxuICAgIHBhcnNlRmxvYXQodW5pdENvc3QpLFxuICAgIGN1cnJlbmN5Q29kZSxcbiAgICAncGVyIHVuaXQnXG4gICk7XG4gIHJldHVybiBvbmNlT2ZmQ29zdERlc2NyaXB0aW9uICsgdW5pdENvc3REZXNjcmlwdGlvbjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYXRpb25GaWVsZENvc3REZXRhaWwodmFyaWF0aW9uRmllbGQ6IGFueSkge1xuICBjb25zdCB7IHZhcmlhdGlvbkNvc3QsIHZhcmlhdGlvblVuaXRDb3N0LCBjdXJyZW5jeSB9ID0gdmFyaWF0aW9uRmllbGQ7XG4gIHJldHVybiBjb3N0RGV0YWlsKHZhcmlhdGlvbkNvc3QhLCB2YXJpYXRpb25Vbml0Q29zdCEsIGN1cnJlbmN5ISk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYXRpb25Db3N0RGV0YWlsKHZhcmlhdGlvbjogYW55KSB7XG4gIGNvbnN0IHsgb25jZU9mZkNvc3QsIHVuaXRDb3N0LCBjdXJyZW5jeSB9ID0gdmFyaWF0aW9uO1xuICByZXR1cm4gY29zdERldGFpbChvbmNlT2ZmQ29zdCEsIHVuaXRDb3N0ISwgY3VycmVuY3khKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhdGlvbkZpZWxkT3B0aW9uQ29zdERldGFpbChvcHRpb246IGFueSkge1xuICBjb25zdCB7IGN1cnJlbmN5IH0gPSBvcHRpb247XG4gIC8vIEZpZWxkIG9wdGlvbnMgdXNlIHZhcmlhdGlvbkNvc3Q7IHNlbGVjdGFibGUgVmFyaWF0aW9uT3B0aW9ucyB1c2Ugb25jZU9mZkNvc3QuXG4gIGNvbnN0IG9uY2VPZmZDb3N0ID0gb3B0aW9uLm9uY2VPZmZDb3N0ID8/IG9wdGlvbi52YXJpYXRpb25Db3N0O1xuICBjb25zdCB1bml0Q29zdCA9IG9wdGlvbi51bml0Q29zdCA/PyBvcHRpb24udmFyaWF0aW9uVW5pdENvc3Q7XG4gIHJldHVybiBjb3N0RGV0YWlsKG9uY2VPZmZDb3N0ISwgdW5pdENvc3QhLCBjdXJyZW5jeSEpO1xufVxuXG4vKiogUHJvZHVjdC1sZXZlbCBzZXR1cCBmZWUsIHNhbWUgXCIrICRYIOKAplwiIHN0eWxlIGFzIHZhcmlhdGlvbiBvbmNlLW9mZiBjb3N0cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9kdWN0U2V0dXBDb3N0RGV0YWlsKHByb2R1Y3Q6IGFueSkge1xuICBjb25zdCBzZXR1cFByaWNlID0gcGFyc2VGbG9hdChwcm9kdWN0Py5zZXR1cFByaWNlKTtcbiAgaWYgKCFzZXR1cFByaWNlKSByZXR1cm4gJyc7XG4gIGNvbnN0IGxhYmVsID0gcHJvZHVjdC5zZXR1cFBlckdyb3VwID8gJ3NldHVwIHBlciBncm91cCcgOiAnc2V0dXAnO1xuICByZXR1cm4gcmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24oc2V0dXBQcmljZSwgcHJvZHVjdC5jdXJyZW5jeSwgbGFiZWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRTZWxlY3RlZE9wdGlvbnModmFsdWU6IGFueSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoJywnKTtcbiAgfVxuICByZXR1cm4gW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlKHZhcmlhdGlvbjogYW55KTogYW55IHtcbiAgaWYgKCF2YXJpYXRpb24gfHwgdHlwZW9mIHZhcmlhdGlvbiAhPT0gJ29iamVjdCcpIHJldHVybiB2YXJpYXRpb247XG4gIGNvbnN0IGZpZWxkVHlwZSA9IE51bWJlcih2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5maWVsZFR5cGUpO1xuICBpZiAoZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ09MT1VSX0VYVFJBQ1QpIHJldHVybiB2YXJpYXRpb247XG5cbiAgY29uc3Qgc2VsZWN0YWJsZSA9IHZhcmlhdGlvbj8uc2VsZWN0YWJsZU9wdGlvbnMgfHwgW107XG4gIGlmICghc2VsZWN0YWJsZS5sZW5ndGgpIHJldHVybiB2YXJpYXRpb247XG5cbiAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBzcGxpdFNlbGVjdGVkT3B0aW9ucyh2YXJpYXRpb24/LnZhbHVlKVxuICAgIC5tYXAoU3RyaW5nKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gIGlmICghc2VsZWN0ZWRJZHMubGVuZ3RoKSByZXR1cm4gdmFyaWF0aW9uO1xuXG4gIGNvbnN0IHJlc29sdmVkID0gc2VsZWN0YWJsZS5maWx0ZXIoKG9wdGlvbjogYW55KSA9PlxuICAgIHNlbGVjdGVkSWRzLmluY2x1ZGVzKFN0cmluZyhvcHRpb24ub3B0aW9uSWQpKVxuICApO1xuICBpZiAoIXJlc29sdmVkLmxlbmd0aCkgcmV0dXJuIHZhcmlhdGlvbjtcblxuICByZXR1cm4geyAuLi52YXJpYXRpb24sIHNlbGVjdGVkT3B0aW9uczogcmVzb2x2ZWQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzKGpvYjogYW55KTogYW55IHtcbiAgaWYgKCFqb2IgfHwgdHlwZW9mIGpvYiAhPT0gJ29iamVjdCcpIHJldHVybiBqb2I7XG4gIGNvbnN0IG5leHQgPSB7IC4uLmpvYiB9O1xuICBpZiAoQXJyYXkuaXNBcnJheShuZXh0LnZhcmlhdGlvbnMpKSB7XG4gICAgbmV4dC52YXJpYXRpb25zID0gbmV4dC52YXJpYXRpb25zLm1hcChzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShuZXh0LnZhcmlhdGlvbnNHcm91cHMpKSB7XG4gICAgbmV4dC52YXJpYXRpb25zR3JvdXBzID0gbmV4dC52YXJpYXRpb25zR3JvdXBzLm1hcCgoZ3JvdXA6IGFueSkgPT4gKHtcbiAgICAgIC4uLmdyb3VwLFxuICAgICAgdmFyaWF0aW9uczogQXJyYXkuaXNBcnJheShncm91cD8udmFyaWF0aW9ucylcbiAgICAgICAgPyBncm91cC52YXJpYXRpb25zLm1hcChzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlKVxuICAgICAgICA6IGdyb3VwPy52YXJpYXRpb25zLFxuICAgIH0pKTtcbiAgfVxuICByZXR1cm4gbmV4dDtcbn1cblxuZXhwb3J0IGNvbnN0IHN1cHBsaWVyU2VsbGVyRWRpdGFibGVQcm9kdWN0VHlwZXM6IEFycmF5PG51bWJlcj4gPSBbXG4gIFByb2R1Y3RUeXBlLlNVUFBMSUVSX01PRCxcbiAgUHJvZHVjdFR5cGUuQ0xPTkVEX1NVUFBMSUVSX01PRCxcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25JbWFnZVVybChvcHRpb246IGFueSkge1xuICBjb25zdCBpbWFnZSA9IHBuZ09wdGlvbk5vdEZvdW5kID8gKHBuZ09wdGlvbk5vdEZvdW5kLmRlZmF1bHQgfHwgcG5nT3B0aW9uTm90Rm91bmQpIDogJyc7XG4gIGNvbnN0IGltYWdlTm90Rm91bmQgPSBpbWFnZSA/IChpbWFnZS5zcmMgfHwgaW1hZ2UpIDogJyc7XG4gIHJldHVybiBvcHRpb24ubGlua2VkRmlsZVxuICAgID8gb3B0aW9uLmxpbmtlZEZpbGVcbiAgICAgID8gb3B0aW9uLmxpbmtlZEZpbGUudmlld1VybFxuICAgICAgOiBpbWFnZU5vdEZvdW5kXG4gICAgOiBpbWFnZU5vdEZvdW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb3dlZEZpbGVUeXBlcyh2YXJpYXRpb25GaWVsZDogYW55KTogc3RyaW5nIHtcbiAgY29uc3QgZmlsZVR5cGVNYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIGFsbG93RmlsZUpwZWc6ICcuanBlZycsXG4gICAgYWxsb3dGaWxlR2lmOiAnLmdpZicsXG4gICAgYWxsb3dGaWxlUGRmOiAnLnBkZicsXG4gICAgYWxsb3dGaWxlUG5nOiAnLnBuZycsXG4gICAgYWxsb3dGaWxlQWk6ICcuYWknLFxuICB9O1xuXG4gIGNvbnN0IGFsbG93ZWRUeXBlczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhmaWxlVHlwZU1hcHBpbmcpXG4gICAgLmZpbHRlcigoYXR0cmlidXRlTmFtZSkgPT4gdmFyaWF0aW9uRmllbGRbYXR0cmlidXRlTmFtZV0pXG4gICAgLm1hcCgoYXR0cmlidXRlTmFtZSkgPT4gZmlsZVR5cGVNYXBwaW5nW2F0dHJpYnV0ZU5hbWVdKTtcblxuICByZXR1cm4gYWxsb3dlZFR5cGVzLmpvaW4oJywnKTtcbn1cblxuLy8gUHVibGlzaGVkIEBtZXJjaGkvc2RrIGRyb3BzIHVua25vd24ga2V5cy4gUmVnaXN0ZXIgZmxhZ3Mgb24gdGhlIGNsYXNzXG4vLyB0aGlzIHBhY2thZ2UgYWN0dWFsbHkgY29uc3RydWN0cywgb3IgYSByZWJ1aWx0IHZhcmlhdGlvbiBsb3NlcyB0aGVtLlxuY29uc3QgVmFyaWF0aW9uRmllbGRDbGFzcyA9IFZhcmlhdGlvbkZpZWxkIGFzIHVua25vd24gYXMge1xuICBwcm9wZXJ0eTogKG9wdGlvbnM/OiB7IHR5cGU/OiB1bmtub3duIH0pID0+ICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHByb3RvdHlwZTogb2JqZWN0O1xufTtcblZhcmlhdGlvbkZpZWxkQ2xhc3MucHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pKFxuICBWYXJpYXRpb25GaWVsZENsYXNzLnByb3RvdHlwZSxcbiAgJ2FsbG93QWxsUGFudG9uZXMnLFxuKTtcblZhcmlhdGlvbkZpZWxkQ2xhc3MucHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSkoXG4gIFZhcmlhdGlvbkZpZWxkQ2xhc3MucHJvdG90eXBlLFxuICAnbGF5b3V0U3BhbicsXG4pO1xuXG5jb25zdCBtZXJjaGkgPSBuZXcgTWVyY2hpKCk7XG5cbmZ1bmN0aW9uIGVuc3VyZVZhcmlhdGlvbk9wdGlvbkZsYWdzKHZhcmlhdGlvbjogYW55KSB7XG4gIGlmICh2YXJpYXRpb24uaXNWaXNpYmxlID09PSB1bmRlZmluZWQpIHZhcmlhdGlvbi5pc1Zpc2libGUgPSB0cnVlO1xuICAodmFyaWF0aW9uLnNlbGVjdGFibGVPcHRpb25zIHx8IFtdKS5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgIGlmIChvcHRpb24uaXNWaXNpYmxlID09PSB1bmRlZmluZWQpIG9wdGlvbi5pc1Zpc2libGUgPSB0cnVlO1xuICAgIGlmIChvcHRpb24uYXZhaWxhYmxlID09PSB1bmRlZmluZWQpIG9wdGlvbi5hdmFpbGFibGUgPSB0cnVlO1xuICB9KTtcbn1cblxuLyoqIEJ1aWxkIGEgZGVmYXVsdCB2YXJpYXRpb24gSlNPTiBmb3IgYSBwcm9kdWN0IHZhcmlhdGlvbiBmaWVsZCAoZ2F0ZWQgZmllbGRzKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVtcHR5VmFyaWF0aW9uRnJvbUZpZWxkKGZpZWxkOiBhbnkpIHtcbiAgY29uc3QgZmllbGRFbnQgPSBuZXcgbWVyY2hpLlZhcmlhdGlvbkZpZWxkKCk7XG4gIGZpZWxkRW50LmZyb21Kc29uKHsgLi4uZmllbGQgfSwgeyBtYWtlRGlydHk6IGZhbHNlIH0pO1xuICBjb25zdCB2YXJpYXRpb25Kc29uID0gZmllbGRFbnQuYnVpbGRFbXB0eVZhcmlhdGlvbigpLnRvSnNvbigpO1xuICBpZiAoXG4gICAgdmFyaWF0aW9uSnNvbj8udmFyaWF0aW9uRmllbGQgJiZcbiAgICBmaWVsZD8uYWxsb3dBbGxQYW50b25lcyAhPSBudWxsICYmXG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5hbGxvd0FsbFBhbnRvbmVzID09IG51bGxcbiAgKSB7XG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5hbGxvd0FsbFBhbnRvbmVzID0gQm9vbGVhbihmaWVsZC5hbGxvd0FsbFBhbnRvbmVzKTtcbiAgfVxuICBpZiAoXG4gICAgdmFyaWF0aW9uSnNvbj8udmFyaWF0aW9uRmllbGQgJiZcbiAgICBmaWVsZD8ubGF5b3V0U3BhbiAhPSBudWxsICYmXG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5sYXlvdXRTcGFuID09IG51bGxcbiAgKSB7XG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5sYXlvdXRTcGFuID0gZmllbGQubGF5b3V0U3BhbjtcbiAgfVxuICBlbnN1cmVWYXJpYXRpb25PcHRpb25GbGFncyh2YXJpYXRpb25Kc29uKTtcbiAgcmV0dXJuIHZhcmlhdGlvbkpzb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVtcHR5VmFyaWF0aW9uR3JvdXAocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHByb2R1Y3RFbnQgPSBuZXcgbWVyY2hpLlByb2R1Y3QoKTtcbiAgcHJvZHVjdEVudC5mcm9tSnNvbih7Li4ucHJvZHVjdH0sIHsgbWFrZURpcnR5OiBmYWxzZX0pO1xuICBjb25zdCBuZXdHcm91cCA9IG5ldyBwcm9kdWN0RW50LmJ1aWxkRW1wdHlWYXJpYXRpb25Hcm91cCgpO1xuICBuZXdHcm91cC5ncm91cENvc3QgPSAwO1xuICBuZXdHcm91cC5xdWFudGl0eSA9IGRlZmF1bHRHcm91cFF1YW50aXR5KHByb2R1Y3QpO1xuICBjb25zdCBncm91cEpzb24gPSBuZXdHcm91cC50b0pzb24oKTtcbiAgLy8gVGhlIFNESydzIGJ1aWxkVmFyaWF0aW9uT3B0aW9uIGRvZXMgbm90IHNldCBgaXNWaXNpYmxlYC9gYXZhaWxhYmxlYCBvbiB0aGVcbiAgLy8gYnVpbHQgc2VsZWN0YWJsZSBvcHRpb25zLiBJbiBzZXJ2ZXIgbW9kZSB0aGVzZSBhcmUgcmVwb3B1bGF0ZWQgYnkgdGhlXG4gIC8vIGVzdGltYXRlIHJvdW5kLXRyaXAgKyBmb3JtIHJlc2V0LCBidXQgaW4gY2xpZW50IG1vZGUgKG5vIHJvdW5kLXRyaXApIHRoZVxuICAvLyBvcHRpb25zIHdvdWxkIHJlbmRlciBkaXNhYmxlZCAoXCItIGRpc2FibGVkXCIpLiBEZWZhdWx0IHRoZW0gaGVyZSBzbyBhIGZyZXNobHlcbiAgLy8gYWRkZWQgZ3JvdXAgaXMgdXNhYmxlOyBvcHRpb24tbGV2ZWwgY29uZGl0aW9uYWwgdmlzaWJpbGl0eSAoc2VsZWN0ZWRCeSkgaXNcbiAgLy8gcmVzb2x2ZWQgb24gc3Vic2VxdWVudCBpbnRlcmFjdGlvbnMgaW4gc2VydmVyIG1vZGUuXG4gIChncm91cEpzb24udmFyaWF0aW9ucyB8fCBbXSkuZm9yRWFjaChlbnN1cmVWYXJpYXRpb25PcHRpb25GbGFncyk7XG4gIHJldHVybiBncm91cEpzb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2R1Y3RTdXBwbGllck1PRChwcm9kdWN0OiBhbnkpIHtcbiAgY29uc3QgcHJvZHVjdFR5cGUgPSBwcm9kdWN0ICYmIHByb2R1Y3QucHJvZHVjdFR5cGU7XG4gIHJldHVybiAoXG4gICAgcHJvZHVjdCAmJlxuICAgIFtcbiAgICAgIFN0cmluZyhQcm9kdWN0VHlwZS5TVVBQTElFUl9NT0QpLFxuICAgICAgU3RyaW5nKFByb2R1Y3RUeXBlLlNVUFBMSUVSX1JFU0VMTF9NT0QpLFxuICAgIF0uaW5jbHVkZXMoU3RyaW5nKHByb2R1Y3RUeXBlKSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvZHVjdFR5cGVGaWxlRG93bmxvYWQocHJvZHVjdFR5cGU6IGFueSkge1xuICByZXR1cm4gcGFyc2VJbnQocHJvZHVjdFR5cGUsIDEwKSA9PT0gUHJvZHVjdFR5cGUuU0VMTEVSX0ZJTEVfRE9XTkxPQUQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2R1Y3RGaWxlRG93bmxvYWQocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHsgcHJvZHVjdFR5cGUgfSA9IHByb2R1Y3Q7XG4gIHJldHVybiBpc1Byb2R1Y3RUeXBlRmlsZURvd25sb2FkKHByb2R1Y3RUeXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvZHVjdExlYWRGb3JtKHByb2R1Y3Q6IGFueSkge1xuICBjb25zdCBwcm9kdWN0VHlwZSA9IHByb2R1Y3QgJiYgcHJvZHVjdC5wcm9kdWN0VHlwZTtcbiAgcmV0dXJuIHBhcnNlSW50KHByb2R1Y3RUeXBlLCAxMCkgPT09IFByb2R1Y3RUeXBlLkxFQURfRk9STTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzb0NvdW50cmllczogYW55ID0ge1xuICBBRjogJ0FmZ2hhbmlzdGFuJyxcbiAgQVg6ICdBbGFuZCBJc2xhbmRzJyxcbiAgQUw6ICdBbGJhbmlhJyxcbiAgRFo6ICdBbGdlcmlhJyxcbiAgQVM6ICdBbWVyaWNhbiBTYW1vYScsXG4gIEFEOiAnQW5kb3JyYScsXG4gIEFPOiAnQW5nb2xhJyxcbiAgQUk6ICdBbmd1aWxsYScsXG4gIEFROiAnQW50YXJjdGljYScsXG4gIEFHOiAnQW50aWd1YSBBbmQgQmFyYnVkYScsXG4gIEFSOiAnQXJnZW50aW5hJyxcbiAgQU06ICdBcm1lbmlhJyxcbiAgQVc6ICdBcnViYScsXG4gIEFVOiAnQXVzdHJhbGlhJyxcbiAgQVQ6ICdBdXN0cmlhJyxcbiAgQVo6ICdBemVyYmFpamFuJyxcbiAgQlM6ICdCYWhhbWFzJyxcbiAgQkg6ICdCYWhyYWluJyxcbiAgQkQ6ICdCYW5nbGFkZXNoJyxcbiAgQkI6ICdCYXJiYWRvcycsXG4gIEJZOiAnQmVsYXJ1cycsXG4gIEJFOiAnQmVsZ2l1bScsXG4gIEJaOiAnQmVsaXplJyxcbiAgQko6ICdCZW5pbicsXG4gIEJNOiAnQmVybXVkYScsXG4gIEJUOiAnQmh1dGFuJyxcbiAgQk86ICdCb2xpdmlhJyxcbiAgQkE6ICdCb3NuaWEgQW5kIEhlcnplZ292aW5hJyxcbiAgQlc6ICdCb3Rzd2FuYScsXG4gIEJWOiAnQm91dmV0IElzbGFuZCcsXG4gIEJSOiAnQnJhemlsJyxcbiAgSU86ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknLFxuICBCTjogJ0JydW5laSBEYXJ1c3NhbGFtJyxcbiAgQkc6ICdCdWxnYXJpYScsXG4gIEJGOiAnQnVya2luYSBGYXNvJyxcbiAgQkk6ICdCdXJ1bmRpJyxcbiAgS0g6ICdDYW1ib2RpYScsXG4gIENNOiAnQ2FtZXJvb24nLFxuICBDQTogJ0NhbmFkYScsXG4gIENWOiAnQ2FwZSBWZXJkZScsXG4gIEtZOiAnQ2F5bWFuIElzbGFuZHMnLFxuICBDRjogJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYycsXG4gIFREOiAnQ2hhZCcsXG4gIENMOiAnQ2hpbGUnLFxuICBDTjogJ0NoaW5hJyxcbiAgQ1g6ICdDaHJpc3RtYXMgSXNsYW5kJyxcbiAgQ0M6ICdDb2NvcyAoS2VlbGluZykgSXNsYW5kcycsXG4gIENPOiAnQ29sb21iaWEnLFxuICBLTTogJ0NvbW9yb3MnLFxuICBDRzogJ0NvbmdvJyxcbiAgQ0Q6ICdDb25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYycsXG4gIENLOiAnQ29vayBJc2xhbmRzJyxcbiAgQ1I6ICdDb3N0YSBSaWNhJyxcbiAgQ0k6IFwiQ290ZSBEJ0l2b2lyZVwiLFxuICBIUjogJ0Nyb2F0aWEnLFxuICBDVTogJ0N1YmEnLFxuICBDWTogJ0N5cHJ1cycsXG4gIENaOiAnQ3plY2ggUmVwdWJsaWMnLFxuICBESzogJ0Rlbm1hcmsnLFxuICBESjogJ0RqaWJvdXRpJyxcbiAgRE06ICdEb21pbmljYScsXG4gIERPOiAnRG9taW5pY2FuIFJlcHVibGljJyxcbiAgRUM6ICdFY3VhZG9yJyxcbiAgRUc6ICdFZ3lwdCcsXG4gIFNWOiAnRWwgU2FsdmFkb3InLFxuICBHUTogJ0VxdWF0b3JpYWwgR3VpbmVhJyxcbiAgRVI6ICdFcml0cmVhJyxcbiAgRUU6ICdFc3RvbmlhJyxcbiAgRVQ6ICdFdGhpb3BpYScsXG4gIEZLOiAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpJyxcbiAgRk86ICdGYXJvZSBJc2xhbmRzJyxcbiAgRko6ICdGaWppJyxcbiAgRkk6ICdGaW5sYW5kJyxcbiAgRlI6ICdGcmFuY2UnLFxuICBHRjogJ0ZyZW5jaCBHdWlhbmEnLFxuICBQRjogJ0ZyZW5jaCBQb2x5bmVzaWEnLFxuICBURjogJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcycsXG4gIEdBOiAnR2Fib24nLFxuICBHTTogJ0dhbWJpYScsXG4gIEdFOiAnR2VvcmdpYScsXG4gIERFOiAnR2VybWFueScsXG4gIEdIOiAnR2hhbmEnLFxuICBHSTogJ0dpYnJhbHRhcicsXG4gIEdSOiAnR3JlZWNlJyxcbiAgR0w6ICdHcmVlbmxhbmQnLFxuICBHRDogJ0dyZW5hZGEnLFxuICBHUDogJ0d1YWRlbG91cGUnLFxuICBHVTogJ0d1YW0nLFxuICBHVDogJ0d1YXRlbWFsYScsXG4gIEdHOiAnR3Vlcm5zZXknLFxuICBHTjogJ0d1aW5lYScsXG4gIEdXOiAnR3VpbmVhLUJpc3NhdScsXG4gIEdZOiAnR3V5YW5hJyxcbiAgSFQ6ICdIYWl0aScsXG4gIEhNOiAnSGVhcmQgSXNsYW5kICYgTWNkb25hbGQgSXNsYW5kcycsXG4gIFZBOiAnSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSknLFxuICBITjogJ0hvbmR1cmFzJyxcbiAgSEs6ICdIb25nIEtvbmcnLFxuICBIVTogJ0h1bmdhcnknLFxuICBJUzogJ0ljZWxhbmQnLFxuICBJTjogJ0luZGlhJyxcbiAgSUQ6ICdJbmRvbmVzaWEnLFxuICBJUjogJ0lyYW4sIElzbGFtaWMgUmVwdWJsaWMgT2YnLFxuICBJUTogJ0lyYXEnLFxuICBJRTogJ0lyZWxhbmQnLFxuICBJTTogJ0lzbGUgT2YgTWFuJyxcbiAgSUw6ICdJc3JhZWwnLFxuICBJVDogJ0l0YWx5JyxcbiAgSk06ICdKYW1haWNhJyxcbiAgSlA6ICdKYXBhbicsXG4gIEpFOiAnSmVyc2V5JyxcbiAgSk86ICdKb3JkYW4nLFxuICBLWjogJ0themFraHN0YW4nLFxuICBLRTogJ0tlbnlhJyxcbiAgS0k6ICdLaXJpYmF0aScsXG4gIEtSOiAnS29yZWEnLFxuICBLVzogJ0t1d2FpdCcsXG4gIEtHOiAnS3lyZ3l6c3RhbicsXG4gIExBOiBcIkxhbyBQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljXCIsXG4gIExWOiAnTGF0dmlhJyxcbiAgTEI6ICdMZWJhbm9uJyxcbiAgTFM6ICdMZXNvdGhvJyxcbiAgTFI6ICdMaWJlcmlhJyxcbiAgTFk6ICdMaWJ5YW4gQXJhYiBKYW1haGlyaXlhJyxcbiAgTEk6ICdMaWVjaHRlbnN0ZWluJyxcbiAgTFQ6ICdMaXRodWFuaWEnLFxuICBMVTogJ0x1eGVtYm91cmcnLFxuICBNTzogJ01hY2FvJyxcbiAgTUs6ICdNYWNlZG9uaWEnLFxuICBNRzogJ01hZGFnYXNjYXInLFxuICBNVzogJ01hbGF3aScsXG4gIE1ZOiAnTWFsYXlzaWEnLFxuICBNVjogJ01hbGRpdmVzJyxcbiAgTUw6ICdNYWxpJyxcbiAgTVQ6ICdNYWx0YScsXG4gIE1IOiAnTWFyc2hhbGwgSXNsYW5kcycsXG4gIE1ROiAnTWFydGluaXF1ZScsXG4gIE1SOiAnTWF1cml0YW5pYScsXG4gIE1VOiAnTWF1cml0aXVzJyxcbiAgWVQ6ICdNYXlvdHRlJyxcbiAgTVg6ICdNZXhpY28nLFxuICBGTTogJ01pY3JvbmVzaWEsIEZlZGVyYXRlZCBTdGF0ZXMgT2YnLFxuICBNRDogJ01vbGRvdmEnLFxuICBNQzogJ01vbmFjbycsXG4gIE1OOiAnTW9uZ29saWEnLFxuICBNRTogJ01vbnRlbmVncm8nLFxuICBNUzogJ01vbnRzZXJyYXQnLFxuICBNQTogJ01vcm9jY28nLFxuICBNWjogJ01vemFtYmlxdWUnLFxuICBNTTogJ015YW5tYXInLFxuICBOQTogJ05hbWliaWEnLFxuICBOUjogJ05hdXJ1JyxcbiAgTlA6ICdOZXBhbCcsXG4gIE5MOiAnTmV0aGVybGFuZHMnLFxuICBBTjogJ05ldGhlcmxhbmRzIEFudGlsbGVzJyxcbiAgTkM6ICdOZXcgQ2FsZWRvbmlhJyxcbiAgTlo6ICdOZXcgWmVhbGFuZCcsXG4gIE5JOiAnTmljYXJhZ3VhJyxcbiAgTkU6ICdOaWdlcicsXG4gIE5HOiAnTmlnZXJpYScsXG4gIE5VOiAnTml1ZScsXG4gIE5GOiAnTm9yZm9sayBJc2xhbmQnLFxuICBNUDogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcycsXG4gIE5POiAnTm9yd2F5JyxcbiAgT006ICdPbWFuJyxcbiAgUEs6ICdQYWtpc3RhbicsXG4gIFBXOiAnUGFsYXUnLFxuICBQUzogJ1BhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQnLFxuICBQQTogJ1BhbmFtYScsXG4gIFBHOiAnUGFwdWEgTmV3IEd1aW5lYScsXG4gIFBZOiAnUGFyYWd1YXknLFxuICBQRTogJ1BlcnUnLFxuICBQSDogJ1BoaWxpcHBpbmVzJyxcbiAgUE46ICdQaXRjYWlybicsXG4gIFBMOiAnUG9sYW5kJyxcbiAgUFQ6ICdQb3J0dWdhbCcsXG4gIFBSOiAnUHVlcnRvIFJpY28nLFxuICBRQTogJ1FhdGFyJyxcbiAgUkU6ICdSZXVuaW9uJyxcbiAgUk86ICdSb21hbmlhJyxcbiAgUlU6ICdSdXNzaWFuIEZlZGVyYXRpb24nLFxuICBSVzogJ1J3YW5kYScsXG4gIEJMOiAnU2FpbnQgQmFydGhlbGVteScsXG4gIFNIOiAnU2FpbnQgSGVsZW5hJyxcbiAgS046ICdTYWludCBLaXR0cyBBbmQgTmV2aXMnLFxuICBMQzogJ1NhaW50IEx1Y2lhJyxcbiAgTUY6ICdTYWludCBNYXJ0aW4nLFxuICBQTTogJ1NhaW50IFBpZXJyZSBBbmQgTWlxdWVsb24nLFxuICBWQzogJ1NhaW50IFZpbmNlbnQgQW5kIEdyZW5hZGluZXMnLFxuICBXUzogJ1NhbW9hJyxcbiAgU006ICdTYW4gTWFyaW5vJyxcbiAgU1Q6ICdTYW8gVG9tZSBBbmQgUHJpbmNpcGUnLFxuICBTQTogJ1NhdWRpIEFyYWJpYScsXG4gIFNOOiAnU2VuZWdhbCcsXG4gIFJTOiAnU2VyYmlhJyxcbiAgU0M6ICdTZXljaGVsbGVzJyxcbiAgU0w6ICdTaWVycmEgTGVvbmUnLFxuICBTRzogJ1NpbmdhcG9yZScsXG4gIFNLOiAnU2xvdmFraWEnLFxuICBTSTogJ1Nsb3ZlbmlhJyxcbiAgU0I6ICdTb2xvbW9uIElzbGFuZHMnLFxuICBTTzogJ1NvbWFsaWEnLFxuICBaQTogJ1NvdXRoIEFmcmljYScsXG4gIEdTOiAnU291dGggR2VvcmdpYSBBbmQgU2FuZHdpY2ggSXNsLicsXG4gIEVTOiAnU3BhaW4nLFxuICBMSzogJ1NyaSBMYW5rYScsXG4gIFNEOiAnU3VkYW4nLFxuICBTUjogJ1N1cmluYW1lJyxcbiAgU0o6ICdTdmFsYmFyZCBBbmQgSmFuIE1heWVuJyxcbiAgU1o6ICdTd2F6aWxhbmQnLFxuICBTRTogJ1N3ZWRlbicsXG4gIENIOiAnU3dpdHplcmxhbmQnLFxuICBTWTogJ1N5cmlhbiBBcmFiIFJlcHVibGljJyxcbiAgVFc6ICdUYWl3YW4nLFxuICBUSjogJ1RhamlraXN0YW4nLFxuICBUWjogJ1RhbnphbmlhJyxcbiAgVEg6ICdUaGFpbGFuZCcsXG4gIFRMOiAnVGltb3ItTGVzdGUnLFxuICBURzogJ1RvZ28nLFxuICBUSzogJ1Rva2VsYXUnLFxuICBUTzogJ1RvbmdhJyxcbiAgVFQ6ICdUcmluaWRhZCBBbmQgVG9iYWdvJyxcbiAgVE46ICdUdW5pc2lhJyxcbiAgVFI6ICdUdXJrZXknLFxuICBUTTogJ1R1cmttZW5pc3RhbicsXG4gIFRDOiAnVHVya3MgQW5kIENhaWNvcyBJc2xhbmRzJyxcbiAgVFY6ICdUdXZhbHUnLFxuICBVRzogJ1VnYW5kYScsXG4gIFVBOiAnVWtyYWluZScsXG4gIEFFOiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMnLFxuICBHQjogJ1VuaXRlZCBLaW5nZG9tJyxcbiAgVVM6ICdVbml0ZWQgU3RhdGVzJyxcbiAgVU06ICdVbml0ZWQgU3RhdGVzIE91dGx5aW5nIElzbGFuZHMnLFxuICBVWTogJ1VydWd1YXknLFxuICBVWjogJ1V6YmVraXN0YW4nLFxuICBWVTogJ1ZhbnVhdHUnLFxuICBWRTogJ1ZlbmV6dWVsYScsXG4gIFZOOiAnVmlldCBOYW0nLFxuICBWRzogJ1ZpcmdpbiBJc2xhbmRzLCBCcml0aXNoJyxcbiAgVkk6ICdWaXJnaW4gSXNsYW5kcywgVS5TLicsXG4gIFdGOiAnV2FsbGlzIEFuZCBGdXR1bmEnLFxuICBFSDogJ1dlc3Rlcm4gU2FoYXJhJyxcbiAgWUU6ICdZZW1lbicsXG4gIFpNOiAnWmFtYmlhJyxcbiAgWlc6ICdaaW1iYWJ3ZScsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q291bnRyeU5hbWUoY291bnRyeUNvZGU6IGFueSkge1xuICBpZiAoaXNvQ291bnRyaWVzLmhhc093blByb3BlcnR5KGNvdW50cnlDb2RlKSkge1xuICAgIHJldHVybiBpc29Db3VudHJpZXNbY291bnRyeUNvZGVdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjb3VudHJ5Q29kZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5UYWdJZHMocmF3OiBhbnlbXSkge1xuICByZXR1cm4gcmF3Lm1hcChpZCA9PiBpZC50cmltKCkpICAgICAgICAgICAgLy8gVHJpbSBlYWNoIElEIGVudHJ5IHRvIHJlbW92ZSB3aGl0ZXNwYWNlXG4gICAgLmZpbHRlcihpZCA9PiAvXlxcZCskLy50ZXN0KGlkKSkgIC8vIFVzZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBlbnN1cmUgdGhlIElEIGlzIGVudGlyZWx5IG51bWVyaWMuXG4gICAgLm1hcChpZCA9PiBOdW1iZXIoaWQpKTsgICAgICAgICAgLy8gQ29udmVydCB0aGUgcmVtYWluaW5nLCB2YWxpZCBJRCBlbnRyaWVzIGludG8gbnVtYmVyc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWVyY2hpU291cmNlSm9iVGFncygpOiBhbnlbXSB7XG4gIGlmICh0eXBlb2YgbG9jYWxTdG9yYWdlICE9PSAndW5kZWZpbmVkJyAmJiBsb2NhbFN0b3JhZ2UgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXJjaGlTb3VyY2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWVyY2hpX3NvdXJjZScpO1xuXG4gICAgaWYgKG1lcmNoaVNvdXJjZSkge1xuICAgICAgY29uc3QgaWRzID0gY2xlYW5UYWdJZHMobWVyY2hpU291cmNlLnNwbGl0KCcsJykpO1xuICAgICAgcmV0dXJuIGlkcy5tYXAoKGlkOiBudW1iZXIpID0+ICh7IGlkIH0pKTtcbiAgICB9XG4gICAgLy8gSWYgXCJtZXJjaGlfc291cmNlXCIgaXMgbm90IGZvdW5kIGluIGxvY2FsU3RvcmFnZSwgcmV0dXJuIGFuIGVtcHR5IGFycmF5LlxuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0QnlQb3NpdGlvbihvcHRpb25zOiBhbnlbXSk6IGFueVtdIHtcbiAgcmV0dXJuIG9wdGlvbnMubWFwKChvYmo6IGFueSkgPT4ge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdHlwZW9mIG9iai5wb3NpdGlvbiA9PT0gJ3N0cmluZydcbiAgICAgID8gcGFyc2VJbnQob2JqLnBvc2l0aW9uLCAxMClcbiAgICAgIDogb2JqLnBvc2l0aW9uO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5vYmosXG4gICAgICBwb3NpdGlvbjogdHlwZW9mIHBvc2l0aW9uID09PSAnbnVtYmVyJyA/IHBvc2l0aW9uIDogMCxcbiAgICB9O1xuICB9KS5zb3J0KChhLCBiKSA9PiB7XG4gICAgY29uc3QgYVBvc2l0aW9uID0gdHlwZW9mIGEucG9zaXRpb24gPT09ICdudW1iZXInID8gYS5wb3NpdGlvbiA6IDA7XG4gICAgY29uc3QgYlBvc2l0aW9uID0gdHlwZW9mIGIucG9zaXRpb24gPT09ICdudW1iZXInID8gYi5wb3NpdGlvbiA6IDA7XG4gICAgcmV0dXJuIGFQb3NpdGlvbiAtIGJQb3NpdGlvbjtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHMoam9iSnNvbjogYW55KSB7XG4gIGNvbnN0IHsgdmFyaWF0aW9ucywgdmFyaWF0aW9uc0dyb3VwcyB9ID0gam9iSnNvbjtcbiAgY29uc3QgaGFzR3JvdXBzID0gQm9vbGVhbih2YXJpYXRpb25zR3JvdXBzICYmIHZhcmlhdGlvbnNHcm91cHMubGVuZ3RoKTtcbiAgY29uc3QgaGFzVmFyaWF0aW9ucyA9IEJvb2xlYW4odmFyaWF0aW9ucyAmJiB2YXJpYXRpb25zLmxlbmd0aCk7XG4gIFxuICAvLyBMb29wIG92ZXIgaW5kaXZpZHVhbCB2YXJpYXRpb25zIGFuZCBjaGVjayBpZiB0aGUgdmFyaWF0aW9uIGlzIGEganNvbiBzdHJpbmcsIGlmIGl0IGlzIGNvbnZlcnQgaXQgdG8gYW4gb2JqZWN0XG4gIGlmIChoYXNWYXJpYXRpb25zKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YXJpYXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXJpYXRpb25zW2ldID0gY2xlYW5Gb3JtVmFyaWF0aW9uSnNvbih2YXJpYXRpb25zW2ldKTtcbiAgICB9XG4gICAgam9iSnNvbi52YXJpYXRpb25zID0gdmFyaWF0aW9ucztcbiAgfVxuICBcbiAgaWYgKGhhc0dyb3Vwcykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFyaWF0aW9uc0dyb3Vwcy5sZW5ndGg7IGkrKykge1xuICAgICAgLy8gU2V0IGRlZmF1bHQgcXVhbnRpdHkgaWYgbm90IHByZXNlbnRcbiAgICAgIGNvbnN0IGdyb3VwID0gdmFyaWF0aW9uc0dyb3Vwc1tpXTtcbiAgICAgIGlmICghZ3JvdXAucXVhbnRpdHkpIHtcbiAgICAgICAgZ3JvdXAucXVhbnRpdHkgPSAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBIYW5kbGUgdmFyaWF0aW9ucyB3aXRoaW4gdGhlIGdyb3VwIC0gY29udmVydCBKU09OIHN0cmluZ3MgdG8gb2JqZWN0c1xuICAgICAgaWYgKGdyb3VwLnZhcmlhdGlvbnMgJiYgQXJyYXkuaXNBcnJheShncm91cC52YXJpYXRpb25zKSkge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGdyb3VwLnZhcmlhdGlvbnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBncm91cC52YXJpYXRpb25zW2pdID0gY2xlYW5Gb3JtVmFyaWF0aW9uSnNvbihncm91cC52YXJpYXRpb25zW2pdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBqb2JKc29uLnZhcmlhdGlvbnNHcm91cHMgPSB2YXJpYXRpb25zR3JvdXBzO1xuICB9XG4gIFxuICByZXR1cm4gam9iSnNvbjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FBU0EsTUFBTSxFQUFFQyxjQUFjLFFBQVEsYUFBYTtBQUNwRCxTQUFTQyxjQUFjLFFBQVEsbUJBQW1CO0FBQ2xELFNBQVNDLFdBQVcsRUFBRUMsU0FBUyxRQUFRLGdCQUFnQjtBQUN2RCxTQUFTQyxzQkFBc0IsUUFBUSxpQ0FBaUM7QUFDeEUsU0FBU0Esc0JBQXNCLFFBQVEsaUNBQWlDO0FBQ3hFLFNBQVNDLG9CQUFvQixRQUFRLG1CQUFtQjtBQUN4RCxTQUNFQSxvQkFBb0IsRUFDcEJDLGtCQUFrQixFQUNsQkMsc0JBQXNCLEVBQ3RCQyxlQUFlLFFBQ1YsbUJBQW1CO0FBQzFCLElBQU1DLGlCQUFpQixHQUFHQyxPQUFPLENBQUMsaUNBQWlDLENBQUM7QUFFcEUsU0FBU0MsMEJBQTBCQSxDQUNqQ0MsSUFBUyxFQUNUQyxZQUFpQixFQUNqQkMsY0FBc0IsRUFDdEI7RUFDQSxJQUFJQyxlQUFlLEdBQUc7SUFBRUMsUUFBUSxFQUFFSCxZQUFZO0lBQUVJLGtCQUFrQixFQUFFO0VBQU0sQ0FBQztFQUMzRSxJQUFJQyxVQUFVLEdBQUcsRUFBRTtFQUNuQixJQUFNQyxNQUFNLEdBQUdDLFVBQVUsQ0FBQ1IsSUFBSSxDQUFDO0VBRS9CLElBQUlTLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSCxNQUFNLENBQUMsSUFBSUEsTUFBTSxHQUFHLENBQUMs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
|
package/lib/styles/globals.css
CHANGED
|
@@ -25,6 +25,25 @@
|
|
|
25
25
|
flex-direction: column;
|
|
26
26
|
padding: 0;
|
|
27
27
|
}
|
|
28
|
+
.merchi-embed-form_variation-grid {
|
|
29
|
+
display: grid;
|
|
30
|
+
grid-template-columns: repeat(var(--merchi-variation-columns, 1), minmax(0, 1fr));
|
|
31
|
+
gap: 1.25rem;
|
|
32
|
+
}
|
|
33
|
+
.merchi-embed-form_variation-grid > fieldset {
|
|
34
|
+
border: none;
|
|
35
|
+
margin: 0;
|
|
36
|
+
padding: 0;
|
|
37
|
+
min-width: 0;
|
|
38
|
+
}
|
|
39
|
+
@media (max-width: 640px) {
|
|
40
|
+
.merchi-embed-form_variation-grid {
|
|
41
|
+
grid-template-columns: minmax(0, 1fr);
|
|
42
|
+
}
|
|
43
|
+
.merchi-embed-form_variation-grid > * {
|
|
44
|
+
grid-column: 1/-1 !important;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
28
47
|
.merchi-embed-form fieldset.merchi-embed-form_product-group-container,
|
|
29
48
|
.merchi-embed-form fieldset.merchi-embed-form_product-group-variation-container, .merchi-embed-form_variantion-container > fieldset {
|
|
30
49
|
border: none;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/styles/globals.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAGC;AAEC;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAbL;AAiBC;;AACA;EACE;EACA;EACA;EACA;;AAGF;AAAA;EAGE;EACA;EACA;EACA;;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/styles/globals.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAGC;AAEC;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAbL;AAiBC;;AACA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EAZF;IAaI;;EAEA;IACE;;;AAKN;AAAA;EAGE;EACA;EACA;EACA;;AApDH;AAuDC;;AACA;EACE;;AAEA;EAHF;IAII;;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAzEL;AA6EC;;AAKI;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAvGL;AA2GC;;AAEE;EACE;EACA;;AA/GL;AAmHC;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAtIL;AA0IC;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAtMP;AA2MC;;AAEE;EACE;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EAJF;IAKI;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAnQP;AAwQC;;AAEE;EACE;EACA;EACA;;AAEA;EALF;IAMI;;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;AArUP;AA0UC;;AAEE;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAIF;EACE;;AAIF;EACE;;AAKJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAtcL;AA0cC;;AAEE;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AA1eL;AA+eC;;AACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAvgBH;AA0gBC;;AAEE;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EANF;IAOI;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAEA;EAHF;IAII;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAplBH;AAulBC;;AAIE;EACE;EACA;EACA;;;AAKN;AAAA;AAAA;AAIA;AACA;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;;AAKN;AAEA;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;AACA;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKF;EAEE;;AAGF;EAEE;;;AAIJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;IACE;;EAGF;IACE;IACA;IACA;IACA;;EAGF;AAAA;IAEE;IACA;IACA;IACA;;EAGF;IACE;;EAGF;IACE;IACA;;EAGF;IACE;IACA;IACA;;;AAIJ;EACE;IACE","file":"globals.css"}
|
package/lib/styles/globals.scss
CHANGED
|
@@ -26,6 +26,27 @@
|
|
|
26
26
|
padding: 0;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
&_variation-grid {
|
|
30
|
+
display: grid;
|
|
31
|
+
grid-template-columns: repeat(var(--merchi-variation-columns, 1), minmax(0, 1fr));
|
|
32
|
+
gap: 1.25rem;
|
|
33
|
+
|
|
34
|
+
> fieldset {
|
|
35
|
+
border: none;
|
|
36
|
+
margin: 0;
|
|
37
|
+
padding: 0;
|
|
38
|
+
min-width: 0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@media (max-width: 640px) {
|
|
42
|
+
grid-template-columns: minmax(0, 1fr);
|
|
43
|
+
|
|
44
|
+
> * {
|
|
45
|
+
grid-column: 1 / -1 !important;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
29
50
|
fieldset.merchi-embed-form_product-group-container,
|
|
30
51
|
fieldset.merchi-embed-form_product-group-variation-container,
|
|
31
52
|
&_variantion-container > fieldset {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DraftTemplateData } from './types';
|
|
2
|
+
export interface DesignerTextStyle {
|
|
3
|
+
colour?: string;
|
|
4
|
+
textSize?: number;
|
|
5
|
+
font?: string;
|
|
6
|
+
align?: string;
|
|
7
|
+
x?: number;
|
|
8
|
+
y?: number;
|
|
9
|
+
width?: number;
|
|
10
|
+
height?: number;
|
|
11
|
+
rotation?: number;
|
|
12
|
+
scaleX?: number;
|
|
13
|
+
scaleY?: number;
|
|
14
|
+
}
|
|
15
|
+
export interface DesignerInput {
|
|
16
|
+
kind: 'text' | 'file';
|
|
17
|
+
name: string;
|
|
18
|
+
value?: string;
|
|
19
|
+
src?: string;
|
|
20
|
+
textStyle?: DesignerTextStyle;
|
|
21
|
+
groupIndex?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface CheckoutDesignInput {
|
|
24
|
+
kind: 'text' | 'file';
|
|
25
|
+
name: string;
|
|
26
|
+
value?: string;
|
|
27
|
+
file?: {
|
|
28
|
+
id: number | string;
|
|
29
|
+
};
|
|
30
|
+
textStyle?: DesignerTextStyle;
|
|
31
|
+
groupIndex?: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function collectDesignerInputs(product: any, drafts: DraftTemplateData[]): DesignerInput[];
|
|
34
|
+
export declare function packDesignInputNotes(inputs: CheckoutDesignInput[]): string | undefined;
|