@wemake4u/form-player-se 1.0.9 → 1.0.10
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/esm2022/lib/common/record.mjs +26 -0
- package/esm2022/lib/common/symbols.mjs +2 -0
- package/esm2022/lib/dataSources/odata.mjs +7 -1
- package/esm2022/lib/dynamic-fields/dynamic-fields.component.mjs +17 -161
- package/esm2022/lib/locale/locale-it.mjs +8 -2
- package/esm2022/lib/services/formatter.service.mjs +27 -9
- package/esm2022/lib/services/grid.service.mjs +483 -0
- package/esm2022/lib/services/programmability.service.mjs +7 -2
- package/esm2022/lib/services/weak.service.mjs +15 -11
- package/esm2022/lib/utils/setFilter.mjs +111 -0
- package/esm2022/public-api.mjs +1 -4
- package/fesm2022/wemake4u-form-player-se.mjs +931 -511
- package/fesm2022/wemake4u-form-player-se.mjs.map +1 -1
- package/lib/common/record.d.ts +11 -0
- package/lib/common/symbols.d.ts +1 -0
- package/lib/dynamic-fields/dynamic-fields.component.d.ts +9 -12
- package/lib/dynamic-form/dynamic-form.component.d.ts +6 -0
- package/lib/locale/locale-it.d.ts +6 -0
- package/lib/services/formatter.service.d.ts +1 -0
- package/lib/services/grid.service.d.ts +42 -0
- package/lib/utils/gridCells.d.ts +12 -0
- package/lib/utils/setFilter.d.ts +72 -0
- package/package.json +2 -1
- package/esm2022/lib/utils/gridUtils.mjs +0 -75
- package/lib/utils/gridUtils.d.ts +0 -4
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { getLabelSymbol } from './symbols';
|
|
2
|
+
export function isLabeledRecord(obj, isKey, isValue, getLabelSymbol) {
|
|
3
|
+
if (!isRecord(obj, isKey, isValue)) {
|
|
4
|
+
return false;
|
|
5
|
+
}
|
|
6
|
+
const getLabel = obj[getLabelSymbol];
|
|
7
|
+
return (getLabel !== undefined && typeof getLabel === 'function');
|
|
8
|
+
}
|
|
9
|
+
export function isRecord(obj, isKey, isValue) {
|
|
10
|
+
if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return Object.entries(obj).every(([key, val]) => {
|
|
14
|
+
return isKey(key) && isValue(val);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export function isStringKey(key) {
|
|
18
|
+
return typeof key === 'string';
|
|
19
|
+
}
|
|
20
|
+
export function isNumericKey(key) {
|
|
21
|
+
return typeof key === 'string' && !isNaN(Number(key));
|
|
22
|
+
}
|
|
23
|
+
export function isBooleanKey(key) {
|
|
24
|
+
return key === 'true' || key === 'false';
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNpcmlvL3NyYy9saWIvY29tbW9uL3JlY29yZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTzNDLE1BQU0sVUFBVSxlQUFlLENBQzdCLEdBQVEsRUFDUixLQUFnQyxFQUNoQyxPQUFvQyxFQUNwQyxjQUFzQjtJQUV0QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBSSxHQUFrQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3JFLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxJQUFJLE9BQU8sUUFBUSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0FBQ3BFLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUN0QixHQUFRLEVBQ1IsS0FBZ0MsRUFDaEMsT0FBb0M7SUFFcEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEUsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDOUMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBUTtJQUNsQyxPQUFPLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFRO0lBQ25DLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQVE7SUFDbkMsT0FBTyxHQUFHLEtBQUssTUFBTSxJQUFJLEdBQUcsS0FBSyxPQUFPLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExhYmVsU3ltYm9sIH0gZnJvbSAnLi9zeW1ib2xzJztcclxuXHJcbmV4cG9ydCB0eXBlIExhYmVsZWRNYXA8VEtleSBleHRlbmRzIHN0cmluZyB8IG51bWJlciwgVFZhbHVlPiA9XHJcbiAgUmVjb3JkPFRLZXksIFRWYWx1ZT4gJiB7XHJcbiAgICBbZ2V0TGFiZWxTeW1ib2xdPzogKHZhbHVlOiBUS2V5KSA9PiBUVmFsdWU7XHJcbiAgfTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0xhYmVsZWRSZWNvcmQ8VEtleSBleHRlbmRzIHN0cmluZyB8IG51bWJlciwgVFZhbHVlPihcclxuICBvYmo6IGFueSxcclxuICBpc0tleTogKGtleTogYW55KSA9PiBrZXkgaXMgVEtleSxcclxuICBpc1ZhbHVlOiAodmFsOiBhbnkpID0+IHZhbCBpcyBUVmFsdWUsXHJcbiAgZ2V0TGFiZWxTeW1ib2w6IHN5bWJvbFxyXG4pOiBvYmogaXMgUmVjb3JkPFRLZXksIFRWYWx1ZT4gJiB7IFtrZXk6IHN5bWJvbF06IChrZXk6IFRLZXkpID0+IFRWYWx1ZSB9IHtcclxuICBpZiAoIWlzUmVjb3JkKG9iaiwgaXNLZXksIGlzVmFsdWUpKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGNvbnN0IGdldExhYmVsID0gKG9iaiBhcyB7IFtrZXk6IHN5bWJvbF06IHVua25vd24gfSlbZ2V0TGFiZWxTeW1ib2xdO1xyXG4gIHJldHVybiAoZ2V0TGFiZWwgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZ2V0TGFiZWwgPT09ICdmdW5jdGlvbicpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNSZWNvcmQ8VEtleSBleHRlbmRzIHN0cmluZyB8IG51bWJlciwgVFZhbHVlPihcclxuICBvYmo6IGFueSxcclxuICBpc0tleTogKGtleTogYW55KSA9PiBrZXkgaXMgVEtleSxcclxuICBpc1ZhbHVlOiAodmFsOiBhbnkpID0+IHZhbCBpcyBUVmFsdWVcclxuKTogb2JqIGlzIFJlY29yZDxUS2V5LCBUVmFsdWU+IHtcclxuICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsIHx8IEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKS5ldmVyeSgoW2tleSwgdmFsXSkgPT4ge1xyXG4gICAgcmV0dXJuIGlzS2V5KGtleSkgJiYgaXNWYWx1ZSh2YWwpO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmdLZXkoa2V5OiBhbnkpOiBrZXkgaXMgc3RyaW5nIHwgbnVtYmVyIHtcclxuICByZXR1cm4gdHlwZW9mIGtleSA9PT0gJ3N0cmluZyc7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc051bWVyaWNLZXkoa2V5OiBhbnkpOiBrZXkgaXMgc3RyaW5nIHwgbnVtYmVyIHtcclxuICByZXR1cm4gdHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYgIWlzTmFOKE51bWJlcihrZXkpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbktleShrZXk6IGFueSk6IGtleSBpcyBzdHJpbmcgfCBudW1iZXIge1xyXG4gIHJldHVybiBrZXkgPT09ICd0cnVlJyB8fCBrZXkgPT09ICdmYWxzZSc7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const getLabelSymbol = Symbol('getLabel');
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zaXJpby9zcmMvbGliL2NvbW1vbi9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZ2V0TGFiZWxTeW1ib2wgPSBTeW1ib2woJ2dldExhYmVsJyk7XHJcbiJdfQ==
|
|
@@ -98,6 +98,12 @@ export class ODataSource {
|
|
|
98
98
|
else if (filter.type === "notBlank") {
|
|
99
99
|
return `${column} ne null`;
|
|
100
100
|
}
|
|
101
|
+
else if (filter.type === "true") {
|
|
102
|
+
return `${column} eq true`;
|
|
103
|
+
}
|
|
104
|
+
else if (filter.type === "false") {
|
|
105
|
+
return `${column} eq false`;
|
|
106
|
+
}
|
|
101
107
|
break;
|
|
102
108
|
case "number":
|
|
103
109
|
if (filter.type === "equals") {
|
|
@@ -128,4 +134,4 @@ export class ODataSource {
|
|
|
128
134
|
return isNaN(num) ? undefined : num;
|
|
129
135
|
}
|
|
130
136
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2RhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kYXRhU291cmNlcy9vZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJOUQsTUFBTSxPQUFPLFdBQVc7SUFDRjtJQUNSO0lBRFosWUFBb0IsR0FBVyxFQUNuQixJQUFnQjtRQURSLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUM1QixDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQXNCO1FBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEQsSUFBSSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLFdBQVcsRUFBRSxDQUFBO1FBRTFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5RCxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ2YsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUNwRCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQztZQUNELEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQixNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsQ0FBQztTQUNGLENBQUMs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QUMsQ0FBQyxvQ0FBb0M7UUFDeEUsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFvQjtRQUNuQyxJQUFJLENBQUMsS0FBSztZQUNSLE9BQU8sU0FBUyxDQUFDO1FBQ25CLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSUdldFJvd3NQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IElSb3dzU291cmNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBPRGF0YVNvdXJjZSBpbXBsZW1lbnRzIElSb3dzU291cmNlICB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1cmw6IHN0cmluZ1xyXG4gICAgLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICB9XHJcblxyXG4gIGdldFJvd3MocGFyYW1zOiBJR2V0Um93c1BhcmFtcykge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSB0aGlzLmdldFF1ZXJ5U3RyaW5nKHBhcmFtcyk7XHJcblxyXG4gICAgbGV0IHF1ZXJ5VXJsID0gYCR7dGhpcy51cmx9JHtxdWVyeVN0cmluZ31gXHJcblxyXG4gICAgdGhpcy5odHRwLmdldDxhbnk+KHF1ZXJ5VXJsLCB7IG9ic2VydmU6ICdyZXNwb25zZScgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5ib2R5ID8/IFtdO1xyXG4gICAgICAgIGNvbnN0IGNvdW50ID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ1gtVG90YWwtQ291bnQnKTtcclxuICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKGRhdGEsIHRoaXMudG9OdW1iZXIoY291bnQpKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGVycm9yID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgcGFyYW1zLmZhaWxDYWxsYmFjaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UXVlcnlTdHJpbmcocGFyYW1zOiBJR2V0Um93c1BhcmFtcyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcXVlcnlQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgcXVlcnlQYXJhbXMgPSB0aGlzLmFkZENvdW50KHF1ZXJ5UGFyYW1zKTtcclxuICAgIHF1ZXJ5UGFyYW1zID0gdGhpcy5hZGRTa2lwQW5kVGFrZShwYXJhbXMsIHF1ZXJ5UGFyYW1zKTtcclxuICAgIHF1ZXJ5UGFyYW1zID0gdGhpcy5hZGRPcmRlckJ5KHBhcmFtcywgcXVlcnlQYXJhbXMpO1xyXG4gICAgcXVlcnlQYXJhbXMgPSB0aGlzLmFkZEZpbHRlckJ5KHBhcmFtcywgcXVlcnlQYXJhbXMpO1xyXG5cclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKTtcclxuICAgIHJldHVybiBxdWVyeVN0cmluZyA/IFwiP1wiICsgcXVlcnlTdHJpbmcgOiBxdWVyeVN0cmluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ291bnQocXVlcnlQYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcclxuICAgIHJldHVybiBxdWVyeVBhcmFtcy5zZXQoXCIkY291bnRcIiwgXCJ0cnVlXCIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRTa2lwQW5kVGFrZShwYXJhbXM6IElHZXRSb3dzUGFyYW1zLCBxdWVyeVBhcmFtczogSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXMge1xyXG4gICAgcmV0dXJuIHF1ZXJ5UGFyYW1zXHJcbiAgICAgIC5zZXQoXCIkdG9wXCIsIGAke3BhcmFtcy5lbmRSb3cgLSBwYXJhbXMuc3RhcnRSb3d9YClcclxuICAgICAgLnNldChcIiRza2lwXCIsIGAke3BhcmFtcy5zdGFydFJvd31gKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkT3JkZXJCeShwYXJhbXM6IElHZXRSb3dzUGFyYW1zLCBxdWVyeVBhcmFtczogSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXMge1xyXG4gICAgaWYgKCFwYXJhbXMuc29ydE1vZGVsIHx8IHBhcmFtcy5zb3J0TW9kZWwubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBxdWVyeVBhcmFtcztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmRlckJ5UGFyYW1zID0gcGFyYW1zLnNvcnRNb2RlbFxyXG4gICAgICAubWFwKHNvcnQgPT4gYCR7c29ydC5jb2xJZH0gJHtzb3J0LnNvcnR9YClcclxuICAgICAgLmpvaW4oXCIsXCIpO1xyXG5cclxuICAgIHJldHVybiBxdWVyeVBhcmFtcy5zZXQoXCIkb3JkZXJieVwiLCBvcmRlckJ5UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkRmlsdGVyQnkocGFyYW1zOiBJR2V0Um93c1BhcmFtcywgcXVlcnlQYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJNb2RlbCA9IHBhcmFtcy5maWx0ZXJNb2RlbDtcclxuXHJcbiAgICBpZiAoIWZpbHRlck1vZGVsIHx8IE9iamVjdC5rZXlzKGZpbHRlck1vZGVsKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpbHRlcnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgZm9yIChjb25zdCBjb2x1bW4gaW4gZmlsdGVyTW9kZWwpIHtcclxuICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVyTW9kZWxbY29sdW1uXTtcclxuXHJcbiAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuZ2V0Q29uZGl0aW9uKGNvbHVtbiwgZmlsdGVyKTtcclxuXHJcbiAgICAgIGlmIChjb25kaXRpb24pIHtcclxuICAgICAgICBmaWx0ZXJzLnB1c2goY29uZGl0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBxdWVyeVBhcmFtcy5zZXQoXCIkZmlsdGVyXCIsIGZpbHRlcnMuam9pbihcIiBhbmQgXCIpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29uZGl0aW9uKGNvbHVtbjogc3RyaW5nLCBmaWx0ZXI6IGFueSk6IHN0cmluZyB8IG51bGwge1xyXG5cclxuICAgIGlmIChmaWx0ZXIub3BlcmF0b3IgPT09IFwiQU5EXCIgfHwgZmlsdGVyLm9wZXJhdG9yID09PSBcIk9SXCIpIHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyLmNvbmRpdGlvbnMpKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiKFwiICsgZmlsdGVyLmNvbmRpdGlvbnMubWFwKChzdWJmaWx0ZXI6IGFueSkgPT4gdGhpcy5nZXRDb25kaXRpb24oY29sdW1uLCBzdWJmaWx0ZXIpKVxyXG4gICAgICAgICAgLmpvaW4oYCAke2ZpbHRlci5vcGVyYXRvci50b0xvd2VyQ2FzZSgpfSBgKSArIFwiKVwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyLmZpbHRlcjtcclxuXHJcbiAgICBzd2l0Y2ggKGZpbHRlci5maWx0ZXJUeXBlKSB7XHJcbiAgICAgIGNhc2UgXCJ0ZXh0XCI6XHJcbiAgICAgICAgY29uc3QgdGV4dCA9ICh2YWx1ZSA/PyBcIlwiKS5yZXBsYWNlKC8nL2csIFwiJydcIik7XHJcbiAgICAgICAgaWYgKGZpbHRlci50eXBlID09PSBcImNvbnRhaW5zXCIpIHtcclxuICAgICAgICAgIHJldHVybiBgY29udGFpbnMoJHtjb2x1bW59LCAnJHt0ZXh0fScpYDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci50eXBlID09PSBcIm5vdENvbnRhaW5zXCIpIHtcclxuICAgICAgICAgIHJldHVybiBgbm90IGNvbnRhaW5zKCR7Y29sdW1ufSwgJyR7dGV4dH0nKWA7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJlcXVhbHNcIikge1xyXG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbn0gZXEgJyR7dGV4dH0nYDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci50eXBlID09PSBcIm5vdEVxdWFsXCIpIHtcclxuICAgICAgICAgIHJldHVybiBgJHtjb2x1bW59IG5lICcke3RleHR9J2A7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJzdGFydHNXaXRoXCIpIHtcclxuICAgICAgICAgIHJldHVybiBgc3RhcnRzd2l0aCgke2NvbHVtbn0sICcke3RleHR9JylgO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT09IFwiZW5kc1dpdGhcIikge1xyXG4gICAgICAgICAgcmV0dXJuIGBlbmRzd2l0aCgke2NvbHVtbn0sICcke3RleHR9JylgO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT09IFwiYmxhbmtcIikge1xyXG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbn0gZXEgbnVsbGA7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJub3RCbGFua1wiKSB7XHJcbiAgICAgICAgICByZXR1cm4gYCR7Y29sdW1ufSBuZSBudWxsYDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFwibnVtYmVyXCI6XHJcbiAgICAgICAgaWYgKGZpbHRlci50eXBlID09PSBcImVxdWFsc1wiKSB7XHJcbiAgICAgICAgICByZXR1cm4gYCR7Y29sdW1ufSBlcSAke3ZhbHVlfWA7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJncmVhdGVyVGhhblwiKSB7XHJcbiAgICAgICAgICByZXR1cm4gYCR7Y29sdW1ufSBndCAke3ZhbHVlfWA7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJsZXNzVGhhblwiKSB7XHJcbiAgICAgICAgICByZXR1cm4gYCR7Y29sdW1ufSBsdCAke3ZhbHVlfWA7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJncmVhdGVyVGhhbk9yRXF1YWxcIikge1xyXG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbn0gZ2UgJHt2YWx1ZX1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT09IFwibGVzc1RoYW5PckVxdWFsXCIpIHtcclxuICAgICAgICAgIHJldHVybiBgJHtjb2x1bW59IGxlICR7dmFsdWV9YDtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFwiZGF0ZVwiOlxyXG4gICAgICAgIHJldHVybiBgJHtjb2x1bW59IGVxICR7dmFsdWV9YDsgLy8gTW9kaWZpY2Egc2UgT0RhdGEgdXNhIGZvcm1hdGkgSVNPXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRvTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICghdmFsdWUpXHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICBjb25zdCBudW0gPSBwYXJzZUZsb2F0KHZhbHVlKTtcclxuICAgIHJldHVybiBpc05hTihudW0pID8gdW5kZWZpbmVkIDogbnVtO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2RhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2lyaW8vc3JjL2xpYi9kYXRhU291cmNlcy9vZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJOUQsTUFBTSxPQUFPLFdBQVc7SUFDRjtJQUNSO0lBRFosWUFBb0IsR0FBVyxFQUNuQixJQUFnQjtRQURSLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUM1QixDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQXNCO1FBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEQsSUFBSSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLFdBQVcsRUFBRSxDQUFBO1FBRTFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5RCxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ2YsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUNwRCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQztZQUNELEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQixNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsQ0FBQztTQUNGLENBQUMs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QztnQkFDakMsQ0FBQztxQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssaUJBQWlCLEVBQUUsQ0FBQztvQkFDN0MsT0FBTyxHQUFHLE1BQU0sT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDakMsQ0FBQztnQkFDRCxNQUFNO1lBRVIsS0FBSyxNQUFNO2dCQUNULE9BQU8sR0FBRyxNQUFNLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxvQ0FBb0M7UUFDeEUsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFvQjtRQUNuQyxJQUFJLENBQUMsS0FBSztZQUNSLE9BQU8sU0FBUyxDQUFDO1FBQ25CLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSUdldFJvd3NQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XHJcbmltcG9ydCB7IElSb3dzU291cmNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBPRGF0YVNvdXJjZSBpbXBsZW1lbnRzIElSb3dzU291cmNlICB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1cmw6IHN0cmluZ1xyXG4gICAgLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICB9XHJcblxyXG4gIGdldFJvd3MocGFyYW1zOiBJR2V0Um93c1BhcmFtcykge1xyXG4gICAgY29uc3QgcXVlcnlTdHJpbmcgPSB0aGlzLmdldFF1ZXJ5U3RyaW5nKHBhcmFtcyk7XHJcblxyXG4gICAgbGV0IHF1ZXJ5VXJsID0gYCR7dGhpcy51cmx9JHtxdWVyeVN0cmluZ31gXHJcblxyXG4gICAgdGhpcy5odHRwLmdldDxhbnk+KHF1ZXJ5VXJsLCB7IG9ic2VydmU6ICdyZXNwb25zZScgfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5ib2R5ID8/IFtdO1xyXG4gICAgICAgIGNvbnN0IGNvdW50ID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ1gtVG90YWwtQ291bnQnKTtcclxuICAgICAgICBwYXJhbXMuc3VjY2Vzc0NhbGxiYWNrKGRhdGEsIHRoaXMudG9OdW1iZXIoY291bnQpKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGVycm9yID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgcGFyYW1zLmZhaWxDYWxsYmFjaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UXVlcnlTdHJpbmcocGFyYW1zOiBJR2V0Um93c1BhcmFtcyk6IHN0cmluZyB7XHJcbiAgICBsZXQgcXVlcnlQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgcXVlcnlQYXJhbXMgPSB0aGlzLmFkZENvdW50KHF1ZXJ5UGFyYW1zKTtcclxuICAgIHF1ZXJ5UGFyYW1zID0gdGhpcy5hZGRTa2lwQW5kVGFrZShwYXJhbXMsIHF1ZXJ5UGFyYW1zKTtcclxuICAgIHF1ZXJ5UGFyYW1zID0gdGhpcy5hZGRPcmRlckJ5KHBhcmFtcywgcXVlcnlQYXJhbXMpO1xyXG4gICAgcXVlcnlQYXJhbXMgPSB0aGlzLmFkZEZpbHRlckJ5KHBhcmFtcywgcXVlcnlQYXJhbXMpO1xyXG5cclxuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJhbXMudG9TdHJpbmcoKTtcclxuICAgIHJldHVybiBxdWVyeVN0cmluZyA/IFwiP1wiICsgcXVlcnlTdHJpbmcgOiBxdWVyeVN0cmluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ291bnQocXVlcnlQYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcclxuICAgIHJldHVybiBxdWVyeVBhcmFtcy5zZXQoXCIkY291bnRcIiwgXCJ0cnVlXCIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRTa2lwQW5kVGFrZShwYXJhbXM6IElHZXRSb3dzUGFyYW1zLCBxdWVyeVBhcmFtczogSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXMge1xyXG4gICAgcmV0dXJuIHF1ZXJ5UGFyYW1zXHJcbiAgICAgIC5zZXQoXCIkdG9wXCIsIGAke3BhcmFtcy5lbmRSb3cgLSBwYXJhbXMuc3RhcnRSb3d9YClcclxuICAgICAgLnNldChcIiRza2lwXCIsIGAke3BhcmFtcy5zdGFydFJvd31gKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkT3JkZXJCeShwYXJhbXM6IElHZXRSb3dzUGFyYW1zLCBxdWVyeVBhcmFtczogSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXMge1xyXG4gICAgaWYgKCFwYXJhbXMuc29ydE1vZGVsIHx8IHBhcmFtcy5zb3J0TW9kZWwubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBxdWVyeVBhcmFtcztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcmRlckJ5UGFyYW1zID0gcGFyYW1zLnNvcnRNb2RlbFxyXG4gICAgICAubWFwKHNvcnQgPT4gYCR7c29ydC5jb2xJZH0gJHtzb3J0LnNvcnR9YClcclxuICAgICAgLmpvaW4oXCIsXCIpO1xyXG5cclxuICAgIHJldHVybiBxdWVyeVBhcmFtcy5zZXQoXCIkb3JkZXJieVwiLCBvcmRlckJ5UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkRmlsdGVyQnkocGFyYW1zOiBJR2V0Um93c1BhcmFtcywgcXVlcnlQYXJhbXM6IEh0dHBQYXJhbXMpOiBIdHRwUGFyYW1zIHtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJNb2RlbCA9IHBhcmFtcy5maWx0ZXJNb2RlbDtcclxuXHJcbiAgICBpZiAoIWZpbHRlck1vZGVsIHx8IE9iamVjdC5rZXlzKGZpbHRlck1vZGVsKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZpbHRlcnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgZm9yIChjb25zdCBjb2x1bW4gaW4gZmlsdGVyTW9kZWwpIHtcclxuICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVyTW9kZWxbY29sdW1uXTtcclxuXHJcbiAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuZ2V0Q29uZGl0aW9uKGNvbHVtbiwgZmlsdGVyKTtcclxuXHJcbiAgICAgIGlmIChjb25kaXRpb24pIHtcclxuICAgICAgICBmaWx0ZXJzLnB1c2goY29uZGl0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBxdWVyeVBhcmFtcy5zZXQoXCIkZmlsdGVyXCIsIGZpbHRlcnMuam9pbihcIiBhbmQgXCIpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q29uZGl0aW9uKGNvbHVtbjogc3RyaW5nLCBmaWx0ZXI6IGFueSk6IHN0cmluZyB8IG51bGwge1xyXG5cclxuICAgIGlmIChmaWx0ZXIub3BlcmF0b3IgPT09IFwiQU5EXCIgfHwgZmlsdGVyLm9wZXJhdG9yID09PSBcIk9SXCIpIHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyLmNvbmRpdGlvbnMpKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiKFwiICsgZmlsdGVyLmNvbmRpdGlvbnMubWFwKChzdWJmaWx0ZXI6IGFueSkgPT4gdGhpcy5nZXRDb25kaXRpb24oY29sdW1uLCBzdWJmaWx0ZXIpKVxyXG4gICAgICAgICAgLmpvaW4oYCAke2ZpbHRlci5vcGVyYXRvci50b0xvd2VyQ2FzZSgpfSBgKSArIFwiKVwiO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyLmZpbHRlcjtcclxuXHJcbiAgICBzd2l0Y2ggKGZpbHRlci5maWx0ZXJUeXBlKSB7XHJcbiAgICAgIGNhc2UgXCJ0ZXh0XCI6XHJcbiAgICAgICAgY29uc3QgdGV4dCA9ICh2YWx1ZSA/PyBcIlwiKS5yZXBsYWNlKC8nL2csIFwiJydcIik7XHJcbiAgICAgICAgaWYgKGZpbHRlci50eXBlID09PSBcImNvbnRhaW5zXCIpIHtcclxuICAgICAgICAgIHJldHVybiBgY29udGFpbnMoJHtjb2x1bW59LCAnJHt0ZXh0fScpYDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci50eXBlID09PSBcIm5vdENvbnRhaW5zXCIpIHtcclxuICAgICAgICAgIHJldHVybiBgbm90IGNvbnRhaW5zKCR7Y29sdW1ufSwgJyR7dGV4dH0nKWA7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJlcXVhbHNcIikge1xyXG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbn0gZXEgJyR7dGV4dH0nYDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci50eXBlID09PSBcIm5vdEVxdWFsXCIpIHtcclxuICAgICAgICAgIHJldHVybiBgJHtjb2x1bW59IG5lICcke3RleHR9J2A7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJzdGFydHNXaXRoXCIpIHtcclxuICAgICAgICAgIHJldHVybiBgc3RhcnRzd2l0aCgke2NvbHVtbn0sICcke3RleHR9JylgO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT09IFwiZW5kc1dpdGhcIikge1xyXG4gICAgICAgICAgcmV0dXJuIGBlbmRzd2l0aCgke2NvbHVtbn0sICcke3RleHR9JylgO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT09IFwiYmxhbmtcIikge1xyXG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbn0gZXEgbnVsbGA7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJub3RCbGFua1wiKSB7XHJcbiAgICAgICAgICByZXR1cm4gYCR7Y29sdW1ufSBuZSBudWxsYDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci50eXBlID09PSBcInRydWVcIikge1xyXG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbn0gZXEgdHJ1ZWA7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJmYWxzZVwiKSB7XHJcbiAgICAgICAgICByZXR1cm4gYCR7Y29sdW1ufSBlcSBmYWxzZWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBcIm51bWJlclwiOlxyXG4gICAgICAgIGlmIChmaWx0ZXIudHlwZSA9PT0gXCJlcXVhbHNcIikge1xyXG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbn0gZXEgJHt2YWx1ZX1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT09IFwiZ3JlYXRlclRoYW5cIikge1xyXG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbn0gZ3QgJHt2YWx1ZX1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT09IFwibGVzc1RoYW5cIikge1xyXG4gICAgICAgICAgcmV0dXJuIGAke2NvbHVtbn0gbHQgJHt2YWx1ZX1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyLnR5cGUgPT09IFwiZ3JlYXRlclRoYW5PckVxdWFsXCIpIHtcclxuICAgICAgICAgIHJldHVybiBgJHtjb2x1bW59IGdlICR7dmFsdWV9YDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlci50eXBlID09PSBcImxlc3NUaGFuT3JFcXVhbFwiKSB7XHJcbiAgICAgICAgICByZXR1cm4gYCR7Y29sdW1ufSBsZSAke3ZhbHVlfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBcImRhdGVcIjpcclxuICAgICAgICByZXR1cm4gYCR7Y29sdW1ufSBlcSAke3ZhbHVlfWA7IC8vIE1vZGlmaWNhIHNlIE9EYXRhIHVzYSBmb3JtYXRpIElTT1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b051bWJlcih2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAoIXZhbHVlKVxyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgbnVtID0gcGFyc2VGbG9hdCh2YWx1ZSk7XHJcbiAgICByZXR1cm4gaXNOYU4obnVtKSA/IHVuZGVmaW5lZCA6IG51bTtcclxuICB9XHJcbn1cclxuIl19
|