@bizdoc/core 1.16.14 → 1.16.15

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.
Files changed (29) hide show
  1. package/esm2020/lib/admin/configuration-designer/declarations.mjs +7 -5
  2. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +29 -27
  3. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +3 -3
  4. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +24 -2
  5. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +3 -3
  6. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +3 -3
  7. package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +3 -3
  8. package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +3 -3
  9. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +3 -3
  10. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +3 -3
  11. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +9 -8
  12. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +3 -3
  13. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +3 -3
  14. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +3 -3
  15. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +3 -3
  16. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +2 -2
  17. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +3 -3
  18. package/esm2020/lib/admin/patterns/patterns.component.mjs +3 -3
  19. package/esm2020/lib/core/functions.mjs +3 -2
  20. package/esm2020/lib/core/translations.mjs +2 -2
  21. package/fesm2015/bizdoc-core.mjs +88 -61
  22. package/fesm2015/bizdoc-core.mjs.map +1 -1
  23. package/fesm2020/bizdoc-core.mjs +88 -61
  24. package/fesm2020/bizdoc-core.mjs.map +1 -1
  25. package/lib/admin/configuration-designer/declarations.d.ts +5 -3
  26. package/lib/admin/configuration-designer/designer-element.component.d.ts +6 -3
  27. package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts +4 -5
  28. package/lib/core/translations.d.ts +1 -1
  29. package/package.json +1 -1
@@ -17,7 +17,8 @@ export function cleanup(params) {
17
17
  if (val.length === 0)
18
18
  delete params[k];
19
19
  else
20
- val.forEach(e => cleanup(e));
20
+ for (let i = 0; i < val.length; i++)
21
+ isObject(val[i]) && cleanup(val[i]);
21
22
  }
22
23
  else if (isObject(val)) {
23
24
  cleanup(val);
@@ -215,4 +216,4 @@ function getParameterByName(name, url = window.location.href) {
215
216
  return '';
216
217
  return decodeURIComponent(results[2].replace(/\+/g, ' '));
217
218
  }
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJN0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUV6RSxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQTJCO0lBQ3BELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLFdBQW1CO0lBQ3pDLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxNQUFNO0lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLFlBQVksSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFNBQVM7WUFBRSxPQUFPO2FBQ3ZGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxH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cUJBQ2IsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDO29CQUNsQixNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO3FCQUN0QixJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDdEIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU07d0JBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDM0Q7O29CQUVDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7YUFDbkI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFDRCxTQUFTLGtCQUFrQixDQUFDLElBQUksRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJO0lBQzFELElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLG1CQUFtQixDQUFDLEVBQ3pELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMzQixPQUFPLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1BVEVSSUFMX1BBTEVUVEVTIH0gZnJvbSBcIi4vY29sb3JzXCI7XHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIE1hdGVyaWFsTW9kZSA9IDUwIHwgMTAwIHwgMjAwIHwgMzAwIHwgNDAwIHwgNTAwIHwgNjAwIHwgNzAwIHwgODAwIHwgOTAwIHwgJ0ExMDAnIHwgJ0EyMDAnIHwgJ0E0MDAnIHwgJ0E3MDAnO1xyXG5cclxuY29uc3QgSU1BR0VfVFlQRSA9IFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL2dpZiddO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvQXJyYXkobWFwOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XHJcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1hcCkubWFwKGsgPT4gKHsga2V5OiBrLCB2YWx1ZTogbWFwW2tdIH0pKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSW1hZ2UoY29udGVudFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBJTUFHRV9UWVBFLmluZGV4T2YoY29udGVudFR5cGUpID4gLTE7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwKHBhcmFtcykge1xyXG4gIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChrID0+IHtcclxuICAgIGNvbnN0IHZhbCA9IHBhcmFtc1trXTtcclxuICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIGRlbGV0ZSBwYXJhbXNba107XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB2YWwgaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiB2YWwgPT09ICdib29sZWFuJykgcmV0dXJuO1xyXG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XHJcbiAgICAgIGlmICh2YWwubGVuZ3RoID09PSAwKSBkZWxldGUgcGFyYW1zW2tdO1xyXG4gICAgICBlbHNlIHZhbC5mb3JFYWNoKGUgPT4gY2xlYW51cChlKSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKSB7XHJcbiAgICAgIGNsZWFudXAodmFsKTtcclxuICAgICAgaWYgKE9iamVjdC5rZXlzKHZhbCkubGVuZ3RoID09PSAwKSBkZWxldGUgcGFyYW1zW2tdO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwYXJhbXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBvdXRPZkJvdW5kKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgY29uc3QgYm91bmRpbmcgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gIHJldHVybiBib3VuZGluZy50b3AgPCAwIHx8XHJcbiAgICBib3VuZGluZy5sZWZ0IDwgMCB8fFxyXG4gICAgYm91bmRpbmcucmlnaHQgPiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHxcclxuICAgIGJvdW5kaW5nLmJvdHRvbSA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbn1cclxuXHJcbmNvbnN0IElTX01PQklMRSA9IC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcclxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9iaWxlKCkge1xyXG4gIHJldHVybiBJU19NT0JJTEUgLyp8fCBkb2N1bWVudC5jb29raWUuaW5kZXhPZignYXJpYT0xJykgPiAtMSovO1xyXG59IGV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbCk6IHZhbCBpcyBGdW5jdGlvbiB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdmdW5jdGlvbic7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbih2YWwpOiB2YWwgaXMgYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdib29sZWFuJztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsKSB7XHJcbiAgcmV0dXJuIHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNQcmltaXRpdmUodmFsKSB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWwgIT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbCk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZShvYmopOiBvYmogaXMgUHJvbWlzZTxhbnk+IHtcclxuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgUHJvbWlzZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKHZhbCk6IHZhbCBpcyBEYXRlIHtcclxuICByZXR1cm4gdmFsIGluc3RhbmNlb2YgRGF0ZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJheSh2YWwpOiB2YWwgaXMgQXJyYXk8YW55PiB7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsOiBhbnkpOiB2YWwgaXMgc3RyaW5nIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdmFsIGluc3RhbmNlb2YgU3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2Fybihtb2RlOiBNYXRlcmlhbE1vZGUgPSA1MDApIHtcclxuICByZXR1cm4gTUFURVJJQUxfUEFMRVRURVNbJ3JlZCddW21vZGVdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGxheUF1ZGlvKG5hbWU6ICdub3RpZmljYXRpb25fc2ltcGxlLTAxJyB8ICdhbGVydF9lcnJvci0wMycpIHtcclxuICB0cnkge1xyXG4gICAgY29uc3QgYXVkaW8gPSBuZXcgQXVkaW8oKTtcclxuICAgIGF1ZGlvLnNyYyA9IGAvYXNzZXRzL3NvdW5kcy8ke25hbWV9Lm9nZ2A7XHJcbiAgICBhdWRpby5sb2FkKCk7XHJcbiAgICBhdWRpby5wbGF5KCk7XHJcbiAgfSBjYXRjaCAoZSkge1xyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogXHJcbiAqIEBwYXJhbSBvMVxyXG4gKiBAcGFyYW0gbzJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWVwQXNzaWduKG8xLCBvMikge1xyXG4gIG8yICYmIE9iamVjdC5rZXlzKG8yKS5mb3JFYWNoKHAgPT4ge1xyXG4gICAgY29uc3QgdmFsMiA9IG8yW3BdLCB2YWwxID0gbzFbcF07XHJcbiAgICBpZiAodmFsMSA9PT0gdW5kZWZpbmVkIHx8IHZhbDEgPT09IG51bGwgfHwgaXNQcmltaXRpdmUodmFsMikpIC8vIHZhbCAhPT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsKVxyXG4gICAgICBvMVtwXSA9IHZhbDI7XHJcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbDIpKSB7XHJcbiAgICAgIGlmICh2YWwyLmxlbmd0aCAmJiAhaXNQcmltaXRpdmUodmFsMlswXSkpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbDIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh2YWwxW2ldICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIGRlZXBBc3NpZ24odmFsMVtpXSwgdmFsMltpXSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHZhbDEucHVzaCh2YWwyW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgKHZhbDEgYXMgYW55W10pLnNwbGljZSh2YWwyLmxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIC8vKHZhbDIgYXMgYW55W10pLnNwbGljZSgwLCB2YWwyLmxlbmd0aCwgLi4udmFsKTtcclxuICAgICAgICBvMVtwXSA9IHZhbDI7XHJcbiAgICB9XHJcbiAgICBlbHNlIC8vaWYgKGlzT2JqZWN0KHZhbDIpKVxyXG4gICAgICBkZWVwQXNzaWduKHZhbDEsIHZhbDIpO1xyXG4gIH0pO1xyXG4gIHJldHVybiBvMTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2VuZXJhdGVFbmNyeXB0aW9uTWFwKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0ge1xyXG4gIGNvbnN0IHZhbHVlcyA9IHt9O1xyXG4gIGZvciAobGV0IGkgPSA2NTsgaSA8IDkxOyBpKyspIHtcclxuICAgIGNvbnN0IGQgPSAoaSAtIDY1KS50b1N0cmluZygpLFxyXG4gICAgICBjID0gU3RyaW5nLmZyb21DaGFyQ29kZShpKTtcclxuICAgIHZhbHVlc1tkXSA9IGM7XHJcbiAgICB2YWx1ZXNbY10gPSBkO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gOTc7IGkgPCAxMjM7IGkrKykge1xyXG4gICAgY29uc3QgZCA9IChpIC0gNzEpLnRvU3RyaW5nKCksXHJcbiAgICAgIGMgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpO1xyXG4gICAgdmFsdWVzW2RdID0gYztcclxuICAgIHZhbHVlc1tjXSA9IGQ7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZXM7XHJcbn1cclxuY29uc3QgZGVjb2RlID0gZ2VuZXJhdGVFbmNyeXB0aW9uTWFwKCk7XHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBpbnRlcmZhY2UgU3RyaW5nIHtcclxuICAgIGRlY29kZUlkOiAoKSA9PiBudW1iZXI7XHJcbiAgfVxyXG4gIGludGVyZmFjZSBOdW1iZXIge1xyXG4gICAgZW5jb2RlSWQ6ICgpID0+IHN0cmluZztcclxuICB9XHJcbn1cclxuU3RyaW5nLnByb3RvdHlwZS5kZWNvZGVJZCA9IGZ1bmN0aW9uICgpOiBudW1iZXIge1xyXG4gIGxldCB2ID0gJyc7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCBjID0gdGhpcy5jaGFyQXQoaSk7XHJcbiAgICB2ICs9IGRlY29kZVtjXTtcclxuICB9XHJcbiAgcmV0dXJuIHBhcnNlSW50KHYpO1xyXG59O1xyXG5OdW1iZXIucHJvdG90eXBlLmVuY29kZUlkID0gZnVuY3Rpb24gKCk6IHN0cmluZyB7XHJcbiAgbGV0IHYgPSAnJyxcclxuICAgIGQgPSB0aGlzLnRvU3RyaW5nKCk7XHJcbiAgd2hpbGUgKGQubGVuZ3RoID4gMCkge1xyXG4gICAgbGV0IGkgPSA1MSxcclxuICAgICAgYyA9IGkudG9TdHJpbmcoKTtcclxuICAgIHdoaWxlICghZC5zdGFydHNXaXRoKGMpKSB7XHJcbiAgICAgIC0taSwgYyA9IGkudG9TdHJpbmcoKTtcclxuICAgIH0gdiArPSBkZWNvZGVbY107XHJcbiAgICBkID0gZC5zdWJzdHJpbmcoYy5sZW5ndGgpO1xyXG4gIH1cclxuICByZXR1cm4gdjtcclxufTtcclxuXHJcbi8qKiBnbG9iYWwgZXh0ZW5kZWQgYXJyYXkgZnVuY3Rpb25zICovXHJcbih3aW5kb3cgYXMgYW55KS5nbG9iYWwgPSB3aW5kb3c7XHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBpbnRlcmZhY2UgQXJyYXk8VD4ge1xyXG4gICAgcmVtb3ZlKGl0ZW06IFQpOiBUW107XHJcbiAgICBsYXN0KCk6IFQ7XHJcbiAgICBhdmVyYWdlKHByZWRpY2F0ZTogKGk6IFQpID0+IG51bWJlcik6IG51bWJlcjtcclxuICAgIGRpc3RpbmN0PE0+KHByZWRpY2F0ZTogKGk6IFQpID0+IE0pOiBTZXQ8TT47XHJcbiAgICBzdW0ocHJlZGljYXRlOiAoaTogVCkgPT4gbnVtYmVyKTogbnVtYmVyO1xyXG4gICAgbWF4KHByZWRpY2F0ZTogKGk6IFQpID0+IG51bWJlcik6IG51bWJlcjtcclxuICB9XHJcbiAgaW50ZXJmYWNlIFN0cmluZyB7XHJcbiAgICBmb3JtYXRBcmdzKC4uLmFyZ3MpOiBzdHJpbmc7XHJcbiAgICBub3JtYWxpemUoKTogc3RyaW5nO1xyXG4gIH1cclxufVxyXG5TdHJpbmcucHJvdG90eXBlLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uICgpIHtcclxuICByZXR1cm4gdGhpcy5yZXBsYWNlKC8gL2csICdfJykucmVwbGFjZSgvW15cXHddL2csICcnKS50b0xvd2VyQ2FzZSgpO1xyXG59XHJcblxyXG5TdHJpbmcucHJvdG90eXBlLmZvcm1hdEFyZ3MgPSBmdW5jdGlvbiAoLi4uYXJncyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHRoaXMucmVwbGFjZSgveyhcXGQrKX0vZywgKF8sIGluZGV4KSA9PiBhcmdzW2luZGV4XSB8fCAnJyk7XHJcbn1cclxuQXJyYXkucHJvdG90eXBlLmxhc3QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgcmV0dXJuIHRoaXNbdGhpcy5sZW5ndGggLSAxXTtcclxufVxyXG4vKiogcmVtb3ZlIGVsZW1lbnQgZnJvbSBhcnJheSAqL1xyXG5BcnJheS5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24gPFQ+KHZhbHVlOiBUKTogVFtdIHtcclxuICBjb25zdCBpbmRleCA9IHRoaXMuaW5kZXhPZih2YWx1ZSk7XHJcbiAgaWYgKGluZGV4ID4gLTEpIHRoaXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICByZXR1cm4gdGhpcztcclxufTtcclxuLyoqIGNhbGN1bGF0ZSBhdmVyYWdlIHVzaW5nIGVsZW1lbnQgcHJlZGljYXRlICovXHJcbkFycmF5LnByb3RvdHlwZS5hdmVyYWdlID0gZnVuY3Rpb24gPFQ+KHByZWRpY2F0ZT86IChpOiBUKSA9PiBudW1iZXIpOiBudW1iZXIge1xyXG4gIGxldCBhdmVyYWdlID0gMDtcclxuICB0aGlzLmZvckVhY2goaSA9PlxyXG4gICAgYXZlcmFnZSArPSBwcmVkaWNhdGUoaSlcclxuICApO1xyXG4gIHJldHVybiBhdmVyYWdlICE9PSAwID8gYXZlcmFnZSAvIHRoaXMubGVuZ3RoIDogMDtcclxufVxyXG5BcnJheS5wcm90b3R5cGUuZGlzdGluY3QgPSBmdW5jdGlvbiA8VCwgTT4ocHJlZGljYXRlPzogKGk6IFQpID0+IE0pOiBTZXQ8TT4ge1xyXG4gIGNvbnN0IHZhbHVlcyA9IG5ldyBTZXQ8TT4oKTtcclxuICB0aGlzLmZvckVhY2goaSA9PlxyXG4gICAgdmFsdWVzLmFkZChwcmVkaWNhdGUoaSkpXHJcbiAgKTtcclxuICByZXR1cm4gdmFsdWVzO1xyXG59XHJcbkFycmF5LnByb3RvdHlwZS5tYXggPSBmdW5jdGlvbiA8VD4ocHJlZGljYXRlPzogKGk6IFQpID0+IG51bWJlcik6IG51bWJlciB7XHJcbiAgbGV0IG4gPSAwO1xyXG4gIHRoaXMuZm9yRWFjaChpID0+XHJcbiAgICBuID0gTWF0aC5tYXgobiwgcHJlZGljYXRlKGkpKVxyXG4gICk7XHJcbiAgcmV0dXJuIG47XHJcbn1cclxuLyoqIHN1bSBlbGVtZW50cyB1c2luZyBwcmVkaWNhdGUgKi9cclxuQXJyYXkucHJvdG90eXBlLnN1bSA9IGZ1bmN0aW9uIDxUPihwcmVkaWNhdGU/OiAoaTogVCkgPT4gbnVtYmVyKTogbnVtYmVyIHtcclxuICBsZXQgbiA9IDA7XHJcbiAgdGhpcy5mb3JFYWNoKGkgPT5cclxuICAgIG4gKz0gcHJlZGljYXRlKGkpXHJcbiAgKTtcclxuICByZXR1cm4gbjtcclxufVxyXG4vKipcclxuICogXHJcbiAqIEBwYXJhbSBhcmdzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlQYXJhbXMoYXJnczogYW55KSB7XHJcbiAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgYXJncyAmJlxyXG4gICAgT2JqZWN0LmtleXMoYXJncykuZm9yRWFjaChrID0+IHtcclxuICAgICAgY29uc3QgdmFsID0gYXJnc1trXTtcclxuXHJcbiAgICAgIGlmICh2YWwgIT09IG51bGwgJiYgdmFsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAoaXNTdHJpbmcodmFsKSlcclxuICAgICAgICAgIHBhcmFtc1trXSA9IHZhbDtcclxuICAgICAgICBlbHNlIGlmIChpc0FycmF5KHZhbCkgJiYgdmFsLmxlbmd0aClcclxuICAgICAgICAgIHBhcmFtc1trXSA9IHZhbDtcclxuICAgICAgICBlbHNlIGlmIChpc0RhdGUodmFsKSlcclxuICAgICAgICAgIHBhcmFtc1trXSA9IHZhbC50b0pTT04oKTtcclxuICAgICAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKSB7XHJcbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXModmFsKS5sZW5ndGgpIHBhcmFtc1trXSA9IHF1ZXJ5UGFyYW1zKHZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHBhcmFtc1trXSA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgcmV0dXJuIHBhcmFtcztcclxufVxyXG5mdW5jdGlvbiBnZXRQYXJhbWV0ZXJCeU5hbWUobmFtZSwgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWYpIHtcclxuICBuYW1lID0gbmFtZS5yZXBsYWNlKC9bXFxbXFxdXS9nLCAnXFxcXCQmJyk7XHJcbiAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgnWz8mXScgKyBuYW1lICsgJyg9KFteJiNdKil8JnwjfCQpJyksXHJcbiAgICByZXN1bHRzID0gcmVnZXguZXhlYyh1cmwpO1xyXG4gIGlmICghcmVzdWx0cykgcmV0dXJuIG51bGw7XHJcbiAgaWYgKCFyZXN1bHRzWzJdKSByZXR1cm4gJyc7XHJcbiAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzJdLnJlcGxhY2UoL1xcKy9nLCAnICcpKTtcclxufVxyXG4iXX0=
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFJN0MsTUFBTSxVQUFVLEdBQUcsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUV6RSxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQTJCO0lBQ3BELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLFdBQW1CO0lBQ3pDLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxNQUFNO0lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzlCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVM7WUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuRCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLFlBQVksSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFNBQVM7WUFBRSxPQUFPO2FBQ3ZGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxH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VEVSSUFMX1BBTEVUVEVTIH0gZnJvbSBcIi4vY29sb3JzXCI7XHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIE1hdGVyaWFsTW9kZSA9IDUwIHwgMTAwIHwgMjAwIHwgMzAwIHwgNDAwIHwgNTAwIHwgNjAwIHwgNzAwIHwgODAwIHwgOTAwIHwgJ0ExMDAnIHwgJ0EyMDAnIHwgJ0E0MDAnIHwgJ0E3MDAnO1xyXG5cclxuY29uc3QgSU1BR0VfVFlQRSA9IFsnaW1hZ2UvcG5nJywgJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL2dpZiddO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvQXJyYXkobWFwOiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XHJcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1hcCkubWFwKGsgPT4gKHsga2V5OiBrLCB2YWx1ZTogbWFwW2tdIH0pKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzSW1hZ2UoY29udGVudFR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBJTUFHRV9UWVBFLmluZGV4T2YoY29udGVudFR5cGUpID4gLTE7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwKHBhcmFtcykge1xyXG4gIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaChrID0+IHtcclxuICAgIGNvbnN0IHZhbCA9IHBhcmFtc1trXTtcclxuICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIGRlbGV0ZSBwYXJhbXNba107XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB2YWwgaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiB2YWwgPT09ICdib29sZWFuJykgcmV0dXJuO1xyXG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XHJcbiAgICAgIGlmICh2YWwubGVuZ3RoID09PSAwKSBkZWxldGUgcGFyYW1zW2tdO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWwubGVuZ3RoOyBpKyspIFxyXG4gICAgICAgICAgaXNPYmplY3QodmFsW2ldKSAmJiBjbGVhbnVwKHZhbFtpXSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKSB7XHJcbiAgICAgIGNsZWFudXAodmFsKTtcclxuICAgICAgaWYgKE9iamVjdC5rZXlzKHZhbCkubGVuZ3RoID09PSAwKSBkZWxldGUgcGFyYW1zW2tdO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBwYXJhbXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBvdXRPZkJvdW5kKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgY29uc3QgYm91bmRpbmcgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gIHJldHVybiBib3VuZGluZy50b3AgPCAwIHx8XHJcbiAgICBib3VuZGluZy5sZWZ0IDwgMCB8fFxyXG4gICAgYm91bmRpbmcucmlnaHQgPiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHxcclxuICAgIGJvdW5kaW5nLmJvdHRvbSA+IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbn1cclxuXHJcbmNvbnN0IElTX01PQklMRSA9IC9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtcclxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9iaWxlKCkge1xyXG4gIHJldHVybiBJU19NT0JJTEUgLyp8fCBkb2N1bWVudC5jb29raWUuaW5kZXhPZignYXJpYT0xJykgPiAtMSovO1xyXG59IGV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbCk6IHZhbCBpcyBGdW5jdGlvbiB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdmdW5jdGlvbic7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbih2YWwpOiB2YWwgaXMgYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdib29sZWFuJztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsKSB7XHJcbiAgcmV0dXJuIHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNQcmltaXRpdmUodmFsKSB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWwgIT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbCk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZShvYmopOiBvYmogaXMgUHJvbWlzZTxhbnk+IHtcclxuICByZXR1cm4gb2JqIGluc3RhbmNlb2YgUHJvbWlzZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKHZhbCk6IHZhbCBpcyBEYXRlIHtcclxuICByZXR1cm4gdmFsIGluc3RhbmNlb2YgRGF0ZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJheSh2YWwpOiB2YWwgaXMgQXJyYXk8YW55PiB7XHJcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmcodmFsOiBhbnkpOiB2YWwgaXMgc3RyaW5nIHtcclxuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdmFsIGluc3RhbmNlb2YgU3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2Fybihtb2RlOiBNYXRlcmlhbE1vZGUgPSA1MDApIHtcclxuICByZXR1cm4gTUFURVJJQUxfUEFMRVRURVNbJ3JlZCddW21vZGVdO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGxheUF1ZGlvKG5hbWU6ICdub3RpZmljYXRpb25fc2ltcGxlLTAxJyB8ICdhbGVydF9lcnJvci0wMycpIHtcclxuICB0cnkge1xyXG4gICAgY29uc3QgYXVkaW8gPSBuZXcgQXVkaW8oKTtcclxuICAgIGF1ZGlvLnNyYyA9IGAvYXNzZXRzL3NvdW5kcy8ke25hbWV9Lm9nZ2A7XHJcbiAgICBhdWRpby5sb2FkKCk7XHJcbiAgICBhdWRpby5wbGF5KCk7XHJcbiAgfSBjYXRjaCAoZSkge1xyXG4gICAgY29uc29sZS5sb2coZSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogXHJcbiAqIEBwYXJhbSBvMVxyXG4gKiBAcGFyYW0gbzJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWVwQXNzaWduKG8xLCBvMikge1xyXG4gIG8yICYmIE9iamVjdC5rZXlzKG8yKS5mb3JFYWNoKHAgPT4ge1xyXG4gICAgY29uc3QgdmFsMiA9IG8yW3BdLCB2YWwxID0gbzFbcF07XHJcbiAgICBpZiAodmFsMSA9PT0gdW5kZWZpbmVkIHx8IHZhbDEgPT09IG51bGwgfHwgaXNQcmltaXRpdmUodmFsMikpIC8vIHZhbCAhPT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsKVxyXG4gICAgICBvMVtwXSA9IHZhbDI7XHJcbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbDIpKSB7XHJcbiAgICAgIGlmICh2YWwyLmxlbmd0aCAmJiAhaXNQcmltaXRpdmUodmFsMlswXSkpIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhbDIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGlmICh2YWwxW2ldICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIGRlZXBBc3NpZ24odmFsMVtpXSwgdmFsMltpXSk7XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHZhbDEucHVzaCh2YWwyW2ldKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgKHZhbDEgYXMgYW55W10pLnNwbGljZSh2YWwyLmxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIC8vKHZhbDIgYXMgYW55W10pLnNwbGljZSgwLCB2YWwyLmxlbmd0aCwgLi4udmFsKTtcclxuICAgICAgICBvMVtwXSA9IHZhbDI7XHJcbiAgICB9XHJcbiAgICBlbHNlIC8vaWYgKGlzT2JqZWN0KHZhbDIpKVxyXG4gICAgICBkZWVwQXNzaWduKHZhbDEsIHZhbDIpO1xyXG4gIH0pO1xyXG4gIHJldHVybiBvMTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2VuZXJhdGVFbmNyeXB0aW9uTWFwKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH0ge1xyXG4gIGNvbnN0IHZhbHVlcyA9IHt9O1xyXG4gIGZvciAobGV0IGkgPSA2NTsgaSA8IDkxOyBpKyspIHtcclxuICAgIGNvbnN0IGQgPSAoaSAtIDY1KS50b1N0cmluZygpLFxyXG4gICAgICBjID0gU3RyaW5nLmZyb21DaGFyQ29kZShpKTtcclxuICAgIHZhbHVlc1tkXSA9IGM7XHJcbiAgICB2YWx1ZXNbY10gPSBkO1xyXG4gIH1cclxuICBmb3IgKGxldCBpID0gOTc7IGkgPCAxMjM7IGkrKykge1xyXG4gICAgY29uc3QgZCA9IChpIC0gNzEpLnRvU3RyaW5nKCksXHJcbiAgICAgIGMgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGkpO1xyXG4gICAgdmFsdWVzW2RdID0gYztcclxuICAgIHZhbHVlc1tjXSA9IGQ7XHJcbiAgfVxyXG4gIHJldHVybiB2YWx1ZXM7XHJcbn1cclxuY29uc3QgZGVjb2RlID0gZ2VuZXJhdGVFbmNyeXB0aW9uTWFwKCk7XHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBpbnRlcmZhY2UgU3RyaW5nIHtcclxuICAgIGRlY29kZUlkOiAoKSA9PiBudW1iZXI7XHJcbiAgfVxyXG4gIGludGVyZmFjZSBOdW1iZXIge1xyXG4gICAgZW5jb2RlSWQ6ICgpID0+IHN0cmluZztcclxuICB9XHJcbn1cclxuU3RyaW5nLnByb3RvdHlwZS5kZWNvZGVJZCA9IGZ1bmN0aW9uICgpOiBudW1iZXIge1xyXG4gIGxldCB2ID0gJyc7XHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICBjb25zdCBjID0gdGhpcy5jaGFyQXQoaSk7XHJcbiAgICB2ICs9IGRlY29kZVtjXTtcclxuICB9XHJcbiAgcmV0dXJuIHBhcnNlSW50KHYpO1xyXG59O1xyXG5OdW1iZXIucHJvdG90eXBlLmVuY29kZUlkID0gZnVuY3Rpb24gKCk6IHN0cmluZyB7XHJcbiAgbGV0IHYgPSAnJyxcclxuICAgIGQgPSB0aGlzLnRvU3RyaW5nKCk7XHJcbiAgd2hpbGUgKGQubGVuZ3RoID4gMCkge1xyXG4gICAgbGV0IGkgPSA1MSxcclxuICAgICAgYyA9IGkudG9TdHJpbmcoKTtcclxuICAgIHdoaWxlICghZC5zdGFydHNXaXRoKGMpKSB7XHJcbiAgICAgIC0taSwgYyA9IGkudG9TdHJpbmcoKTtcclxuICAgIH0gdiArPSBkZWNvZGVbY107XHJcbiAgICBkID0gZC5zdWJzdHJpbmcoYy5sZW5ndGgpO1xyXG4gIH1cclxuICByZXR1cm4gdjtcclxufTtcclxuXHJcbi8qKiBnbG9iYWwgZXh0ZW5kZWQgYXJyYXkgZnVuY3Rpb25zICovXHJcbih3aW5kb3cgYXMgYW55KS5nbG9iYWwgPSB3aW5kb3c7XHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBpbnRlcmZhY2UgQXJyYXk8VD4ge1xyXG4gICAgcmVtb3ZlKGl0ZW06IFQpOiBUW107XHJcbiAgICBsYXN0KCk6IFQ7XHJcbiAgICBhdmVyYWdlKHByZWRpY2F0ZTogKGk6IFQpID0+IG51bWJlcik6IG51bWJlcjtcclxuICAgIGRpc3RpbmN0PE0+KHByZWRpY2F0ZTogKGk6IFQpID0+IE0pOiBTZXQ8TT47XHJcbiAgICBzdW0ocHJlZGljYXRlOiAoaTogVCkgPT4gbnVtYmVyKTogbnVtYmVyO1xyXG4gICAgbWF4KHByZWRpY2F0ZTogKGk6IFQpID0+IG51bWJlcik6IG51bWJlcjtcclxuICB9XHJcbiAgaW50ZXJmYWNlIFN0cmluZyB7XHJcbiAgICBmb3JtYXRBcmdzKC4uLmFyZ3MpOiBzdHJpbmc7XHJcbiAgICBub3JtYWxpemUoKTogc3RyaW5nO1xyXG4gIH1cclxufVxyXG5TdHJpbmcucHJvdG90eXBlLm5vcm1hbGl6ZSA9IGZ1bmN0aW9uICgpIHtcclxuICByZXR1cm4gdGhpcy5yZXBsYWNlKC8gL2csICdfJykucmVwbGFjZSgvW15cXHddL2csICcnKS50b0xvd2VyQ2FzZSgpO1xyXG59XHJcblxyXG5TdHJpbmcucHJvdG90eXBlLmZvcm1hdEFyZ3MgPSBmdW5jdGlvbiAoLi4uYXJncyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHRoaXMucmVwbGFjZSgveyhcXGQrKX0vZywgKF8sIGluZGV4KSA9PiBhcmdzW2luZGV4XSB8fCAnJyk7XHJcbn1cclxuQXJyYXkucHJvdG90eXBlLmxhc3QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgcmV0dXJuIHRoaXNbdGhpcy5sZW5ndGggLSAxXTtcclxufVxyXG4vKiogcmVtb3ZlIGVsZW1lbnQgZnJvbSBhcnJheSAqL1xyXG5BcnJheS5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24gPFQ+KHZhbHVlOiBUKTogVFtdIHtcclxuICBjb25zdCBpbmRleCA9IHRoaXMuaW5kZXhPZih2YWx1ZSk7XHJcbiAgaWYgKGluZGV4ID4gLTEpIHRoaXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICByZXR1cm4gdGhpcztcclxufTtcclxuLyoqIGNhbGN1bGF0ZSBhdmVyYWdlIHVzaW5nIGVsZW1lbnQgcHJlZGljYXRlICovXHJcbkFycmF5LnByb3RvdHlwZS5hdmVyYWdlID0gZnVuY3Rpb24gPFQ+KHByZWRpY2F0ZT86IChpOiBUKSA9PiBudW1iZXIpOiBudW1iZXIge1xyXG4gIGxldCBhdmVyYWdlID0gMDtcclxuICB0aGlzLmZvckVhY2goaSA9PlxyXG4gICAgYXZlcmFnZSArPSBwcmVkaWNhdGUoaSlcclxuICApO1xyXG4gIHJldHVybiBhdmVyYWdlICE9PSAwID8gYXZlcmFnZSAvIHRoaXMubGVuZ3RoIDogMDtcclxufVxyXG5BcnJheS5wcm90b3R5cGUuZGlzdGluY3QgPSBmdW5jdGlvbiA8VCwgTT4ocHJlZGljYXRlPzogKGk6IFQpID0+IE0pOiBTZXQ8TT4ge1xyXG4gIGNvbnN0IHZhbHVlcyA9IG5ldyBTZXQ8TT4oKTtcclxuICB0aGlzLmZvckVhY2goaSA9PlxyXG4gICAgdmFsdWVzLmFkZChwcmVkaWNhdGUoaSkpXHJcbiAgKTtcclxuICByZXR1cm4gdmFsdWVzO1xyXG59XHJcbkFycmF5LnByb3RvdHlwZS5tYXggPSBmdW5jdGlvbiA8VD4ocHJlZGljYXRlPzogKGk6IFQpID0+IG51bWJlcik6IG51bWJlciB7XHJcbiAgbGV0IG4gPSAwO1xyXG4gIHRoaXMuZm9yRWFjaChpID0+XHJcbiAgICBuID0gTWF0aC5tYXgobiwgcHJlZGljYXRlKGkpKVxyXG4gICk7XHJcbiAgcmV0dXJuIG47XHJcbn1cclxuLyoqIHN1bSBlbGVtZW50cyB1c2luZyBwcmVkaWNhdGUgKi9cclxuQXJyYXkucHJvdG90eXBlLnN1bSA9IGZ1bmN0aW9uIDxUPihwcmVkaWNhdGU/OiAoaTogVCkgPT4gbnVtYmVyKTogbnVtYmVyIHtcclxuICBsZXQgbiA9IDA7XHJcbiAgdGhpcy5mb3JFYWNoKGkgPT5cclxuICAgIG4gKz0gcHJlZGljYXRlKGkpXHJcbiAgKTtcclxuICByZXR1cm4gbjtcclxufVxyXG4vKipcclxuICogXHJcbiAqIEBwYXJhbSBhcmdzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVlcnlQYXJhbXMoYXJnczogYW55KSB7XHJcbiAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgYXJncyAmJlxyXG4gICAgT2JqZWN0LmtleXMoYXJncykuZm9yRWFjaChrID0+IHtcclxuICAgICAgY29uc3QgdmFsID0gYXJnc1trXTtcclxuXHJcbiAgICAgIGlmICh2YWwgIT09IG51bGwgJiYgdmFsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBpZiAoaXNTdHJpbmcodmFsKSlcclxuICAgICAgICAgIHBhcmFtc1trXSA9IHZhbDtcclxuICAgICAgICBlbHNlIGlmIChpc0FycmF5KHZhbCkgJiYgdmFsLmxlbmd0aClcclxuICAgICAgICAgIHBhcmFtc1trXSA9IHZhbDtcclxuICAgICAgICBlbHNlIGlmIChpc0RhdGUodmFsKSlcclxuICAgICAgICAgIHBhcmFtc1trXSA9IHZhbC50b0pTT04oKTtcclxuICAgICAgICBlbHNlIGlmIChpc09iamVjdCh2YWwpKSB7XHJcbiAgICAgICAgICBpZiAoT2JqZWN0LmtleXModmFsKS5sZW5ndGgpIHBhcmFtc1trXSA9IHF1ZXJ5UGFyYW1zKHZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHBhcmFtc1trXSA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgcmV0dXJuIHBhcmFtcztcclxufVxyXG5mdW5jdGlvbiBnZXRQYXJhbWV0ZXJCeU5hbWUobmFtZSwgdXJsID0gd2luZG93LmxvY2F0aW9uLmhyZWYpIHtcclxuICBuYW1lID0gbmFtZS5yZXBsYWNlKC9bXFxbXFxdXS9nLCAnXFxcXCQmJyk7XHJcbiAgdmFyIHJlZ2V4ID0gbmV3IFJlZ0V4cCgnWz8mXScgKyBuYW1lICsgJyg9KFteJiNdKil8JnwjfCQpJyksXHJcbiAgICByZXN1bHRzID0gcmVnZXguZXhlYyh1cmwpO1xyXG4gIGlmICghcmVzdWx0cykgcmV0dXJuIG51bGw7XHJcbiAgaWYgKCFyZXN1bHRzWzJdKSByZXR1cm4gJyc7XHJcbiAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzJdLnJlcGxhY2UoL1xcKy9nLCAnICcpKTtcclxufVxyXG4iXX0=