@messaia/cdk 18.0.0-rc03 → 18.0.0-rc05
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/functions/functions.mjs +17 -5
- package/esm2022/lib/common/functions/utils.mjs +10 -1
- package/esm2022/lib/common/models/enum-item.mjs +1 -1
- package/esm2022/lib/common/models/enum-metadata.mjs +14 -0
- package/esm2022/lib/common/public_api.mjs +2 -1
- package/esm2022/lib/common/services/enum.service.mjs +32 -1
- package/esm2022/lib/forms/components/generic-form/generic-form.component.mjs +3 -3
- package/esm2022/lib/forms/helpers/abstract-select-form-field.component.mjs +10 -3
- package/esm2022/lib/forms/models/form-field-definition.mjs +6 -1
- package/esm2022/lib/table/components/dynamic-table/dynamic-table.component.mjs +3 -3
- package/esm2022/lib/table/components/filter-select.component.mjs +10 -3
- package/esm2022/lib/table/models/table-column.mjs +6 -1
- package/fesm2022/messaia-cdk.mjs +102 -12
- package/fesm2022/messaia-cdk.mjs.map +1 -1
- package/lib/common/functions/functions.d.ts +11 -3
- package/lib/common/functions/utils.d.ts +7 -0
- package/lib/common/models/enum-item.d.ts +9 -0
- package/lib/common/models/enum-metadata.d.ts +13 -0
- package/lib/common/public_api.d.ts +1 -0
- package/lib/common/services/enum.service.d.ts +26 -0
- package/lib/common/styles/colors/_colors-dark.scss +342 -342
- package/lib/forms/helpers/abstract-select-form-field.component.d.ts +9 -1
- package/lib/forms/models/form-field-definition.d.ts +8 -0
- package/lib/table/components/filter-select.component.d.ts +9 -1
- package/lib/table/models/table-column.d.ts +8 -0
- package/package.json +1 -1
|
@@ -1,10 +1,22 @@
|
|
|
1
|
-
import { endpointMetadataKey } from "../constants/constants";
|
|
1
|
+
import { endpointMetadataKey, headerMetadataKey } from "../constants/constants";
|
|
2
2
|
/**
|
|
3
|
-
* Gets endpoint from
|
|
4
|
-
*
|
|
5
|
-
* @
|
|
3
|
+
* Gets the endpoint metadata from a class decorated with @Api.
|
|
4
|
+
*
|
|
5
|
+
* @param origin - The class from which to retrieve the endpoint metadata.
|
|
6
|
+
* @returns The endpoint as a string.
|
|
6
7
|
*/
|
|
7
8
|
export function getEndpoint(origin) {
|
|
9
|
+
/* Retrieve and return the endpoint metadata associated with the given class */
|
|
8
10
|
return Reflect.getMetadata(endpointMetadataKey, origin);
|
|
9
11
|
}
|
|
10
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Gets the display header metadata from a class.
|
|
14
|
+
*
|
|
15
|
+
* @param origin - The class from which to retrieve the header metadata.
|
|
16
|
+
* @returns The display header as a string.
|
|
17
|
+
*/
|
|
18
|
+
export function getDisplay(origin) {
|
|
19
|
+
/* Retrieve and return the display header metadata associated with the given class */
|
|
20
|
+
return Reflect.getMetadata(headerMetadataKey, origin);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvY29tbW9uL2Z1bmN0aW9ucy9mdW5jdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFaEY7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLE1BQWM7SUFDdEMsK0VBQStFO0lBQy9FLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQWM7SUFDckMscUZBQXFGO0lBQ3JGLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5kcG9pbnRNZXRhZGF0YUtleSwgaGVhZGVyTWV0YWRhdGFLZXkgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2NvbnN0YW50c1wiO1xyXG5cclxuLyoqXHJcbiAqIEdldHMgdGhlIGVuZHBvaW50IG1ldGFkYXRhIGZyb20gYSBjbGFzcyBkZWNvcmF0ZWQgd2l0aCBAQXBpLlxyXG4gKiBcclxuICogQHBhcmFtIG9yaWdpbiAtIFRoZSBjbGFzcyBmcm9tIHdoaWNoIHRvIHJldHJpZXZlIHRoZSBlbmRwb2ludCBtZXRhZGF0YS5cclxuICogQHJldHVybnMgVGhlIGVuZHBvaW50IGFzIGEgc3RyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEVuZHBvaW50KG9yaWdpbjogb2JqZWN0KTogc3RyaW5nIHtcclxuICAgIC8qIFJldHJpZXZlIGFuZCByZXR1cm4gdGhlIGVuZHBvaW50IG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gY2xhc3MgKi9cclxuICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKGVuZHBvaW50TWV0YWRhdGFLZXksIG9yaWdpbik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSBkaXNwbGF5IGhlYWRlciBtZXRhZGF0YSBmcm9tIGEgY2xhc3MuXHJcbiAqIFxyXG4gKiBAcGFyYW0gb3JpZ2luIC0gVGhlIGNsYXNzIGZyb20gd2hpY2ggdG8gcmV0cmlldmUgdGhlIGhlYWRlciBtZXRhZGF0YS5cclxuICogQHJldHVybnMgVGhlIGRpc3BsYXkgaGVhZGVyIGFzIGEgc3RyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3BsYXkob3JpZ2luOiBvYmplY3QpOiBzdHJpbmcge1xyXG4gICAgLyogUmV0cmlldmUgYW5kIHJldHVybiB0aGUgZGlzcGxheSBoZWFkZXIgbWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBjbGFzcyAqL1xyXG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoaGVhZGVyTWV0YWRhdGFLZXksIG9yaWdpbik7XHJcbn1cclxuIl19
|
|
@@ -253,10 +253,19 @@ export class Utils {
|
|
|
253
253
|
return { url: url, params: null, hash: undefined };
|
|
254
254
|
}
|
|
255
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* Checks if the given object is a class.
|
|
258
|
+
*
|
|
259
|
+
* @param obj - The object to check.
|
|
260
|
+
* @returns `true` if the object is a class, otherwise `false`.
|
|
261
|
+
*/
|
|
262
|
+
static isClass(obj) {
|
|
263
|
+
return typeof obj === 'function' && typeof obj.prototype === 'object';
|
|
264
|
+
}
|
|
256
265
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Utils, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
257
266
|
/** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", type: Utils, ngImport: i0 });
|
|
258
267
|
}
|
|
259
268
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Utils, decorators: [{
|
|
260
269
|
type: Directive
|
|
261
270
|
}] });
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9jb21tb24vZnVuY3Rpb25zL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQyxVQUFVO0FBRVYsTUFBTSxPQUFPLEtBQUs7SUFFZDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBbUM7UUFDN0QsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDekIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDMUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDdkIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDeEIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDdEIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDdkIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDdkIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDekIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDNUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDM0IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDNUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUs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QUFTLEVBQUUsQ0FBQztRQUN2RCxDQUFDO0lBQ0wsQ0FBQzswSEF2UlEsS0FBSzs4R0FBTCxLQUFLOzsyRkFBTCxLQUFLO2tCQURqQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vL0BkeW5hbWljXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgVXRpbHMge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW9udGggbmFtZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBnZXJtYW5Nb250aE5hbWVzOiB7IG5hbWU6IHN0cmluZywgaWQ6IG51bWJlciB9W10gPSBbXHJcbiAgICAgICAgeyBuYW1lOiAnSmFudWFyJywgaWQ6IDEgfSxcclxuICAgICAgICB7IG5hbWU6ICdGZWJydWFyJywgaWQ6IDIgfSxcclxuICAgICAgICB7IG5hbWU6ICdNw6RyeicsIGlkOiAzIH0sXHJcbiAgICAgICAgeyBuYW1lOiAnQXByaWwnLCBpZDogNCB9LFxyXG4gICAgICAgIHsgbmFtZTogJ01haScsIGlkOiA1IH0sXHJcbiAgICAgICAgeyBuYW1lOiAnSnVuaScsIGlkOiA2IH0sXHJcbiAgICAgICAgeyBuYW1lOiAnSnVsaScsIGlkOiA3IH0sXHJcbiAgICAgICAgeyBuYW1lOiAnQXVndXN0JywgaWQ6IDggfSxcclxuICAgICAgICB7IG5hbWU6ICdTZXB0ZW1iZXInLCBpZDogOSB9LFxyXG4gICAgICAgIHsgbmFtZTogJ09rdG9iZXInLCBpZDogMTAgfSxcclxuICAgICAgICB7IG5hbWU6ICdOb3ZlbWJlcicsIGlkOiAxMSB9LFxyXG4gICAgICAgIHsgbmFtZTogJ0RlemVtYmVyJywgaWQ6IDEyIH1cclxuICAgIF07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgcmFuZ2VcclxuICAgICAqIEBwYXJhbSBzaXplIFxyXG4gICAgICogQHBhcmFtIHN0YXJ0QXQgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgcmFuZ2Uoc3RhcnQ6IG51bWJlciwgc3RvcDogbnVtYmVyLCBzdGVwOiBudW1iZXIpOiBSZWFkb25seUFycmF5PG51bWJlcj4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAoc3RvcCAtIHN0YXJ0KSAvIHN0ZXAgKyAxIH0sIChfLCBpKSA9PiBzdGFydCArIChpICogc3RlcCkpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIGVtcHR5IHZhbHVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gb2JqIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlbW92ZUVtcHR5VmFsdWVzKG9iajogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKVxyXG4gICAgICAgICAgICAuZmlsdGVyKChbXywgdl0pID0+IHYgIT0gbnVsbClcclxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBbaywgdl0pID0+ICh7IC4uLmFjYywgW2tdOiB2IH0pLCB7fSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG51bWJlciBvZiBkYXlzIGxlZnQgaW4gdGhlIHNwZWNpZmllZCBtb250aFxyXG4gICAgICogQHBhcmFtIGRhdGUgXHJcbiAgICAgKiBAcGFyYW0gbW9udGhPZmZzZXQgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZGF5c0xlZnRJbk1vbnRoKGRhdGU6IERhdGUsIG1vbnRoT2Zmc2V0ID0gMCk6IG51bWJlciB7XHJcbiAgICAgICAgdmFyIHRpbWUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgdGltZS5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgKyBtb250aE9mZnNldCk7XHJcbiAgICAgICAgdGltZS5zZXREYXRlKDApO1xyXG4gICAgICAgIHJldHVybiBNYXRoLm1heCgwLCB0aW1lLmdldERhdGUoKSA+IGRhdGUuZ2V0RGF0ZSgpID8gdGltZS5nZXREYXRlKCkgLSBkYXRlLmdldERhdGUoKSA6IDApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmVkIG9iamVjdCBhbmQgcHJvcGVydHlcclxuICAgICAqIEBwYXJhbSBvYmplY3QgXHJcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBnZXRQcm9wZXJ0eVZhbHVlKG9iamVjdDogYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICAvKiBQcm9wZXJ0eSBub3QgZm91bmQgKi9cclxuICAgICAgICBpZiAoIW9iamVjdCB8fCB0eXBlb2Ygb2JqZWN0ID09PSAndW5kZWZpbmVkJyB8fCAhcHJvcGVydHkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBJbmRleCBvZiBuZXh0IHByb3BlcnR5IHNwbGl0ICovXHJcbiAgICAgICAgdmFyIGluZGV4ID0gcHJvcGVydHkuaW5kZXhPZignLicpXHJcblxyXG4gICAgICAgIC8qIFByb3BlcnR5IHNwbGl0IGZvdW5kOyByZWN1cnNpdmUgY2FsbCAqL1xyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUob2JqZWN0W3Byb3BlcnR5LnN1YnN0cmluZygwLCBpbmRleCldLCBwcm9wZXJ0eS5zdWJzdHIoaW5kZXggKyAxKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBObyBzcGxpdDsgZ2V0IHByb3BlcnR5ICovXHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eV07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTb3J0cyBhbiBhcnJheSBvZiBvYmplY3QgYnkgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eVxyXG4gICAgICogQHBhcmFtIGFycmF5IFxyXG4gICAgICogQHBhcmFtIHByb3BlcnR5IFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgc29ydEFycmF5PFQ+KGFycmF5OiBUW10sIHByb3BlcnR5OiBzdHJpbmcsIHJldmVyc2U/OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IHNvcnREaXIgPSByZXZlcnNlID09PSB0cnVlID8gLTEgOiAxO1xyXG4gICAgICAgIHJldHVybiBhcnJheSA9IChhcnJheT8uc29ydCgoYTogVCwgYjogVCkgPT4gKChhIGFzIGFueSlbcHJvcGVydHldID4gKGIgYXMgYW55KVtwcm9wZXJ0eV0pID8gc29ydERpciA6ICgoKGIgYXMgYW55KVtwcm9wZXJ0eV0gPiAoYSBhcyBhbnkpW3Byb3BlcnR5XSkgPyAoc29ydERpciAqIC0xKSA6IDApKSB8fCBbXSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFRha2VzIGFuIEFycmF5PFY+LCBhbmQgYSBncm91cGluZyBmdW5jdGlvbixcclxuICAgICAqIGFuZCByZXR1cm5zIGEgTWFwIG9mIHRoZSBhcnJheSBncm91cGVkIGJ5IHRoZSBncm91cGluZyBmdW5jdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbGlzdCBBbiBhcnJheSBvZiB0eXBlIFYuXHJcbiAgICAgKiBAcGFyYW0ga2V5R2V0dGVyIEEgRnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgdGhlIEFycmF5IHR5cGUgViBhcyBhbiBpbnB1dCwgYW5kIHJldHVybnMgYSB2YWx1ZSBvZiB0eXBlIEsuXHJcbiAgICAgKiAgICAgICAgICAgICAgICAgIEsgaXMgZ2VuZXJhbGx5IGludGVuZGVkIHRvIGJlIGEgcHJvcGVydHkga2V5IG9mIFYuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgTWFwIG9mIHRoZSBhcnJheSBncm91cGVkIGJ5IHRoZSBncm91cGluZyBmdW5jdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBncm91cEFycmF5Qnk8SywgVj4obGlzdDogQXJyYXk8Vj4sIGtleUdldHRlcjogKGlucHV0OiBWKSA9PiBLKTogTWFwPEssIEFycmF5PFY+PiB7XHJcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxLLCBBcnJheTxWPj4oKTtcclxuICAgICAgICBsaXN0Py5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleUdldHRlcihpdGVtKTtcclxuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IG1hcC5nZXQoa2V5KTtcclxuICAgICAgICAgICAgaWYgKCFjb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBtYXAuc2V0KGtleSwgW2l0ZW1dKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24ucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbWFwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJ1bmNhdGVzIGEgdGV4dFxyXG4gICAgICogQHBhcmFtIHRleHQgXHJcbiAgICAgKiBAcGFyYW0gbGVuZ3RoIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGVUZXh0KHRleHQ6IHN0cmluZywgbGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIC8qIElmIHRleHQgaXMgbm90IGEgc3RyaW5nLCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nICovXHJcbiAgICAgICAgaWYgKHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBSZW1vdmUgaHRtbCB0YWdzICovXHJcbiAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvPFxcLz9bXj5dKyg+fCQpL2csIFwiXCIpO1xyXG5cclxuICAgICAgICAvKiBUcnVuY2F0ZSB0aGUgc3RyaW5nICovXHJcbiAgICAgICAgbGV0IHRydW5jYXRlZFRleHQ6IHN0cmluZyA9IHRleHQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcblxyXG4gICAgICAgIC8qIEFkZCBlbGxpcHNpcyB0byB0aGUgdGV4dCAqL1xyXG4gICAgICAgIGlmICh0ZXh0Lmxlbmd0aCA+IGxlbmd0aCkge1xyXG4gICAgICAgICAgICB0cnVuY2F0ZWRUZXh0ID0gYCR7dHJ1bmNhdGVkVGV4dC50cmltKCl9Li4uYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVuY2F0ZWRUZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSm9pbnMgdGV4dCBhcnJheSBmcm8gdGFibGUgY29sdW1uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVzIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgam9pbkFycmF5KHZhbHVlczogc3RyaW5nW10sIG1heExlbmd0aDogbnVtYmVyID0gMik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmICghdmFsdWVzIHx8IHZhbHVlcz8ubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBHZXQgZmlyc3QgMiBuYW1lcyAqL1xyXG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZhbHVlcyA9IHZhbHVlcy5zbGljZSgwLCBtYXhMZW5ndGgpO1xyXG4gICAgICAgICAgICB2YWx1ZXNbMV0gPSBgJHt2YWx1ZXNbMV19LCAuLi5gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGA8c21hbGw+JHsodmFsdWVzLmpvaW4oJzxiclxcPicpKX08L3NtYWxsPmA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb252ZXJ0IE9iamVjdCB0byBIdHRwUGFyYW1zXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBib2R5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgdG9IdHRwUGFyYW1zKGJvZHk6IGFueSk6IEh0dHBQYXJhbXMge1xyXG4gICAgICAgIGlmICghYm9keSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIE9iamVjdC5rZXlzKGJvZHkpLmZvckVhY2goKGtleSkgPT4gKGJvZHlba2V5XSA9PSBudWxsIHx8IGJvZHlba2V5XSA9PSAnJyB8fCBib2R5W2tleV0gPT0gJ3VuZGVmaW5lZCcpICYmIGJvZHlba2V5XSAhPSAwICYmIGRlbGV0ZSBib2R5W2tleV0pO1xyXG4gICAgICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7IGZyb21PYmplY3Q6IGJvZHkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb252ZXJ0cyBIdHRwUGFyYW1zIHRvIGEgSmF2YVNjcmlwdCBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0gaHR0cFBhcmFtcyBIdHRwUGFyYW1zIG9iamVjdCB0byBjb252ZXJ0LlxyXG4gICAgICogQHJldHVybnMgQ29udmVydGVkIEphdmFTY3JpcHQgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGh0dHBQYXJhbXNUb09iamVjdChodHRwUGFyYW1zOiBIdHRwUGFyYW1zKTogYW55IHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGFuIGVtcHR5IG9iamVjdCB0byBzdG9yZSBjb252ZXJ0ZWQgcGFyYW1ldGVycyAqL1xyXG4gICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge307XHJcblxyXG4gICAgICAgIC8qIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleSBpbiBIdHRwUGFyYW1zICovXHJcbiAgICAgICAgaHR0cFBhcmFtcy5rZXlzKCkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUga2V5IGhhcyBtdWx0aXBsZSB2YWx1ZXMgKi9cclxuICAgICAgICAgICAgaWYgKGh0dHBQYXJhbXMuZ2V0QWxsKGtleSk/Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgICAgLyogZiBvbmx5IG9uZSB2YWx1ZSBleGlzdHMsIGFzc2lnbiBpdCBkaXJlY3RseSB0byBwYXJhbXNba2V5XSAqL1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zW2tleV0gPSBodHRwUGFyYW1zLmdldChrZXkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLyogSWYgbXVsdGlwbGUgdmFsdWVzIGV4aXN0LCBhc3NpZ24gYW4gYXJyYXkgb2YgdmFsdWVzIHRvIHBhcmFtc1trZXldICovXHJcbiAgICAgICAgICAgICAgICBwYXJhbXNba2V5XSA9IGh0dHBQYXJhbXMuZ2V0QWxsKGtleSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLyogUmV0dXJuIHRoZSBjb252ZXJ0ZWQgSmF2YVNjcmlwdCBvYmplY3QgKi9cclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udmVydHMgYW4gYXJyYXkgb2YgZmlsdGVyIG9iamVjdHMgdG8gYW4gSHR0cFBhcmFtcyBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0gZmlsdGVyQXJyYXkgVGhlIGFycmF5IG9mIGZpbHRlciBvYmplY3RzLlxyXG4gICAgICogQHBhcmFtIHBhcmFtTmFtZVByZWZpeCBUaGUgcHJlZml4IGZvciB0aGUgcXVlcnkgcGFyYW1ldGVyIG5hbWVzIChkZWZhdWx0IGlzICdGaWx0ZXJzJykuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgSHR0cFBhcmFtcyBvYmplY3QgY29udGFpbmluZyB0aGUgY29uc3RydWN0ZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyB0b0FycmF5SHR0cFBhcmFtcyhmaWx0ZXJBcnJheTogYW55W10sIHBhcmFtTmFtZVByZWZpeDogc3RyaW5nID0gJ0ZpbHRlcnMnKTogSHR0cFBhcmFtcyB7XHJcbiAgICAgICAgLyogSW5pdGlhbGl6ZSBhbiBlbXB0eSBIdHRwUGFyYW1zIG9iamVjdCAqL1xyXG4gICAgICAgIGxldCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgLyogSXRlcmF0ZSB0aHJvdWdoIGVhY2ggZmlsdGVyIGluIHRoZSBmaWx0ZXIgYXJyYXkgKi9cclxuICAgICAgICBmaWx0ZXJBcnJheS5mb3JFYWNoKChmaWx0ZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAvKiBHZXQgdGhlIGtleSBvZiB0aGUgZmlsdGVyIChlLmcuLCAnY2F0JykgKi9cclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyS2V5ID0gT2JqZWN0LmtleXMoZmlsdGVyKVswXTtcclxuXHJcbiAgICAgICAgICAgIC8qIEdldCB0aGUgdmFsdWVzIGFycmF5ICovXHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclZhbHVlcyA9IGZpbHRlcltmaWx0ZXJLZXldO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZpbHRlclZhbHVlcyAmJiBmaWx0ZXJWYWx1ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgLyogSm9pbiB2YWx1ZXMgd2l0aCBjb21tYXMgYW5kIGFkZCB0byBIdHRwUGFyYW1zICovXHJcbiAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoYCR7cGFyYW1OYW1lUHJlZml4fVske2ZpbHRlcktleX1dYCwgZmlsdGVyVmFsdWVzLmpvaW4oJywnKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLyogUmV0dXJuIHRoZSBjb25zdHJ1Y3RlZCBIdHRwUGFyYW1zIG9iamVjdCAqL1xyXG4gICAgICAgIHJldHVybiBodHRwUGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xlYW5zIHRoZSBvYmplY3RzXHJcbiAgICAgKiBSZW1vdmVzIGVtcHR5IHByb3BlcnRpZXNcclxuICAgICAqIEBwYXJhbSBvYmogXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgY2xlYW5PYmplY3Qob2JqOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIHByb3BOYW1lIGluIG9iaikge1xyXG4gICAgICAgICAgICAgICAgaWYgKG9ialtwcm9wTmFtZV0gPT09IG51bGwgfHwgb2JqW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkIHx8IG9ialtwcm9wTmFtZV0gPT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBkZWxldGUgb2JqW3Byb3BOYW1lXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG9iajtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIG9iamVjdHMgYXJlIGVxdWFsXHJcbiAgICAgKiBAcGFyYW0gb2JqMSBcclxuICAgICAqIEBwYXJhbSBvYmoyIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZXF1YWxzKG9iajE6IGFueSwgb2JqMjogYW55KSB7XHJcbiAgICAgICAgdHJ5IHsgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iajEpID09PSBKU09OLnN0cmluZ2lmeShvYmoyKTsgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikgeyByZXR1cm4gZmFsc2U7IH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHF1ZXJ5IHBhcmFtcyBhbmQgdGhlIGhhc2ggZnJvbSB0aGUgc3BlY2lmaWVkIHVybFxyXG4gICAgICogQHBhcmFtIHVybCBcclxuICAgICAqIEByZXR1cm5zIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFVybFBhcnRzKHVybDogc3RyaW5nKTogeyB1cmw6IHN0cmluZywgcGFyYW1zOiBhbnksIGhhc2g/OiBzdHJpbmcgfSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLyogR2V0IHVybHMgcGFydHMgKi9cclxuICAgICAgICAgICAgdmFyIHVybEhhc2hQYXJ0cyA9IHVybD8uc3BsaXQoJyMnKSA/PyBbXTtcclxuXHJcbiAgICAgICAgICAgIC8qIEdldCBoYXNoICovXHJcbiAgICAgICAgICAgIHZhciB1cmxIYXNoID0gdXJsSGFzaFBhcnRzWzFdID8/IG51bGw7XHJcblxyXG4gICAgICAgICAgICAvKiBHZXQgcXVlcnkgcGFydHMgKi9cclxuICAgICAgICAgICAgdmFyIHVybFF1ZXJ5UGFydHMgPSB1cmxIYXNoUGFydHNbMF0/LnNwbGl0KCc/Jyk7XHJcblxyXG4gICAgICAgICAgICAvKiBHZXQgcXVlcnkgcGFyYW1zIGFzIG9iamVjdCAqL1xyXG4gICAgICAgICAgICB2YXIgdXJsUGFyYW1zOiBPYmplY3QgPSB1cmxRdWVyeVBhcnRzWzFdPy5zcGxpdChcIiZcIikucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcCA9IGN1cnIuc3BsaXQoXCI9XCIpO1xyXG4gICAgICAgICAgICAgICAgKHByZXYgYXMgYW55KVtkZWNvZGVVUklDb21wb25lbnQocFswXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KHBbMV0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XHJcbiAgICAgICAgICAgIH0sIHt9KSA/PyBudWxsO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHsgdXJsOiB1cmxRdWVyeVBhcnRzWzBdLCBwYXJhbXM6IHVybFBhcmFtcywgaGFzaDogdXJsSGFzaCB9O1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHVybDogdXJsLCBwYXJhbXM6IG51bGwsIGhhc2g6IHVuZGVmaW5lZCB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9jb21tb24vZnVuY3Rpb25zL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxQyxVQUFVO0FBRVYsTUFBTSxPQUFPLEtBQUs7SUFFZDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBbUM7UUFDN0QsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDekIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDMUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDdkIsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDeEIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDdEIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDdkIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDdkIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDekIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDNUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDM0IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDNUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7S0FDL0IsQ0FBQztJQUVGOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQWEsRUFBRSxJQUFZLEVBQUUsSUFBWTtRQUN6RCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDMUYsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFRO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDckIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7YUFDN0IsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFVLEVBQUUsV0FBVyxHQUFHLENBQUM7UUFDckQsSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFXLEVBQUUsUUFBZ0I7UUFDeEQsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEQsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELGtDQUFrQztRQUNsQyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRWpDLDBDQUEwQztRQUMxQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRyxDQUFDO1FBRUQsNEJBQTRCO1FBQzVCLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUksS0FBVSxFQUFFLFFBQWdCLEVBQUUsT0FBaUI7UUFDdEUsSUFBSSxPQUFPLEdBQUcsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLEtBQUssR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFJLEVBQUUsQ0FBSSxFQUFFLEVBQUUsQ0FBQyxDQUFFLENBQVMsQ0FBQyxRQUFRLENBQUMsR0FBSSxDQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFJLENBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZMLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBTyxJQUFjLEVBQUUsU0FBMEI7UUFDdkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztRQUNuQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkIsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNkLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN6QixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBWSxFQUFFLE1BQWM7UUFDbkQscURBQXFEO1FBQ3JELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO1FBRUQsc0JBQXNCO1FBQ3RCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLHlCQUF5QjtRQUN6QixJQUFJLGFBQWEsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVuRCw4QkFBOEI7UUFDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLGFBQWEsR0FBRyxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO1FBQ2pELENBQUM7UUFFRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBZ0IsRUFBRSxZQUFvQixDQUFDO1FBQzNELElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBRUQsdUJBQXVCO1FBQ3ZCLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUM1QixNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDcEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDcEMsQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFTO1FBQ2hDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0ksT0FBTyxJQUFJLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLFVBQXNCO1FBQ25ELDhEQUE4RDtRQUM5RCxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7UUFFdkIsNENBQTRDO1FBQzVDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsMENBQTBDO1lBQzFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLGdFQUFnRTtnQkFDaEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLHdFQUF3RTtnQkFDeEUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsNENBQTRDO1FBQzVDLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFrQixFQUFFLGtCQUEwQixTQUFTO1FBQ25GLDJDQUEyQztRQUMzQyxJQUFJLFVBQVUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRWxDLHFEQUFxRDtRQUNyRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDaEMsNkNBQTZDO1lBQzdDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekMsMEJBQTBCO1lBQzFCLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV2QyxJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMxQyxtREFBbUQ7Z0JBQ25ELFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsZUFBZSxJQUFJLFNBQVMsR0FBRyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCw4Q0FBOEM7UUFDOUMsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQVE7UUFDOUIsSUFBSSxDQUFDO1lBQ0QsS0FBSyxJQUFJLFFBQVEsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO29CQUNoRixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbkIsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQVMsRUFBRSxJQUFTO1FBQ3JDLElBQUksQ0FBQztZQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQUMsQ0FBQztRQUM3RCxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQUMsT0FBTyxLQUFLLENBQUM7UUFBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFXO1FBQ2pDLElBQUksQ0FBQztZQUNELG9CQUFvQjtZQUNwQixJQUFJLFlBQVksR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUV6QyxjQUFjO1lBQ2QsSUFBSSxPQUFPLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztZQUV0QyxxQkFBcUI7WUFDckIsSUFBSSxhQUFhLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVoRCxnQ0FBZ0M7WUFDaEMsSUFBSSxTQUFTLEdBQVcsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3ZFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZCLElBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO1lBRWYsT0FBTyxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDdkUsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN2RCxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFRO1FBQzFCLE9BQU8sT0FBTyxHQUFHLEtBQUssVUFBVSxJQUFJLE9BQU8sR0FBRyxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUM7SUFDMUUsQ0FBQzswSEFqU1EsS0FBSzs4R0FBTCxLQUFLOzsyRkFBTCxLQUFLO2tCQURqQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vL0BkeW5hbWljXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgVXRpbHMge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTW9udGggbmFtZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBnZXJtYW5Nb250aE5hbWVzOiB7IG5hbWU6IHN0cmluZywgaWQ6IG51bWJlciB9W10gPSBbXHJcbiAgICAgICAgeyBuYW1lOiAnSmFudWFyJywgaWQ6IDEgfSxcclxuICAgICAgICB7IG5hbWU6ICdGZWJydWFyJywgaWQ6IDIgfSxcclxuICAgICAgICB7IG5hbWU6ICdNw6RyeicsIGlkOiAzIH0sXHJcbiAgICAgICAgeyBuYW1lOiAnQXByaWwnLCBpZDogNCB9LFxyXG4gICAgICAgIHsgbmFtZTogJ01haScsIGlkOiA1IH0sXHJcbiAgICAgICAgeyBuYW1lOiAnSnVuaScsIGlkOiA2IH0sXHJcbiAgICAgICAgeyBuYW1lOiAnSnVsaScsIGlkOiA3IH0sXHJcbiAgICAgICAgeyBuYW1lOiAnQXVndXN0JywgaWQ6IDggfSxcclxuICAgICAgICB7IG5hbWU6ICdTZXB0ZW1iZXInLCBpZDogOSB9LFxyXG4gICAgICAgIHsgbmFtZTogJ09rdG9iZXInLCBpZDogMTAgfSxcclxuICAgICAgICB7IG5hbWU6ICdOb3ZlbWJlcicsIGlkOiAxMSB9LFxyXG4gICAgICAgIHsgbmFtZTogJ0RlemVtYmVyJywgaWQ6IDEyIH1cclxuICAgIF07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGEgcmFuZ2VcclxuICAgICAqIEBwYXJhbSBzaXplIFxyXG4gICAgICogQHBhcmFtIHN0YXJ0QXQgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgcmFuZ2Uoc3RhcnQ6IG51bWJlciwgc3RvcDogbnVtYmVyLCBzdGVwOiBudW1iZXIpOiBSZWFkb25seUFycmF5PG51bWJlcj4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiAoc3RvcCAtIHN0YXJ0KSAvIHN0ZXAgKyAxIH0sIChfLCBpKSA9PiBzdGFydCArIChpICogc3RlcCkpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIGVtcHR5IHZhbHVlcyBmcm9tIHRoZSBzcGVjaWZpZWQgb2JqZWN0XHJcbiAgICAgKiBAcGFyYW0gb2JqIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlbW92ZUVtcHR5VmFsdWVzKG9iajogYW55KTogYW55IHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMob2JqKVxyXG4gICAgICAgICAgICAuZmlsdGVyKChbXywgdl0pID0+IHYgIT0gbnVsbClcclxuICAgICAgICAgICAgLnJlZHVjZSgoYWNjLCBbaywgdl0pID0+ICh7IC4uLmFjYywgW2tdOiB2IH0pLCB7fSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG51bWJlciBvZiBkYXlzIGxlZnQgaW4gdGhlIHNwZWNpZmllZCBtb250aFxyXG4gICAgICogQHBhcmFtIGRhdGUgXHJcbiAgICAgKiBAcGFyYW0gbW9udGhPZmZzZXQgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZGF5c0xlZnRJbk1vbnRoKGRhdGU6IERhdGUsIG1vbnRoT2Zmc2V0ID0gMCk6IG51bWJlciB7XHJcbiAgICAgICAgdmFyIHRpbWUgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgdGltZS5zZXRNb250aChkYXRlLmdldE1vbnRoKCkgKyBtb250aE9mZnNldCk7XHJcbiAgICAgICAgdGltZS5zZXREYXRlKDApO1xyXG4gICAgICAgIHJldHVybiBNYXRoLm1heCgwLCB0aW1lLmdldERhdGUoKSA+IGRhdGUuZ2V0RGF0ZSgpID8gdGltZS5nZXREYXRlKCkgLSBkYXRlLmdldERhdGUoKSA6IDApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlIHNwZWNpZmVkIG9iamVjdCBhbmQgcHJvcGVydHlcclxuICAgICAqIEBwYXJhbSBvYmplY3QgXHJcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBnZXRQcm9wZXJ0eVZhbHVlKG9iamVjdDogYW55LCBwcm9wZXJ0eTogc3RyaW5nKTogYW55IHtcclxuICAgICAgICAvKiBQcm9wZXJ0eSBub3QgZm91bmQgKi9cclxuICAgICAgICBpZiAoIW9iamVjdCB8fCB0eXBlb2Ygb2JqZWN0ID09PSAndW5kZWZpbmVkJyB8fCAhcHJvcGVydHkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBJbmRleCBvZiBuZXh0IHByb3BlcnR5IHNwbGl0ICovXHJcbiAgICAgICAgdmFyIGluZGV4ID0gcHJvcGVydHkuaW5kZXhPZignLicpXHJcblxyXG4gICAgICAgIC8qIFByb3BlcnR5IHNwbGl0IGZvdW5kOyByZWN1cnNpdmUgY2FsbCAqL1xyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUob2JqZWN0W3Byb3BlcnR5LnN1YnN0cmluZygwLCBpbmRleCldLCBwcm9wZXJ0eS5zdWJzdHIoaW5kZXggKyAxKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBObyBzcGxpdDsgZ2V0IHByb3BlcnR5ICovXHJcbiAgICAgICAgcmV0dXJuIG9iamVjdFtwcm9wZXJ0eV07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTb3J0cyBhbiBhcnJheSBvZiBvYmplY3QgYnkgdGhlIHNwZWNpZmllZCBwcm9wZXJ0eVxyXG4gICAgICogQHBhcmFtIGFycmF5IFxyXG4gICAgICogQHBhcmFtIHByb3BlcnR5IFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgc29ydEFycmF5PFQ+KGFycmF5OiBUW10sIHByb3BlcnR5OiBzdHJpbmcsIHJldmVyc2U/OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IHNvcnREaXIgPSByZXZlcnNlID09PSB0cnVlID8gLTEgOiAxO1xyXG4gICAgICAgIHJldHVybiBhcnJheSA9IChhcnJheT8uc29ydCgoYTogVCwgYjogVCkgPT4gKChhIGFzIGFueSlbcHJvcGVydHldID4gKGIgYXMgYW55KVtwcm9wZXJ0eV0pID8gc29ydERpciA6ICgoKGIgYXMgYW55KVtwcm9wZXJ0eV0gPiAoYSBhcyBhbnkpW3Byb3BlcnR5XSkgPyAoc29ydERpciAqIC0xKSA6IDApKSB8fCBbXSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFRha2VzIGFuIEFycmF5PFY+LCBhbmQgYSBncm91cGluZyBmdW5jdGlvbixcclxuICAgICAqIGFuZCByZXR1cm5zIGEgTWFwIG9mIHRoZSBhcnJheSBncm91cGVkIGJ5IHRoZSBncm91cGluZyBmdW5jdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gbGlzdCBBbiBhcnJheSBvZiB0eXBlIFYuXHJcbiAgICAgKiBAcGFyYW0ga2V5R2V0dGVyIEEgRnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgdGhlIEFycmF5IHR5cGUgViBhcyBhbiBpbnB1dCwgYW5kIHJldHVybnMgYSB2YWx1ZSBvZiB0eXBlIEsuXHJcbiAgICAgKiAgICAgICAgICAgICAgICAgIEsgaXMgZ2VuZXJhbGx5IGludGVuZGVkIHRvIGJlIGEgcHJvcGVydHkga2V5IG9mIFYuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgTWFwIG9mIHRoZSBhcnJheSBncm91cGVkIGJ5IHRoZSBncm91cGluZyBmdW5jdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBncm91cEFycmF5Qnk8SywgVj4obGlzdDogQXJyYXk8Vj4sIGtleUdldHRlcjogKGlucHV0OiBWKSA9PiBLKTogTWFwPEssIEFycmF5PFY+PiB7XHJcbiAgICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxLLCBBcnJheTxWPj4oKTtcclxuICAgICAgICBsaXN0Py5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleUdldHRlcihpdGVtKTtcclxuICAgICAgICAgICAgY29uc3QgY29sbGVjdGlvbiA9IG1hcC5nZXQoa2V5KTtcclxuICAgICAgICAgICAgaWYgKCFjb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBtYXAuc2V0KGtleSwgW2l0ZW1dKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24ucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gbWFwO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJ1bmNhdGVzIGEgdGV4dFxyXG4gICAgICogQHBhcmFtIHRleHQgXHJcbiAgICAgKiBAcGFyYW0gbGVuZ3RoIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGVUZXh0KHRleHQ6IHN0cmluZywgbGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIC8qIElmIHRleHQgaXMgbm90IGEgc3RyaW5nLCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nICovXHJcbiAgICAgICAgaWYgKHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBSZW1vdmUgaHRtbCB0YWdzICovXHJcbiAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvPFxcLz9bXj5dKyg+fCQpL2csIFwiXCIpO1xyXG5cclxuICAgICAgICAvKiBUcnVuY2F0ZSB0aGUgc3RyaW5nICovXHJcbiAgICAgICAgbGV0IHRydW5jYXRlZFRleHQ6IHN0cmluZyA9IHRleHQuc3Vic3RyKDAsIGxlbmd0aCk7XHJcblxyXG4gICAgICAgIC8qIEFkZCBlbGxpcHNpcyB0byB0aGUgdGV4dCAqL1xyXG4gICAgICAgIGlmICh0ZXh0Lmxlbmd0aCA+IGxlbmd0aCkge1xyXG4gICAgICAgICAgICB0cnVuY2F0ZWRUZXh0ID0gYCR7dHJ1bmNhdGVkVGV4dC50cmltKCl9Li4uYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVuY2F0ZWRUZXh0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSm9pbnMgdGV4dCBhcnJheSBmcm8gdGFibGUgY29sdW1uXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVzIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgam9pbkFycmF5KHZhbHVlczogc3RyaW5nW10sIG1heExlbmd0aDogbnVtYmVyID0gMik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmICghdmFsdWVzIHx8IHZhbHVlcz8ubGVuZ3RoIDw9IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBHZXQgZmlyc3QgMiBuYW1lcyAqL1xyXG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZhbHVlcyA9IHZhbHVlcy5zbGljZSgwLCBtYXhMZW5ndGgpO1xyXG4gICAgICAgICAgICB2YWx1ZXNbMV0gPSBgJHt2YWx1ZXNbMV19LCAuLi5gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGA8c21hbGw+JHsodmFsdWVzLmpvaW4oJzxiclxcPicpKX08L3NtYWxsPmA7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb252ZXJ0IE9iamVjdCB0byBIdHRwUGFyYW1zXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBib2R5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgdG9IdHRwUGFyYW1zKGJvZHk6IGFueSk6IEh0dHBQYXJhbXMge1xyXG4gICAgICAgIGlmICghYm9keSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIE9iamVjdC5rZXlzKGJvZHkpLmZvckVhY2goKGtleSkgPT4gKGJvZHlba2V5XSA9PSBudWxsIHx8IGJvZHlba2V5XSA9PSAnJyB8fCBib2R5W2tleV0gPT0gJ3VuZGVmaW5lZCcpICYmIGJvZHlba2V5XSAhPSAwICYmIGRlbGV0ZSBib2R5W2tleV0pO1xyXG4gICAgICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7IGZyb21PYmplY3Q6IGJvZHkgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb252ZXJ0cyBIdHRwUGFyYW1zIHRvIGEgSmF2YVNjcmlwdCBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0gaHR0cFBhcmFtcyBIdHRwUGFyYW1zIG9iamVjdCB0byBjb252ZXJ0LlxyXG4gICAgICogQHJldHVybnMgQ29udmVydGVkIEphdmFTY3JpcHQgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGh0dHBQYXJhbXNUb09iamVjdChodHRwUGFyYW1zOiBIdHRwUGFyYW1zKTogYW55IHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGFuIGVtcHR5IG9iamVjdCB0byBzdG9yZSBjb252ZXJ0ZWQgcGFyYW1ldGVycyAqL1xyXG4gICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge307XHJcblxyXG4gICAgICAgIC8qIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIGtleSBpbiBIdHRwUGFyYW1zICovXHJcbiAgICAgICAgaHR0cFBhcmFtcy5rZXlzKCkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUga2V5IGhhcyBtdWx0aXBsZSB2YWx1ZXMgKi9cclxuICAgICAgICAgICAgaWYgKGh0dHBQYXJhbXMuZ2V0QWxsKGtleSk/Lmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgICAgLyogZiBvbmx5IG9uZSB2YWx1ZSBleGlzdHMsIGFzc2lnbiBpdCBkaXJlY3RseSB0byBwYXJhbXNba2V5XSAqL1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zW2tleV0gPSBodHRwUGFyYW1zLmdldChrZXkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLyogSWYgbXVsdGlwbGUgdmFsdWVzIGV4aXN0LCBhc3NpZ24gYW4gYXJyYXkgb2YgdmFsdWVzIHRvIHBhcmFtc1trZXldICovXHJcbiAgICAgICAgICAgICAgICBwYXJhbXNba2V5XSA9IGh0dHBQYXJhbXMuZ2V0QWxsKGtleSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLyogUmV0dXJuIHRoZSBjb252ZXJ0ZWQgSmF2YVNjcmlwdCBvYmplY3QgKi9cclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udmVydHMgYW4gYXJyYXkgb2YgZmlsdGVyIG9iamVjdHMgdG8gYW4gSHR0cFBhcmFtcyBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0gZmlsdGVyQXJyYXkgVGhlIGFycmF5IG9mIGZpbHRlciBvYmplY3RzLlxyXG4gICAgICogQHBhcmFtIHBhcmFtTmFtZVByZWZpeCBUaGUgcHJlZml4IGZvciB0aGUgcXVlcnkgcGFyYW1ldGVyIG5hbWVzIChkZWZhdWx0IGlzICdGaWx0ZXJzJykuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgSHR0cFBhcmFtcyBvYmplY3QgY29udGFpbmluZyB0aGUgY29uc3RydWN0ZWQgcXVlcnkgcGFyYW1ldGVycy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyB0b0FycmF5SHR0cFBhcmFtcyhmaWx0ZXJBcnJheTogYW55W10sIHBhcmFtTmFtZVByZWZpeDogc3RyaW5nID0gJ0ZpbHRlcnMnKTogSHR0cFBhcmFtcyB7XHJcbiAgICAgICAgLyogSW5pdGlhbGl6ZSBhbiBlbXB0eSBIdHRwUGFyYW1zIG9iamVjdCAqL1xyXG4gICAgICAgIGxldCBodHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgLyogSXRlcmF0ZSB0aHJvdWdoIGVhY2ggZmlsdGVyIGluIHRoZSBmaWx0ZXIgYXJyYXkgKi9cclxuICAgICAgICBmaWx0ZXJBcnJheS5mb3JFYWNoKChmaWx0ZXI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAvKiBHZXQgdGhlIGtleSBvZiB0aGUgZmlsdGVyIChlLmcuLCAnY2F0JykgKi9cclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyS2V5ID0gT2JqZWN0LmtleXMoZmlsdGVyKVswXTtcclxuXHJcbiAgICAgICAgICAgIC8qIEdldCB0aGUgdmFsdWVzIGFycmF5ICovXHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclZhbHVlcyA9IGZpbHRlcltmaWx0ZXJLZXldO1xyXG5cclxuICAgICAgICAgICAgaWYgKGZpbHRlclZhbHVlcyAmJiBmaWx0ZXJWYWx1ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgLyogSm9pbiB2YWx1ZXMgd2l0aCBjb21tYXMgYW5kIGFkZCB0byBIdHRwUGFyYW1zICovXHJcbiAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoYCR7cGFyYW1OYW1lUHJlZml4fVske2ZpbHRlcktleX1dYCwgZmlsdGVyVmFsdWVzLmpvaW4oJywnKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLyogUmV0dXJuIHRoZSBjb25zdHJ1Y3RlZCBIdHRwUGFyYW1zIG9iamVjdCAqL1xyXG4gICAgICAgIHJldHVybiBodHRwUGFyYW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xlYW5zIHRoZSBvYmplY3RzXHJcbiAgICAgKiBSZW1vdmVzIGVtcHR5IHByb3BlcnRpZXNcclxuICAgICAqIEBwYXJhbSBvYmogXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgY2xlYW5PYmplY3Qob2JqOiBhbnkpOiBhbnkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIHByb3BOYW1lIGluIG9iaikge1xyXG4gICAgICAgICAgICAgICAgaWYgKG9ialtwcm9wTmFtZV0gPT09IG51bGwgfHwgb2JqW3Byb3BOYW1lXSA9PT0gdW5kZWZpbmVkIHx8IG9ialtwcm9wTmFtZV0gPT09IFwiXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICBkZWxldGUgb2JqW3Byb3BOYW1lXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7IH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG9iajtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyBpZiB0aGUgc3BlY2lmaWVkIG9iamVjdHMgYXJlIGVxdWFsXHJcbiAgICAgKiBAcGFyYW0gb2JqMSBcclxuICAgICAqIEBwYXJhbSBvYmoyIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZXF1YWxzKG9iajE6IGFueSwgb2JqMjogYW55KSB7XHJcbiAgICAgICAgdHJ5IHsgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iajEpID09PSBKU09OLnN0cmluZ2lmeShvYmoyKTsgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikgeyByZXR1cm4gZmFsc2U7IH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHF1ZXJ5IHBhcmFtcyBhbmQgdGhlIGhhc2ggZnJvbSB0aGUgc3BlY2lmaWVkIHVybFxyXG4gICAgICogQHBhcmFtIHVybCBcclxuICAgICAqIEByZXR1cm5zIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFVybFBhcnRzKHVybDogc3RyaW5nKTogeyB1cmw6IHN0cmluZywgcGFyYW1zOiBhbnksIGhhc2g/OiBzdHJpbmcgfSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLyogR2V0IHVybHMgcGFydHMgKi9cclxuICAgICAgICAgICAgdmFyIHVybEhhc2hQYXJ0cyA9IHVybD8uc3BsaXQoJyMnKSA/PyBbXTtcclxuXHJcbiAgICAgICAgICAgIC8qIEdldCBoYXNoICovXHJcbiAgICAgICAgICAgIHZhciB1cmxIYXNoID0gdXJsSGFzaFBhcnRzWzFdID8/IG51bGw7XHJcblxyXG4gICAgICAgICAgICAvKiBHZXQgcXVlcnkgcGFydHMgKi9cclxuICAgICAgICAgICAgdmFyIHVybFF1ZXJ5UGFydHMgPSB1cmxIYXNoUGFydHNbMF0/LnNwbGl0KCc/Jyk7XHJcblxyXG4gICAgICAgICAgICAvKiBHZXQgcXVlcnkgcGFyYW1zIGFzIG9iamVjdCAqL1xyXG4gICAgICAgICAgICB2YXIgdXJsUGFyYW1zOiBPYmplY3QgPSB1cmxRdWVyeVBhcnRzWzFdPy5zcGxpdChcIiZcIikucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB2YXIgcCA9IGN1cnIuc3BsaXQoXCI9XCIpO1xyXG4gICAgICAgICAgICAgICAgKHByZXYgYXMgYW55KVtkZWNvZGVVUklDb21wb25lbnQocFswXSldID0gZGVjb2RlVVJJQ29tcG9uZW50KHBbMV0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XHJcbiAgICAgICAgICAgIH0sIHt9KSA/PyBudWxsO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHsgdXJsOiB1cmxRdWVyeVBhcnRzWzBdLCBwYXJhbXM6IHVybFBhcmFtcywgaGFzaDogdXJsSGFzaCB9O1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHVybDogdXJsLCBwYXJhbXM6IG51bGwsIGhhc2g6IHVuZGVmaW5lZCB9O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyBpZiB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGEgY2xhc3MuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBvYmogLSBUaGUgb2JqZWN0IHRvIGNoZWNrLlxyXG4gICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBvYmplY3QgaXMgYSBjbGFzcywgb3RoZXJ3aXNlIGBmYWxzZWAuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgaXNDbGFzcyhvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBvYmoucHJvdG90eXBlID09PSAnb2JqZWN0JztcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvY29tbW9uL21vZGVscy9lbnVtLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGFuIGl0ZW0gaW4gYW4gZW51bSwgcHJvdmlkaW5nIElEIGFuZCBuYW1lIHByb3BlcnRpZXMuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEVudW1JdGVtPEU+IHtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIElEIG9mIHRoZSBlbnVtIGl0ZW0sIHdoaWNoIGlzIHR5cGljYWxseSBpdHMgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIGlkOiBFO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGVudW0gaXRlbSwgd2hpY2ggaXMgdHlwaWNhbGx5IG9uZSBvZiBpdHMga2V5cy5cclxuICAgICAqL1xyXG4gICAgbmFtZToga2V5b2YgRTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata class for enum values, containing display information and ordering.
|
|
3
|
+
*/
|
|
4
|
+
export class EnumMetadata {
|
|
5
|
+
/**
|
|
6
|
+
* Optional display string associated with the enum value.
|
|
7
|
+
*/
|
|
8
|
+
display;
|
|
9
|
+
/**
|
|
10
|
+
* Optional order number used for sorting enum values.
|
|
11
|
+
*/
|
|
12
|
+
order;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS1tZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2NvbW1vbi9tb2RlbHMvZW51bS1tZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ3JCOztPQUVHO0lBQ0ksT0FBTyxDQUFVO0lBRXhCOztPQUVHO0lBQ0ksS0FBSyxDQUFVO0NBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIE1ldGFkYXRhIGNsYXNzIGZvciBlbnVtIHZhbHVlcywgY29udGFpbmluZyBkaXNwbGF5IGluZm9ybWF0aW9uIGFuZCBvcmRlcmluZy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbnVtTWV0YWRhdGEge1xyXG4gICAgLyoqXHJcbiAgICAgKiBPcHRpb25hbCBkaXNwbGF5IHN0cmluZyBhc3NvY2lhdGVkIHdpdGggdGhlIGVudW0gdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkaXNwbGF5Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9uYWwgb3JkZXIgbnVtYmVyIHVzZWQgZm9yIHNvcnRpbmcgZW51bSB2YWx1ZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcmRlcj86IG51bWJlcjtcclxufSJdfQ==
|
|
@@ -6,6 +6,7 @@ export * from './enums/salutation';
|
|
|
6
6
|
export * from './models/app-event';
|
|
7
7
|
export * from './models/displayname-number-projection';
|
|
8
8
|
export * from './models/displayname-projection';
|
|
9
|
+
export * from './models/enum-metadata';
|
|
9
10
|
export * from './models/name-number-projection';
|
|
10
11
|
export * from './models/name-projection';
|
|
11
12
|
export * from './models/title-projection';
|
|
@@ -31,4 +32,4 @@ export * from './pipes/truncate.pipe';
|
|
|
31
32
|
export * from './pipes/values';
|
|
32
33
|
export * from './services/event-queue.service';
|
|
33
34
|
export * from './templates/templates';
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2NvbW1vbi9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tb24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2RlbGF5ZWQtaG92ZXIuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2Rpc2FibGUtY29udHJvbC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VudW1zL2FwcC1ldmVudC10eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9zYWx1dGF0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvYXBwLWV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZGlzcGxheW5hbWUtbnVtYmVyLXByb2plY3Rpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9kaXNwbGF5bmFtZS1wcm9qZWN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvZW51bS1tZXRhZGF0YSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL25hbWUtbnVtYmVyLXByb2plY3Rpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9uYW1lLXByb2plY3Rpb24nO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscy90aXRsZS1wcm9qZWN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9kYXRhLXNvdXJjZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9lbnVtLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2ZpbGUtc2l6ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9maWx0ZXIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZmlyc3QtbGV0dGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9mb3JtLWFycmF5LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2Zvcm0tY29udHJvbC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9mb3JtLWdyb3VwLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2Z1bmMucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMva2V5cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvbW9udGgtbmFtZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9vbmx5LW51bWJlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvb3JkZXIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvcGxhY2Vob2xkZXIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvc2FmZS1odG1sLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NwbGl0LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3RpbWUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvdGl0bGVjYXNlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3RydW5jYXRlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3ZhbHVlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZXZlbnQtcXVldWUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGVtcGxhdGVzL3RlbXBsYXRlcyc7XHJcblxyXG4iXX0=
|
|
@@ -35,10 +35,41 @@ export class EnumService {
|
|
|
35
35
|
.filter(v => typeof v === "string")
|
|
36
36
|
.map(key => ({ id: enumType[key], name: `${prefix}${key}` }));
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Function to get ordered enum values based on metadata
|
|
40
|
+
* @param enumObj
|
|
41
|
+
* @param metadataObj
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
static getOrderedValues2(enumObj, metadataObj) {
|
|
45
|
+
const orderedValues = Object.keys(enumObj)
|
|
46
|
+
.map(key => parseInt(key, 10))
|
|
47
|
+
.filter(key => !isNaN(key))
|
|
48
|
+
.sort((a, b) => (metadataObj[a]?.order ?? 0) - (metadataObj[b]?.order ?? 0))
|
|
49
|
+
.map(key => ({ key, value: enumObj[key] }));
|
|
50
|
+
return orderedValues;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Function to get ordered enum values based on metadata
|
|
54
|
+
* @param enumObj The enum object
|
|
55
|
+
* @param metadataObj Metadata object containing enum metadata
|
|
56
|
+
* @returns An array of EnumItem objects representing ordered enum values
|
|
57
|
+
*/
|
|
58
|
+
static getOrderedValues(enumObj, metadataObj) {
|
|
59
|
+
const orderedValues = Object.keys(enumObj)
|
|
60
|
+
.map(key => parseInt(key, 10))
|
|
61
|
+
.filter(key => !isNaN(key))
|
|
62
|
+
.sort((a, b) => (metadataObj[a]?.order ?? 0) - (metadataObj[b]?.order ?? 0))
|
|
63
|
+
.map(key => ({
|
|
64
|
+
id: key,
|
|
65
|
+
name: metadataObj[key]?.display ?? enumObj[key],
|
|
66
|
+
}));
|
|
67
|
+
return orderedValues;
|
|
68
|
+
}
|
|
38
69
|
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: EnumService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
39
70
|
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: EnumService });
|
|
40
71
|
}
|
|
41
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: EnumService, decorators: [{
|
|
42
73
|
type: Injectable
|
|
43
74
|
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvY29tbW9uL3NlcnZpY2VzL2VudW0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxVQUFVO0FBRVYsTUFBTSxPQUFPLFdBQVc7SUFFdkI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQVEsUUFBZSxFQUFFLEtBQWE7UUFDeEQsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0csSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNkLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztRQUN2QixDQUFDO0lBQ0YsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQVEsUUFBZTtRQUM5QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBZSxDQUFDO2FBQ2pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLFFBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDO2FBQ2xDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNSLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRyxRQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFjLENBQUE7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBUSxRQUFlLEVBQUUsU0FBaUIsRUFBRTtRQUNoRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBZSxDQUFDO2FBQ2pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLFFBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDOUIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDO2FBQ2xDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUcsUUFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEdBQUcsR0FBRyxFQUFFLEVBQXNCLENBQUEsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBbUIsT0FBNEIsRUFBRSxXQUEwQztRQUN6SCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUN4QyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBTSxDQUFDO2FBQ2xDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQVUsQ0FBQyxDQUFDO2FBQ2pDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDM0UsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTdDLE9BQU8sYUFBYSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBbUIsT0FBNEIsRUFBRSxXQUEwQztRQUN4SCxNQUFNLGFBQWEsR0FBa0IsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDdkQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQU0sQ0FBQzthQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFVLENBQUMsQ0FBQzthQUNqQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQzNFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDWixFQUFFLEVBQUUsR0FBRztZQUNQLElBQUksRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQVE7U0FDdEQsQ0FBQyxDQUFrQixDQUFDO1FBRXRCLE9BQU8sYUFBYSxDQUFDO0lBQ3RCLENBQUM7MEhBdkVXLFdBQVc7OEhBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRW51bUl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvZW51bS1pdGVtJztcclxuaW1wb3J0IHsgRW51bU1ldGFkYXRhIH0gZnJvbSAnLi4vbW9kZWxzL2VudW0tbWV0YWRhdGEnO1xyXG5pbXBvcnQgeyBLZXlWYWx1ZSB9IGZyb20gJy4uL21vZGVscy9rZXktdmFsdWUnO1xyXG5cclxuLy9AZHluYW1pY1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBFbnVtU2VydmljZSB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFBhcnNlcyBhIHN0cmluZyB0byBhbiBlbnVtIHZhbHVlXHJcblx0ICogQHBhcmFtIGVudW1UeXBlIFRoZSB0eXBlIG9mIHRoZSBlbnVtXHJcblx0ICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBwYXJzZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzdGF0aWMgcGFyc2U8VEVudW0+KGVudW1UeXBlOiBURW51bSwgdmFsdWU6IHN0cmluZyk6IGFueSB7XHJcblx0XHRsZXQga2V5VmFsdWUgPSB0aGlzLnRvS2V5VmFsdWUoZW51bVR5cGUpLmZpbHRlcih4ID0+IHgua2V5Py50b0xvd2VyQ2FzZSgpID09ICh2YWx1ZSB8fCAnJykudG9Mb3dlckNhc2UoKSlbMF07XHJcblx0XHRpZiAoa2V5VmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuIGtleVZhbHVlLnZhbHVlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUGFyc2VzIGFuIGVudW0gdG8gYSBsaXN0IG9mIGtleS12YWx1ZSBvYmplY3RzXHJcblx0ICogQHBhcmFtIGVudW1UeXBlIFRoZSB0eXBlIG9mIHRoZSBlbnVtXHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpYyB0b0tleVZhbHVlPFRFbnVtPihlbnVtVHlwZTogVEVudW0pOiBBcnJheTxLZXlWYWx1ZT4ge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5rZXlzKGVudW1UeXBlIGFzIGFueSlcclxuXHRcdFx0Lm1hcChrID0+IChlbnVtVHlwZSBhcyBhbnkpW2tdKVxyXG5cdFx0XHQuZmlsdGVyKHYgPT4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCIpXHJcblx0XHRcdC5tYXAoeCA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIHsga2V5OiB4LCB2YWx1ZTogKGVudW1UeXBlIGFzIGFueSlbeF0gfSBhcyBLZXlWYWx1ZVxyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnZlcnRzIGVudW0gdHlwZSB0byBBcnJheTxFbnVtSXRlbT5cclxuXHQgKiBAcGFyYW0gZW51bVR5cGUgXHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpYyB0b0FycmF5PFRFbnVtPihlbnVtVHlwZTogVEVudW0sIHByZWZpeDogc3RyaW5nID0gJycpOiBFbnVtSXRlbTxURW51bT5bXSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmtleXMoZW51bVR5cGUgYXMgYW55KVxyXG5cdFx0XHQubWFwKGsgPT4gKGVudW1UeXBlIGFzIGFueSlba10pXHJcblx0XHRcdC5maWx0ZXIodiA9PiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIilcclxuXHRcdFx0Lm1hcChrZXkgPT4gKHsgaWQ6IChlbnVtVHlwZSBhcyBhbnkpW2tleV0sIG5hbWU6IGAke3ByZWZpeH0ke2tleX1gIH0gYXMgRW51bUl0ZW08VEVudW0+KSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBGdW5jdGlvbiB0byBnZXQgb3JkZXJlZCBlbnVtIHZhbHVlcyBiYXNlZCBvbiBtZXRhZGF0YVxyXG5cdCAqIEBwYXJhbSBlbnVtT2JqIFxyXG5cdCAqIEBwYXJhbSBtZXRhZGF0YU9iaiBcclxuXHQgKiBAcmV0dXJucyBcclxuXHQgKi9cclxuXHRwdWJsaWMgc3RhdGljIGdldE9yZGVyZWRWYWx1ZXMyPFQgZXh0ZW5kcyBudW1iZXI+KGVudW1PYmo6IHsgW2tleSBpbiBUXTogYW55IH0sIG1ldGFkYXRhT2JqOiB7IFtrZXkgaW4gVF0/OiBFbnVtTWV0YWRhdGEgfSk6IEFycmF5PHsga2V5OiBULCB2YWx1ZTogYW55IH0+IHtcclxuXHRcdGNvbnN0IG9yZGVyZWRWYWx1ZXMgPSBPYmplY3Qua2V5cyhlbnVtT2JqKVxyXG5cdFx0XHQubWFwKGtleSA9PiBwYXJzZUludChrZXksIDEwKSBhcyBUKVxyXG5cdFx0XHQuZmlsdGVyKGtleSA9PiAhaXNOYU4oa2V5IGFzIGFueSkpXHJcblx0XHRcdC5zb3J0KChhLCBiKSA9PiAobWV0YWRhdGFPYmpbYV0/Lm9yZGVyID8/IDApIC0gKG1ldGFkYXRhT2JqW2JdPy5vcmRlciA/PyAwKSlcclxuXHRcdFx0Lm1hcChrZXkgPT4gKHsga2V5LCB2YWx1ZTogZW51bU9ialtrZXldIH0pKTtcclxuXHJcblx0XHRyZXR1cm4gb3JkZXJlZFZhbHVlcztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEZ1bmN0aW9uIHRvIGdldCBvcmRlcmVkIGVudW0gdmFsdWVzIGJhc2VkIG9uIG1ldGFkYXRhXHJcblx0ICogQHBhcmFtIGVudW1PYmogVGhlIGVudW0gb2JqZWN0XHJcblx0ICogQHBhcmFtIG1ldGFkYXRhT2JqIE1ldGFkYXRhIG9iamVjdCBjb250YWluaW5nIGVudW0gbWV0YWRhdGFcclxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBFbnVtSXRlbSBvYmplY3RzIHJlcHJlc2VudGluZyBvcmRlcmVkIGVudW0gdmFsdWVzXHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpYyBnZXRPcmRlcmVkVmFsdWVzPFQgZXh0ZW5kcyBudW1iZXI+KGVudW1PYmo6IHsgW2tleSBpbiBUXTogYW55IH0sIG1ldGFkYXRhT2JqOiB7IFtrZXkgaW4gVF0/OiBFbnVtTWV0YWRhdGEgfSk6IEVudW1JdGVtPFQ+W10ge1xyXG5cdFx0Y29uc3Qgb3JkZXJlZFZhbHVlczogRW51bUl0ZW08VD5bXSA9IE9iamVjdC5rZXlzKGVudW1PYmopXHJcblx0XHRcdC5tYXAoa2V5ID0+IHBhcnNlSW50KGtleSwgMTApIGFzIFQpXHJcblx0XHRcdC5maWx0ZXIoa2V5ID0+ICFpc05hTihrZXkgYXMgYW55KSlcclxuXHRcdFx0LnNvcnQoKGEsIGIpID0+IChtZXRhZGF0YU9ialthXT8ub3JkZXIgPz8gMCkgLSAobWV0YWRhdGFPYmpbYl0/Lm9yZGVyID8/IDApKVxyXG5cdFx0XHQubWFwKGtleSA9PiAoe1xyXG5cdFx0XHRcdGlkOiBrZXksXHJcblx0XHRcdFx0bmFtZTogbWV0YWRhdGFPYmpba2V5XT8uZGlzcGxheSA/PyBlbnVtT2JqW2tleV0gYXMgYW55LFxyXG5cdFx0XHR9KSkgYXMgRW51bUl0ZW08VD5bXTtcclxuXHJcblx0XHRyZXR1cm4gb3JkZXJlZFZhbHVlcztcclxuXHR9XHJcbn0iXX0=
|