Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@aws-c2a/engine

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-c2a/engine - npm Package Compare versions

Comparing version 0.5.0 to 0.6.0

4

lib/aggregations/add-aggregation-descriptions.js

@@ -15,3 +15,3 @@ "use strict";

const undescribedCharacteristics = new Set(Object.keys(agg.characteristics));
agg.descriptions.push(...node_1.flatMap(descriptionCreators, creator => {
agg.descriptions.push(...(0, node_1.flatMap)(descriptionCreators, creator => {
const { descriptions, describedCharacteristics } = creator(agg.characteristics);

@@ -26,2 +26,2 @@ describedCharacteristics === null || describedCharacteristics === void 0 ? void 0 : describedCharacteristics.forEach(c => undescribedCharacteristics.delete(c));

exports.addAggDescriptions = addAggDescriptions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWFnZ3JlZ2F0aW9uLWRlc2NyaXB0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFkZC1hZ2dyZWdhdGlvbi1kZXNjcmlwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMENBQTBDO0FBUTFDLFNBQWdCLGtCQUFrQixDQUNoQyxRQUEwQixFQUFFLG1CQUE0Qzs7SUFFeEUsTUFBTSxRQUFRLEdBQXFCLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUVqRCxPQUFNLFFBQVEsQ0FBQyxNQUFNLEVBQUM7UUFDcEIsb0VBQW9FO1FBQ3BFLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUcsQ0FBQztRQUM1QixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsT0FBTyxtQ0FBSSxFQUFFLENBQUMsQ0FBQztRQUNyQyxJQUFHLENBQUMsR0FBRyxDQUFDLFlBQVk7WUFDbEIsR0FBRyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDeEIsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQzdFLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBTyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQzlELE1BQU0sRUFBRSxZQUFZLEVBQUUsd0JBQXdCLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2hGLHdCQUF3QixhQUF4Qix3QkFBd0IsdUJBQXhCLHdCQUF3QixDQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdFLE9BQU8sWUFBWSxhQUFaLFlBQVksY0FBWixZQUFZLEdBQUksRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRywwQkFBMEIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDdkc7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBdEJELGdEQXNCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFnZ0NoYXJhY3RlcmlzdGljVmFsdWUsIEFnZ3JlZ2F0aW9uIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IGZsYXRNYXAgfSBmcm9tICcuLi9wcml2YXRlL25vZGUnO1xuXG5leHBvcnQgdHlwZSBBZ2dEZXNjcmlwdGlvbkNyZWF0b3IgPVxuICAgIChjaGFyYWN0ZXJpc3RpY3M6IFJlY29yZDxzdHJpbmcsIEFnZ0NoYXJhY3RlcmlzdGljVmFsdWU+KSA9PiB7XG4gICAgICBkZXNjcmliZWRDaGFyYWN0ZXJpc3RpY3M/OiBzdHJpbmdbXSxcbiAgICAgIGRlc2NyaXB0aW9ucz86IHN0cmluZ1tdXG4gICAgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEFnZ0Rlc2NyaXB0aW9uczxUPihcbiAgYWdnUm9vdHM6IEFnZ3JlZ2F0aW9uPFQ+W10sIGRlc2NyaXB0aW9uQ3JlYXRvcnM6IEFnZ0Rlc2NyaXB0aW9uQ3JlYXRvcltdLFxuKTogQWdncmVnYXRpb248VD5bXXtcbiAgY29uc3QgYWdnU3RhY2s6IEFnZ3JlZ2F0aW9uPFQ+W10gPSBbLi4uYWdnUm9vdHNdO1xuXG4gIHdoaWxlKGFnZ1N0YWNrLmxlbmd0aCl7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICBjb25zdCBhZ2cgPSBhZ2dTdGFjay5wb3AoKSE7XG4gICAgYWdnU3RhY2sucHVzaCguLi5hZ2c/LnN1YkFnZ3MgPz8gW10pO1xuICAgIGlmKCFhZ2cuZGVzY3JpcHRpb25zKVxuICAgICAgYWdnLmRlc2NyaXB0aW9ucyA9IFtdO1xuICAgIGNvbnN0IHVuZGVzY3JpYmVkQ2hhcmFjdGVyaXN0aWNzID0gbmV3IFNldChPYmplY3Qua2V5cyhhZ2cuY2hhcmFjdGVyaXN0aWNzKSk7XG4gICAgYWdnLmRlc2NyaXB0aW9ucy5wdXNoKC4uLmZsYXRNYXAoZGVzY3JpcHRpb25DcmVhdG9ycywgY3JlYXRvciA9PiB7XG4gICAgICBjb25zdCB7IGRlc2NyaXB0aW9ucywgZGVzY3JpYmVkQ2hhcmFjdGVyaXN0aWNzIH0gPSBjcmVhdG9yKGFnZy5jaGFyYWN0ZXJpc3RpY3MpO1xuICAgICAgZGVzY3JpYmVkQ2hhcmFjdGVyaXN0aWNzPy5mb3JFYWNoKGMgPT4gdW5kZXNjcmliZWRDaGFyYWN0ZXJpc3RpY3MuZGVsZXRlKGMpKTtcbiAgICAgIHJldHVybiBkZXNjcmlwdGlvbnMgPz8gW107XG4gICAgfSkpO1xuXG4gICAgYWdnLmRlc2NyaXB0aW9ucy5wdXNoKC4uLlsuLi51bmRlc2NyaWJlZENoYXJhY3RlcmlzdGljc10ubWFwKGMgPT4gYCR7Y306ICR7YWdnLmNoYXJhY3RlcmlzdGljc1tjXX1gKSk7XG4gIH1cblxuICByZXR1cm4gYWdnUm9vdHM7XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWFnZ3JlZ2F0aW9uLWRlc2NyaXB0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFkZC1hZ2dyZWdhdGlvbi1kZXNjcmlwdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMENBQTBDO0FBUTFDLFNBQWdCLGtCQUFrQixDQUNoQyxRQUEwQixFQUFFLG1CQUE0Qzs7SUFFeEUsTUFBTSxRQUFRLEdBQXFCLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQztJQUVqRCxPQUFNLFFBQVEsQ0FBQyxNQUFNLEVBQUM7UUFDcEIsb0VBQW9FO1FBQ3BFLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUcsQ0FBQztRQUM1QixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsT0FBTyxtQ0FBSSxFQUFFLENBQUMsQ0FBQztRQUNyQyxJQUFHLENBQUMsR0FBRyxDQUFDLFlBQVk7WUFDbEIsR0FBRyxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDeEIsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQzdFLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBQSxjQUFPLEVBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDOUQsTUFBTSxFQUFFLFlBQVksRUFBRSx3QkFBd0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDaEYsd0JBQXdCLGFBQXhCLHdCQUF3Qix1QkFBeEIsd0JBQXdCLENBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsT0FBTyxZQUFZLGFBQVosWUFBWSxjQUFaLFlBQVksR0FBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLDBCQUEwQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUN2RztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUF0QkQsZ0RBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWdnQ2hhcmFjdGVyaXN0aWNWYWx1ZSwgQWdncmVnYXRpb24gfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgZmxhdE1hcCB9IGZyb20gJy4uL3ByaXZhdGUvbm9kZSc7XG5cbmV4cG9ydCB0eXBlIEFnZ0Rlc2NyaXB0aW9uQ3JlYXRvciA9XG4gICAgKGNoYXJhY3RlcmlzdGljczogUmVjb3JkPHN0cmluZywgQWdnQ2hhcmFjdGVyaXN0aWNWYWx1ZT4pID0+IHtcbiAgICAgIGRlc2NyaWJlZENoYXJhY3RlcmlzdGljcz86IHN0cmluZ1tdLFxuICAgICAgZGVzY3JpcHRpb25zPzogc3RyaW5nW11cbiAgICB9O1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkQWdnRGVzY3JpcHRpb25zPFQ+KFxuICBhZ2dSb290czogQWdncmVnYXRpb248VD5bXSwgZGVzY3JpcHRpb25DcmVhdG9yczogQWdnRGVzY3JpcHRpb25DcmVhdG9yW10sXG4pOiBBZ2dyZWdhdGlvbjxUPltde1xuICBjb25zdCBhZ2dTdGFjazogQWdncmVnYXRpb248VD5bXSA9IFsuLi5hZ2dSb290c107XG5cbiAgd2hpbGUoYWdnU3RhY2subGVuZ3RoKXtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgIGNvbnN0IGFnZyA9IGFnZ1N0YWNrLnBvcCgpITtcbiAgICBhZ2dTdGFjay5wdXNoKC4uLmFnZz8uc3ViQWdncyA/PyBbXSk7XG4gICAgaWYoIWFnZy5kZXNjcmlwdGlvbnMpXG4gICAgICBhZ2cuZGVzY3JpcHRpb25zID0gW107XG4gICAgY29uc3QgdW5kZXNjcmliZWRDaGFyYWN0ZXJpc3RpY3MgPSBuZXcgU2V0KE9iamVjdC5rZXlzKGFnZy5jaGFyYWN0ZXJpc3RpY3MpKTtcbiAgICBhZ2cuZGVzY3JpcHRpb25zLnB1c2goLi4uZmxhdE1hcChkZXNjcmlwdGlvbkNyZWF0b3JzLCBjcmVhdG9yID0+IHtcbiAgICAgIGNvbnN0IHsgZGVzY3JpcHRpb25zLCBkZXNjcmliZWRDaGFyYWN0ZXJpc3RpY3MgfSA9IGNyZWF0b3IoYWdnLmNoYXJhY3RlcmlzdGljcyk7XG4gICAgICBkZXNjcmliZWRDaGFyYWN0ZXJpc3RpY3M/LmZvckVhY2goYyA9PiB1bmRlc2NyaWJlZENoYXJhY3RlcmlzdGljcy5kZWxldGUoYykpO1xuICAgICAgcmV0dXJuIGRlc2NyaXB0aW9ucyA/PyBbXTtcbiAgICB9KSk7XG5cbiAgICBhZ2cuZGVzY3JpcHRpb25zLnB1c2goLi4uWy4uLnVuZGVzY3JpYmVkQ2hhcmFjdGVyaXN0aWNzXS5tYXAoYyA9PiBgJHtjfTogJHthZ2cuY2hhcmFjdGVyaXN0aWNzW2NdfWApKTtcbiAgfVxuXG4gIHJldHVybiBhZ2dSb290cztcbn0iXX0=

@@ -24,3 +24,3 @@ "use strict";

extractGroups(entities) {
return [...models_1.groupArrayBy([...entities], this.indexValueGetter)].map(([key, ops]) => ({
return [...(0, models_1.groupArrayBy)([...entities], this.indexValueGetter)].map(([key, ops]) => ({
entities: new Set(ops),

@@ -48,2 +48,2 @@ characteristics: {

exports.SimilarityAggModule = SimilarityAggModule;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYWdncmVnYXRpb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUE0RDtBQUU1RDs7R0FFRztBQUNILE1BQXNCLFNBQVM7SUFDN0IsWUFDa0IsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFDN0IsQ0FBQztDQUdKO0FBTkQsOEJBTUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLGlCQUFxQixTQUFRLFNBQVk7SUFDcEQsWUFDRSxLQUFhLEVBQ0csZ0JBQWlFO1FBQ2pGLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQURHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUQ7SUFDcEUsQ0FBQztJQUVoQixhQUFhLENBQUMsUUFBZ0I7UUFDNUIsT0FBTyxDQUFDLEdBQUcscUJBQVksQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsRixRQUFRLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDO1lBQ3RCLGVBQWUsRUFBRTtnQkFDZixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0NBQ0Y7QUFkRCw4Q0FjQztBQUVEOzs7R0FHRztBQUNILE1BQWEsbUJBQXVCLFNBQVEsU0FBWTtJQUN0RCxZQUNFLEtBQWEsRUFDRyxpQkFBb0M7UUFDcEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBREcsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUN2QyxDQUFDO0lBRWhCLGFBQWE7UUFDWCxNQUFNLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FDRjtBQVRELGtEQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWdncmVnYXRpb24sIGdyb3VwQXJyYXlCeSB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5cbi8qKlxuICogRGVmaW5lcyBhbiBBZ2dyZWdhdGlvblxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWdnTW9kdWxlPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmcsXG4gICl7fVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBleHRyYWN0R3JvdXBzKGVudGl0aWVzOiBTZXQ8VD4pOiBBZ2dyZWdhdGlvbjxUPltdO1xufVxuXG4vKipcbiAqIERlZmluZXMgYW4gQWdncmVnYXRpb24gbW9kdWxlIHRoYXQgZ3JvdXBzIGVudGl0aWVzIGJhc2VkIG9uXG4gKiBhbiBpbmRleGFibGUgdmFsdWUgKG9idGFpbmVkIHVzaW5nIGluZGV4VmFsdWVHZXR0ZXIpXG4gKi9cbmV4cG9ydCBjbGFzcyBFcXVhbGl0eUFnZ01vZHVsZTxUPiBleHRlbmRzIEFnZ01vZHVsZTxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGluZGV4VmFsdWVHZXR0ZXI6IChlOiBUKSA9PiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkLFxuICApe3N1cGVyKGxhYmVsKTt9XG5cbiAgZXh0cmFjdEdyb3VwcyhlbnRpdGllczogU2V0PFQ+KTogQWdncmVnYXRpb248VD5bXSB7XG4gICAgcmV0dXJuIFsuLi5ncm91cEFycmF5QnkoWy4uLmVudGl0aWVzXSwgdGhpcy5pbmRleFZhbHVlR2V0dGVyKV0ubWFwKChba2V5LCBvcHNdKSA9PiAoe1xuICAgICAgZW50aXRpZXM6IG5ldyBTZXQob3BzKSxcbiAgICAgIGNoYXJhY3RlcmlzdGljczoge1xuICAgICAgICBbdGhpcy5sYWJlbF06IGtleSxcbiAgICAgIH0sXG4gICAgfSkpO1xuICB9XG59XG5cbi8qKlxuICogRGVmaW5lcyBhbiBBZ2dyZWdhdGlvbiBtb2R1bGUgdGhhdCBncm91cHMgZW50aXRpZXMgYmFzZWQgb25cbiAqIHNpbWlsYXJpdHkgYmV0d2VlbiBlYWNoIHBhaXIgb2YgZW50aXRpZXMgKG9idGFpbmVkIHVzaW5nIHNpbWlsYXJpdHlDaGVja2VyKVxuICovXG5leHBvcnQgY2xhc3MgU2ltaWxhcml0eUFnZ01vZHVsZTxUPiBleHRlbmRzIEFnZ01vZHVsZTxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGxhYmVsOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IHNpbWlsYXJpdHlDaGVja2VyOiAoZTogVCkgPT4gYm9vbGVhbixcbiAgKXtzdXBlcihsYWJlbCk7fVxuXG4gIGV4dHJhY3RHcm91cHMoKTogQWdncmVnYXRpb248VD5bXSB7XG4gICAgdGhyb3cgRXJyb3IoJ1NpbWlsYXJpdHkgQWdnIE1vZHVsZSBkb2VzIG5vdCBoYXZlIGFuIGltcGxlbWVudGF0aW9uIHlldCcpO1xuICB9XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYWdncmVnYXRpb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUE0RDtBQUU1RDs7R0FFRztBQUNILE1BQXNCLFNBQVM7SUFDN0IsWUFDa0IsS0FBYTtRQUFiLFVBQUssR0FBTCxLQUFLLENBQVE7SUFDN0IsQ0FBQztDQUdKO0FBTkQsOEJBTUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFhLGlCQUFxQixTQUFRLFNBQVk7SUFDcEQsWUFDRSxLQUFhLEVBQ0csZ0JBQWlFO1FBQ2pGLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQURHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUQ7SUFDcEUsQ0FBQztJQUVoQixhQUFhLENBQUMsUUFBZ0I7UUFDNUIsT0FBTyxDQUFDLEdBQUcsSUFBQSxxQkFBWSxFQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2xGLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDdEIsZUFBZSxFQUFFO2dCQUNmLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUc7YUFDbEI7U0FDRixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FDRjtBQWRELDhDQWNDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxtQkFBdUIsU0FBUSxTQUFZO0lBQ3RELFlBQ0UsS0FBYSxFQUNHLGlCQUFvQztRQUNwRCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFERyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQ3ZDLENBQUM7SUFFaEIsYUFBYTtRQUNYLE1BQU0sS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDM0UsQ0FBQztDQUNGO0FBVEQsa0RBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZ2dyZWdhdGlvbiwgZ3JvdXBBcnJheUJ5IH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcblxuLyoqXG4gKiBEZWZpbmVzIGFuIEFnZ3JlZ2F0aW9uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBZ2dNb2R1bGU8VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGFiZWw6IHN0cmluZyxcbiAgKXt9XG5cbiAgcHVibGljIGFic3RyYWN0IGV4dHJhY3RHcm91cHMoZW50aXRpZXM6IFNldDxUPik6IEFnZ3JlZ2F0aW9uPFQ+W107XG59XG5cbi8qKlxuICogRGVmaW5lcyBhbiBBZ2dyZWdhdGlvbiBtb2R1bGUgdGhhdCBncm91cHMgZW50aXRpZXMgYmFzZWQgb25cbiAqIGFuIGluZGV4YWJsZSB2YWx1ZSAob2J0YWluZWQgdXNpbmcgaW5kZXhWYWx1ZUdldHRlcilcbiAqL1xuZXhwb3J0IGNsYXNzIEVxdWFsaXR5QWdnTW9kdWxlPFQ+IGV4dGVuZHMgQWdnTW9kdWxlPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgbGFiZWw6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5kZXhWYWx1ZUdldHRlcjogKGU6IFQpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gICl7c3VwZXIobGFiZWwpO31cblxuICBleHRyYWN0R3JvdXBzKGVudGl0aWVzOiBTZXQ8VD4pOiBBZ2dyZWdhdGlvbjxUPltdIHtcbiAgICByZXR1cm4gWy4uLmdyb3VwQXJyYXlCeShbLi4uZW50aXRpZXNdLCB0aGlzLmluZGV4VmFsdWVHZXR0ZXIpXS5tYXAoKFtrZXksIG9wc10pID0+ICh7XG4gICAgICBlbnRpdGllczogbmV3IFNldChvcHMpLFxuICAgICAgY2hhcmFjdGVyaXN0aWNzOiB7XG4gICAgICAgIFt0aGlzLmxhYmVsXToga2V5LFxuICAgICAgfSxcbiAgICB9KSk7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWZpbmVzIGFuIEFnZ3JlZ2F0aW9uIG1vZHVsZSB0aGF0IGdyb3VwcyBlbnRpdGllcyBiYXNlZCBvblxuICogc2ltaWxhcml0eSBiZXR3ZWVuIGVhY2ggcGFpciBvZiBlbnRpdGllcyAob2J0YWluZWQgdXNpbmcgc2ltaWxhcml0eUNoZWNrZXIpXG4gKi9cbmV4cG9ydCBjbGFzcyBTaW1pbGFyaXR5QWdnTW9kdWxlPFQ+IGV4dGVuZHMgQWdnTW9kdWxlPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgbGFiZWw6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2ltaWxhcml0eUNoZWNrZXI6IChlOiBUKSA9PiBib29sZWFuLFxuICApe3N1cGVyKGxhYmVsKTt9XG5cbiAgZXh0cmFjdEdyb3VwcygpOiBBZ2dyZWdhdGlvbjxUPltdIHtcbiAgICB0aHJvdyBFcnJvcignU2ltaWxhcml0eSBBZ2cgTW9kdWxlIGRvZXMgbm90IGhhdmUgYW4gaW1wbGVtZW50YXRpb24geWV0Jyk7XG4gIH1cbn0iXX0=

@@ -21,6 +21,6 @@ "use strict";

return [];
const finalAggs = node_1.flatMap(directAggs, g => {
const gs = ModuleTreeAggsExtractor.findAggsIntersections(moduleNode.submodules ? node_1.flatMap(moduleNode.submodules, sm => ModuleTreeAggsExtractor.extractTreeRoot(sm, g.entities, { ...characteristics, ...g.characteristics })) : []);
const finalAggs = (0, node_1.flatMap)(directAggs, g => {
const gs = ModuleTreeAggsExtractor.findAggsIntersections(moduleNode.submodules ? (0, node_1.flatMap)(moduleNode.submodules, sm => ModuleTreeAggsExtractor.extractTreeRoot(sm, g.entities, { ...characteristics, ...g.characteristics })) : []);
if (moduleNode.forceSubmoduleCollapse ||
(!moduleNode.disableSubmoduleCollapse && gs.length === 1 && models_1.setsEqual(g.entities, gs[0].entities))) {
(!moduleNode.disableSubmoduleCollapse && gs.length === 1 && (0, models_1.setsEqual)(g.entities, gs[0].entities))) {
return gs.map(gSubGroup => ({

@@ -70,2 +70,2 @@ ...gSubGroup,

exports.ModuleTreeAggsExtractor = ModuleTreeAggsExtractor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb25zLWV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFnZ3JlZ2F0aW9ucy1leHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQWlGO0FBQ2pGLDBDQUEwQztBQUcxQyxNQUFhLHVCQUF1QjtJQUUzQixNQUFNLENBQUMsT0FBTyxDQUNuQixVQUFnQyxFQUNoQyxRQUFhO1FBRWIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxNQUFNLENBQUMsZUFBZSxDQUM1QixVQUFnQyxFQUNoQyxRQUFnQixFQUNoQixrQkFBMEQsRUFBRTtRQUU1RCxJQUFHLFVBQVUsQ0FBQyx1QkFBdUIsRUFBQztZQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xGLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUcsQ0FBQyxPQUFPO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ3hCO1FBRUQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0QsSUFBRyxVQUFVLENBQUMsb0JBQW9CLElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQzFELE9BQU8sRUFBRSxDQUFDO1FBRVosTUFBTSxTQUFTLEdBQUcsY0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUN4QyxNQUFNLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FDdEQsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFD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QUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7eUJBQ25HLENBQUM7cUJBQ0g7eUJBQU07d0JBQ0wsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO3FCQUNuRTtvQkFDRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDeEM7YUFDRjtTQUNGO1FBQ0QsT0FBTyxDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztDQUNGO0FBbEZELDBEQWtGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFnZ0NoYXJhY3RlcmlzdGljVmFsdWUsIEFnZ3JlZ2F0aW9uLCBzZXRzRXF1YWwgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgZmxhdE1hcCB9IGZyb20gJy4uL3ByaXZhdGUvbm9kZSc7XG5pbXBvcnQgeyBBZ2dNb2R1bGVUcmVlTm9kZSB9IGZyb20gJy4vYWdncmVnYXRpb24tbW9kdWxlLXRyZWUtbm9kZSc7XG5cbmV4cG9ydCBjbGFzcyBNb2R1bGVUcmVlQWdnc0V4dHJhY3RvciB7XG5cbiAgcHVibGljIHN0YXRpYyBleHRyYWN0PFQ+KFxuICAgIG1vZHVsZU5vZGU6IEFnZ01vZHVsZVRyZWVOb2RlPFQ+LFxuICAgIGVudGl0aWVzOiBUW10sXG4gICk6IEFnZ3JlZ2F0aW9uPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLmV4dHJhY3RUcmVlUm9vdChtb2R1bGVOb2RlLCBuZXcgU2V0KGVudGl0aWVzKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBleHRyYWN0VHJlZVJvb3Q8VD4oXG4gICAgbW9kdWxlTm9kZTogQWdnTW9kdWxlVHJlZU5vZGU8VD4sXG4gICAgZW50aXRpZXM6IFNldDxUPixcbiAgICBjaGFyYWN0ZXJpc3RpY3M6IFJlY29yZDxzdHJpbmcsIEFnZ0NoYXJhY3RlcmlzdGljVmFsdWU+ID0ge30sXG4gICk6IEFnZ3JlZ2F0aW9uPFQ+W10ge1xuICAgIGlmKG1vZHVsZU5vZGUucmVxdWlyZWRDaGFyYWN0ZXJpc3RpY3Mpe1xuICAgICAgY29uc3QgaXNWYWxpZCA9IE9iamVjdC5lbnRyaWVzKG1vZHVsZU5vZGUucmVxdWlyZWRDaGFyYWN0ZXJpc3RpY3MpLmV2ZXJ5KChbYywgdl0pID0+IHtcbiAgICAgICAgcmV0dXJuIGNoYXJhY3RlcmlzdGljc1tjXSA9PT0gdjtcbiAgICAgIH0pO1xuICAgICAgaWYoIWlzVmFsaWQpIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3RBZ2dzID0gbW9kdWxlTm9kZS5tb2R1bGUuZXh0cmFjdEdyb3VwcyhlbnRpdGllcyk7XG5cbiAgICBpZihtb2R1bGVOb2RlLmRpc2FibGVPbk5vRXh0cmFJbmZvICYmIGRpcmVjdEFnZ3MubGVuZ3RoIDw9IDEpXG4gICAgICByZXR1cm4gW107XG5cbiAgICBjb25zdCBmaW5hbEFnZ3MgPSBmbGF0TWFwKGRpcmVjdEFnZ3MsIGcgPT4ge1xuICAgICAgY29uc3QgZ3MgPSBNb2R1bGVUcmVlQWdnc0V4dHJhY3Rvci5maW5kQWdnc0ludGVyc2VjdGlvbnM8VD4oXG4gICAgICAgIG1vZHVsZU5vZGUuc3VibW9kdWxlcyA/IGZsYXRNYXAobW9kdWxlTm9kZS5zdWJtb2R1bGVzLFxuICAgICAgICAgIHNtID0+IE1vZHVsZVRyZWVBZ2dzRXh0cmFjdG9yLmV4dHJhY3RUcmVlUm9vdChzbSwgZy5lbnRpdGllcywgey4uLmNoYXJhY3RlcmlzdGljcywgLi4uZy5jaGFyYWN0ZXJpc3RpY3N9KSxcbiAgICAgICAgKSA6IFtdLFxuICAgICAgKTtcblxuICAgICAgaWYobW9kdWxlTm9kZS5mb3JjZVN1Ym1vZHVsZUNvbGxhcHNlIHx8XG4gICAgICAgICghbW9kdWxlTm9kZS5kaXNhYmxlU3VibW9kdWxlQ29sbGFwc2UgJiYgZ3MubGVuZ3RoID09PSAxJiYgc2V0c0VxdWFsKGcuZW50aXRpZXMsIGdzWzBdLmVudGl0aWVzKSkpIHtcbiAgICAgICAgcmV0dXJuIGdzLm1hcChnU3ViR3JvdXAgPT5cbiAgICAgICAgICAoe1xuICAgICAgICAgICAgLi4uZ1N1Ykdyb3VwLFxuICAgICAgICAgICAgY2hhcmFjdGVyaXN0aWNzOiB7Li4uZy5jaGFyYWN0ZXJpc3RpY3MsIC4uLmdTdWJHcm91cC5jaGFyYWN0ZXJpc3RpY3N9LFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmKGdzICYmIGdzLmxlbmd0aCkge1xuICAgICAgICBnLnN1YkFnZ3MgPSBncztcbiAgICAgICAgZ3MuZm9yRWFjaChnU3ViR3JvdXAgPT4gZ1N1Ykdyb3VwLnBhcmVudEFnZyA9IGcpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gW2ddO1xuICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBmaW5hbEFnZ3M7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmaW5kQWdnc0ludGVyc2VjdGlvbnM8VD4oZ3JvdXBzOiBBZ2dyZWdhdGlvbjxUPltdKTogQWdncmVnYXRpb248VD5bXXtcbiAgICBjb25zdCByZXN1bHRpbmdJbnRlcnNlY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBBZ2dyZWdhdGlvbjxUPj4gPSB7fTtcbiAgICBjb25zdCBpbmRleEdldHRlciA9IChvcmlnaW5hbEFnZ3M6IG51bWJlcltdKSA9PiBvcmlnaW5hbEFnZ3Muam9pbignLCcpO1xuXG4gICAgZm9yKGxldCBhZ2cgPSAwOyBhZ2c8IGdyb3Vwcy5sZW5ndGg7IGFnZysrKXsgLy8gZm9yIGVhY2ggb3JpZ2luYWwgQWdnXG4gICAgICBmb3IoY29uc3Qgb3BlcmF0aW9uIG9mIFsuLi5ncm91cHNbYWdnXS5lbnRpdGllc10peyAvLyBlYWNoIG9wZXJhdGlvbiBpbiBBZ2dcbiAgICAgICAgY29uc3QgYWdnc0NvbnRhaW5pbmdPcGVyYXRpb246IG51bWJlcltdID0gW2FnZ107XG4gICAgICAgIGZvcihsZXQgYWdnMiA9IGFnZysxOyBhZ2cyIDwgZ3JvdXBzLmxlbmd0aDsgYWdnMisrKXsgLy8gY2hlY2sgYWxsIG90aGVyIG9yaWdpbmFsIEFnZ3MgZm9yIHNhbWUgb3BlcmF0aW9uXG4gICAgICAgICAgaWYoZ3JvdXBzW2FnZzJdLmVudGl0aWVzLmhhcyhvcGVyYXRpb24pKXtcbiAgICAgICAgICAgIGFnZ3NDb250YWluaW5nT3BlcmF0aW9uLnB1c2goYWdnMik7IC8vIGFkZCBpdCB0byB0aGUgaW50ZXJzZWN0aW9uIGlkZW50aWZpZXJcbiAgICAgICAgICAgIGdyb3Vwc1thZ2cyXS5lbnRpdGllcy5kZWxldGUob3BlcmF0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYoYWdnc0NvbnRhaW5pbmdPcGVyYXRpb24ubGVuZ3RoID4gMSl7XG4gICAgICAgICAgY29uc3QgaW50ZXJzZWN0aW9uSW5kZXggPSBpbmRleEdldHRlcihhZ2dzQ29udGFpbmluZ09wZXJhdGlvbik7XG4gICAgICAgICAgaWYoIXJlc3VsdGluZ0ludGVyc2VjdGlvbnNbaW50ZXJzZWN0aW9uSW5kZXhdKXtcbiAgICAgICAgICAgIHJlc3VsdGluZ0ludGVyc2VjdGlvbnNbaW50ZXJzZWN0aW9uSW5kZXhdID0ge1xuICAgICAgICAgICAgICBlbnRpdGllczogbmV3IFNldChbb3BlcmF0aW9uXSksXG4gICAgICAgICAgICAgIGNoYXJhY3RlcmlzdGljczogT2JqZWN0LmFzc2lnbih7fSwgLi4uYWdnc0NvbnRhaW5pbmdPcGVyYXRpb24ubWFwKGkgPT4gZ3JvdXBzW2ldLmNoYXJhY3RlcmlzdGljcykpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0aW5nSW50ZXJzZWN0aW9uc1tpbnRlcnNlY3Rpb25JbmRleF0uZW50aXRpZXMuYWRkKG9wZXJhdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGdyb3Vwc1thZ2ddLmVudGl0aWVzLmRlbGV0ZShvcGVyYXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbLi4uZ3JvdXBzLCAuLi5PYmplY3QudmFsdWVzKHJlc3VsdGluZ0ludGVyc2VjdGlvbnMpXS5maWx0ZXIoYWdnID0+IGFnZy5lbnRpdGllcy5zaXplID4gMCk7XG4gIH1cbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb25zLWV4dHJhY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFnZ3JlZ2F0aW9ucy1leHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQWlGO0FBQ2pGLDBDQUEwQztBQUcxQyxNQUFhLHVCQUF1QjtJQUUzQixNQUFNLENBQUMsT0FBTyxDQUNuQixVQUFnQyxFQUNoQyxRQUFhO1FBRWIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTyxNQUFNLENBQUMsZUFBZSxDQUM1QixVQUFnQyxFQUNoQyxRQUFnQixFQUNoQixrQkFBMEQsRUFBRTtRQUU1RCxJQUFHLFVBQVUsQ0FBQyx1QkFBdUIsRUFBQztZQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xGLE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUcsQ0FBQyxPQUFPO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ3hCO1FBRUQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0QsSUFBRyxVQUFVLENBQUMsb0JBQW9CLElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDO1lBQzFELE9BQU8sRUFBRSxDQUFDO1FBRVosTUFBTSxTQUFTLEdBQUcsSUFBQSxjQUFPLEVBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sRUFBRSxHQUFHLHVCQUF1QixDQUFDLHFCQUFxQixDQUN0RCxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFBLGNBQU8sRUFBQyxVQUFVLENBQUMsVUFBVSxFQUNuRCxFQUFFLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFDLEdBQUcsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBQyxDQUFDLENBQzFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDUCxDQUFDO1lBRUYsSUFBRyxVQUFVLENBQUMsc0JBQXNCO2dCQUNsQyxDQUFDLENBQUMsVUFBVSxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFHLElBQUEsa0JBQVMsRUFBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFO2dCQUNuRyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDeEIsQ0FBQztvQkFDQyxHQUFHLFNBQVM7b0JBQ1osZUFBZSxFQUFFLEVBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFFLEdBQUcsU0FBUyxDQUFDLGVBQWUsRUFBQztpQkFDdEUsQ0FBQyxDQUNILENBQUM7YUFDSDtpQkFBTSxJQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFO2dCQUN6QixDQUFDLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDZixFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNsRDtZQUVELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNiLENBQUMsQ0FDQSxDQUFDO1FBRUYsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBSSxNQUF3QjtRQUM5RCxNQUFNLHNCQUFzQixHQUFtQyxFQUFFLENBQUM7UUFDbEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFzQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXZFLEtBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRSxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFDLEVBQUUsd0JBQXdCO1lBQ25FLEtBQUksTUFBTSxTQUFTLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxFQUFFLHdCQUF3QjtnQkFDekUsTUFBTSx1QkFBdUIsR0FBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRCxLQUFJLElBQUksSUFBSSxHQUFHLEdBQUcsR0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUMsRUFBRSxtREFBbUQ7b0JBQ3RHLElBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUM7d0JBQ3RDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLHdDQUF3Qzt3QkFDNUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQ3pDO2lCQUNGO2dCQUNELElBQUcsdUJBQXVCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBQztvQkFDcEMsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztvQkFDL0QsSUFBRyxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLEVBQUM7d0JBQzVDLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLEdBQUc7NEJBQzFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDOzRCQUM5QixlQUFlLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7eUJBQ25HLENBQUM7cUJBQ0g7eUJBQU07d0JBQ0wsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO3FCQUNuRTtvQkFDRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDeEM7YUFDRjtTQUNGO1FBQ0QsT0FBTyxDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztDQUNGO0FBbEZELDBEQWtGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFnZ0NoYXJhY3RlcmlzdGljVmFsdWUsIEFnZ3JlZ2F0aW9uLCBzZXRzRXF1YWwgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgZmxhdE1hcCB9IGZyb20gJy4uL3ByaXZhdGUvbm9kZSc7XG5pbXBvcnQgeyBBZ2dNb2R1bGVUcmVlTm9kZSB9IGZyb20gJy4vYWdncmVnYXRpb24tbW9kdWxlLXRyZWUtbm9kZSc7XG5cbmV4cG9ydCBjbGFzcyBNb2R1bGVUcmVlQWdnc0V4dHJhY3RvciB7XG5cbiAgcHVibGljIHN0YXRpYyBleHRyYWN0PFQ+KFxuICAgIG1vZHVsZU5vZGU6IEFnZ01vZHVsZVRyZWVOb2RlPFQ+LFxuICAgIGVudGl0aWVzOiBUW10sXG4gICk6IEFnZ3JlZ2F0aW9uPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLmV4dHJhY3RUcmVlUm9vdChtb2R1bGVOb2RlLCBuZXcgU2V0KGVudGl0aWVzKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBleHRyYWN0VHJlZVJvb3Q8VD4oXG4gICAgbW9kdWxlTm9kZTogQWdnTW9kdWxlVHJlZU5vZGU8VD4sXG4gICAgZW50aXRpZXM6IFNldDxUPixcbiAgICBjaGFyYWN0ZXJpc3RpY3M6IFJlY29yZDxzdHJpbmcsIEFnZ0NoYXJhY3RlcmlzdGljVmFsdWU+ID0ge30sXG4gICk6IEFnZ3JlZ2F0aW9uPFQ+W10ge1xuICAgIGlmKG1vZHVsZU5vZGUucmVxdWlyZWRDaGFyYWN0ZXJpc3RpY3Mpe1xuICAgICAgY29uc3QgaXNWYWxpZCA9IE9iamVjdC5lbnRyaWVzKG1vZHVsZU5vZGUucmVxdWlyZWRDaGFyYWN0ZXJpc3RpY3MpLmV2ZXJ5KChbYywgdl0pID0+IHtcbiAgICAgICAgcmV0dXJuIGNoYXJhY3RlcmlzdGljc1tjXSA9PT0gdjtcbiAgICAgIH0pO1xuICAgICAgaWYoIWlzVmFsaWQpIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3RBZ2dzID0gbW9kdWxlTm9kZS5tb2R1bGUuZXh0cmFjdEdyb3VwcyhlbnRpdGllcyk7XG5cbiAgICBpZihtb2R1bGVOb2RlLmRpc2FibGVPbk5vRXh0cmFJbmZvICYmIGRpcmVjdEFnZ3MubGVuZ3RoIDw9IDEpXG4gICAgICByZXR1cm4gW107XG5cbiAgICBjb25zdCBmaW5hbEFnZ3MgPSBmbGF0TWFwKGRpcmVjdEFnZ3MsIGcgPT4ge1xuICAgICAgY29uc3QgZ3MgPSBNb2R1bGVUcmVlQWdnc0V4dHJhY3Rvci5maW5kQWdnc0ludGVyc2VjdGlvbnM8VD4oXG4gICAgICAgIG1vZHVsZU5vZGUuc3VibW9kdWxlcyA/IGZsYXRNYXAobW9kdWxlTm9kZS5zdWJtb2R1bGVzLFxuICAgICAgICAgIHNtID0+IE1vZHVsZVRyZWVBZ2dzRXh0cmFjdG9yLmV4dHJhY3RUcmVlUm9vdChzbSwgZy5lbnRpdGllcywgey4uLmNoYXJhY3RlcmlzdGljcywgLi4uZy5jaGFyYWN0ZXJpc3RpY3N9KSxcbiAgICAgICAgKSA6IFtdLFxuICAgICAgKTtcblxuICAgICAgaWYobW9kdWxlTm9kZS5mb3JjZVN1Ym1vZHVsZUNvbGxhcHNlIHx8XG4gICAgICAgICghbW9kdWxlTm9kZS5kaXNhYmxlU3VibW9kdWxlQ29sbGFwc2UgJiYgZ3MubGVuZ3RoID09PSAxJiYgc2V0c0VxdWFsKGcuZW50aXRpZXMsIGdzWzBdLmVudGl0aWVzKSkpIHtcbiAgICAgICAgcmV0dXJuIGdzLm1hcChnU3ViR3JvdXAgPT5cbiAgICAgICAgICAoe1xuICAgICAgICAgICAgLi4uZ1N1Ykdyb3VwLFxuICAgICAgICAgICAgY2hhcmFjdGVyaXN0aWNzOiB7Li4uZy5jaGFyYWN0ZXJpc3RpY3MsIC4uLmdTdWJHcm91cC5jaGFyYWN0ZXJpc3RpY3N9LFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmKGdzICYmIGdzLmxlbmd0aCkge1xuICAgICAgICBnLnN1YkFnZ3MgPSBncztcbiAgICAgICAgZ3MuZm9yRWFjaChnU3ViR3JvdXAgPT4gZ1N1Ykdyb3VwLnBhcmVudEFnZyA9IGcpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gW2ddO1xuICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBmaW5hbEFnZ3M7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmaW5kQWdnc0ludGVyc2VjdGlvbnM8VD4oZ3JvdXBzOiBBZ2dyZWdhdGlvbjxUPltdKTogQWdncmVnYXRpb248VD5bXXtcbiAgICBjb25zdCByZXN1bHRpbmdJbnRlcnNlY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBBZ2dyZWdhdGlvbjxUPj4gPSB7fTtcbiAgICBjb25zdCBpbmRleEdldHRlciA9IChvcmlnaW5hbEFnZ3M6IG51bWJlcltdKSA9PiBvcmlnaW5hbEFnZ3Muam9pbignLCcpO1xuXG4gICAgZm9yKGxldCBhZ2cgPSAwOyBhZ2c8IGdyb3Vwcy5sZW5ndGg7IGFnZysrKXsgLy8gZm9yIGVhY2ggb3JpZ2luYWwgQWdnXG4gICAgICBmb3IoY29uc3Qgb3BlcmF0aW9uIG9mIFsuLi5ncm91cHNbYWdnXS5lbnRpdGllc10peyAvLyBlYWNoIG9wZXJhdGlvbiBpbiBBZ2dcbiAgICAgICAgY29uc3QgYWdnc0NvbnRhaW5pbmdPcGVyYXRpb246IG51bWJlcltdID0gW2FnZ107XG4gICAgICAgIGZvcihsZXQgYWdnMiA9IGFnZysxOyBhZ2cyIDwgZ3JvdXBzLmxlbmd0aDsgYWdnMisrKXsgLy8gY2hlY2sgYWxsIG90aGVyIG9yaWdpbmFsIEFnZ3MgZm9yIHNhbWUgb3BlcmF0aW9uXG4gICAgICAgICAgaWYoZ3JvdXBzW2FnZzJdLmVudGl0aWVzLmhhcyhvcGVyYXRpb24pKXtcbiAgICAgICAgICAgIGFnZ3NDb250YWluaW5nT3BlcmF0aW9uLnB1c2goYWdnMik7IC8vIGFkZCBpdCB0byB0aGUgaW50ZXJzZWN0aW9uIGlkZW50aWZpZXJcbiAgICAgICAgICAgIGdyb3Vwc1thZ2cyXS5lbnRpdGllcy5kZWxldGUob3BlcmF0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYoYWdnc0NvbnRhaW5pbmdPcGVyYXRpb24ubGVuZ3RoID4gMSl7XG4gICAgICAgICAgY29uc3QgaW50ZXJzZWN0aW9uSW5kZXggPSBpbmRleEdldHRlcihhZ2dzQ29udGFpbmluZ09wZXJhdGlvbik7XG4gICAgICAgICAgaWYoIXJlc3VsdGluZ0ludGVyc2VjdGlvbnNbaW50ZXJzZWN0aW9uSW5kZXhdKXtcbiAgICAgICAgICAgIHJlc3VsdGluZ0ludGVyc2VjdGlvbnNbaW50ZXJzZWN0aW9uSW5kZXhdID0ge1xuICAgICAgICAgICAgICBlbnRpdGllczogbmV3IFNldChbb3BlcmF0aW9uXSksXG4gICAgICAgICAgICAgIGNoYXJhY3RlcmlzdGljczogT2JqZWN0LmFzc2lnbih7fSwgLi4uYWdnc0NvbnRhaW5pbmdPcGVyYXRpb24ubWFwKGkgPT4gZ3JvdXBzW2ldLmNoYXJhY3RlcmlzdGljcykpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0aW5nSW50ZXJzZWN0aW9uc1tpbnRlcnNlY3Rpb25JbmRleF0uZW50aXRpZXMuYWRkKG9wZXJhdGlvbik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGdyb3Vwc1thZ2ddLmVudGl0aWVzLmRlbGV0ZShvcGVyYXRpb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbLi4uZ3JvdXBzLCAuLi5PYmplY3QudmFsdWVzKHJlc3VsdGluZ0ludGVyc2VjdGlvbnMpXS5maWx0ZXIoYWdnID0+IGFnZy5lbnRpdGllcy5zaXplID4gMCk7XG4gIH1cbn0iXX0=

@@ -12,6 +12,6 @@ "use strict";

return 'Value Move'; // rename of number indexes are better described as moves
return models_1.capitalizeString(cOp instanceof models_1.PropertyComponentOperation
return (0, models_1.capitalizeString)(cOp instanceof models_1.PropertyComponentOperation
? cOp.propertyOperationType
: cOp.operationType);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW9wZXJhdGlvbi10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZW50aXR5LW9wZXJhdGlvbi10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQU15QjtBQUN6QixpRUFBNkQ7QUFFaEQsUUFBQSw0QkFBNEIsR0FBRyxJQUFJLHNDQUFpQixDQUMvRCxpQ0FBd0IsQ0FBQyxxQkFBcUIsRUFDOUMsQ0FBQyxHQUF1QixFQUFFLEVBQUU7O0lBQzFCLElBQUcsR0FBRyxZQUFZLG1DQUEwQjtXQUNqQyxHQUFHLENBQUMscUJBQXFCLEtBQUssc0JBQWEsQ0FBQyxNQUFNO1dBQ2xELEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFBLE1BQUEsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLDBDQUFFLE1BQU0sbUNBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssUUFBUTtRQUNySCxPQUFPLFlBQVksQ0FBQyxDQUFDLHlEQUF5RDtJQUNoRixPQUFPLHlCQUFnQixDQUFDLEdBQUcsWUFBWSxtQ0FBMEI7UUFDL0QsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUI7UUFDM0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUN6QixDQUFDLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNhcGl0YWxpemVTdHJpbmcsXG4gIENvbXBvbmVudE9wZXJhdGlvbixcbiAgQ29tcE9wQWdnQ2hhcmFjdGVyaXN0aWNzLFxuICBPcGVyYXRpb25UeXBlLFxuICBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbn0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IEVxdWFsaXR5QWdnTW9kdWxlIH0gZnJvbSAnLi4vLi4vYWdncmVnYXRpb24tbW9kdWxlJztcblxuZXhwb3J0IGNvbnN0IGVudGl0eU9wZXJhdGlvblR5cGVBZ2dNb2R1bGUgPSBuZXcgRXF1YWxpdHlBZ2dNb2R1bGUoXG4gIENvbXBPcEFnZ0NoYXJhY3RlcmlzdGljcy5FTlRJVFlfT1BFUkFUSU9OX1RZUEUsXG4gIChjT3A6IENvbXBvbmVudE9wZXJhdGlvbikgPT4ge1xuICAgIGlmKGNPcCBpbnN0YW5jZW9mIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uXG4gICAgICAgICAgICAmJiBjT3AucHJvcGVydHlPcGVyYXRpb25UeXBlID09PSBPcGVyYXRpb25UeXBlLlJFTkFNRVxuICAgICAgICAgICAgJiYgY09wLnBhdGhUcmFuc2l0aW9uLnYyICYmIHR5cGVvZiBjT3AucGF0aFRyYW5zaXRpb24udjJbKGNPcC5wYXRoVHJhbnNpdGlvbi52Mj8ubGVuZ3RoID8/IDApIC0gMV0gPT09ICdudW1iZXInKVxuICAgICAgcmV0dXJuICdWYWx1ZSBNb3ZlJzsgLy8gcmVuYW1lIG9mIG51bWJlciBpbmRleGVzIGFyZSBiZXR0ZXIgZGVzY3JpYmVkIGFzIG1vdmVzXG4gICAgcmV0dXJuIGNhcGl0YWxpemVTdHJpbmcoY09wIGluc3RhbmNlb2YgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25cbiAgICAgID8gY09wLnByb3BlcnR5T3BlcmF0aW9uVHlwZVxuICAgICAgOiBjT3Aub3BlcmF0aW9uVHlwZSk7XG4gIH0sXG4pOyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW9wZXJhdGlvbi10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZW50aXR5LW9wZXJhdGlvbi10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQU15QjtBQUN6QixpRUFBNkQ7QUFFaEQsUUFBQSw0QkFBNEIsR0FBRyxJQUFJLHNDQUFpQixDQUMvRCxpQ0FBd0IsQ0FBQyxxQkFBcUIsRUFDOUMsQ0FBQyxHQUF1QixFQUFFLEVBQUU7O0lBQzFCLElBQUcsR0FBRyxZQUFZLG1DQUEwQjtXQUNqQyxHQUFHLENBQUMscUJBQXFCLEtBQUssc0JBQWEsQ0FBQyxNQUFNO1dBQ2xELEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFBLE1BQUEsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLDBDQUFFLE1BQU0sbUNBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssUUFBUTtRQUNySCxPQUFPLFlBQVksQ0FBQyxDQUFDLHlEQUF5RDtJQUNoRixPQUFPLElBQUEseUJBQWdCLEVBQUMsR0FBRyxZQUFZLG1DQUEwQjtRQUMvRCxDQUFDLENBQUMsR0FBRyxDQUFDLHFCQUFxQjtRQUMzQixDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY2FwaXRhbGl6ZVN0cmluZyxcbiAgQ29tcG9uZW50T3BlcmF0aW9uLFxuICBDb21wT3BBZ2dDaGFyYWN0ZXJpc3RpY3MsXG4gIE9wZXJhdGlvblR5cGUsXG4gIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxufSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgRXF1YWxpdHlBZ2dNb2R1bGUgfSBmcm9tICcuLi8uLi9hZ2dyZWdhdGlvbi1tb2R1bGUnO1xuXG5leHBvcnQgY29uc3QgZW50aXR5T3BlcmF0aW9uVHlwZUFnZ01vZHVsZSA9IG5ldyBFcXVhbGl0eUFnZ01vZHVsZShcbiAgQ29tcE9wQWdnQ2hhcmFjdGVyaXN0aWNzLkVOVElUWV9PUEVSQVRJT05fVFlQRSxcbiAgKGNPcDogQ29tcG9uZW50T3BlcmF0aW9uKSA9PiB7XG4gICAgaWYoY09wIGluc3RhbmNlb2YgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25cbiAgICAgICAgICAgICYmIGNPcC5wcm9wZXJ0eU9wZXJhdGlvblR5cGUgPT09IE9wZXJhdGlvblR5cGUuUkVOQU1FXG4gICAgICAgICAgICAmJiBjT3AucGF0aFRyYW5zaXRpb24udjIgJiYgdHlwZW9mIGNPcC5wYXRoVHJhbnNpdGlvbi52MlsoY09wLnBhdGhUcmFuc2l0aW9uLnYyPy5sZW5ndGggPz8gMCkgLSAxXSA9PT0gJ251bWJlcicpXG4gICAgICByZXR1cm4gJ1ZhbHVlIE1vdmUnOyAvLyByZW5hbWUgb2YgbnVtYmVyIGluZGV4ZXMgYXJlIGJldHRlciBkZXNjcmliZWQgYXMgbW92ZXNcbiAgICByZXR1cm4gY2FwaXRhbGl6ZVN0cmluZyhjT3AgaW5zdGFuY2VvZiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblxuICAgICAgPyBjT3AucHJvcGVydHlPcGVyYXRpb25UeXBlXG4gICAgICA6IGNPcC5vcGVyYXRpb25UeXBlKTtcbiAgfSxcbik7Il19

@@ -7,4 +7,4 @@ "use strict";

exports.operationTypeAggModule = new aggregation_module_1.EqualityAggModule(models_1.CompOpAggCharacteristics.OPERATION_TYPE, (cOp) => {
return models_1.capitalizeString(cOp.operationType);
return (0, models_1.capitalizeString)(cOp.operationType);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvcGVyYXRpb24tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBaUc7QUFDakcsaUVBQTZEO0FBRWhELFFBQUEsc0JBQXNCLEdBQUcsSUFBSSxzQ0FBaUIsQ0FDekQsaUNBQXdCLENBQUMsY0FBYyxFQUN2QyxDQUFDLEdBQXVCLEVBQUUsRUFBRTtJQUMxQixPQUFPLHlCQUFnQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhcGl0YWxpemVTdHJpbmcsIENvbXBvbmVudE9wZXJhdGlvbiwgQ29tcE9wQWdnQ2hhcmFjdGVyaXN0aWNzIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IEVxdWFsaXR5QWdnTW9kdWxlIH0gZnJvbSAnLi4vLi4vYWdncmVnYXRpb24tbW9kdWxlJztcblxuZXhwb3J0IGNvbnN0IG9wZXJhdGlvblR5cGVBZ2dNb2R1bGUgPSBuZXcgRXF1YWxpdHlBZ2dNb2R1bGUoXG4gIENvbXBPcEFnZ0NoYXJhY3RlcmlzdGljcy5PUEVSQVRJT05fVFlQRSxcbiAgKGNPcDogQ29tcG9uZW50T3BlcmF0aW9uKSA9PiB7XG4gICAgcmV0dXJuIGNhcGl0YWxpemVTdHJpbmcoY09wLm9wZXJhdGlvblR5cGUpO1xuICB9LFxuKTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvcGVyYXRpb24tdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBaUc7QUFDakcsaUVBQTZEO0FBRWhELFFBQUEsc0JBQXNCLEdBQUcsSUFBSSxzQ0FBaUIsQ0FDekQsaUNBQXdCLENBQUMsY0FBYyxFQUN2QyxDQUFDLEdBQXVCLEVBQUUsRUFBRTtJQUMxQixPQUFPLElBQUEseUJBQWdCLEVBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FwaXRhbGl6ZVN0cmluZywgQ29tcG9uZW50T3BlcmF0aW9uLCBDb21wT3BBZ2dDaGFyYWN0ZXJpc3RpY3MgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgRXF1YWxpdHlBZ2dNb2R1bGUgfSBmcm9tICcuLi8uLi9hZ2dyZWdhdGlvbi1tb2R1bGUnO1xuXG5leHBvcnQgY29uc3Qgb3BlcmF0aW9uVHlwZUFnZ01vZHVsZSA9IG5ldyBFcXVhbGl0eUFnZ01vZHVsZShcbiAgQ29tcE9wQWdnQ2hhcmFjdGVyaXN0aWNzLk9QRVJBVElPTl9UWVBFLFxuICAoY09wOiBDb21wb25lbnRPcGVyYXRpb24pID0+IHtcbiAgICByZXR1cm4gY2FwaXRhbGl6ZVN0cmluZyhjT3Aub3BlcmF0aW9uVHlwZSk7XG4gIH0sXG4pOyJdfQ==

@@ -9,4 +9,4 @@ "use strict";

if (cOp instanceof models_1.PropertyComponentOperation
&& cOp.pathTransition.v1 && !models_1.arraysEqual(cOp.pathTransition.v1, cOp.pathTransition.v2 || []))
return utils_1.stringifyPath(cOp.pathTransition.v1);
&& cOp.pathTransition.v1 && !(0, models_1.arraysEqual)(cOp.pathTransition.v1, cOp.pathTransition.v2 || []))
return (0, utils_1.stringifyPath)(cOp.pathTransition.v1);
return;

@@ -16,5 +16,5 @@ });

if (cOp instanceof models_1.PropertyComponentOperation && cOp.pathTransition.v2)
return utils_1.stringifyPath(cOp.pathTransition.v2);
return (0, utils_1.stringifyPath)(cOp.pathTransition.v2);
return;
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3BlcnR5LXBhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBS3lCO0FBQ3pCLGlFQUE2RDtBQUM3RCxtQ0FBd0M7QUFFM0IsUUFBQSx1QkFBdUIsR0FBRyxJQUFJLHNDQUFpQixDQUMxRCxpQ0FBd0IsQ0FBQyxvQkFBb0IsRUFDN0MsQ0FBQyxHQUF1QixFQUFFLEVBQUU7SUFDMUIsSUFBRyxHQUFHLFlBQVksbUNBQTBCO1dBQ3ZDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUYsT0FBTyxxQkFBYSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUMsT0FBTztBQUNULENBQUMsQ0FDRixDQUFDO0FBRVcsUUFBQSx1QkFBdUIsR0FBRyxJQUFJLHNDQUFpQixDQUMxRCxpQ0FBd0IsQ0FBQyxtQkFBbUIsRUFDNUMsQ0FBQyxHQUF1QixFQUFFLEVBQUU7SUFDMUIsSUFBRyxHQUFHLFlBQVksbUNBQTBCLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQ25FLE9BQU8scUJBQWEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLE9BQU87QUFDVCxDQUFDLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFycmF5c0VxdWFsLFxuICBDb21wb25lbnRPcGVyYXRpb24sXG4gIENvbXBPcEFnZ0NoYXJhY3RlcmlzdGljcyxcbiAgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG59IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBFcXVhbGl0eUFnZ01vZHVsZSB9IGZyb20gJy4uLy4uL2FnZ3JlZ2F0aW9uLW1vZHVsZSc7XG5pbXBvcnQgeyBzdHJpbmdpZnlQYXRoIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eVBhdGhWMUFnZ01vZHVsZSA9IG5ldyBFcXVhbGl0eUFnZ01vZHVsZShcbiAgQ29tcE9wQWdnQ2hhcmFjdGVyaXN0aWNzLlBST1BFUlRZX1BBVEhfQkVGT1JFLFxuICAoY09wOiBDb21wb25lbnRPcGVyYXRpb24pID0+IHtcbiAgICBpZihjT3AgaW5zdGFuY2VvZiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblxuICAgICAgJiYgY09wLnBhdGhUcmFuc2l0aW9uLnYxICYmICFhcnJheXNFcXVhbChjT3AucGF0aFRyYW5zaXRpb24udjEsIGNPcC5wYXRoVHJhbnNpdGlvbi52MiB8fCBbXSkpXG4gICAgICByZXR1cm4gc3RyaW5naWZ5UGF0aChjT3AucGF0aFRyYW5zaXRpb24udjEpO1xuICAgIHJldHVybjtcbiAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eVBhdGhWMkFnZ01vZHVsZSA9IG5ldyBFcXVhbGl0eUFnZ01vZHVsZShcbiAgQ29tcE9wQWdnQ2hhcmFjdGVyaXN0aWNzLlBST1BFUlRZX1BBVEhfQUZURVIsXG4gIChjT3A6IENvbXBvbmVudE9wZXJhdGlvbikgPT4ge1xuICAgIGlmKGNPcCBpbnN0YW5jZW9mIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uICYmIGNPcC5wYXRoVHJhbnNpdGlvbi52MilcbiAgICAgIHJldHVybiBzdHJpbmdpZnlQYXRoKGNPcC5wYXRoVHJhbnNpdGlvbi52Mik7XG4gICAgcmV0dXJuO1xuICB9LFxuKTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktcGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3BlcnR5LXBhdGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBS3lCO0FBQ3pCLGlFQUE2RDtBQUM3RCxtQ0FBd0M7QUFFM0IsUUFBQSx1QkFBdUIsR0FBRyxJQUFJLHNDQUFpQixDQUMxRCxpQ0FBd0IsQ0FBQyxvQkFBb0IsRUFDN0MsQ0FBQyxHQUF1QixFQUFFLEVBQUU7SUFDMUIsSUFBRyxHQUFHLFlBQVksbUNBQTBCO1dBQ3ZDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBQSxvQkFBVyxFQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUM1RixPQUFPLElBQUEscUJBQWEsRUFBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLE9BQU87QUFDVCxDQUFDLENBQ0YsQ0FBQztBQUVXLFFBQUEsdUJBQXVCLEdBQUcsSUFBSSxzQ0FBaUIsQ0FDMUQsaUNBQXdCLENBQUMsbUJBQW1CLEVBQzVDLENBQUMsR0FBdUIsRUFBRSxFQUFFO0lBQzFCLElBQUcsR0FBRyxZQUFZLG1DQUEwQixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUNuRSxPQUFPLElBQUEscUJBQWEsRUFBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLE9BQU87QUFDVCxDQUFDLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFycmF5c0VxdWFsLFxuICBDb21wb25lbnRPcGVyYXRpb24sXG4gIENvbXBPcEFnZ0NoYXJhY3RlcmlzdGljcyxcbiAgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG59IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBFcXVhbGl0eUFnZ01vZHVsZSB9IGZyb20gJy4uLy4uL2FnZ3JlZ2F0aW9uLW1vZHVsZSc7XG5pbXBvcnQgeyBzdHJpbmdpZnlQYXRoIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eVBhdGhWMUFnZ01vZHVsZSA9IG5ldyBFcXVhbGl0eUFnZ01vZHVsZShcbiAgQ29tcE9wQWdnQ2hhcmFjdGVyaXN0aWNzLlBST1BFUlRZX1BBVEhfQkVGT1JFLFxuICAoY09wOiBDb21wb25lbnRPcGVyYXRpb24pID0+IHtcbiAgICBpZihjT3AgaW5zdGFuY2VvZiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblxuICAgICAgJiYgY09wLnBhdGhUcmFuc2l0aW9uLnYxICYmICFhcnJheXNFcXVhbChjT3AucGF0aFRyYW5zaXRpb24udjEsIGNPcC5wYXRoVHJhbnNpdGlvbi52MiB8fCBbXSkpXG4gICAgICByZXR1cm4gc3RyaW5naWZ5UGF0aChjT3AucGF0aFRyYW5zaXRpb24udjEpO1xuICAgIHJldHVybjtcbiAgfSxcbik7XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0eVBhdGhWMkFnZ01vZHVsZSA9IG5ldyBFcXVhbGl0eUFnZ01vZHVsZShcbiAgQ29tcE9wQWdnQ2hhcmFjdGVyaXN0aWNzLlBST1BFUlRZX1BBVEhfQUZURVIsXG4gIChjT3A6IENvbXBvbmVudE9wZXJhdGlvbikgPT4ge1xuICAgIGlmKGNPcCBpbnN0YW5jZW9mIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uICYmIGNPcC5wYXRoVHJhbnNpdGlvbi52MilcbiAgICAgIHJldHVybiBzdHJpbmdpZnlQYXRoKGNPcC5wYXRoVHJhbnNpdGlvbi52Mik7XG4gICAgcmV0dXJuO1xuICB9LFxuKTsiXX0=

@@ -12,7 +12,7 @@ "use strict";

const explodedOperation = explodeOperations(diff.componentOperations);
return add_aggregation_descriptions_1.addAggDescriptions(aggregations_extractor_1.ModuleTreeAggsExtractor.extract(moduleTree_1.compOperationWithRulesAggModuleTree(rules), explodedOperation), Object.values(descriptionCreators));
return (0, add_aggregation_descriptions_1.addAggDescriptions)(aggregations_extractor_1.ModuleTreeAggsExtractor.extract((0, moduleTree_1.compOperationWithRulesAggModuleTree)(rules), explodedOperation), Object.values(descriptionCreators));
}
exports.extractComponentOperationsAggs = extractComponentOperationsAggs;
function extractComponentOperationsAggsPerComponent(diff) {
const opsPerComponent = models_1.groupArrayBy(diff.componentOperations, (op) => op.componentTransition);
const opsPerComponent = (0, models_1.groupArrayBy)(diff.componentOperations, (op) => op.componentTransition);
return new Map(diff.componentTransitions.map(t => {

@@ -23,3 +23,3 @@ const componentOps = opsPerComponent.get(t);

const explodedOperation = explodeOperations(componentOps);
return [t, add_aggregation_descriptions_1.addAggDescriptions(aggregations_extractor_1.ModuleTreeAggsExtractor.extract(moduleTree_1.componentOperationSpecificAggModuleTree, explodedOperation), Object.values(descriptionCreators))];
return [t, (0, add_aggregation_descriptions_1.addAggDescriptions)(aggregations_extractor_1.ModuleTreeAggsExtractor.extract(moduleTree_1.componentOperationSpecificAggModuleTree, explodedOperation), Object.values(descriptionCreators))];
}));

@@ -29,4 +29,4 @@ }

const explodeOperations = (ops) => {
return node_1.flatMap(ops, o => (o instanceof models_1.UpdatePropertyComponentOperation) ? o.getLeaves() : [o]);
return (0, node_1.flatMap)(ops, o => (o instanceof models_1.UpdatePropertyComponentOperation) ? o.getLeaves() : [o]);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdC1vcGVyYXRpb25zLWFnZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRyYWN0LW9wZXJhdGlvbnMtYWdncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FTeUI7QUFDekIsNkNBQTZDO0FBQzdDLGtGQUFxRTtBQUNyRSxzRUFBb0U7QUFDcEUsOERBQThEO0FBQzlELDZDQUE0RztBQUU1RyxTQUFnQiw4QkFBOEIsQ0FDNUMsSUFBb0IsRUFDcEIsS0FBMEM7SUFHMUMsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0RSxPQUFPLGlEQUFrQixDQUN2QixnREFBdUIsQ0FBQyxPQUFPLENBQUMsZ0RBQW1DLENBQUMsS0FBSyxDQUFDLEVBQUUsaUJBQWlCLENBQUMsRUFDOUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUNuQyxDQUFDO0FBQ0osQ0FBQztBQVZELHdFQVVDO0FBRUQsU0FBZ0IsMENBQTBDLENBQ3hELElBQW9CO0lBR3BCLE1BQU0sZUFBZSxHQUFHLHFCQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUUvRixPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDL0MsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFHLENBQUMsWUFBWTtZQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakMsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsQ0FBQyxFQUFFLGlEQUFrQixDQUMzQixnREFBdUIsQ0FBQyxPQUFPLENBQUMsb0RBQXVDLEVBQUUsaUJBQWlCLENBQUMsRUFDM0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQWhCRCxnR0FnQkM7QUFFRCxNQUFNLGlCQUFpQixHQUFHLENBQUMsR0FBeUIsRUFBRSxFQUFFO0lBQ3RELE9BQU8sY0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLHlDQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xHLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudE9wZXJhdGlvbixcbiAgSW5mcmFNb2RlbERpZmYsXG4gIFRyYW5zaXRpb24sXG4gIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxuICBBZ2dyZWdhdGlvbixcbiAgZ3JvdXBBcnJheUJ5LFxuICBDb21wb25lbnQsXG4gIFJ1bGVFZmZlY3QsXG59IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnLi4vLi4vcHJpdmF0ZS9ub2RlJztcbmltcG9ydCB7IGFkZEFnZ0Rlc2NyaXB0aW9ucyB9IGZyb20gJy4uL2FkZC1hZ2dyZWdhdGlvbi1kZXNjcmlwdGlvbnMnO1xuaW1wb3J0IHsgTW9kdWxlVHJlZUFnZ3NFeHRyYWN0b3IgfSBmcm9tICcuLi9hZ2dyZWdhdGlvbnMtZXh0cmFjdG9yJztcbmltcG9ydCAqIGFzIGRlc2NyaXB0aW9uQ3JlYXRvcnMgZnJvbSAnLi9kZXNjcmlwdGlvbi1jcmVhdG9ycyc7XG5pbXBvcnQgeyBjb21wb25lbnRPcGVyYXRpb25TcGVjaWZpY0FnZ01vZHVsZVRyZWUsIGNvbXBPcGVyYXRpb25XaXRoUnVsZXNBZ2dNb2R1bGVUcmVlIH0gZnJvbSAnLi9tb2R1bGVUcmVlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RDb21wb25lbnRPcGVyYXRpb25zQWdncyhcbiAgZGlmZjogSW5mcmFNb2RlbERpZmYsXG4gIHJ1bGVzOiBNYXA8Q29tcG9uZW50T3BlcmF0aW9uLCBSdWxlRWZmZWN0Pixcbik6IEFnZ3JlZ2F0aW9uPENvbXBvbmVudE9wZXJhdGlvbj5bXSB7XG5cbiAgY29uc3QgZXhwbG9kZWRPcGVyYXRpb24gPSBleHBsb2RlT3BlcmF0aW9ucyhkaWZmLmNvbXBvbmVudE9wZXJhdGlvbnMpO1xuICByZXR1cm4gYWRkQWdnRGVzY3JpcHRpb25zKFxuICAgIE1vZHVsZVRyZWVBZ2dzRXh0cmFjdG9yLmV4dHJhY3QoY29tcE9wZXJhdGlvbldpdGhSdWxlc0FnZ01vZHVsZVRyZWUocnVsZXMpLCBleHBsb2RlZE9wZXJhdGlvbiksXG4gICAgT2JqZWN0LnZhbHVlcyhkZXNjcmlwdGlvbkNyZWF0b3JzKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RDb21wb25lbnRPcGVyYXRpb25zQWdnc1BlckNvbXBvbmVudChcbiAgZGlmZjogSW5mcmFNb2RlbERpZmYsXG4pOiBNYXA8VHJhbnNpdGlvbjxDb21wb25lbnQ+LCBBZ2dyZWdhdGlvbjxDb21wb25lbnRPcGVyYXRpb24+W10+e1xuXG4gIGNvbnN0IG9wc1BlckNvbXBvbmVudCA9IGdyb3VwQXJyYXlCeShkaWZmLmNvbXBvbmVudE9wZXJhdGlvbnMsIChvcCkgPT4gb3AuY29tcG9uZW50VHJhbnNpdGlvbik7XG5cbiAgcmV0dXJuIG5ldyBNYXAoZGlmZi5jb21wb25lbnRUcmFuc2l0aW9ucy5tYXAodCA9PiB7XG4gICAgY29uc3QgY29tcG9uZW50T3BzID0gb3BzUGVyQ29tcG9uZW50LmdldCh0KTtcbiAgICBpZighY29tcG9uZW50T3BzKSByZXR1cm4gW3QsIFtdXTtcblxuICAgIGNvbnN0IGV4cGxvZGVkT3BlcmF0aW9uID0gZXhwbG9kZU9wZXJhdGlvbnMoY29tcG9uZW50T3BzKTtcbiAgICByZXR1cm4gW3QsIGFkZEFnZ0Rlc2NyaXB0aW9ucyhcbiAgICAgIE1vZHVsZVRyZWVBZ2dzRXh0cmFjdG9yLmV4dHJhY3QoY29tcG9uZW50T3BlcmF0aW9uU3BlY2lmaWNBZ2dNb2R1bGVUcmVlLCBleHBsb2RlZE9wZXJhdGlvbiksXG4gICAgICBPYmplY3QudmFsdWVzKGRlc2NyaXB0aW9uQ3JlYXRvcnMpLFxuICAgICldO1xuICB9KSk7XG59XG5cbmNvbnN0IGV4cGxvZGVPcGVyYXRpb25zID0gKG9wczogQ29tcG9uZW50T3BlcmF0aW9uW10pID0+IHtcbiAgcmV0dXJuIGZsYXRNYXAob3BzLCBvID0+IChvIGluc3RhbmNlb2YgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24pID8gby5nZXRMZWF2ZXMoKSA6IFtvXSk7XG59OyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdC1vcGVyYXRpb25zLWFnZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRyYWN0LW9wZXJhdGlvbnMtYWdncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FTeUI7QUFDekIsNkNBQTZDO0FBQzdDLGtGQUFxRTtBQUNyRSxzRUFBb0U7QUFDcEUsOERBQThEO0FBQzlELDZDQUE0RztBQUU1RyxTQUFnQiw4QkFBOEIsQ0FDNUMsSUFBb0IsRUFDcEIsS0FBMEM7SUFHMUMsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN0RSxPQUFPLElBQUEsaURBQWtCLEVBQ3ZCLGdEQUF1QixDQUFDLE9BQU8sQ0FBQyxJQUFBLGdEQUFtQyxFQUFDLEtBQUssQ0FBQyxFQUFFLGlCQUFpQixDQUFDLEVBQzlGLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FDbkMsQ0FBQztBQUNKLENBQUM7QUFWRCx3RUFVQztBQUVELFNBQWdCLDBDQUEwQyxDQUN4RCxJQUFvQjtJQUdwQixNQUFNLGVBQWUsR0FBRyxJQUFBLHFCQUFZLEVBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUUvRixPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDL0MsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFHLENBQUMsWUFBWTtZQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakMsTUFBTSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUEsaURBQWtCLEVBQzNCLGdEQUF1QixDQUFDLE9BQU8sQ0FBQyxvREFBdUMsRUFBRSxpQkFBaUIsQ0FBQyxFQUMzRixNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQ25DLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBaEJELGdHQWdCQztBQUVELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxHQUF5QixFQUFFLEVBQUU7SUFDdEQsT0FBTyxJQUFBLGNBQU8sRUFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSx5Q0FBZ0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRPcGVyYXRpb24sXG4gIEluZnJhTW9kZWxEaWZmLFxuICBUcmFuc2l0aW9uLFxuICBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbiAgQWdncmVnYXRpb24sXG4gIGdyb3VwQXJyYXlCeSxcbiAgQ29tcG9uZW50LFxuICBSdWxlRWZmZWN0LFxufSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgZmxhdE1hcCB9IGZyb20gJy4uLy4uL3ByaXZhdGUvbm9kZSc7XG5pbXBvcnQgeyBhZGRBZ2dEZXNjcmlwdGlvbnMgfSBmcm9tICcuLi9hZGQtYWdncmVnYXRpb24tZGVzY3JpcHRpb25zJztcbmltcG9ydCB7IE1vZHVsZVRyZWVBZ2dzRXh0cmFjdG9yIH0gZnJvbSAnLi4vYWdncmVnYXRpb25zLWV4dHJhY3Rvcic7XG5pbXBvcnQgKiBhcyBkZXNjcmlwdGlvbkNyZWF0b3JzIGZyb20gJy4vZGVzY3JpcHRpb24tY3JlYXRvcnMnO1xuaW1wb3J0IHsgY29tcG9uZW50T3BlcmF0aW9uU3BlY2lmaWNBZ2dNb2R1bGVUcmVlLCBjb21wT3BlcmF0aW9uV2l0aFJ1bGVzQWdnTW9kdWxlVHJlZSB9IGZyb20gJy4vbW9kdWxlVHJlZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Q29tcG9uZW50T3BlcmF0aW9uc0FnZ3MoXG4gIGRpZmY6IEluZnJhTW9kZWxEaWZmLFxuICBydWxlczogTWFwPENvbXBvbmVudE9wZXJhdGlvbiwgUnVsZUVmZmVjdD4sXG4pOiBBZ2dyZWdhdGlvbjxDb21wb25lbnRPcGVyYXRpb24+W10ge1xuXG4gIGNvbnN0IGV4cGxvZGVkT3BlcmF0aW9uID0gZXhwbG9kZU9wZXJhdGlvbnMoZGlmZi5jb21wb25lbnRPcGVyYXRpb25zKTtcbiAgcmV0dXJuIGFkZEFnZ0Rlc2NyaXB0aW9ucyhcbiAgICBNb2R1bGVUcmVlQWdnc0V4dHJhY3Rvci5leHRyYWN0KGNvbXBPcGVyYXRpb25XaXRoUnVsZXNBZ2dNb2R1bGVUcmVlKHJ1bGVzKSwgZXhwbG9kZWRPcGVyYXRpb24pLFxuICAgIE9iamVjdC52YWx1ZXMoZGVzY3JpcHRpb25DcmVhdG9ycyksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0Q29tcG9uZW50T3BlcmF0aW9uc0FnZ3NQZXJDb21wb25lbnQoXG4gIGRpZmY6IEluZnJhTW9kZWxEaWZmLFxuKTogTWFwPFRyYW5zaXRpb248Q29tcG9uZW50PiwgQWdncmVnYXRpb248Q29tcG9uZW50T3BlcmF0aW9uPltdPntcblxuICBjb25zdCBvcHNQZXJDb21wb25lbnQgPSBncm91cEFycmF5QnkoZGlmZi5jb21wb25lbnRPcGVyYXRpb25zLCAob3ApID0+IG9wLmNvbXBvbmVudFRyYW5zaXRpb24pO1xuXG4gIHJldHVybiBuZXcgTWFwKGRpZmYuY29tcG9uZW50VHJhbnNpdGlvbnMubWFwKHQgPT4ge1xuICAgIGNvbnN0IGNvbXBvbmVudE9wcyA9IG9wc1BlckNvbXBvbmVudC5nZXQodCk7XG4gICAgaWYoIWNvbXBvbmVudE9wcykgcmV0dXJuIFt0LCBbXV07XG5cbiAgICBjb25zdCBleHBsb2RlZE9wZXJhdGlvbiA9IGV4cGxvZGVPcGVyYXRpb25zKGNvbXBvbmVudE9wcyk7XG4gICAgcmV0dXJuIFt0LCBhZGRBZ2dEZXNjcmlwdGlvbnMoXG4gICAgICBNb2R1bGVUcmVlQWdnc0V4dHJhY3Rvci5leHRyYWN0KGNvbXBvbmVudE9wZXJhdGlvblNwZWNpZmljQWdnTW9kdWxlVHJlZSwgZXhwbG9kZWRPcGVyYXRpb24pLFxuICAgICAgT2JqZWN0LnZhbHVlcyhkZXNjcmlwdGlvbkNyZWF0b3JzKSxcbiAgICApXTtcbiAgfSkpO1xufVxuXG5jb25zdCBleHBsb2RlT3BlcmF0aW9ucyA9IChvcHM6IENvbXBvbmVudE9wZXJhdGlvbltdKSA9PiB7XG4gIHJldHVybiBmbGF0TWFwKG9wcywgbyA9PiAobyBpbnN0YW5jZW9mIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKSA/IG8uZ2V0TGVhdmVzKCkgOiBbb10pO1xufTsiXX0=

@@ -65,3 +65,3 @@ "use strict";

return {
module: operation_risk_1.riskAggModuleCreator(rules),
module: (0, operation_risk_1.riskAggModuleCreator)(rules),
disableSubmoduleCollapse: true,

@@ -72,2 +72,2 @@ submodules: [exports.componentOperationAggModuleTree],

exports.compOperationWithRulesAggModuleTree = compOperationWithRulesAggModuleTree;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlVHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1vZHVsZVRyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQTJGO0FBRTNGLCtEQU0rQjtBQUMvQix1RkFBMkY7QUFDM0YseUVBQTRFO0FBQzVFLHVFQUF1RztBQUN2Ryx5RUFBMEc7QUFFMUcsTUFBTSx1QkFBdUIsR0FBRztJQUM5QjtRQUNFLE1BQU0sRUFBRSx5Q0FBd0I7UUFDaEMsb0JBQW9CLEVBQUUsSUFBSTtLQUMzQjtJQUNEO1FBQ0UsTUFBTSxFQUFFLHlDQUF3QjtRQUNoQyxvQkFBb0IsRUFBRSxJQUFJO0tBQzNCO0NBQ0YsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSx1Q0FBdUMsR0FBMEM7SUFDNUYsTUFBTSxFQUFFLDRDQUFzQjtJQUM5QixzQkFBc0IsRUFBRSxJQUFJO0lBQzVCLFVBQVUsRUFBRSxDQUFDO1lBQ1gsTUFBTSxFQUFFLDhDQUF3QjtZQUNoQyxzQkFBc0IsRUFBRSxJQUFJO1lBQzVCLFVBQVUsRUFBRSxDQUFDO29CQUNYLE1BQU0sRUFBRSxvREFBNEI7b0JBQ3BDLFVBQVUsRUFBRTt3QkFDVixFQUFFLE1BQU0sRUFBRSw2Q0FBdUIsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUU7d0JBQy9EOzRCQUNFLE1BQU0sRUFBRSx1Q0FBdUI7NEJBQy9CLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxpQ0FBd0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxVQUFVLEVBQUU7eUJBQ3BGO3dCQUNEOzRCQUNFLE1BQU0sRUFBRSx1Q0FBdUI7NEJBQy9CLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxpQ0FBd0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxVQUFVLEVBQUU7eUJBQ3BGO3FCQUNGO2lCQUNGLENBQUM7U0FDSCxDQUFDO0NBQ0gsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSwrQkFBK0IsR0FBMEM7SUFDcEYsTUFBTSxFQUFFLDRDQUFzQjtJQUM5QixzQkFBc0IsRUFBRSxJQUFJO0lBQzVCLFVBQVUsRUFBRSxDQUFDO1lBQ1gsTUFBTSxFQUFFLCtDQUF5QjtZQUNqQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLFVBQVUsRUFBRSxDQUFDLCtDQUF1QyxDQUFDO1NBQ3RELENBQUM7Q0FDSCxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsU0FBZ0IsbUNBQW1DLENBQ2pELEtBQTBDO0lBRTFDLE9BQU87UUFDTCxNQUFNLEVBQUUscUNBQW9CLENBQUMsS0FBSyxDQUFDO1FBQ25DLHdCQUF3QixFQUFFLElBQUk7UUFDOUIsVUFBVSxFQUFFLENBQUMsdUNBQStCLENBQUM7S0FDOUMsQ0FBQztBQUNKLENBQUM7QUFSRCxrRkFRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJ1bGVFZmZlY3QsIENvbXBvbmVudE9wZXJhdGlvbiwgQ29tcE9wQWdnQ2hhcmFjdGVyaXN0aWNzIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IEFnZ01vZHVsZVRyZWVOb2RlIH0gZnJvbSAnLi4vYWdncmVnYXRpb24tbW9kdWxlLXRyZWUtbm9kZSc7XG5pbXBvcnQge1xuICBjb21wb25lbnRUeXBlQWdnTW9kdWxlLFxuICBjb21wb25lbnRTdWJ0eXBlQWdnTW9kdWxlLFxuICBvcGVyYXRpb25UeXBlQWdnTW9kdWxlLFxuICBvcGVyYXRpb25FbnRpdHlBZ2dNb2R1bGUsXG4gIG9wZXJhdGlvbkNhdXNlQWdnTW9kdWxlLFxufSBmcm9tICcuL2FnZ3JlZ2F0aW9uLW1vZHVsZXMnO1xuaW1wb3J0IHsgZW50aXR5T3BlcmF0aW9uVHlwZUFnZ01vZHVsZSB9IGZyb20gJy4vYWdncmVnYXRpb24tbW9kdWxlcy9lbnRpdHktb3BlcmF0aW9uLXR5cGUnO1xuaW1wb3J0IHsgcmlza0FnZ01vZHVsZUNyZWF0b3IgfSBmcm9tICcuL2FnZ3JlZ2F0aW9uLW1vZHVsZXMvb3BlcmF0aW9uLXJpc2snO1xuaW1wb3J0IHsgcHJvcGVydHlQYXRoVjFBZ2dNb2R1bGUsIHByb3BlcnR5UGF0aFYyQWdnTW9kdWxlIH0gZnJvbSAnLi9hZ2dyZWdhdGlvbi1tb2R1bGVzL3Byb3BlcnR5LXBhdGgnO1xuaW1wb3J0IHsgcHJvcGVydHlWYWx1ZVYxQWdnTW9kdWxlLCBwcm9wZXJ0eVZhbHVlVjJBZ2dNb2R1bGUgfSBmcm9tICcuL2FnZ3JlZ2F0aW9uLW1vZHVsZXMvcHJvcGVydHktdmFsdWUnO1xuXG5jb25zdCBwcm9wZXJ0eVZhbHVlU3ViTW9kdWxlcyA9IFtcbiAge1xuICAgIG1vZHVsZTogcHJvcGVydHlWYWx1ZVYxQWdnTW9kdWxlLFxuICAgIGRpc2FibGVPbk5vRXh0cmFJbmZvOiB0cnVlLFxuICB9LFxuICB7XG4gICAgbW9kdWxlOiBwcm9wZXJ0eVZhbHVlVjJBZ2dNb2R1bGUsXG4gICAgZGlzYWJsZU9uTm9FeHRyYUluZm86IHRydWUsXG4gIH0sXG5dO1xuXG4vKipcbiAqIERlZmluZXMgdGhlIG1vZHVsZXMgdXNlZCB0byBidWlsZCB0aGUgYWdncmVnYXRpb25zIGZvciBvcGVyYXRpb25zIG9mIGEgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjb25zdCBjb21wb25lbnRPcGVyYXRpb25TcGVjaWZpY0FnZ01vZHVsZVRyZWU6IEFnZ01vZHVsZVRyZWVOb2RlPENvbXBvbmVudE9wZXJhdGlvbj4gPSB7XG4gIG1vZHVsZTogb3BlcmF0aW9uVHlwZUFnZ01vZHVsZSxcbiAgZm9yY2VTdWJtb2R1bGVDb2xsYXBzZTogdHJ1ZSxcbiAgc3VibW9kdWxlczogW3tcbiAgICBtb2R1bGU6IG9wZXJhdGlvbkVudGl0eUFnZ01vZHVsZSxcbiAgICBmb3JjZVN1Ym1vZHVsZUNvbGxhcHNlOiB0cnVlLFxuICAgIHN1Ym1vZHVsZXM6IFt7XG4gICAgICBtb2R1bGU6IGVudGl0eU9wZXJhdGlvblR5cGVBZ2dNb2R1bGUsXG4gICAgICBzdWJtb2R1bGVzOiBbXG4gICAgICAgIHsgbW9kdWxlOiBvcGVyYXRpb25DYXVzZUFnZ01vZHVsZSwgZGlzYWJsZU9uTm9FeHRyYUluZm86IHRydWUgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vZHVsZTogcHJvcGVydHlQYXRoVjFBZ2dNb2R1bGUsXG4gICAgICAgICAgc3VibW9kdWxlczogcHJvcGVydHlWYWx1ZVN1Yk1vZHVsZXMsXG4gICAgICAgICAgcmVxdWlyZWRDaGFyYWN0ZXJpc3RpY3M6IHsgW0NvbXBPcEFnZ0NoYXJhY3RlcmlzdGljcy5BRkZFQ1RFRF9FTlRJVFldOiAnUHJvcGVydHknIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBtb2R1bGU6IHByb3BlcnR5UGF0aFYyQWdnTW9kdWxlLFxuICAgICAgICAgIHN1Ym1vZHVsZXM6IHByb3BlcnR5VmFsdWVTdWJNb2R1bGVzLFxuICAgICAgICAgIHJlcXVpcmVkQ2hhcmFjdGVyaXN0aWNzOiB7IFtDb21wT3BBZ2dDaGFyYWN0ZXJpc3RpY3MuQUZGRUNURURfRU5USVRZXTogJ1Byb3BlcnR5JyB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9XSxcbiAgfV0sXG59O1xuXG4vKipcbiAqIERlZmluZXMgdGhlIG1vZHVsZXMgdXNlZCB0byBidWlsZCB0aGUgYWdncmVnYXRpb25zIGZvciBhbGwgb3BlcmF0aW9uc1xuICovXG5leHBvcnQgY29uc3QgY29tcG9uZW50T3BlcmF0aW9uQWdnTW9kdWxlVHJlZTogQWdnTW9kdWxlVHJlZU5vZGU8Q29tcG9uZW50T3BlcmF0aW9uPiA9IHtcbiAgbW9kdWxlOiBjb21wb25lbnRUeXBlQWdnTW9kdWxlLFxuICBmb3JjZVN1Ym1vZHVsZUNvbGxhcHNlOiB0cnVlLFxuICBzdWJtb2R1bGVzOiBbe1xuICAgIG1vZHVsZTogY29tcG9uZW50U3VidHlwZUFnZ01vZHVsZSxcbiAgICBkaXNhYmxlU3VibW9kdWxlQ29sbGFwc2U6IHRydWUsXG4gICAgc3VibW9kdWxlczogW2NvbXBvbmVudE9wZXJhdGlvblNwZWNpZmljQWdnTW9kdWxlVHJlZV0sXG4gIH1dLFxufTtcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBtb2R1bGVzIHVzZWQgdG8gYnVpbGQgdGhlIGFnZ3JlZ2F0aW9ucyBmb3IgYWxsIG9wZXJhdGlvbnMsXG4gKiBpbmNsdWRpbmcgcmlzayBjYWxjdWxhdGVkIGZyb20gcnVsZSBlZmZlY3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wT3BlcmF0aW9uV2l0aFJ1bGVzQWdnTW9kdWxlVHJlZSAoXG4gIHJ1bGVzOiBNYXA8Q29tcG9uZW50T3BlcmF0aW9uLCBSdWxlRWZmZWN0Pixcbik6IEFnZ01vZHVsZVRyZWVOb2RlPENvbXBvbmVudE9wZXJhdGlvbj57XG4gIHJldHVybiB7XG4gICAgbW9kdWxlOiByaXNrQWdnTW9kdWxlQ3JlYXRvcihydWxlcyksXG4gICAgZGlzYWJsZVN1Ym1vZHVsZUNvbGxhcHNlOiB0cnVlLFxuICAgIHN1Ym1vZHVsZXM6IFtjb21wb25lbnRPcGVyYXRpb25BZ2dNb2R1bGVUcmVlXSxcbiAgfTtcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlVHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1vZHVsZVRyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQTJGO0FBRTNGLCtEQU0rQjtBQUMvQix1RkFBMkY7QUFDM0YseUVBQTRFO0FBQzVFLHVFQUF1RztBQUN2Ryx5RUFBMEc7QUFFMUcsTUFBTSx1QkFBdUIsR0FBRztJQUM5QjtRQUNFLE1BQU0sRUFBRSx5Q0FBd0I7UUFDaEMsb0JBQW9CLEVBQUUsSUFBSTtLQUMzQjtJQUNEO1FBQ0UsTUFBTSxFQUFFLHlDQUF3QjtRQUNoQyxvQkFBb0IsRUFBRSxJQUFJO0tBQzNCO0NBQ0YsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSx1Q0FBdUMsR0FBMEM7SUFDNUYsTUFBTSxFQUFFLDRDQUFzQjtJQUM5QixzQkFBc0IsRUFBRSxJQUFJO0lBQzVCLFVBQVUsRUFBRSxDQUFDO1lBQ1gsTUFBTSxFQUFFLDhDQUF3QjtZQUNoQyxzQkFBc0IsRUFBRSxJQUFJO1lBQzVCLFVBQVUsRUFBRSxDQUFDO29CQUNYLE1BQU0sRUFBRSxvREFBNEI7b0JBQ3BDLFVBQVUsRUFBRTt3QkFDVixFQUFFLE1BQU0sRUFBRSw2Q0FBdUIsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUU7d0JBQy9EOzRCQUNFLE1BQU0sRUFBRSx1Q0FBdUI7NEJBQy9CLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxpQ0FBd0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxVQUFVLEVBQUU7eUJBQ3BGO3dCQUNEOzRCQUNFLE1BQU0sRUFBRSx1Q0FBdUI7NEJBQy9CLFVBQVUsRUFBRSx1QkFBdUI7NEJBQ25DLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxpQ0FBd0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxVQUFVLEVBQUU7eUJBQ3BGO3FCQUNGO2lCQUNGLENBQUM7U0FDSCxDQUFDO0NBQ0gsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSwrQkFBK0IsR0FBMEM7SUFDcEYsTUFBTSxFQUFFLDRDQUFzQjtJQUM5QixzQkFBc0IsRUFBRSxJQUFJO0lBQzVCLFVBQVUsRUFBRSxDQUFDO1lBQ1gsTUFBTSxFQUFFLCtDQUF5QjtZQUNqQyx3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLFVBQVUsRUFBRSxDQUFDLCtDQUF1QyxDQUFDO1NBQ3RELENBQUM7Q0FDSCxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsU0FBZ0IsbUNBQW1DLENBQ2pELEtBQTBDO0lBRTFDLE9BQU87UUFDTCxNQUFNLEVBQUUsSUFBQSxxQ0FBb0IsRUFBQyxLQUFLLENBQUM7UUFDbkMsd0JBQXdCLEVBQUUsSUFBSTtRQUM5QixVQUFVLEVBQUUsQ0FBQyx1Q0FBK0IsQ0FBQztLQUM5QyxDQUFDO0FBQ0osQ0FBQztBQVJELGtGQVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVsZUVmZmVjdCwgQ29tcG9uZW50T3BlcmF0aW9uLCBDb21wT3BBZ2dDaGFyYWN0ZXJpc3RpY3MgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgQWdnTW9kdWxlVHJlZU5vZGUgfSBmcm9tICcuLi9hZ2dyZWdhdGlvbi1tb2R1bGUtdHJlZS1ub2RlJztcbmltcG9ydCB7XG4gIGNvbXBvbmVudFR5cGVBZ2dNb2R1bGUsXG4gIGNvbXBvbmVudFN1YnR5cGVBZ2dNb2R1bGUsXG4gIG9wZXJhdGlvblR5cGVBZ2dNb2R1bGUsXG4gIG9wZXJhdGlvbkVudGl0eUFnZ01vZHVsZSxcbiAgb3BlcmF0aW9uQ2F1c2VBZ2dNb2R1bGUsXG59IGZyb20gJy4vYWdncmVnYXRpb24tbW9kdWxlcyc7XG5pbXBvcnQgeyBlbnRpdHlPcGVyYXRpb25UeXBlQWdnTW9kdWxlIH0gZnJvbSAnLi9hZ2dyZWdhdGlvbi1tb2R1bGVzL2VudGl0eS1vcGVyYXRpb24tdHlwZSc7XG5pbXBvcnQgeyByaXNrQWdnTW9kdWxlQ3JlYXRvciB9IGZyb20gJy4vYWdncmVnYXRpb24tbW9kdWxlcy9vcGVyYXRpb24tcmlzayc7XG5pbXBvcnQgeyBwcm9wZXJ0eVBhdGhWMUFnZ01vZHVsZSwgcHJvcGVydHlQYXRoVjJBZ2dNb2R1bGUgfSBmcm9tICcuL2FnZ3JlZ2F0aW9uLW1vZHVsZXMvcHJvcGVydHktcGF0aCc7XG5pbXBvcnQgeyBwcm9wZXJ0eVZhbHVlVjFBZ2dNb2R1bGUsIHByb3BlcnR5VmFsdWVWMkFnZ01vZHVsZSB9IGZyb20gJy4vYWdncmVnYXRpb24tbW9kdWxlcy9wcm9wZXJ0eS12YWx1ZSc7XG5cbmNvbnN0IHByb3BlcnR5VmFsdWVTdWJNb2R1bGVzID0gW1xuICB7XG4gICAgbW9kdWxlOiBwcm9wZXJ0eVZhbHVlVjFBZ2dNb2R1bGUsXG4gICAgZGlzYWJsZU9uTm9FeHRyYUluZm86IHRydWUsXG4gIH0sXG4gIHtcbiAgICBtb2R1bGU6IHByb3BlcnR5VmFsdWVWMkFnZ01vZHVsZSxcbiAgICBkaXNhYmxlT25Ob0V4dHJhSW5mbzogdHJ1ZSxcbiAgfSxcbl07XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgbW9kdWxlcyB1c2VkIHRvIGJ1aWxkIHRoZSBhZ2dyZWdhdGlvbnMgZm9yIG9wZXJhdGlvbnMgb2YgYSBjb21wb25lbnRcbiAqL1xuZXhwb3J0IGNvbnN0IGNvbXBvbmVudE9wZXJhdGlvblNwZWNpZmljQWdnTW9kdWxlVHJlZTogQWdnTW9kdWxlVHJlZU5vZGU8Q29tcG9uZW50T3BlcmF0aW9uPiA9IHtcbiAgbW9kdWxlOiBvcGVyYXRpb25UeXBlQWdnTW9kdWxlLFxuICBmb3JjZVN1Ym1vZHVsZUNvbGxhcHNlOiB0cnVlLFxuICBzdWJtb2R1bGVzOiBbe1xuICAgIG1vZHVsZTogb3BlcmF0aW9uRW50aXR5QWdnTW9kdWxlLFxuICAgIGZvcmNlU3VibW9kdWxlQ29sbGFwc2U6IHRydWUsXG4gICAgc3VibW9kdWxlczogW3tcbiAgICAgIG1vZHVsZTogZW50aXR5T3BlcmF0aW9uVHlwZUFnZ01vZHVsZSxcbiAgICAgIHN1Ym1vZHVsZXM6IFtcbiAgICAgICAgeyBtb2R1bGU6IG9wZXJhdGlvbkNhdXNlQWdnTW9kdWxlLCBkaXNhYmxlT25Ob0V4dHJhSW5mbzogdHJ1ZSB9LFxuICAgICAgICB7XG4gICAgICAgICAgbW9kdWxlOiBwcm9wZXJ0eVBhdGhWMUFnZ01vZHVsZSxcbiAgICAgICAgICBzdWJtb2R1bGVzOiBwcm9wZXJ0eVZhbHVlU3ViTW9kdWxlcyxcbiAgICAgICAgICByZXF1aXJlZENoYXJhY3RlcmlzdGljczogeyBbQ29tcE9wQWdnQ2hhcmFjdGVyaXN0aWNzLkFGRkVDVEVEX0VOVElUWV06ICdQcm9wZXJ0eScgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG1vZHVsZTogcHJvcGVydHlQYXRoVjJBZ2dNb2R1bGUsXG4gICAgICAgICAgc3VibW9kdWxlczogcHJvcGVydHlWYWx1ZVN1Yk1vZHVsZXMsXG4gICAgICAgICAgcmVxdWlyZWRDaGFyYWN0ZXJpc3RpY3M6IHsgW0NvbXBPcEFnZ0NoYXJhY3RlcmlzdGljcy5BRkZFQ1RFRF9FTlRJVFldOiAnUHJvcGVydHknIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH1dLFxuICB9XSxcbn07XG5cbi8qKlxuICogRGVmaW5lcyB0aGUgbW9kdWxlcyB1c2VkIHRvIGJ1aWxkIHRoZSBhZ2dyZWdhdGlvbnMgZm9yIGFsbCBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBjb21wb25lbnRPcGVyYXRpb25BZ2dNb2R1bGVUcmVlOiBBZ2dNb2R1bGVUcmVlTm9kZTxDb21wb25lbnRPcGVyYXRpb24+ID0ge1xuICBtb2R1bGU6IGNvbXBvbmVudFR5cGVBZ2dNb2R1bGUsXG4gIGZvcmNlU3VibW9kdWxlQ29sbGFwc2U6IHRydWUsXG4gIHN1Ym1vZHVsZXM6IFt7XG4gICAgbW9kdWxlOiBjb21wb25lbnRTdWJ0eXBlQWdnTW9kdWxlLFxuICAgIGRpc2FibGVTdWJtb2R1bGVDb2xsYXBzZTogdHJ1ZSxcbiAgICBzdWJtb2R1bGVzOiBbY29tcG9uZW50T3BlcmF0aW9uU3BlY2lmaWNBZ2dNb2R1bGVUcmVlXSxcbiAgfV0sXG59O1xuXG4vKipcbiAqIERlZmluZXMgdGhlIG1vZHVsZXMgdXNlZCB0byBidWlsZCB0aGUgYWdncmVnYXRpb25zIGZvciBhbGwgb3BlcmF0aW9ucyxcbiAqIGluY2x1ZGluZyByaXNrIGNhbGN1bGF0ZWQgZnJvbSBydWxlIGVmZmVjdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBPcGVyYXRpb25XaXRoUnVsZXNBZ2dNb2R1bGVUcmVlIChcbiAgcnVsZXM6IE1hcDxDb21wb25lbnRPcGVyYXRpb24sIFJ1bGVFZmZlY3Q+LFxuKTogQWdnTW9kdWxlVHJlZU5vZGU8Q29tcG9uZW50T3BlcmF0aW9uPntcbiAgcmV0dXJuIHtcbiAgICBtb2R1bGU6IHJpc2tBZ2dNb2R1bGVDcmVhdG9yKHJ1bGVzKSxcbiAgICBkaXNhYmxlU3VibW9kdWxlQ29sbGFwc2U6IHRydWUsXG4gICAgc3VibW9kdWxlczogW2NvbXBvbmVudE9wZXJhdGlvbkFnZ01vZHVsZVRyZWVdLFxuICB9O1xufSJdfQ==

@@ -10,9 +10,9 @@ "use strict";

const basicDiff = new model_diffing_1.DiffCreator(infraModelTransition).create();
const propagatedDiff = model_diffing_1.propagateChanges(basicDiff);
const ruleOutputs = apply_rules_1.applyRules(propagatedDiff, rules);
const aggregations = aggregations_1.extractComponentOperationsAggs(propagatedDiff, ruleOutputs);
const aggregationsPerComponent = aggregations_1.extractComponentOperationsAggsPerComponent(propagatedDiff);
const propagatedDiff = (0, model_diffing_1.propagateChanges)(basicDiff);
const ruleOutputs = (0, apply_rules_1.applyRules)(propagatedDiff, rules);
const aggregations = (0, aggregations_1.extractComponentOperationsAggs)(propagatedDiff, ruleOutputs);
const aggregationsPerComponent = (0, aggregations_1.extractComponentOperationsAggsPerComponent)(propagatedDiff);
return new models_1.ChangeAnalysisReport(propagatedDiff, aggregations, aggregationsPerComponent, ruleOutputs);
}
exports.createChangeAnalysisReport = createChangeAnalysisReport;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNoYW5nZS1hbmFseXNpcy1yZXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjcmVhdGUtY2hhbmdlLWFuYWx5c2lzLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBK0U7QUFFL0Usa0RBQTZHO0FBQzdHLG9EQUFpRTtBQUNqRSxzREFBa0Q7QUFFbEQsU0FBZ0IsMEJBQTBCLENBQ3hDLG9CQUE0QyxFQUM1QyxLQUFpQjtJQUVqQixNQUFNLFNBQVMsR0FBRyxJQUFJLDJCQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqRSxNQUFNLGNBQWMsR0FBRyxnQ0FBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxNQUFNLFdBQVcsR0FBRyx3QkFBVSxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0RCxNQUFNLFlBQVksR0FBRyw2Q0FBOEIsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakYsTUFBTSx3QkFBd0IsR0FBRyx5REFBMEMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUU1RixPQUFPLElBQUksNkJBQW9CLENBQzdCLGNBQWMsRUFDZCxZQUFZLEVBQ1osd0JBQXdCLEVBQ3hCLFdBQVcsQ0FDWixDQUFDO0FBQ0osQ0FBQztBQWhCRCxnRUFnQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmZyYU1vZGVsLCBDaGFuZ2VBbmFseXNpc1JlcG9ydCwgVHJhbnNpdGlvbiB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBDVXNlclJ1bGVzIH0gZnJvbSAnQGF3cy1jMmEvcnVsZXMnO1xuaW1wb3J0IHsgZXh0cmFjdENvbXBvbmVudE9wZXJhdGlvbnNBZ2dzLCBleHRyYWN0Q29tcG9uZW50T3BlcmF0aW9uc0FnZ3NQZXJDb21wb25lbnQgfSBmcm9tICcuLi9hZ2dyZWdhdGlvbnMnO1xuaW1wb3J0IHsgRGlmZkNyZWF0b3IsIHByb3BhZ2F0ZUNoYW5nZXMgfSBmcm9tICcuLi9tb2RlbC1kaWZmaW5nJztcbmltcG9ydCB7IGFwcGx5UnVsZXMgfSBmcm9tICcuLi9ydWxlcy9hcHBseS1ydWxlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDaGFuZ2VBbmFseXNpc1JlcG9ydChcbiAgaW5mcmFNb2RlbFRyYW5zaXRpb246IFRyYW5zaXRpb248SW5mcmFNb2RlbD4sXG4gIHJ1bGVzOiBDVXNlclJ1bGVzLFxuKTogQ2hhbmdlQW5hbHlzaXNSZXBvcnR7XG4gIGNvbnN0IGJhc2ljRGlmZiA9IG5ldyBEaWZmQ3JlYXRvcihpbmZyYU1vZGVsVHJhbnNpdGlvbikuY3JlYXRlKCk7XG4gIGNvbnN0IHByb3BhZ2F0ZWREaWZmID0gcHJvcGFnYXRlQ2hhbmdlcyhiYXNpY0RpZmYpO1xuICBjb25zdCBydWxlT3V0cHV0cyA9IGFwcGx5UnVsZXMocHJvcGFnYXRlZERpZmYsIHJ1bGVzKTtcbiAgY29uc3QgYWdncmVnYXRpb25zID0gZXh0cmFjdENvbXBvbmVudE9wZXJhdGlvbnNBZ2dzKHByb3BhZ2F0ZWREaWZmLCBydWxlT3V0cHV0cyk7XG4gIGNvbnN0IGFnZ3JlZ2F0aW9uc1BlckNvbXBvbmVudCA9IGV4dHJhY3RDb21wb25lbnRPcGVyYXRpb25zQWdnc1BlckNvbXBvbmVudChwcm9wYWdhdGVkRGlmZik7XG5cbiAgcmV0dXJuIG5ldyBDaGFuZ2VBbmFseXNpc1JlcG9ydChcbiAgICBwcm9wYWdhdGVkRGlmZixcbiAgICBhZ2dyZWdhdGlvbnMsXG4gICAgYWdncmVnYXRpb25zUGVyQ29tcG9uZW50LFxuICAgIHJ1bGVPdXRwdXRzLFxuICApO1xufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNoYW5nZS1hbmFseXNpcy1yZXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjcmVhdGUtY2hhbmdlLWFuYWx5c2lzLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBK0U7QUFFL0Usa0RBQTZHO0FBQzdHLG9EQUFpRTtBQUNqRSxzREFBa0Q7QUFFbEQsU0FBZ0IsMEJBQTBCLENBQ3hDLG9CQUE0QyxFQUM1QyxLQUFpQjtJQUVqQixNQUFNLFNBQVMsR0FBRyxJQUFJLDJCQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqRSxNQUFNLGNBQWMsR0FBRyxJQUFBLGdDQUFnQixFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUEsd0JBQVUsRUFBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEQsTUFBTSxZQUFZLEdBQUcsSUFBQSw2Q0FBOEIsRUFBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakYsTUFBTSx3QkFBd0IsR0FBRyxJQUFBLHlEQUEwQyxFQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTVGLE9BQU8sSUFBSSw2QkFBb0IsQ0FDN0IsY0FBYyxFQUNkLFlBQVksRUFDWix3QkFBd0IsRUFDeEIsV0FBVyxDQUNaLENBQUM7QUFDSixDQUFDO0FBaEJELGdFQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluZnJhTW9kZWwsIENoYW5nZUFuYWx5c2lzUmVwb3J0LCBUcmFuc2l0aW9uIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IENVc2VyUnVsZXMgfSBmcm9tICdAYXdzLWMyYS9ydWxlcyc7XG5pbXBvcnQgeyBleHRyYWN0Q29tcG9uZW50T3BlcmF0aW9uc0FnZ3MsIGV4dHJhY3RDb21wb25lbnRPcGVyYXRpb25zQWdnc1BlckNvbXBvbmVudCB9IGZyb20gJy4uL2FnZ3JlZ2F0aW9ucyc7XG5pbXBvcnQgeyBEaWZmQ3JlYXRvciwgcHJvcGFnYXRlQ2hhbmdlcyB9IGZyb20gJy4uL21vZGVsLWRpZmZpbmcnO1xuaW1wb3J0IHsgYXBwbHlSdWxlcyB9IGZyb20gJy4uL3J1bGVzL2FwcGx5LXJ1bGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNoYW5nZUFuYWx5c2lzUmVwb3J0KFxuICBpbmZyYU1vZGVsVHJhbnNpdGlvbjogVHJhbnNpdGlvbjxJbmZyYU1vZGVsPixcbiAgcnVsZXM6IENVc2VyUnVsZXMsXG4pOiBDaGFuZ2VBbmFseXNpc1JlcG9ydHtcbiAgY29uc3QgYmFzaWNEaWZmID0gbmV3IERpZmZDcmVhdG9yKGluZnJhTW9kZWxUcmFuc2l0aW9uKS5jcmVhdGUoKTtcbiAgY29uc3QgcHJvcGFnYXRlZERpZmYgPSBwcm9wYWdhdGVDaGFuZ2VzKGJhc2ljRGlmZik7XG4gIGNvbnN0IHJ1bGVPdXRwdXRzID0gYXBwbHlSdWxlcyhwcm9wYWdhdGVkRGlmZiwgcnVsZXMpO1xuICBjb25zdCBhZ2dyZWdhdGlvbnMgPSBleHRyYWN0Q29tcG9uZW50T3BlcmF0aW9uc0FnZ3MocHJvcGFnYXRlZERpZmYsIHJ1bGVPdXRwdXRzKTtcbiAgY29uc3QgYWdncmVnYXRpb25zUGVyQ29tcG9uZW50ID0gZXh0cmFjdENvbXBvbmVudE9wZXJhdGlvbnNBZ2dzUGVyQ29tcG9uZW50KHByb3BhZ2F0ZWREaWZmKTtcblxuICByZXR1cm4gbmV3IENoYW5nZUFuYWx5c2lzUmVwb3J0KFxuICAgIHByb3BhZ2F0ZWREaWZmLFxuICAgIGFnZ3JlZ2F0aW9ucyxcbiAgICBhZ2dyZWdhdGlvbnNQZXJDb21wb25lbnQsXG4gICAgcnVsZU91dHB1dHMsXG4gICk7XG59Il19

@@ -11,3 +11,3 @@ "use strict";

function propagateChanges(modelDiff) {
const propagatedOperations = node_1.flatMap(modelDiff.componentOperations, o => {
const propagatedOperations = (0, node_1.flatMap)(modelDiff.componentOperations, o => {
if (o instanceof models_1.UpdatePropertyComponentOperation) {

@@ -38,3 +38,3 @@ return propagatePropertyOperation(o, modelDiff);

return compOp instanceof models_1.UpdatePropertyComponentOperation
? node_1.flatMap(((_a = compOp.innerOperations) !== null && _a !== void 0 ? _a : []), i => propagatePropertyOperation(i, modelDiff))
? (0, node_1.flatMap)(((_a = compOp.innerOperations) !== null && _a !== void 0 ? _a : []), i => propagatePropertyOperation(i, modelDiff))
: [];

@@ -48,5 +48,5 @@ /** if the property is a replacement-inducing collection and

&& v2 !== undefined
&& models_1.arraysEqual(Object.keys(v1.getCollection()), Object.keys(v2.getCollection()))
&& (0, models_1.arraysEqual)(Object.keys(v1.getCollection()), Object.keys(v2.getCollection()))
&& compOp instanceof models_1.UpdatePropertyComponentOperation) {
return node_1.flatMap(((_c = compOp.innerOperations) !== null && _c !== void 0 ? _c : []), i => propagatePropertyOperation(i, modelDiff));
return (0, node_1.flatMap)(((_c = compOp.innerOperations) !== null && _c !== void 0 ? _c : []), i => propagatePropertyOperation(i, modelDiff));
}

@@ -77,3 +77,3 @@ }

.filter(r => r instanceof models_1.DependencyRelationship);
const replacementPropagations = node_1.flatMap(dependentRelationships, (rel) => {
const replacementPropagations = (0, node_1.flatMap)(dependentRelationships, (rel) => {
try {

@@ -142,2 +142,2 @@ const sourceComponentTransition = modelDiff.getComponentTransition(rel.source);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXByb3BhZ2F0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjaGFuZ2UtcHJvcGFnYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FnQnlCO0FBQ3pCLDBDQUEwQztBQUUxQzs7O0dBR0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxTQUF5QjtJQUN4RCxNQUFNLG9CQUFvQixHQUF5QixjQUFPLENBQUMsU0FBUyxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxFQUFFO1FBQzVGLElBQUcsQ0FBQyxZQUFZLHlDQUFnQyxFQUFDO1lBQy9DLE9BQU8sMEJBQTBCLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ2pEO2FBQU0sSUFBRyxDQUFDLFlBQVksaUNBQXdCLEVBQUM7WUFDOUMsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDL0M7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLHVCQUFjLENBQ3ZCLENBQUMsR0FBRyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxFQUMzRCxTQUFTLENBQUMsb0JBQW9CLEVBQzlCLFNBQVMsQ0FBQyxvQkFBb0IsQ0FDL0IsQ0FBQztBQUNKLENBQUM7QUFkRCw0Q0FjQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLDBCQUEwQixDQUNqQyxNQUFrQyxFQUNsQyxTQUF5Qjs7SUFFekIsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRS9DLElBQUcsZUFBZSxLQUFLLDRCQUFtQixDQUFDLFdBQVc7V0FDN0MsZUFBZSxLQUFLLDRCQUFtQixDQUFDLG9CQUFvQjtRQUNuRSxPQUFPLE1BQU0sWUFBWSx5Q0FBZ0M7WUFDdkQsQ0FBQyxDQUFDLGNBQU8sQ0FBQyxDQUFDLE1BQUEsTUFBTSxDQUFDLGVBQWUsbUNBQUksRUFBRSxDQUFDLEVB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QXVCLENBQUMsbUJBQW1CLENBQUM7U0FDbkYsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLHlDQUFnQztXQUNuRCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQWlELENBQUM7SUFFM0UsTUFBTSxjQUFjLEdBQUcsdUJBQXVCO1FBQzVDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxTQUFTLENBQUM7SUFFZCxNQUFNLFVBQVUsR0FBRyxjQUFjO1FBQy9CLENBQUMsQ0FBQyxNQUFBLG1CQUFtQixDQUFDLEVBQUUsMENBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQztRQUN0RSxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsT0FBTyxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRVcGRhdGVUeXBlLFxuICBEZXBlbmRlbmN5UmVsYXRpb25zaGlwLFxuICBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICBQcm9wZXJ0eVBhdGgsXG4gIENvbXBvbmVudE9wZXJhdGlvbixcbiAgT3BlcmF0aW9uQ2VydGFpbnR5LFxuICBSZW5hbWVDb21wb25lbnRPcGVyYXRpb24sXG4gIFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb24sXG4gIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxuICBUcmFuc2l0aW9uLFxuICBJbmZyYU1vZGVsRGlmZixcbiAgVHJhbnNpdGlvbk5vdEZvdW5kRXJyb3IsXG4gIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxuICBhcnJheXNFcXVhbCxcbn0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IGZsYXRNYXAgfSBmcm9tICcuLi9wcml2YXRlL25vZGUnO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIENvbXBvbmVudE9wZXJhdGlvbnMgY2F1c2VkIGJ5IGV4aXN0aW5nIG9uZXNcbiAqIEByZXR1cm5zIHRoZSBuZXcgSW5mcmFNb2RlbERpZmZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3BhZ2F0ZUNoYW5nZXMobW9kZWxEaWZmOiBJbmZyYU1vZGVsRGlmZik6IEluZnJhTW9kZWxEaWZme1xuICBjb25zdCBwcm9wYWdhdGVkT3BlcmF0aW9uczogQ29tcG9uZW50T3BlcmF0aW9uW10gPSBmbGF0TWFwKG1vZGVsRGlmZi5jb21wb25lbnRPcGVyYXRpb25zLCBvID0+IHtcbiAgICBpZihvIGluc3RhbmNlb2YgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24pe1xuICAgICAgcmV0dXJuIHByb3BhZ2F0ZVByb3BlcnR5T3BlcmF0aW9uKG8sIG1vZGVsRGlmZik7XG4gICAgfSBlbHNlIGlmKG8gaW5zdGFuY2VvZiBSZW5hbWVDb21wb25lbnRPcGVyYXRpb24pe1xuICAgICAgcmV0dXJuIHByb3BhZ2F0ZVJlbmFtZU9wZXJhdGlvbihvLCBtb2RlbERpZmYpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0pO1xuICByZXR1cm4gbmV3IEluZnJhTW9kZWxEaWZmKFxuICAgIFsuLi5tb2RlbERpZmYuY29tcG9uZW50T3BlcmF0aW9ucywgLi4ucHJvcGFnYXRlZE9wZXJhdGlvbnNdLFxuICAgIG1vZGVsRGlmZi5jb21wb25lbnRUcmFuc2l0aW9ucyxcbiAgICBtb2RlbERpZmYuaW5mcmFNb2RlbFRyYW5zaXRpb24sXG4gICk7XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbiBmb3IgYW55IENvbXBvbmVudCB0aGF0IGhhZCBhXG4gKiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiBvbiBhIHByb3BlcnR5IHdpdGggVXBkYXRlVHlwZSA9IFJFUExBQ0VNRU5UIG9yIFBPU1NJQkxFX1JFUExBQ0VNRU5ULlxuICogQ3JlYXRlcyBhbmQgcmVjdXJzaXZlbHkgcHJvcGFnYXRlcyB0aGUgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25zIGZvciB0aGUgcHJvcGVydGllcyBvZlxuICogb3RoZXIgQ29tcG9uZW50cyB0aGF0IGRlcGVuZCBvbiB0aGlzIENvbXBvbmVudC5cbiAqIEBwYXJhbSBjb21wT3AgdGhlIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIHRvIGJlIHByb3BhZ2F0ZWRcbiAqIEBwYXJhbSBtb2RlbERpZmYgdGhlIG9yaWdpbmFsIEluZnJhTW9kZWxEaWZmXG4gKi9cbmZ1bmN0aW9uIHByb3BhZ2F0ZVByb3BlcnR5T3BlcmF0aW9uKFxuICBjb21wT3A6IFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxuICBtb2RlbERpZmY6IEluZnJhTW9kZWxEaWZmLFxuKTogQ29tcG9uZW50T3BlcmF0aW9uW10ge1xuICBjb25zdCBjb21wb25lbnRVcGRhdGUgPSBjb21wT3AuZ2V0VXBkYXRlVHlwZSgpO1xuXG4gIGlmKGNvbXBvbmVudFVwZGF0ZSAhPT0gQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVFxuICAgICAgICAmJiBjb21wb25lbnRVcGRhdGUgIT09IENvbXBvbmVudFVwZGF0ZVR5cGUuUE9TU0lCTEVfUkVQTEFDRU1FTlQpXG4gICAgcmV0dXJuIGNvbXBPcCBpbnN0YW5jZW9mIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uXG4gICAgICA/IGZsYXRNYXAoKGNvbXBPcC5pbm5lck9wZXJhdGlvbnMgPz8gW10pLCBpID0+IHByb3BhZ2F0ZVByb3BlcnR5T3BlcmF0aW9uKGksIG1vZGVsRGlmZikpXG4gICAgICA6IFtdO1xuXG4gIC8qKiBpZiB0aGUgcHJvcGVydHkgaXMgYSByZXBsYWNlbWVudC1pbmR1Y2luZyBjb2xsZWN0aW9uIGFuZFxuICAgIC8qIHRoZSBrZXlzIGhhdmUgY2hhbmdlZCwgaXQgc2hvdWxkIHByb3BhZ2F0ZSB0byBhIHJlcGxhY2VtZW50XG4gICAgLyAqL1xuICBpZighY29tcE9wLnByb3BlcnR5VHJhbnNpdGlvbi52MT8uaXNQcmltaXRpdmUoKSl7XG4gICAgY29uc3Qge3YxLCB2Mn0gPSBjb21wT3AucHJvcGVydHlUcmFuc2l0aW9uO1xuICAgIGlmKHYxICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICYmIHYyICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICYmIGFycmF5c0VxdWFsKE9iamVjdC5rZXlzKHYxLmdldENvbGxlY3Rpb24oKSksIE9iamVjdC5rZXlzKHYyLmdldENvbGxlY3Rpb24oKSkpXG4gICAgICAgICAgICAmJiBjb21wT3AgaW5zdGFuY2VvZiBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblxuICAgICl7XG4gICAgICByZXR1cm4gZmxhdE1hcCgoY29tcE9wLmlubmVyT3BlcmF0aW9ucyA/PyBbXSksIGkgPT4gcHJvcGFnYXRlUHJvcGVydHlPcGVyYXRpb24oaSwgbW9kZWxEaWZmKSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29tcG9uZW50VHJhbnNpdGlvbiA9IGNvbXBPcC5jb21wb25lbnRUcmFuc2l0aW9uO1xuXG4gIGNvbnN0IHJlcGxhY2VtZW50T3AgPSBuZXcgUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbih7XG4gICAgY2VydGFpbnR5OiBjb21wb25lbnRVcGRhdGUgPT09IENvbXBvbmVudFVwZGF0ZVR5cGUuUE9TU0lCTEVfUkVQTEFDRU1FTlRcbiAgICAgID8gT3BlcmF0aW9uQ2VydGFpbnR5LlBBUlRJQUwgOiBPcGVyYXRpb25DZXJ0YWludHkuQUJTT0xVVEUsXG4gIH0sIHtcbiAgICBjYXVzZTogY29tcE9wLFxuICAgIGNvbXBvbmVudFRyYW5zaXRpb24sXG4gIH0sXG4gICk7XG5cbiAgcmV0dXJuIFtyZXBsYWNlbWVudE9wLCAuLi5wcm9wYWdhdGVSZXBsYWNlbWVudE9wZXJhdGlvbihyZXBsYWNlbWVudE9wLCBtb2RlbERpZmYpXTtcbn1cblxuZnVuY3Rpb24gcHJvcGFnYXRlUmVuYW1lT3BlcmF0aW9uKFxuICBjb21wT3A6IFJlbmFtZUNvbXBvbmVudE9wZXJhdGlvbixcbiAgbW9kZWxEaWZmOiBJbmZyYU1vZGVsRGlmZixcbik6IENvbXBvbmVudE9wZXJhdGlvbltdIHtcbiAgY29uc3QgcmVwbGFjZW1lbnRPcCA9IG5ldyBSZXBsYWNlQ29tcG9uZW50T3BlcmF0aW9uKFxuICAgIHtjZXJ0YWludHk6IE9wZXJhdGlvbkNlcnRhaW50eS5BQlNPTFVURX0sXG4gICAge1xuICAgICAgY2F1c2U6IGNvbXBPcCxcbiAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IGNvbXBPcC5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgIH0sXG4gICk7XG5cbiAgcmV0dXJuIFtyZXBsYWNlbWVudE9wLCAuLi5wcm9wYWdhdGVSZXBsYWNlbWVudE9wZXJhdGlvbihyZXBsYWNlbWVudE9wLCBtb2RlbERpZmYpXTtcbn1cblxuZnVuY3Rpb24gcHJvcGFnYXRlUmVwbGFjZW1lbnRPcGVyYXRpb24ocmVwbGFjZW1lbnRPcDogUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbiwgbW9kZWxEaWZmOiBJbmZyYU1vZGVsRGlmZil7XG5cbiAgY29uc3QgbmV3Q29tcG9uZW50ID0gcmVwbGFjZW1lbnRPcC5jb21wb25lbnRUcmFuc2l0aW9uLnYyO1xuICBpZighbmV3Q29tcG9uZW50KVxuICAgIHRocm93IEVycm9yKCdSZXBsYWNlQ29tcG9uZW50T3BlcmF0aW9uIGhhcyBubyBuZXcgQ29tcG9uZW50IHZlcnNpb24nKTtcblxuICBjb25zdCBkZXBlbmRlbnRSZWxhdGlvbnNoaXBzID0gWy4uLm5ld0NvbXBvbmVudC5pbmNvbWluZ11cbiAgICAuZmlsdGVyKHIgPT4gciBpbnN0YW5jZW9mIERlcGVuZGVuY3lSZWxhdGlvbnNoaXApIGFzIERlcGVuZGVuY3lSZWxhdGlvbnNoaXBbXTtcblxuXG4gIGNvbnN0IHJlcGxhY2VtZW50UHJvcGFnYXRpb25zID0gZmxhdE1hcChkZXBlbmRlbnRSZWxhdGlvbnNoaXBzLCAocmVsOiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwKSA9PiB7XG4gICAgdHJ5e1xuICAgICAgY29uc3Qgc291cmNlQ29tcG9uZW50VHJhbnNpdGlvbiA9IG1vZGVsRGlmZi5nZXRDb21wb25lbnRUcmFuc2l0aW9uKHJlbC5zb3VyY2UpO1xuXG4gICAgICBjb25zdCBjb25zZXF1ZW50UHJvcGVydHlVcGRhdGVPcCA9IGNyZWF0ZVVwZGF0ZU9wZXJhdGlvbkZvckNvbXBvbmVudChcbiAgICAgICAgbW9kZWxEaWZmLFxuICAgICAgICBzb3VyY2VDb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgICByZWwuc291cmNlUHJvcGVydHlQYXRoLFxuICAgICAgICByZXBsYWNlbWVudE9wLFxuICAgICAgKTtcblxuICAgICAgbGV0IHByb3BhZ2F0ZWRQcm9wZXJ0eVVwZGF0ZU9wOiBDb21wb25lbnRPcGVyYXRpb25bXSA9IFtdO1xuICAgICAgaWYoY29uc2VxdWVudFByb3BlcnR5VXBkYXRlT3ApXG4gICAgICAgIHByb3BhZ2F0ZWRQcm9wZXJ0eVVwZGF0ZU9wID0gW1xuICAgICAgICAgIGNvbnNlcXVlbnRQcm9wZXJ0eVVwZGF0ZU9wLFxuICAgICAgICAgIC4uLnByb3BhZ2F0ZVByb3BlcnR5T3BlcmF0aW9uKGNvbnNlcXVlbnRQcm9wZXJ0eVVwZGF0ZU9wLCBtb2RlbERpZmYpLFxuICAgICAgICBdO1xuXG4gICAgICByZXR1cm4gcHJvcGFnYXRlZFByb3BlcnR5VXBkYXRlT3A7XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICBpZighKGUgaW5zdGFuY2VvZiBUcmFuc2l0aW9uTm90Rm91bmRFcnJvcikpIHRocm93IGU7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gWy4uLnJlcGxhY2VtZW50UHJvcGFnYXRpb25zXTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIGZvciBhIGdpdmVuIGNvbXBvbmVudCwgY3VycmVudCBwcm9wZXJ0eSBwYXRoIGFuZCBjYXVzZVxuICogYnkgZmluZGluZyB0aGUgcHJldmlvdXMgcHJvcGVydHkgcGF0aCBhbmQgQ29tcG9uZW50UHJvcGVydHlWYWx1ZS5cbiAqIEBwYXJhbSBjb21wb25lbnRUcmFuc2l0aW9uXG4gKiBAcGFyYW0gdjJQcm9wZXJ0eVBhdGhcbiAqIEBwYXJhbSBjYXVzZVxuICogQHJldHVybnNcbiAqL1xuZnVuY3Rpb24gY3JlYXRlVXBkYXRlT3BlcmF0aW9uRm9yQ29tcG9uZW50KFxuICBtb2RlbERpZmY6IEluZnJhTW9kZWxEaWZmLFxuICBjb21wb25lbnRUcmFuc2l0aW9uOiBUcmFuc2l0aW9uPENvbXBvbmVudD4sXG4gIHYyUHJvcGVydHlQYXRoOiBQcm9wZXJ0eVBhdGgsXG4gIGNhdXNlOiBDb21wb25lbnRPcGVyYXRpb24sXG4pe1xuICBjb25zdCBbdjFQcm9wZXJ0eVBhdGgsIHYxUHJvcGVydHldID0gZ2V0VjFQcm9wZXJ0eUZvckNvbXBvbmVudFRyYW5zaXRpb24oXG4gICAgbW9kZWxEaWZmLFxuICAgIGNvbXBvbmVudFRyYW5zaXRpb24sXG4gICAgdjJQcm9wZXJ0eVBhdGgsXG4gICk7XG5cbiAgLy9JZiB0aGVyZSB3YXMgbm8gcHJldmlvdXMgcGF0aCwgaXQgbWVhbnMgdGhpcyB2YWx1ZSB3YXMgaW5zZXJ0ZWQuIE5vIHVwZGF0ZSB3aWxsIGJlIGRvbmVcbiAgaWYoIXYxUHJvcGVydHlQYXRoKSByZXR1cm47XG5cbiAgcmV0dXJuIG5ldyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbihcbiAgICB7Y2VydGFpbnR5OiBjYXVzZS5jZXJ0YWludHl9LFxuICAgIHtcbiAgICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHYxUHJvcGVydHlQYXRoLCB2MjogdjJQcm9wZXJ0eVBhdGh9KSxcbiAgICAgIHByb3BlcnR5VHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe1xuICAgICAgICB2MTogdjFQcm9wZXJ0eSxcbiAgICAgICAgdjI6IGNvbXBvbmVudFRyYW5zaXRpb24udjI/LnByb3BlcnRpZXMuZ2V0UHJvcGVydHlJblBhdGgodjJQcm9wZXJ0eVBhdGgpLFxuICAgICAgfSksXG4gICAgICBjb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgY2F1c2UsXG4gICAgfSxcbiAgKTtcbn1cblxuLyoqXG4gKiBGaW5kIHRoZSBwcmV2aW91cyBQcm9wZXJ0eVBhdGggYW5kIENvbXBvbmVudFByb3BlcnR5VmFsdWUgZm9yIGEgY3VycmVudCBQcm9wZXJ0eVBhdGggb2YgYSBDb21wb25lbnRUcmFuc2l0aW9uXG4gKiBAcGFyYW0gY29tcG9uZW50VHJhbnNpdGlvblxuICogQHBhcmFtIHYyUHJvcGVydHlQYXRoXG4gKiBAcmV0dXJucyBbcHJldmlvdXMgUHJvcGVydHlQYXRoLCBwcmV2aW91cyBDb21wb25lbnRQcm9wZXJ0eVZhbHVlXS5cbiAqIFRoZXkgY2FuIGJlIHVuZGVmaW5lZCBpZiB0aGUgcHJvcGVydHkgd2FzIGluc2VydGVkXG4gKi9cbmZ1bmN0aW9uIGdldFYxUHJvcGVydHlGb3JDb21wb25lbnRUcmFuc2l0aW9uKFxuICBtb2RlbERpZmY6IEluZnJhTW9kZWxEaWZmLFxuICBjb21wb25lbnRUcmFuc2l0aW9uOiBUcmFuc2l0aW9uPENvbXBvbmVudD4sXG4gIHYyUHJvcGVydHlQYXRoOiBQcm9wZXJ0eVBhdGgsXG4pOiBbUHJvcGVydHlQYXRoIHwgdW5kZWZpbmVkLCBDb21wb25lbnRQcm9wZXJ0eVZhbHVlIHwgdW5kZWZpbmVkXSB7XG5cbiAgY29uc3QgZXhpc3RpbmdVcGRhdGVPcGVyYXRpb24gPSBtb2RlbERpZmYuZ2V0VHJhbnNpdGlvbk9wZXJhdGlvbnMoY29tcG9uZW50VHJhbnNpdGlvbilcbiAgICAuZmluZChvID0+IG8gaW5zdGFuY2VvZiBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblxuICAgICAgJiYgby5pc0RpcmVjdENoYW5nZSgpKSBhcyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiB8IHVuZGVmaW5lZDtcblxuICBjb25zdCB2MVByb3BlcnR5UGF0aCA9IGV4aXN0aW5nVXBkYXRlT3BlcmF0aW9uXG4gICAgPyBleGlzdGluZ1VwZGF0ZU9wZXJhdGlvbi5nZXRWMVBhdGgodjJQcm9wZXJ0eVBhdGgpXG4gICAgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgdjFQcm9wZXJ0eSA9IHYxUHJvcGVydHlQYXRoXG4gICAgPyBjb21wb25lbnRUcmFuc2l0aW9uLnYxPy5wcm9wZXJ0aWVzLmdldFByb3BlcnR5SW5QYXRoKHYxUHJvcGVydHlQYXRoKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIHJldHVybiBbdjFQcm9wZXJ0eVBhdGgsIHYxUHJvcGVydHldO1xufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXByb3BhZ2F0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjaGFuZ2UtcHJvcGFnYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FnQnlCO0FBQ3pCLDBDQUEwQztBQUUxQzs7O0dBR0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxTQUF5QjtJQUN4RCxNQUFNLG9CQUFvQixHQUF5QixJQUFBLGNBQU8sRUFBQyxTQUFTLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDNUYsSUFBRyxDQUFDLFlBQVkseUNBQWdDLEVBQUM7WUFDL0MsT0FBTywwQkFBMEIsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDakQ7YUFBTSxJQUFHLENBQUMsWUFBWSxpQ0FBd0IsRUFBQztZQUM5QyxPQUFPLHdCQUF3QixDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLElBQUksdUJBQWMsQ0FDdkIsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLG9CQUFvQixDQUFDLEVBQzNELFNBQVMsQ0FBQyxvQkFBb0IsRUFDOUIsU0FBUyxDQUFDLG9CQUFvQixDQUMvQixDQUFDO0FBQ0osQ0FBQztBQWRELDRDQWNDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsMEJBQTBCLENBQ2pDLE1BQWtDLEVBQ2xDLFNBQXlCOztJQUV6QixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7SUFFL0MsSUFBRyxlQUFlLEtBQUssNEJBQW1CLENBQUMsV0FBVztXQUM3QyxlQUFlLEtBQUssNEJBQW1CLENBQUMsb0JBQW9CO1FBQ25FLE9BQU8sTUFBTSxZQUFZLHlDQUFnQztZQUN2RCxDQUFDLENBQUMsSUFBQSxjQUFPLEVBQUMsQ0FBQyxNQUFBLE1BQU0sQ0FBQyxlQUFlLG1DQUFJLEVB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dUJBQXVCLEdBQUcsU0FBUyxDQUFDLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDO1NBQ25GLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSx5Q0FBZ0M7V0FDbkQsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFpRCxDQUFDO0lBRTNFLE1BQU0sY0FBYyxHQUFHLHVCQUF1QjtRQUM1QyxDQUFDLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztRQUNuRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsTUFBTSxVQUFVLEdBQUcsY0FBYztRQUMvQixDQUFDLENBQUMsTUFBQSxtQkFBbUIsQ0FBQyxFQUFFLDBDQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUM7UUFDdEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUVkLE9BQU8sQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50VXBkYXRlVHlwZSxcbiAgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCxcbiAgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgUHJvcGVydHlQYXRoLFxuICBDb21wb25lbnRPcGVyYXRpb24sXG4gIE9wZXJhdGlvbkNlcnRhaW50eSxcbiAgUmVuYW1lQ29tcG9uZW50T3BlcmF0aW9uLFxuICBSZXBsYWNlQ29tcG9uZW50T3BlcmF0aW9uLFxuICBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbiAgVHJhbnNpdGlvbixcbiAgSW5mcmFNb2RlbERpZmYsXG4gIFRyYW5zaXRpb25Ob3RGb3VuZEVycm9yLFxuICBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbiAgYXJyYXlzRXF1YWwsXG59IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnLi4vcHJpdmF0ZS9ub2RlJztcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBDb21wb25lbnRPcGVyYXRpb25zIGNhdXNlZCBieSBleGlzdGluZyBvbmVzXG4gKiBAcmV0dXJucyB0aGUgbmV3IEluZnJhTW9kZWxEaWZmXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wYWdhdGVDaGFuZ2VzKG1vZGVsRGlmZjogSW5mcmFNb2RlbERpZmYpOiBJbmZyYU1vZGVsRGlmZntcbiAgY29uc3QgcHJvcGFnYXRlZE9wZXJhdGlvbnM6IENvbXBvbmVudE9wZXJhdGlvbltdID0gZmxhdE1hcChtb2RlbERpZmYuY29tcG9uZW50T3BlcmF0aW9ucywgbyA9PiB7XG4gICAgaWYobyBpbnN0YW5jZW9mIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKXtcbiAgICAgIHJldHVybiBwcm9wYWdhdGVQcm9wZXJ0eU9wZXJhdGlvbihvLCBtb2RlbERpZmYpO1xuICAgIH0gZWxzZSBpZihvIGluc3RhbmNlb2YgUmVuYW1lQ29tcG9uZW50T3BlcmF0aW9uKXtcbiAgICAgIHJldHVybiBwcm9wYWdhdGVSZW5hbWVPcGVyYXRpb24obywgbW9kZWxEaWZmKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9KTtcbiAgcmV0dXJuIG5ldyBJbmZyYU1vZGVsRGlmZihcbiAgICBbLi4ubW9kZWxEaWZmLmNvbXBvbmVudE9wZXJhdGlvbnMsIC4uLnByb3BhZ2F0ZWRPcGVyYXRpb25zXSxcbiAgICBtb2RlbERpZmYuY29tcG9uZW50VHJhbnNpdGlvbnMsXG4gICAgbW9kZWxEaWZmLmluZnJhTW9kZWxUcmFuc2l0aW9uLFxuICApO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb24gZm9yIGFueSBDb21wb25lbnQgdGhhdCBoYWQgYVxuICogUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24gb24gYSBwcm9wZXJ0eSB3aXRoIFVwZGF0ZVR5cGUgPSBSRVBMQUNFTUVOVCBvciBQT1NTSUJMRV9SRVBMQUNFTUVOVC5cbiAqIENyZWF0ZXMgYW5kIHJlY3Vyc2l2ZWx5IHByb3BhZ2F0ZXMgdGhlIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9ucyBmb3IgdGhlIHByb3BlcnRpZXMgb2ZcbiAqIG90aGVyIENvbXBvbmVudHMgdGhhdCBkZXBlbmQgb24gdGhpcyBDb21wb25lbnQuXG4gKiBAcGFyYW0gY29tcE9wIHRoZSBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiB0byBiZSBwcm9wYWdhdGVkXG4gKiBAcGFyYW0gbW9kZWxEaWZmIHRoZSBvcmlnaW5hbCBJbmZyYU1vZGVsRGlmZlxuICovXG5mdW5jdGlvbiBwcm9wYWdhdGVQcm9wZXJ0eU9wZXJhdGlvbihcbiAgY29tcE9wOiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbiAgbW9kZWxEaWZmOiBJbmZyYU1vZGVsRGlmZixcbik6IENvbXBvbmVudE9wZXJhdGlvbltdIHtcbiAgY29uc3QgY29tcG9uZW50VXBkYXRlID0gY29tcE9wLmdldFVwZGF0ZVR5cGUoKTtcblxuICBpZihjb21wb25lbnRVcGRhdGUgIT09IENvbXBvbmVudFVwZGF0ZVR5cGUuUkVQTEFDRU1FTlRcbiAgICAgICAgJiYgY29tcG9uZW50VXBkYXRlICE9PSBDb21wb25lbnRVcGRhdGVUeXBlLlBPU1NJQkxFX1JFUExBQ0VNRU5UKVxuICAgIHJldHVybiBjb21wT3AgaW5zdGFuY2VvZiBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblxuICAgICAgPyBmbGF0TWFwKChjb21wT3AuaW5uZXJPcGVyYXRpb25zID8/IFtdKSwgaSA9PiBwcm9wYWdhdGVQcm9wZXJ0eU9wZXJhdGlvbihpLCBtb2RlbERpZmYpKVxuICAgICAgOiBbXTtcblxuICAvKiogaWYgdGhlIHByb3BlcnR5IGlzIGEgcmVwbGFjZW1lbnQtaW5kdWNpbmcgY29sbGVjdGlvbiBhbmRcbiAgICAvKiB0aGUga2V5cyBoYXZlIGNoYW5nZWQsIGl0IHNob3VsZCBwcm9wYWdhdGUgdG8gYSByZXBsYWNlbWVudFxuICAgIC8gKi9cbiAgaWYoIWNvbXBPcC5wcm9wZXJ0eVRyYW5zaXRpb24udjE/LmlzUHJpbWl0aXZlKCkpe1xuICAgIGNvbnN0IHt2MSwgdjJ9ID0gY29tcE9wLnByb3BlcnR5VHJhbnNpdGlvbjtcbiAgICBpZih2MSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAmJiB2MiAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAmJiBhcnJheXNFcXVhbChPYmplY3Qua2V5cyh2MS5nZXRDb2xsZWN0aW9uKCkpLCBPYmplY3Qua2V5cyh2Mi5nZXRDb2xsZWN0aW9uKCkpKVxuICAgICAgICAgICAgJiYgY29tcE9wIGluc3RhbmNlb2YgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25cbiAgICApe1xuICAgICAgcmV0dXJuIGZsYXRNYXAoKGNvbXBPcC5pbm5lck9wZXJhdGlvbnMgPz8gW10pLCBpID0+IHByb3BhZ2F0ZVByb3BlcnR5T3BlcmF0aW9uKGksIG1vZGVsRGlmZikpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbXBvbmVudFRyYW5zaXRpb24gPSBjb21wT3AuY29tcG9uZW50VHJhbnNpdGlvbjtcblxuICBjb25zdCByZXBsYWNlbWVudE9wID0gbmV3IFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb24oe1xuICAgIGNlcnRhaW50eTogY29tcG9uZW50VXBkYXRlID09PSBDb21wb25lbnRVcGRhdGVUeXBlLlBPU1NJQkxFX1JFUExBQ0VNRU5UXG4gICAgICA/IE9wZXJhdGlvbkNlcnRhaW50eS5QQVJUSUFMIDogT3BlcmF0aW9uQ2VydGFpbnR5LkFCU09MVVRFLFxuICB9LCB7XG4gICAgY2F1c2U6IGNvbXBPcCxcbiAgICBjb21wb25lbnRUcmFuc2l0aW9uLFxuICB9LFxuICApO1xuXG4gIHJldHVybiBbcmVwbGFjZW1lbnRPcCwgLi4ucHJvcGFnYXRlUmVwbGFjZW1lbnRPcGVyYXRpb24ocmVwbGFjZW1lbnRPcCwgbW9kZWxEaWZmKV07XG59XG5cbmZ1bmN0aW9uIHByb3BhZ2F0ZVJlbmFtZU9wZXJhdGlvbihcbiAgY29tcE9wOiBSZW5hbWVDb21wb25lbnRPcGVyYXRpb24sXG4gIG1vZGVsRGlmZjogSW5mcmFNb2RlbERpZmYsXG4pOiBDb21wb25lbnRPcGVyYXRpb25bXSB7XG4gIGNvbnN0IHJlcGxhY2VtZW50T3AgPSBuZXcgUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbihcbiAgICB7Y2VydGFpbnR5OiBPcGVyYXRpb25DZXJ0YWludHkuQUJTT0xVVEV9LFxuICAgIHtcbiAgICAgIGNhdXNlOiBjb21wT3AsXG4gICAgICBjb21wb25lbnRUcmFuc2l0aW9uOiBjb21wT3AuY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICB9LFxuICApO1xuXG4gIHJldHVybiBbcmVwbGFjZW1lbnRPcCwgLi4ucHJvcGFnYXRlUmVwbGFjZW1lbnRPcGVyYXRpb24ocmVwbGFjZW1lbnRPcCwgbW9kZWxEaWZmKV07XG59XG5cbmZ1bmN0aW9uIHByb3BhZ2F0ZVJlcGxhY2VtZW50T3BlcmF0aW9uKHJlcGxhY2VtZW50T3A6IFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb24sIG1vZGVsRGlmZjogSW5mcmFNb2RlbERpZmYpe1xuXG4gIGNvbnN0IG5ld0NvbXBvbmVudCA9IHJlcGxhY2VtZW50T3AuY29tcG9uZW50VHJhbnNpdGlvbi52MjtcbiAgaWYoIW5ld0NvbXBvbmVudClcbiAgICB0aHJvdyBFcnJvcignUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbiBoYXMgbm8gbmV3IENvbXBvbmVudCB2ZXJzaW9uJyk7XG5cbiAgY29uc3QgZGVwZW5kZW50UmVsYXRpb25zaGlwcyA9IFsuLi5uZXdDb21wb25lbnQuaW5jb21pbmddXG4gICAgLmZpbHRlcihyID0+IHIgaW5zdGFuY2VvZiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwKSBhcyBEZXBlbmRlbmN5UmVsYXRpb25zaGlwW107XG5cblxuICBjb25zdCByZXBsYWNlbWVudFByb3BhZ2F0aW9ucyA9IGZsYXRNYXAoZGVwZW5kZW50UmVsYXRpb25zaGlwcywgKHJlbDogRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCkgPT4ge1xuICAgIHRyeXtcbiAgICAgIGNvbnN0IHNvdXJjZUNvbXBvbmVudFRyYW5zaXRpb24gPSBtb2RlbERpZmYuZ2V0Q29tcG9uZW50VHJhbnNpdGlvbihyZWwuc291cmNlKTtcblxuICAgICAgY29uc3QgY29uc2VxdWVudFByb3BlcnR5VXBkYXRlT3AgPSBjcmVhdGVVcGRhdGVPcGVyYXRpb25Gb3JDb21wb25lbnQoXG4gICAgICAgIG1vZGVsRGlmZixcbiAgICAgICAgc291cmNlQ29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgICAgcmVsLnNvdXJjZVByb3BlcnR5UGF0aCxcbiAgICAgICAgcmVwbGFjZW1lbnRPcCxcbiAgICAgICk7XG5cbiAgICAgIGxldCBwcm9wYWdhdGVkUHJvcGVydHlVcGRhdGVPcDogQ29tcG9uZW50T3BlcmF0aW9uW10gPSBbXTtcbiAgICAgIGlmKGNvbnNlcXVlbnRQcm9wZXJ0eVVwZGF0ZU9wKVxuICAgICAgICBwcm9wYWdhdGVkUHJvcGVydHlVcGRhdGVPcCA9IFtcbiAgICAgICAgICBjb25zZXF1ZW50UHJvcGVydHlVcGRhdGVPcCxcbiAgICAgICAgICAuLi5wcm9wYWdhdGVQcm9wZXJ0eU9wZXJhdGlvbihjb25zZXF1ZW50UHJvcGVydHlVcGRhdGVPcCwgbW9kZWxEaWZmKSxcbiAgICAgICAgXTtcblxuICAgICAgcmV0dXJuIHByb3BhZ2F0ZWRQcm9wZXJ0eVVwZGF0ZU9wO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgaWYoIShlIGluc3RhbmNlb2YgVHJhbnNpdGlvbk5vdEZvdW5kRXJyb3IpKSB0aHJvdyBlO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIFsuLi5yZXBsYWNlbWVudFByb3BhZ2F0aW9uc107XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiBmb3IgYSBnaXZlbiBjb21wb25lbnQsIGN1cnJlbnQgcHJvcGVydHkgcGF0aCBhbmQgY2F1c2VcbiAqIGJ5IGZpbmRpbmcgdGhlIHByZXZpb3VzIHByb3BlcnR5IHBhdGggYW5kIENvbXBvbmVudFByb3BlcnR5VmFsdWUuXG4gKiBAcGFyYW0gY29tcG9uZW50VHJhbnNpdGlvblxuICogQHBhcmFtIHYyUHJvcGVydHlQYXRoXG4gKiBAcGFyYW0gY2F1c2VcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZU9wZXJhdGlvbkZvckNvbXBvbmVudChcbiAgbW9kZWxEaWZmOiBJbmZyYU1vZGVsRGlmZixcbiAgY29tcG9uZW50VHJhbnNpdGlvbjogVHJhbnNpdGlvbjxDb21wb25lbnQ+LFxuICB2MlByb3BlcnR5UGF0aDogUHJvcGVydHlQYXRoLFxuICBjYXVzZTogQ29tcG9uZW50T3BlcmF0aW9uLFxuKXtcbiAgY29uc3QgW3YxUHJvcGVydHlQYXRoLCB2MVByb3BlcnR5XSA9IGdldFYxUHJvcGVydHlGb3JDb21wb25lbnRUcmFuc2l0aW9uKFxuICAgIG1vZGVsRGlmZixcbiAgICBjb21wb25lbnRUcmFuc2l0aW9uLFxuICAgIHYyUHJvcGVydHlQYXRoLFxuICApO1xuXG4gIC8vSWYgdGhlcmUgd2FzIG5vIHByZXZpb3VzIHBhdGgsIGl0IG1lYW5zIHRoaXMgdmFsdWUgd2FzIGluc2VydGVkLiBObyB1cGRhdGUgd2lsbCBiZSBkb25lXG4gIGlmKCF2MVByb3BlcnR5UGF0aCkgcmV0dXJuO1xuXG4gIHJldHVybiBuZXcgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oXG4gICAge2NlcnRhaW50eTogY2F1c2UuY2VydGFpbnR5fSxcbiAgICB7XG4gICAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiB2MVByb3BlcnR5UGF0aCwgdjI6IHYyUHJvcGVydHlQYXRofSksXG4gICAgICBwcm9wZXJ0eVRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHtcbiAgICAgICAgdjE6IHYxUHJvcGVydHksXG4gICAgICAgIHYyOiBjb21wb25lbnRUcmFuc2l0aW9uLnYyPy5wcm9wZXJ0aWVzLmdldFByb3BlcnR5SW5QYXRoKHYyUHJvcGVydHlQYXRoKSxcbiAgICAgIH0pLFxuICAgICAgY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgIGNhdXNlLFxuICAgIH0sXG4gICk7XG59XG5cbi8qKlxuICogRmluZCB0aGUgcHJldmlvdXMgUHJvcGVydHlQYXRoIGFuZCBDb21wb25lbnRQcm9wZXJ0eVZhbHVlIGZvciBhIGN1cnJlbnQgUHJvcGVydHlQYXRoIG9mIGEgQ29tcG9uZW50VHJhbnNpdGlvblxuICogQHBhcmFtIGNvbXBvbmVudFRyYW5zaXRpb25cbiAqIEBwYXJhbSB2MlByb3BlcnR5UGF0aFxuICogQHJldHVybnMgW3ByZXZpb3VzIFByb3BlcnR5UGF0aCwgcHJldmlvdXMgQ29tcG9uZW50UHJvcGVydHlWYWx1ZV0uXG4gKiBUaGV5IGNhbiBiZSB1bmRlZmluZWQgaWYgdGhlIHByb3BlcnR5IHdhcyBpbnNlcnRlZFxuICovXG5mdW5jdGlvbiBnZXRWMVByb3BlcnR5Rm9yQ29tcG9uZW50VHJhbnNpdGlvbihcbiAgbW9kZWxEaWZmOiBJbmZyYU1vZGVsRGlmZixcbiAgY29tcG9uZW50VHJhbnNpdGlvbjogVHJhbnNpdGlvbjxDb21wb25lbnQ+LFxuICB2MlByb3BlcnR5UGF0aDogUHJvcGVydHlQYXRoLFxuKTogW1Byb3BlcnR5UGF0aCB8IHVuZGVmaW5lZCwgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSB8IHVuZGVmaW5lZF0ge1xuXG4gIGNvbnN0IGV4aXN0aW5nVXBkYXRlT3BlcmF0aW9uID0gbW9kZWxEaWZmLmdldFRyYW5zaXRpb25PcGVyYXRpb25zKGNvbXBvbmVudFRyYW5zaXRpb24pXG4gICAgLmZpbmQobyA9PiBvIGluc3RhbmNlb2YgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25cbiAgICAgICYmIG8uaXNEaXJlY3RDaGFuZ2UoKSkgYXMgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3QgdjFQcm9wZXJ0eVBhdGggPSBleGlzdGluZ1VwZGF0ZU9wZXJhdGlvblxuICAgID8gZXhpc3RpbmdVcGRhdGVPcGVyYXRpb24uZ2V0VjFQYXRoKHYyUHJvcGVydHlQYXRoKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHYxUHJvcGVydHkgPSB2MVByb3BlcnR5UGF0aFxuICAgID8gY29tcG9uZW50VHJhbnNpdGlvbi52MT8ucHJvcGVydGllcy5nZXRQcm9wZXJ0eUluUGF0aCh2MVByb3BlcnR5UGF0aClcbiAgICA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4gW3YxUHJvcGVydHlQYXRoLCB2MVByb3BlcnR5XTtcbn0iXX0=

@@ -25,3 +25,3 @@ "use strict";

const categories = [...new Set([...oldComponentsGrouped.keys(), ...newComponentsGrouped.keys()])];
componentOperations.push(...node_1.flatMap(categories, (type) => {
componentOperations.push(...(0, node_1.flatMap)(categories, (type) => {
var _a, _b;

@@ -53,3 +53,3 @@ return this.diffComponents((_a = oldComponentsGrouped.get(type)) !== null && _a !== void 0 ? _a : [], (_b = newComponentsGrouped.get(type)) !== null && _b !== void 0 ? _b : []);

matchComponents(a, b, similarityEvaluator) {
const matcherResults = entities_matcher_1.matchEntities(a, b, similarityEvaluator, similarityThreshold);
const matcherResults = (0, entities_matcher_1.matchEntities)(a, b, similarityEvaluator, similarityThreshold);
matcherResults.matches.forEach(({ transition }) => this.componentTransitions.push(transition));

@@ -72,6 +72,6 @@ return matcherResults;

groupComponentsByType(components) {
return models_1.groupArrayBy(components, (c) => `${c.type}-${c.subtype}`);
return (0, models_1.groupArrayBy)(components, (c) => `${c.type}-${c.subtype}`);
}
}
exports.DiffCreator = DiffCreator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi1jcmVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlmZi1jcmVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQWF5QjtBQUN6QixxQ0FBb0M7QUFDcEMsMENBQTBDO0FBQzFDLGlGQUdnRDtBQUNoRCx5RUFJNEM7QUFFNUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFFaEMsTUFBYSxXQUFXO0lBTXRCLFlBQ2tCLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUx6RCx5QkFBb0IsR0FBNEIsRUFBRSxDQUFDO1FBQ25ELGlDQUE0QixHQUFHLElBQUksR0FBRyxFQUFrRSxDQUFDO0lBS3ZHLENBQUM7SUFFSSxNQUFNO1FBQ1gsSUFBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3JELE1BQU0sS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFFM0Usd0hBQXdIO1FBQ3hILG9GQUFvRjtRQUNwRixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1RixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU1RixNQUFNLG1CQUFtQixHQUF5QixFQUFFLENBQUM7UUFFckQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLGNBQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJ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QXVCO1FBQ25ELE9BQU8scUJBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0Y7QUFwR0Qsa0NBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbmZyYU1vZGVsLFxuICBSZWxhdGlvbnNoaXAsXG4gIEluc2VydENvbXBvbmVudE9wZXJhdGlvbixcbiAgUmVtb3ZlQ29tcG9uZW50T3BlcmF0aW9uLFxuICBSZW5hbWVDb21wb25lbnRPcGVyYXRpb24sXG4gIENvbXBvbmVudE9wZXJhdGlvbixcbiAgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG4gIFRyYW5zaXRpb24sXG4gIEluZnJhTW9kZWxEaWZmLFxuICBUcmFuc2l0aW9uVmVyc2lvbnMsXG4gIGdyb3VwQXJyYXlCeSxcbn0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJ2ZpZmluZXQnO1xuaW1wb3J0IHsgZmxhdE1hcCB9IGZyb20gJy4uL3ByaXZhdGUvbm9kZSc7XG5pbXBvcnQge1xuICBjb21wb25lbnRTaW1pbGFyaXR5RXZhbHVhdG9yLFxuICBzYW1lTmFtZUNvbXBvbmVudFNpbWlsYXJpdHlFdmFsdWF0b3IsXG59IGZyb20gJy4vZW50aXR5LW1hdGNoZXJzL2NvbXBvbmVudC1zaW1pbGFyaXR5JztcbmltcG9ydCB7XG4gIEVudGl0aWVzTWF0Y2hlclJlc3VsdHMsXG4gIG1hdGNoRW50aXRpZXMsXG4gIFNpbWlsYXJpdHlFdmFsdWF0b3IsXG59IGZyb20gJy4vZW50aXR5LW1hdGNoZXJzL2VudGl0aWVzLW1hdGNoZXInO1xuXG5jb25zdCBzaW1pbGFyaXR5VGhyZXNob2xkID0gMC41O1xuXG5leHBvcnQgY2xhc3MgRGlmZkNyZWF0b3Ige1xuXG4gIGNvbXBvbmVudFRyYW5zaXRpb25zOiBUcmFuc2l0aW9uPENvbXBvbmVudD5bXSA9IFtdO1xuICBlbnRpdHlWZXJzaW9uVG9UcmFuc2l0aW9uTWFwID0gbmV3IE1hcDxDb21wb25lbnQgfCBSZWxhdGlvbnNoaXAsIFRyYW5zaXRpb248Q29tcG9uZW50IHwgUmVsYXRpb25zaGlwPj4oKTtcblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBtb2RlbFRyYW5zaXRpb246IFRyYW5zaXRpb248SW5mcmFNb2RlbD4sXG4gICl7fVxuXG4gIHB1YmxpYyBjcmVhdGUoKTogSW5mcmFNb2RlbERpZmZ7XG4gICAgaWYoIXRoaXMubW9kZWxUcmFuc2l0aW9uLnYxIHx8ICF0aGlzLm1vZGVsVHJhbnNpdGlvbi52MilcbiAgICAgIHRocm93IEVycm9yKCdDYW5ub3QgZGlmZiBtb2RlbCB0cmFuc2l0aW9uIHdpdGggdW5kZWZpbmVkIG1vZGVsIHZlcnNpb24nKTtcblxuICAgIC8vIEdyb3VwaW5nIGNvbXBvbmVudHMgYnkgdGhlaXIgdHlwZSBhbmQgc3VidHlwZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgc2luY2UgdGhlaXIgbWF0Y2hpbmcgd2lsbCB0ZXN0IHRoZW0gaW4gTyhuKm4pLlxuICAgIC8vIFdlIGFyZSByZWR1Y2luZyB0aGUgYW1vdW50IG9mIGNhbmRpZGF0ZXMgdGhhdCB3aWxsIGJlIGV4cGxvcmVkIGZvciBlYWNoIGNvbXBvbmVudFxuICAgIGNvbnN0IG9sZENvbXBvbmVudHNHcm91cGVkID0gdGhpcy5ncm91cENvbXBvbmVudHNCeVR5cGUodGhpcy5tb2RlbFRyYW5zaXRpb24udjEuY29tcG9uZW50cyk7XG4gICAgY29uc3QgbmV3Q29tcG9uZW50c0dyb3VwZWQgPSB0aGlzLmdyb3VwQ29tcG9uZW50c0J5VHlwZSh0aGlzLm1vZGVsVHJhbnNpdGlvbi52Mi5jb21wb25lbnRzKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudE9wZXJhdGlvbnM6IENvbXBvbmVudE9wZXJhdGlvbltdID0gW107XG5cbiAgICBjb25zdCBjYXRlZ29yaWVzID0gWy4uLm5ldyBTZXQoWy4uLm9sZENvbXBvbmVudHNHcm91cGVkLmtleXMoKSwgLi4ubmV3Q29tcG9uZW50c0dyb3VwZWQua2V5cygpXSldO1xuXG4gICAgY29tcG9uZW50T3BlcmF0aW9ucy5wdXNoKC4uLmZsYXRNYXAoY2F0ZWdvcmllcywgKHR5cGUpID0+XG4gICAgICB0aGlzLmRpZmZDb21wb25lbnRzKFxuICAgICAgICBvbGRDb21wb25lbnRzR3JvdXBlZC5nZXQodHlwZSkgPz8gW10sXG4gICAgICAgIG5ld0NvbXBvbmVudHNHcm91cGVkLmdldCh0eXBlKSA/PyBbXSxcbiAgICAgICksXG4gICAgKSk7XG5cbiAgICByZXR1cm4gbmV3IEluZnJhTW9kZWxEaWZmKGNvbXBvbmVudE9wZXJhdGlvbnMsIHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbnMsIHRoaXMubW9kZWxUcmFuc2l0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIEZpbmRzIG1hdGNoZXMgYmV0d2VlbiBlcXVhbGx5IG5hbWVkIGNvbXBvbmVudHMgYW5kIGJldHdlZW4gYW55IHJlbWFpbmluZyBvbmVzO1xuICAgICAqIFJldHVybnMgdGhlIENvbXBvbmVudE9wZXJhdGlvbnMgdGhhdCBjb3JyZXNwb25kIHRvIGVhY2ggY29tcG9uZW50IGNoYW5nZVxuICAgICAqIEBwYXJhbSBvbGRDb21wb25lbnRzIFRoZSBvbGQgY29tcG9uZW50cyB0byBtYXRjaFxuICAgICAqIEBwYXJhbSBuZXdDb21wb25lbnRzIFRoZSBuZXcgY29tcG9uZW50cyB0byBtYXRjaFxuICAgICAqL1xuICBwcml2YXRlIGRpZmZDb21wb25lbnRzKG9sZENvbXBvbmVudHM6IENvbXBvbmVudFtdLCBuZXdDb21wb25lbnRzOiBDb21wb25lbnRbXSk6IENvbXBvbmVudE9wZXJhdGlvbltde1xuXG4gICAgY29uc3Qgc2FtZU5hbWVNYXRjaGVzID0gdGhpcy5tYXRjaENvbXBvbmVudHMoXG4gICAgICBvbGRDb21wb25lbnRzLFxuICAgICAgbmV3Q29tcG9uZW50cyxcbiAgICAgIHNhbWVOYW1lQ29tcG9uZW50U2ltaWxhcml0eUV2YWx1YXRvcixcbiAgICApO1xuXG4gICAgY29uc3QgcmVuYW1lZE1hdGNoZXMgPSB0aGlzLm1hdGNoQ29tcG9uZW50cyhcbiAgICAgIHNhbWVOYW1lTWF0Y2hlcy51bm1hdGNoZWRBLFxuICAgICAgc2FtZU5hbWVNYXRjaGVzLnVubWF0Y2hlZEIsXG4gICAgICBjb21wb25lbnRTaW1pbGFyaXR5RXZhbHVhdG9yLFxuICAgICk7XG5cbiAgICBjb25zdCB1cGRhdGVzID0gWy4uLnNhbWVOYW1lTWF0Y2hlcy5tYXRjaGVzLCAuLi5yZW5hbWVkTWF0Y2hlcy5tYXRjaGVzXS5tYXAoXG4gICAgICAoe21ldGFkYXRhOiBwcm9wT3B9KSA9PiBwcm9wT3AsXG4gICAgKS5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgICBjb25zdCByZW5hbWVzID0gcmVuYW1lZE1hdGNoZXMubWF0Y2hlcy5tYXAoKHt0cmFuc2l0aW9ufSkgPT5cbiAgICAgIG5ldyBSZW5hbWVDb21wb25lbnRPcGVyYXRpb24oe30sIHtjb21wb25lbnRUcmFuc2l0aW9uOiB0cmFuc2l0aW9ufSkpO1xuICAgIGNvbnN0IHJlbW92YWxzID0gcmVuYW1lZE1hdGNoZXMudW5tYXRjaGVkQS5tYXAoYyA9PlxuICAgICAgbmV3IFJlbW92ZUNvbXBvbmVudE9wZXJhdGlvbih7fSwge2NvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY3JlYXRlQ29tcG9uZW50VHJhbnNpdGlvbih7djE6IGN9KX0pKTtcbiAgICBjb25zdCBpbnNlcnRpb25zID0gcmVuYW1lZE1hdGNoZXMudW5tYXRjaGVkQi5tYXAoYyA9PlxuICAgICAgbmV3IEluc2VydENvbXBvbmVudE9wZXJhdGlvbih7fSwge2NvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY3JlYXRlQ29tcG9uZW50VHJhbnNpdGlvbih7djI6IGN9KX0pKTtcblxuICAgIHJldHVybiBbLi4ucmVtb3ZhbHMsIC4uLmluc2VydGlvbnMsIC4uLnJlbmFtZXMsIC4uLnVwZGF0ZXNdO1xuICB9XG5cbiAgLyoqXG4gICAgICogVXNlcyB0aGUgQ29tcG9uZW50TWF0Y2hlciB0byBmaW5kIHRoZSBtYXRjaGVzIGJldHdlZW4gdHdvIHNldHMgb2YgQ29tcG9uZW50c1xuICAgICAqIGFuZCByZWdpc3RlcnMgdGhlIG9idGFpbmVkIGNvbXBvbmVudCB0cmFuc2l0aW9ucy5cbiAgICAgKiBAcmV0dXJucyB0aGUgQ29tcG9uZW50TWF0Y2hlcidzIHJlc3VsdHNcbiAgICAgKi9cbiAgcHJpdmF0ZSBtYXRjaENvbXBvbmVudHMoXG4gICAgYTogQ29tcG9uZW50W10sXG4gICAgYjogQ29tcG9uZW50W10sXG4gICAgc2ltaWxhcml0eUV2YWx1YXRvcjogU2ltaWxhcml0eUV2YWx1YXRvcjxDb21wb25lbnQsIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIHwgdW5kZWZpbmVkPixcbiAgKTogRW50aXRpZXNNYXRjaGVyUmVzdWx0czxDb21wb25lbnQsIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgbWF0Y2hlclJlc3VsdHMgPSBtYXRjaEVudGl0aWVzKGEsIGIsIHNpbWlsYXJpdHlFdmFsdWF0b3IsIHNpbWlsYXJpdHlUaHJlc2hvbGQpO1xuICAgIG1hdGNoZXJSZXN1bHRzLm1hdGNoZXMuZm9yRWFjaCgoe3RyYW5zaXRpb259KSA9PiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb25zLnB1c2godHJhbnNpdGlvbikpO1xuICAgIHJldHVybiBtYXRjaGVyUmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgICAqIENyZWF0ZXMgYW5kIHJlZ2lzdGVycyBhIG5ldyBjb21wb25lbnQgdHJhbnNpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB0aGUgdHJhbnNpdGlvblxuICAgICAqL1xuICBwcml2YXRlIGNyZWF0ZUNvbXBvbmVudFRyYW5zaXRpb24oXG4gICAgdmVyc2lvbnM6IFRyYW5zaXRpb25WZXJzaW9uczxDb21wb25lbnQ+LFxuICApOiBUcmFuc2l0aW9uPENvbXBvbmVudD4ge1xuICAgIGNvbnN0IHQgPSBuZXcgVHJhbnNpdGlvbjxDb21wb25lbnQ+KHZlcnNpb25zKTtcbiAgICB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb25zLnB1c2godCk7XG4gICAgcmV0dXJuIHQ7XG4gIH1cblxuICAvKipcbiAgICAgKiBTcGxpdHMgY29tcG9uZW50cyBhY2NvcmRpbmcgdG8gdGhlaXIgdHlwZSBhbmQgc3VidHlwZVxuICAgICAqIEBwYXJhbSBjb21wb25lbnRzXG4gICAgICovXG4gIHByaXZhdGUgZ3JvdXBDb21wb25lbnRzQnlUeXBlKGNvbXBvbmVudHM6IENvbXBvbmVudFtdKTogTWFwPHN0cmluZywgQ29tcG9uZW50W10+e1xuICAgIHJldHVybiBncm91cEFycmF5QnkoY29tcG9uZW50cywgKGM6IENvbXBvbmVudCkgPT4gYCR7Yy50eXBlfS0ke2Muc3VidHlwZX1gKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi1jcmVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGlmZi1jcmVhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQWF5QjtBQUN6QixxQ0FBb0M7QUFDcEMsMENBQTBDO0FBQzFDLGlGQUdnRDtBQUNoRCx5RUFJNEM7QUFFNUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFFaEMsTUFBYSxXQUFXO0lBTXRCLFlBQ2tCLGVBQXVDO1FBQXZDLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUx6RCx5QkFBb0IsR0FBNEIsRUFBRSxDQUFDO1FBQ25ELGlDQUE0QixHQUFHLElBQUksR0FBRyxFQUFrRSxDQUFDO0lBS3ZHLENBQUM7SUFFSSxNQUFNO1FBQ1gsSUFBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ3JELE1BQU0sS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFFM0Usd0hBQXdIO1FBQ3hILG9GQUFvRjtRQUNwRixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1RixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU1RixNQUFNLG1CQUFtQixHQUF5QixFQUFFLENBQUM7UUFFckQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLElBQUEsY0FBTyxFQUFDLFVBQVUsRUFBRSxD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cUIsQ0FBQyxVQUF1QjtRQUNuRCxPQUFPLElBQUEscUJBQVksRUFBQyxVQUFVLEVBQUUsQ0FBQyxDQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0NBQ0Y7QUFwR0Qsa0NBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbmZyYU1vZGVsLFxuICBSZWxhdGlvbnNoaXAsXG4gIEluc2VydENvbXBvbmVudE9wZXJhdGlvbixcbiAgUmVtb3ZlQ29tcG9uZW50T3BlcmF0aW9uLFxuICBSZW5hbWVDb21wb25lbnRPcGVyYXRpb24sXG4gIENvbXBvbmVudE9wZXJhdGlvbixcbiAgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG4gIFRyYW5zaXRpb24sXG4gIEluZnJhTW9kZWxEaWZmLFxuICBUcmFuc2l0aW9uVmVyc2lvbnMsXG4gIGdyb3VwQXJyYXlCeSxcbn0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJ2ZpZmluZXQnO1xuaW1wb3J0IHsgZmxhdE1hcCB9IGZyb20gJy4uL3ByaXZhdGUvbm9kZSc7XG5pbXBvcnQge1xuICBjb21wb25lbnRTaW1pbGFyaXR5RXZhbHVhdG9yLFxuICBzYW1lTmFtZUNvbXBvbmVudFNpbWlsYXJpdHlFdmFsdWF0b3IsXG59IGZyb20gJy4vZW50aXR5LW1hdGNoZXJzL2NvbXBvbmVudC1zaW1pbGFyaXR5JztcbmltcG9ydCB7XG4gIEVudGl0aWVzTWF0Y2hlclJlc3VsdHMsXG4gIG1hdGNoRW50aXRpZXMsXG4gIFNpbWlsYXJpdHlFdmFsdWF0b3IsXG59IGZyb20gJy4vZW50aXR5LW1hdGNoZXJzL2VudGl0aWVzLW1hdGNoZXInO1xuXG5jb25zdCBzaW1pbGFyaXR5VGhyZXNob2xkID0gMC41O1xuXG5leHBvcnQgY2xhc3MgRGlmZkNyZWF0b3Ige1xuXG4gIGNvbXBvbmVudFRyYW5zaXRpb25zOiBUcmFuc2l0aW9uPENvbXBvbmVudD5bXSA9IFtdO1xuICBlbnRpdHlWZXJzaW9uVG9UcmFuc2l0aW9uTWFwID0gbmV3IE1hcDxDb21wb25lbnQgfCBSZWxhdGlvbnNoaXAsIFRyYW5zaXRpb248Q29tcG9uZW50IHwgUmVsYXRpb25zaGlwPj4oKTtcblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBtb2RlbFRyYW5zaXRpb246IFRyYW5zaXRpb248SW5mcmFNb2RlbD4sXG4gICl7fVxuXG4gIHB1YmxpYyBjcmVhdGUoKTogSW5mcmFNb2RlbERpZmZ7XG4gICAgaWYoIXRoaXMubW9kZWxUcmFuc2l0aW9uLnYxIHx8ICF0aGlzLm1vZGVsVHJhbnNpdGlvbi52MilcbiAgICAgIHRocm93IEVycm9yKCdDYW5ub3QgZGlmZiBtb2RlbCB0cmFuc2l0aW9uIHdpdGggdW5kZWZpbmVkIG1vZGVsIHZlcnNpb24nKTtcblxuICAgIC8vIEdyb3VwaW5nIGNvbXBvbmVudHMgYnkgdGhlaXIgdHlwZSBhbmQgc3VidHlwZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgc2luY2UgdGhlaXIgbWF0Y2hpbmcgd2lsbCB0ZXN0IHRoZW0gaW4gTyhuKm4pLlxuICAgIC8vIFdlIGFyZSByZWR1Y2luZyB0aGUgYW1vdW50IG9mIGNhbmRpZGF0ZXMgdGhhdCB3aWxsIGJlIGV4cGxvcmVkIGZvciBlYWNoIGNvbXBvbmVudFxuICAgIGNvbnN0IG9sZENvbXBvbmVudHNHcm91cGVkID0gdGhpcy5ncm91cENvbXBvbmVudHNCeVR5cGUodGhpcy5tb2RlbFRyYW5zaXRpb24udjEuY29tcG9uZW50cyk7XG4gICAgY29uc3QgbmV3Q29tcG9uZW50c0dyb3VwZWQgPSB0aGlzLmdyb3VwQ29tcG9uZW50c0J5VHlwZSh0aGlzLm1vZGVsVHJhbnNpdGlvbi52Mi5jb21wb25lbnRzKTtcblxuICAgIGNvbnN0IGNvbXBvbmVudE9wZXJhdGlvbnM6IENvbXBvbmVudE9wZXJhdGlvbltdID0gW107XG5cbiAgICBjb25zdCBjYXRlZ29yaWVzID0gWy4uLm5ldyBTZXQoWy4uLm9sZENvbXBvbmVudHNHcm91cGVkLmtleXMoKSwgLi4ubmV3Q29tcG9uZW50c0dyb3VwZWQua2V5cygpXSldO1xuXG4gICAgY29tcG9uZW50T3BlcmF0aW9ucy5wdXNoKC4uLmZsYXRNYXAoY2F0ZWdvcmllcywgKHR5cGUpID0+XG4gICAgICB0aGlzLmRpZmZDb21wb25lbnRzKFxuICAgICAgICBvbGRDb21wb25lbnRzR3JvdXBlZC5nZXQodHlwZSkgPz8gW10sXG4gICAgICAgIG5ld0NvbXBvbmVudHNHcm91cGVkLmdldCh0eXBlKSA/PyBbXSxcbiAgICAgICksXG4gICAgKSk7XG5cbiAgICByZXR1cm4gbmV3IEluZnJhTW9kZWxEaWZmKGNvbXBvbmVudE9wZXJhdGlvbnMsIHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbnMsIHRoaXMubW9kZWxUcmFuc2l0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIEZpbmRzIG1hdGNoZXMgYmV0d2VlbiBlcXVhbGx5IG5hbWVkIGNvbXBvbmVudHMgYW5kIGJldHdlZW4gYW55IHJlbWFpbmluZyBvbmVzO1xuICAgICAqIFJldHVybnMgdGhlIENvbXBvbmVudE9wZXJhdGlvbnMgdGhhdCBjb3JyZXNwb25kIHRvIGVhY2ggY29tcG9uZW50IGNoYW5nZVxuICAgICAqIEBwYXJhbSBvbGRDb21wb25lbnRzIFRoZSBvbGQgY29tcG9uZW50cyB0byBtYXRjaFxuICAgICAqIEBwYXJhbSBuZXdDb21wb25lbnRzIFRoZSBuZXcgY29tcG9uZW50cyB0byBtYXRjaFxuICAgICAqL1xuICBwcml2YXRlIGRpZmZDb21wb25lbnRzKG9sZENvbXBvbmVudHM6IENvbXBvbmVudFtdLCBuZXdDb21wb25lbnRzOiBDb21wb25lbnRbXSk6IENvbXBvbmVudE9wZXJhdGlvbltde1xuXG4gICAgY29uc3Qgc2FtZU5hbWVNYXRjaGVzID0gdGhpcy5tYXRjaENvbXBvbmVudHMoXG4gICAgICBvbGRDb21wb25lbnRzLFxuICAgICAgbmV3Q29tcG9uZW50cyxcbiAgICAgIHNhbWVOYW1lQ29tcG9uZW50U2ltaWxhcml0eUV2YWx1YXRvcixcbiAgICApO1xuXG4gICAgY29uc3QgcmVuYW1lZE1hdGNoZXMgPSB0aGlzLm1hdGNoQ29tcG9uZW50cyhcbiAgICAgIHNhbWVOYW1lTWF0Y2hlcy51bm1hdGNoZWRBLFxuICAgICAgc2FtZU5hbWVNYXRjaGVzLnVubWF0Y2hlZEIsXG4gICAgICBjb21wb25lbnRTaW1pbGFyaXR5RXZhbHVhdG9yLFxuICAgICk7XG5cbiAgICBjb25zdCB1cGRhdGVzID0gWy4uLnNhbWVOYW1lTWF0Y2hlcy5tYXRjaGVzLCAuLi5yZW5hbWVkTWF0Y2hlcy5tYXRjaGVzXS5tYXAoXG4gICAgICAoe21ldGFkYXRhOiBwcm9wT3B9KSA9PiBwcm9wT3AsXG4gICAgKS5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgICBjb25zdCByZW5hbWVzID0gcmVuYW1lZE1hdGNoZXMubWF0Y2hlcy5tYXAoKHt0cmFuc2l0aW9ufSkgPT5cbiAgICAgIG5ldyBSZW5hbWVDb21wb25lbnRPcGVyYXRpb24oe30sIHtjb21wb25lbnRUcmFuc2l0aW9uOiB0cmFuc2l0aW9ufSkpO1xuICAgIGNvbnN0IHJlbW92YWxzID0gcmVuYW1lZE1hdGNoZXMudW5tYXRjaGVkQS5tYXAoYyA9PlxuICAgICAgbmV3IFJlbW92ZUNvbXBvbmVudE9wZXJhdGlvbih7fSwge2NvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY3JlYXRlQ29tcG9uZW50VHJhbnNpdGlvbih7djE6IGN9KX0pKTtcbiAgICBjb25zdCBpbnNlcnRpb25zID0gcmVuYW1lZE1hdGNoZXMudW5tYXRjaGVkQi5tYXAoYyA9PlxuICAgICAgbmV3IEluc2VydENvbXBvbmVudE9wZXJhdGlvbih7fSwge2NvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY3JlYXRlQ29tcG9uZW50VHJhbnNpdGlvbih7djI6IGN9KX0pKTtcblxuICAgIHJldHVybiBbLi4ucmVtb3ZhbHMsIC4uLmluc2VydGlvbnMsIC4uLnJlbmFtZXMsIC4uLnVwZGF0ZXNdO1xuICB9XG5cbiAgLyoqXG4gICAgICogVXNlcyB0aGUgQ29tcG9uZW50TWF0Y2hlciB0byBmaW5kIHRoZSBtYXRjaGVzIGJldHdlZW4gdHdvIHNldHMgb2YgQ29tcG9uZW50c1xuICAgICAqIGFuZCByZWdpc3RlcnMgdGhlIG9idGFpbmVkIGNvbXBvbmVudCB0cmFuc2l0aW9ucy5cbiAgICAgKiBAcmV0dXJucyB0aGUgQ29tcG9uZW50TWF0Y2hlcidzIHJlc3VsdHNcbiAgICAgKi9cbiAgcHJpdmF0ZSBtYXRjaENvbXBvbmVudHMoXG4gICAgYTogQ29tcG9uZW50W10sXG4gICAgYjogQ29tcG9uZW50W10sXG4gICAgc2ltaWxhcml0eUV2YWx1YXRvcjogU2ltaWxhcml0eUV2YWx1YXRvcjxDb21wb25lbnQsIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIHwgdW5kZWZpbmVkPixcbiAgKTogRW50aXRpZXNNYXRjaGVyUmVzdWx0czxDb21wb25lbnQsIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgbWF0Y2hlclJlc3VsdHMgPSBtYXRjaEVudGl0aWVzKGEsIGIsIHNpbWlsYXJpdHlFdmFsdWF0b3IsIHNpbWlsYXJpdHlUaHJlc2hvbGQpO1xuICAgIG1hdGNoZXJSZXN1bHRzLm1hdGNoZXMuZm9yRWFjaCgoe3RyYW5zaXRpb259KSA9PiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb25zLnB1c2godHJhbnNpdGlvbikpO1xuICAgIHJldHVybiBtYXRjaGVyUmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgICAqIENyZWF0ZXMgYW5kIHJlZ2lzdGVycyBhIG5ldyBjb21wb25lbnQgdHJhbnNpdGlvbi5cbiAgICAgKiBAcmV0dXJucyB0aGUgdHJhbnNpdGlvblxuICAgICAqL1xuICBwcml2YXRlIGNyZWF0ZUNvbXBvbmVudFRyYW5zaXRpb24oXG4gICAgdmVyc2lvbnM6IFRyYW5zaXRpb25WZXJzaW9uczxDb21wb25lbnQ+LFxuICApOiBUcmFuc2l0aW9uPENvbXBvbmVudD4ge1xuICAgIGNvbnN0IHQgPSBuZXcgVHJhbnNpdGlvbjxDb21wb25lbnQ+KHZlcnNpb25zKTtcbiAgICB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb25zLnB1c2godCk7XG4gICAgcmV0dXJuIHQ7XG4gIH1cblxuICAvKipcbiAgICAgKiBTcGxpdHMgY29tcG9uZW50cyBhY2NvcmRpbmcgdG8gdGhlaXIgdHlwZSBhbmQgc3VidHlwZVxuICAgICAqIEBwYXJhbSBjb21wb25lbnRzXG4gICAgICovXG4gIHByaXZhdGUgZ3JvdXBDb21wb25lbnRzQnlUeXBlKGNvbXBvbmVudHM6IENvbXBvbmVudFtdKTogTWFwPHN0cmluZywgQ29tcG9uZW50W10+e1xuICAgIHJldHVybiBncm91cEFycmF5QnkoY29tcG9uZW50cywgKGM6IENvbXBvbmVudCkgPT4gYCR7Yy50eXBlfS0ke2Muc3VidHlwZX1gKTtcbiAgfVxufVxuIl19

@@ -40,3 +40,3 @@ "use strict";

throw Error('Similarity threshold must be a value between 0 and 1');
const matches = node_1.flatMap(entitiesA, entityA => entitiesB.map((entityB) => {
const matches = (0, node_1.flatMap)(entitiesA, entityA => entitiesB.map((entityB) => {
const transition = new models_1.CompleteTransition({ v1: entityA, v2: entityB });

@@ -61,2 +61,2 @@ const similarityCalcResult = similarityEvaluator(transition);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMtbWF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVudGl0aWVzLW1hdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQStGO0FBQy9GLHFDQUFrQztBQUNsQyw2Q0FBNkM7QUFpQjdDOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixTQUFjLEVBQ2QsU0FBYyxFQUNkLG1CQUE4QyxFQUM5QyxtQkFBbUIsR0FBRyxHQUFHO0lBR3pCLE1BQU0sbUJBQW1CLEdBQUcsK0JBQStCLENBQ3pELFNBQVMsRUFDVCxTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLG1CQUFtQixDQUNwQixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQUssQ0FBQztJQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBSyxDQUFDO0lBRTlCLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FDckMsQ0FBQyxXQUFXLEVBQWlDLEVBQUU7UUFDN0MsSUFBRyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssU0FBUztZQUNuRixNQUFNLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQzFFLElBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2VBQzlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3JELFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsT0FBTyxXQUFXLENBQUM7U0FDcEI7UUFDRCxPQUFPO0lBQ1QsQ0FBQyxDQUNGLENBQUMsTUFBTSxDQUFDLG1CQUFTLENBQUMsQ0FBQztJQUVwQixNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTNELE9BQU8sRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBQyxDQUFDO0FBQzNDLENBQUM7QUFuQ0Qsc0NBbUNDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUywrQkFBK0IsQ0FDdEMsU0FBYyxFQUNkLFNBQWMsRUFDZCxtQkFBOEMsRUFDOUMsbUJBQTJCO0lBRzNCLElBQUcsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLG1CQUFtQixHQUFHLENBQUM7UUFDbkQsTUFBTSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUN0RSxNQUFNLE9BQU8sR0FDWCxjQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQzNCLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQTBDLEVBQUU7UUFDaEUsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBa0IsQ0FBQyxFQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU3RCxJQUFHLENBQUMsb0JBQW9CO1lBQ3RCLE9BQU87UUFFVCxNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxHQUFHLG9CQUFvQixDQUFDO1FBQ3BELElBQUcsVUFBVSxHQUFHLENBQUMsSUFBSSxVQUFVLEdBQUcsQ0FBQztZQUNqQyxNQUFNLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1FBRXRFLElBQUcsVUFBVSxHQUFHLG1CQUFtQjtZQUNqQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7UUFFOUMsT0FBTztJQUNULENBQUMsQ0FBQyxDQUNILENBQUMsTUFBTSxDQUFDLG1CQUFTLENBQUMsQ0FBQztJQUV0QixPQUFPLE9BQU87U0FDWCxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDZixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM3QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUMsQ0FBQztTQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBsZXRlVHJhbnNpdGlvbiwgVHJhbnNpdGlvbiwgSlNPTlNlcmlhbGl6YWJsZSwgU2VyaWFsaXplZCB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQge2lzRGVmaW5lZH0gZnJvbSAnZmlmaW5ldCc7XG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnLi4vLi4vcHJpdmF0ZS9ub2RlJztcblxudHlwZSBWYWxpZEVudGl0eSA9IEpTT05TZXJpYWxpemFibGUgfCBTZXJpYWxpemVkO1xuXG5leHBvcnQgdHlwZSBFbnRpdHlNYXRjaDxUIGV4dGVuZHMgVmFsaWRFbnRpdHksIEsgPSB1bmRlZmluZWQ+ID0ge1xuICB0cmFuc2l0aW9uOiBUcmFuc2l0aW9uPFQ+LFxuICBtZXRhZGF0YTogSyxcbn1cblxuZXhwb3J0IHR5cGUgRW50aXRpZXNNYXRjaGVyUmVzdWx0czxUIGV4dGVuZHMgVmFsaWRFbnRpdHksIEsgPSB1bmRlZmluZWQ+ID0ge1xuICB1bm1hdGNoZWRBOiBUW10sXG4gIHVubWF0Y2hlZEI6IFRbXSxcbiAgbWF0Y2hlczogRW50aXR5TWF0Y2g8VCwgSz5bXVxufVxuXG5leHBvcnQgdHlwZSBTaW1pbGFyaXR5RXZhbHVhdG9yPFQgZXh0ZW5kcyBWYWxpZEVudGl0eSwgSz4gPSAodDogQ29tcGxldGVUcmFuc2l0aW9uPFQ+KSA9PiBbbnVtYmVyLCBLXSB8IHVuZGVmaW5lZDtcblxuLyoqXG4gKiBFdmFsdWF0ZXMgYW5kIHJldHVybnMgdGhlIHZhbGlkIG1hdGNoZXMgYmV0d2VlbiBlbnRpdGllc0EgYW5kIGVudGl0aWVzQlxuICogQHBhcmFtIHNpbWlsYXJpdHlFdmFsdWF0b3IgdGhlIGZ1bmN0aW9uIHVzZWQgdG8gZXZhbHVhdGUgc2ltaWxhcml0eS4gUmV0dXJucyBbbnVtYmVyLCBLXSxcbiAqIHdoZXJlIG51bWJlciBpcyB0aGUgc2ltaWxhcml0eSBhbmQgSyB0aGUgbWV0YWRhdGEgZm9yIHRoYXQgbWF0Y2guIFJldHVybnMgdW5kZWZpbmVkIGlmIHRoZXkncmUgbm90IGEgcG9zc2libGUgbWF0Y2guXG4gKiBAcGFyYW0gc2ltaWxhcml0eVRocmVzaG9sZCB0aGUgdmFsdWUgZm9yIHNpbWlsYXJpdHkgYWJvdmUgd2hpY2ggdHdvIGVudGl0aWVzIGNhbiBtYXRjaFxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hFbnRpdGllczxUIGV4dGVuZHMgVmFsaWRFbnRpdHksIEsgPSB1bmRlZmluZWQ+KFxuICBlbnRpdGllc0E6IFRbXSxcbiAgZW50aXRpZXNCOiBUW10sXG4gIHNpbWlsYXJpdHlFdmFsdWF0b3I6IFNpbWlsYXJpdHlFdmFsdWF0b3I8VCwgSz4sXG4gIHNpbWlsYXJpdHlUaHJlc2hvbGQgPSAwLjUsXG4pOiBFbnRpdGllc01hdGNoZXJSZXN1bHRzPFQsIEs+IHtcblxuICBjb25zdCBtYXRjaGVzQnlTaW1pbGFyaXR5ID0gZmluZE1hdGNoZXNEZWNyZWFzaW5nU2ltaWxhcml0eShcbiAgICBlbnRpdGllc0EsXG4gICAgZW50aXRpZXNCLFxuICAgIHNpbWlsYXJpdHlFdmFsdWF0b3IsXG4gICAgc2ltaWxhcml0eVRocmVzaG9sZCxcbiAgKTtcblxuICBjb25zdCBtYXRjaGVkQSA9IG5ldyBTZXQ8VD4oKTtcbiAgY29uc3QgbWF0Y2hlZEIgPSBuZXcgU2V0PFQ+KCk7XG5cbiAgY29uc3QgbWF0Y2hlcyA9IG1hdGNoZXNCeVNpbWlsYXJpdHkubWFwKFxuICAgIChlbnRpdHlNYXRjaCk6IEVudGl0eU1hdGNoPFQsIEs+IHwgdW5kZWZpbmVkID0+IHtcbiAgICAgIGlmKGVudGl0eU1hdGNoLnRyYW5zaXRpb24udjEgPT09IHVuZGVmaW5lZCB8fCBlbnRpdHlNYXRjaC50cmFuc2l0aW9uLnYyID09PSB1bmRlZmluZWQpXG4gICAgICAgIHRocm93IEVycm9yKCdFbnRpdHlNYXRjaGVyIHByb2R1Y2VkIHRyYW5zaXRpb24gd2l0aCB1bmRlZmluZWQgdmVyc2lvbicpO1xuICAgICAgaWYoIW1hdGNoZWRBLmhhcyhlbnRpdHlNYXRjaC50cmFuc2l0aW9uLnYxKVxuICAgICAgICAgICAgICAgICYmICFtYXRjaGVkQi5oYXMoZW50aXR5TWF0Y2gudHJhbnNpdGlvbi52MikpIHtcbiAgICAgICAgbWF0Y2hlZEEuYWRkKGVudGl0eU1hdGNoLnRyYW5zaXRpb24udjEpO1xuICAgICAgICBtYXRjaGVkQi5hZGQoZW50aXR5TWF0Y2gudHJhbnNpdGlvbi52Mik7XG4gICAgICAgIHJldHVybiBlbnRpdHlNYXRjaDtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9LFxuICApLmZpbHRlcihpc0RlZmluZWQpO1xuXG4gIGNvbnN0IHVubWF0Y2hlZEEgPSBlbnRpdGllc0EuZmlsdGVyKGUgPT4gIW1hdGNoZWRBLmhhcyhlKSk7XG4gIGNvbnN0IHVubWF0Y2hlZEIgPSBlbnRpdGllc0IuZmlsdGVyKGUgPT4gIW1hdGNoZWRCLmhhcyhlKSk7XG5cbiAgcmV0dXJuIHttYXRjaGVzLCB1bm1hdGNoZWRBLCB1bm1hdGNoZWRCfTtcbn1cblxuLyoqXG4gKiBGaW5kcyB0aGUgdmFsaWQgbWF0Y2hlcyBhbmQgb3JkZXJzIHRoZW0gaW4gZGVzY2VuZGluZyBvcmRlciBvZiBzaW1pbGFyaXR5XG4gKiBAcGFyYW0gYWRkaXRpb25hbFZlcmlmaWNhdGlvbiB0aGUgYWRkaXRpb25hbCBjb25kaXRpb24gdGhhdCBmaWx0ZXJzIHRoZSBtYXRjaGVzIHRoYXQgc2hvdWxkIGJlIGV2YWx1YXRlZFxuICovXG5mdW5jdGlvbiBmaW5kTWF0Y2hlc0RlY3JlYXNpbmdTaW1pbGFyaXR5PFQgZXh0ZW5kcyBWYWxpZEVudGl0eSwgSz4oXG4gIGVudGl0aWVzQTogVFtdLFxuICBlbnRpdGllc0I6IFRbXSxcbiAgc2ltaWxhcml0eUV2YWx1YXRvcjogU2ltaWxhcml0eUV2YWx1YXRvcjxULCBLPixcbiAgc2ltaWxhcml0eVRocmVzaG9sZDogbnVtYmVyLFxuKTogRW50aXR5TWF0Y2g8VCxLPltdIHtcblxuICBpZihzaW1pbGFyaXR5VGhyZXNob2xkIDwgMCB8fCBzaW1pbGFyaXR5VGhyZXNob2xkID4gMSlcbiAgICB0aHJvdyBFcnJvcignU2ltaWxhcml0eSB0aHJlc2hvbGQgbXVzdCBiZSBhIHZhbHVlIGJldHdlZW4gMCBhbmQgMScpO1xuICBjb25zdCBtYXRjaGVzOiBbbnVtYmVyLCBFbnRpdHlNYXRjaDxULEs+XVtdID1cbiAgICBmbGF0TWFwKGVudGl0aWVzQSwgZW50aXR5QSA9PlxuICAgICAgZW50aXRpZXNCLm1hcCgoZW50aXR5Qik6IFtudW1iZXIsIEVudGl0eU1hdGNoPFQsSz5dIHwgdW5kZWZpbmVkID0+IHtcbiAgICAgICAgY29uc3QgdHJhbnNpdGlvbiA9IG5ldyBDb21wbGV0ZVRyYW5zaXRpb24oe3YxOiBlbnRpdHlBLCB2MjogZW50aXR5Qn0pO1xuICAgICAgICBjb25zdCBzaW1pbGFyaXR5Q2FsY1Jlc3VsdCA9IHNpbWlsYXJpdHlFdmFsdWF0b3IodHJhbnNpdGlvbik7XG5cbiAgICAgICAgaWYoIXNpbWlsYXJpdHlDYWxjUmVzdWx0KVxuICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBjb25zdCBbc2ltaWxhcml0eSwgbWV0YWRhdGFdID0gc2ltaWxhcml0eUNhbGNSZXN1bHQ7XG4gICAgICAgIGlmKHNpbWlsYXJpdHkgPCAwIHx8IHNpbWlsYXJpdHkgPiAxKVxuICAgICAgICAgIHRocm93IEVycm9yKCdTaW1pbGFyaXR5IGRvZXMgbm90IGhhdmUgYSB2YWx1ZSBpbiB0aGUgcmFuZ2UgWzAsIDFdJyk7XG5cbiAgICAgICAgaWYoc2ltaWxhcml0eSA+IHNpbWlsYXJpdHlUaHJlc2hvbGQpXG4gICAgICAgICAgcmV0dXJuIFtzaW1pbGFyaXR5LCB7dHJhbnNpdGlvbiwgbWV0YWRhdGF9XTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9KSxcbiAgICApLmZpbHRlcihpc0RlZmluZWQpO1xuXG4gIHJldHVybiBtYXRjaGVzXG4gICAgLnNvcnQoKG0xLCBtMikgPT4ge1xuICAgICAgaWYgKG0xWzBdID4gbTJbMF0pIHJldHVybiAtMTtcbiAgICAgIHJldHVybiAobTFbMF0gPT09IG0yWzBdICYmICttMVsxXS50cmFuc2l0aW9uLm5vZGVEYXRhLl9pZCA8ICttMlsxXS50cmFuc2l0aW9uLm5vZGVEYXRhLl9pZCkgPyAtMSA6IDE7XG4gICAgfSlcbiAgICAubWFwKChbLCBlbnRpdHlNYXRjaF0pID0+IGVudGl0eU1hdGNoKTtcbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRpZXMtbWF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImVudGl0aWVzLW1hdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQStGO0FBQy9GLHFDQUFrQztBQUNsQyw2Q0FBNkM7QUFpQjdDOzs7OztHQUtHO0FBQ0gsU0FBZ0IsYUFBYSxDQUMzQixTQUFjLEVBQ2QsU0FBYyxFQUNkLG1CQUE4QyxFQUM5QyxtQkFBbUIsR0FBRyxHQUFHO0lBR3pCLE1BQU0sbUJBQW1CLEdBQUcsK0JBQStCLENBQ3pELFNBQVMsRUFDVCxTQUFTLEVBQ1QsbUJBQW1CLEVBQ25CLG1CQUFtQixDQUNwQixDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQUssQ0FBQztJQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBSyxDQUFDO0lBRTlCLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FDckMsQ0FBQyxXQUFXLEVBQWlDLEVBQUU7UUFDN0MsSUFBRyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxTQUFTLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssU0FBUztZQUNuRixNQUFNLEtBQUssQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQzFFLElBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2VBQzlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3JELFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsT0FBTyxXQUFXLENBQUM7U0FDcEI7UUFDRCxPQUFPO0lBQ1QsQ0FBQyxDQUNGLENBQUMsTUFBTSxDQUFDLG1CQUFTLENBQUMsQ0FBQztJQUVwQixNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTNELE9BQU8sRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBQyxDQUFDO0FBQzNDLENBQUM7QUFuQ0Qsc0NBbUNDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUywrQkFBK0IsQ0FDdEMsU0FBYyxFQUNkLFNBQWMsRUFDZCxtQkFBOEMsRUFDOUMsbUJBQTJCO0lBRzNCLElBQUcsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLG1CQUFtQixHQUFHLENBQUM7UUFDbkQsTUFBTSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUN0RSxNQUFNLE9BQU8sR0FDWCxJQUFBLGNBQU8sRUFBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FDM0IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBMEMsRUFBRTtRQUNoRSxNQUFNLFVBQVUsR0FBRyxJQUFJLDJCQUFrQixDQUFDLEVBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztRQUN0RSxNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdELElBQUcsQ0FBQyxvQkFBb0I7WUFDdEIsT0FBTztRQUVULE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEdBQUcsb0JBQW9CLENBQUM7UUFDcEQsSUFBRyxVQUFVLEdBQUcsQ0FBQyxJQUFJLFVBQVUsR0FBRyxDQUFDO1lBQ2pDLE1BQU0sS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7UUFFdEUsSUFBRyxVQUFVLEdBQUcsbUJBQW1CO1lBQ2pDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQztRQUU5QyxPQUFPO0lBQ1QsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxNQUFNLENBQUMsbUJBQVMsQ0FBQyxDQUFDO0lBRXRCLE9BQU8sT0FBTztTQUNYLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUNmLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkcsQ0FBQyxDQUFDO1NBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcGxldGVUcmFuc2l0aW9uLCBUcmFuc2l0aW9uLCBKU09OU2VyaWFsaXphYmxlLCBTZXJpYWxpemVkIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7aXNEZWZpbmVkfSBmcm9tICdmaWZpbmV0JztcbmltcG9ydCB7IGZsYXRNYXAgfSBmcm9tICcuLi8uLi9wcml2YXRlL25vZGUnO1xuXG50eXBlIFZhbGlkRW50aXR5ID0gSlNPTlNlcmlhbGl6YWJsZSB8IFNlcmlhbGl6ZWQ7XG5cbmV4cG9ydCB0eXBlIEVudGl0eU1hdGNoPFQgZXh0ZW5kcyBWYWxpZEVudGl0eSwgSyA9IHVuZGVmaW5lZD4gPSB7XG4gIHRyYW5zaXRpb246IFRyYW5zaXRpb248VD4sXG4gIG1ldGFkYXRhOiBLLFxufVxuXG5leHBvcnQgdHlwZSBFbnRpdGllc01hdGNoZXJSZXN1bHRzPFQgZXh0ZW5kcyBWYWxpZEVudGl0eSwgSyA9IHVuZGVmaW5lZD4gPSB7XG4gIHVubWF0Y2hlZEE6IFRbXSxcbiAgdW5tYXRjaGVkQjogVFtdLFxuICBtYXRjaGVzOiBFbnRpdHlNYXRjaDxULCBLPltdXG59XG5cbmV4cG9ydCB0eXBlIFNpbWlsYXJpdHlFdmFsdWF0b3I8VCBleHRlbmRzIFZhbGlkRW50aXR5LCBLPiA9ICh0OiBDb21wbGV0ZVRyYW5zaXRpb248VD4pID0+IFtudW1iZXIsIEtdIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIEV2YWx1YXRlcyBhbmQgcmV0dXJucyB0aGUgdmFsaWQgbWF0Y2hlcyBiZXR3ZWVuIGVudGl0aWVzQSBhbmQgZW50aXRpZXNCXG4gKiBAcGFyYW0gc2ltaWxhcml0eUV2YWx1YXRvciB0aGUgZnVuY3Rpb24gdXNlZCB0byBldmFsdWF0ZSBzaW1pbGFyaXR5LiBSZXR1cm5zIFtudW1iZXIsIEtdLFxuICogd2hlcmUgbnVtYmVyIGlzIHRoZSBzaW1pbGFyaXR5IGFuZCBLIHRoZSBtZXRhZGF0YSBmb3IgdGhhdCBtYXRjaC4gUmV0dXJucyB1bmRlZmluZWQgaWYgdGhleSdyZSBub3QgYSBwb3NzaWJsZSBtYXRjaC5cbiAqIEBwYXJhbSBzaW1pbGFyaXR5VGhyZXNob2xkIHRoZSB2YWx1ZSBmb3Igc2ltaWxhcml0eSBhYm92ZSB3aGljaCB0d28gZW50aXRpZXMgY2FuIG1hdGNoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaEVudGl0aWVzPFQgZXh0ZW5kcyBWYWxpZEVudGl0eSwgSyA9IHVuZGVmaW5lZD4oXG4gIGVudGl0aWVzQTogVFtdLFxuICBlbnRpdGllc0I6IFRbXSxcbiAgc2ltaWxhcml0eUV2YWx1YXRvcjogU2ltaWxhcml0eUV2YWx1YXRvcjxULCBLPixcbiAgc2ltaWxhcml0eVRocmVzaG9sZCA9IDAuNSxcbik6IEVudGl0aWVzTWF0Y2hlclJlc3VsdHM8VCwgSz4ge1xuXG4gIGNvbnN0IG1hdGNoZXNCeVNpbWlsYXJpdHkgPSBmaW5kTWF0Y2hlc0RlY3JlYXNpbmdTaW1pbGFyaXR5KFxuICAgIGVudGl0aWVzQSxcbiAgICBlbnRpdGllc0IsXG4gICAgc2ltaWxhcml0eUV2YWx1YXRvcixcbiAgICBzaW1pbGFyaXR5VGhyZXNob2xkLFxuICApO1xuXG4gIGNvbnN0IG1hdGNoZWRBID0gbmV3IFNldDxUPigpO1xuICBjb25zdCBtYXRjaGVkQiA9IG5ldyBTZXQ8VD4oKTtcblxuICBjb25zdCBtYXRjaGVzID0gbWF0Y2hlc0J5U2ltaWxhcml0eS5tYXAoXG4gICAgKGVudGl0eU1hdGNoKTogRW50aXR5TWF0Y2g8VCwgSz4gfCB1bmRlZmluZWQgPT4ge1xuICAgICAgaWYoZW50aXR5TWF0Y2gudHJhbnNpdGlvbi52MSA9PT0gdW5kZWZpbmVkIHx8IGVudGl0eU1hdGNoLnRyYW5zaXRpb24udjIgPT09IHVuZGVmaW5lZClcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0VudGl0eU1hdGNoZXIgcHJvZHVjZWQgdHJhbnNpdGlvbiB3aXRoIHVuZGVmaW5lZCB2ZXJzaW9uJyk7XG4gICAgICBpZighbWF0Y2hlZEEuaGFzKGVudGl0eU1hdGNoLnRyYW5zaXRpb24udjEpXG4gICAgICAgICAgICAgICAgJiYgIW1hdGNoZWRCLmhhcyhlbnRpdHlNYXRjaC50cmFuc2l0aW9uLnYyKSkge1xuICAgICAgICBtYXRjaGVkQS5hZGQoZW50aXR5TWF0Y2gudHJhbnNpdGlvbi52MSk7XG4gICAgICAgIG1hdGNoZWRCLmFkZChlbnRpdHlNYXRjaC50cmFuc2l0aW9uLnYyKTtcbiAgICAgICAgcmV0dXJuIGVudGl0eU1hdGNoO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH0sXG4gICkuZmlsdGVyKGlzRGVmaW5lZCk7XG5cbiAgY29uc3QgdW5tYXRjaGVkQSA9IGVudGl0aWVzQS5maWx0ZXIoZSA9PiAhbWF0Y2hlZEEuaGFzKGUpKTtcbiAgY29uc3QgdW5tYXRjaGVkQiA9IGVudGl0aWVzQi5maWx0ZXIoZSA9PiAhbWF0Y2hlZEIuaGFzKGUpKTtcblxuICByZXR1cm4ge21hdGNoZXMsIHVubWF0Y2hlZEEsIHVubWF0Y2hlZEJ9O1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSB2YWxpZCBtYXRjaGVzIGFuZCBvcmRlcnMgdGhlbSBpbiBkZXNjZW5kaW5nIG9yZGVyIG9mIHNpbWlsYXJpdHlcbiAqIEBwYXJhbSBhZGRpdGlvbmFsVmVyaWZpY2F0aW9uIHRoZSBhZGRpdGlvbmFsIGNvbmRpdGlvbiB0aGF0IGZpbHRlcnMgdGhlIG1hdGNoZXMgdGhhdCBzaG91bGQgYmUgZXZhbHVhdGVkXG4gKi9cbmZ1bmN0aW9uIGZpbmRNYXRjaGVzRGVjcmVhc2luZ1NpbWlsYXJpdHk8VCBleHRlbmRzIFZhbGlkRW50aXR5LCBLPihcbiAgZW50aXRpZXNBOiBUW10sXG4gIGVudGl0aWVzQjogVFtdLFxuICBzaW1pbGFyaXR5RXZhbHVhdG9yOiBTaW1pbGFyaXR5RXZhbHVhdG9yPFQsIEs+LFxuICBzaW1pbGFyaXR5VGhyZXNob2xkOiBudW1iZXIsXG4pOiBFbnRpdHlNYXRjaDxULEs+W10ge1xuXG4gIGlmKHNpbWlsYXJpdHlUaHJlc2hvbGQgPCAwIHx8IHNpbWlsYXJpdHlUaHJlc2hvbGQgPiAxKVxuICAgIHRocm93IEVycm9yKCdTaW1pbGFyaXR5IHRocmVzaG9sZCBtdXN0IGJlIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxJyk7XG4gIGNvbnN0IG1hdGNoZXM6IFtudW1iZXIsIEVudGl0eU1hdGNoPFQsSz5dW10gPVxuICAgIGZsYXRNYXAoZW50aXRpZXNBLCBlbnRpdHlBID0+XG4gICAgICBlbnRpdGllc0IubWFwKChlbnRpdHlCKTogW251bWJlciwgRW50aXR5TWF0Y2g8VCxLPl0gfCB1bmRlZmluZWQgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2l0aW9uID0gbmV3IENvbXBsZXRlVHJhbnNpdGlvbih7djE6IGVudGl0eUEsIHYyOiBlbnRpdHlCfSk7XG4gICAgICAgIGNvbnN0IHNpbWlsYXJpdHlDYWxjUmVzdWx0ID0gc2ltaWxhcml0eUV2YWx1YXRvcih0cmFuc2l0aW9uKTtcblxuICAgICAgICBpZighc2ltaWxhcml0eUNhbGNSZXN1bHQpXG4gICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IFtzaW1pbGFyaXR5LCBtZXRhZGF0YV0gPSBzaW1pbGFyaXR5Q2FsY1Jlc3VsdDtcbiAgICAgICAgaWYoc2ltaWxhcml0eSA8IDAgfHwgc2ltaWxhcml0eSA+IDEpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoJ1NpbWlsYXJpdHkgZG9lcyBub3QgaGF2ZSBhIHZhbHVlIGluIHRoZSByYW5nZSBbMCwgMV0nKTtcblxuICAgICAgICBpZihzaW1pbGFyaXR5ID4gc2ltaWxhcml0eVRocmVzaG9sZClcbiAgICAgICAgICByZXR1cm4gW3NpbWlsYXJpdHksIHt0cmFuc2l0aW9uLCBtZXRhZGF0YX1dO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH0pLFxuICAgICkuZmlsdGVyKGlzRGVmaW5lZCk7XG5cbiAgcmV0dXJuIG1hdGNoZXNcbiAgICAuc29ydCgobTEsIG0yKSA9PiB7XG4gICAgICBpZiAobTFbMF0gPiBtMlswXSkgcmV0dXJuIC0xO1xuICAgICAgcmV0dXJuIChtMVswXSA9PT0gbTJbMF0gJiYgK20xWzFdLnRyYW5zaXRpb24ubm9kZURhdGEuX2lkIDwgK20yWzFdLnRyYW5zaXRpb24ubm9kZURhdGEuX2lkKSA/IC0xIDogMTtcbiAgICB9KVxuICAgIC5tYXAoKFssIGVudGl0eU1hdGNoXSkgPT4gZW50aXR5TWF0Y2gpO1xufSJdfQ==

@@ -17,3 +17,3 @@ "use strict";

const [p1Array, p2Array] = [p1, p2].map(p => p.getArray());
const matcherResults = entities_matcher_1.matchEntities(p1Array.map((_, i) => i), p2Array.map((_, i) => i), component_properties_matcher_1.propertySimilarityEvaluatorCreator(this.componentTransition, node_1.fromEntries(p1Array.map((e, i) => [i, e])), node_1.fromEntries(p2Array.map((e, i) => [i, e])), pathP1, pathP2), propertySimilarityThreshold);
const matcherResults = (0, entities_matcher_1.matchEntities)(p1Array.map((_, i) => i), p2Array.map((_, i) => i), (0, component_properties_matcher_1.propertySimilarityEvaluatorCreator)(this.componentTransition, (0, node_1.fromEntries)(p1Array.map((e, i) => [i, e])), (0, node_1.fromEntries)(p2Array.map((e, i) => [i, e])), pathP1, pathP2), propertySimilarityThreshold);
const matchedDiffs = matcherResults.matches.map(({ transition: { v1, v2 }, metadata: propDiff }) => {

@@ -74,3 +74,3 @@ var _a;

const [p1Record, p2Record] = [p1, p2].map(p => p.getRecord());
const sameNameKeys = models_1.arrayIntersection(Object.keys(p1Record), Object.keys(p2Record));
const sameNameKeys = (0, models_1.arrayIntersection)(Object.keys(p1Record), Object.keys(p2Record));
const pickedSameNames = sameNameKeys

@@ -85,3 +85,3 @@ .map((k) => [k, this.create(p1Record[k], p2Record[k], [...pathP1, k], [...pathP2, k])])

const sameNameDiffs = pickedSameNames.map(([, pd]) => pd);
const renamedDiffMatchResults = entities_matcher_1.matchEntities(Object.keys(p1Record).filter((k) => !pickedSameNameKeys.has(k)), Object.keys(p2Record).filter((k) => !pickedSameNameKeys.has(k)), component_properties_matcher_1.propertySimilarityEvaluatorCreator(this.componentTransition, p1Record, p2Record, pathP1, pathP2), propertySimilarityThreshold);
const renamedDiffMatchResults = (0, entities_matcher_1.matchEntities)(Object.keys(p1Record).filter((k) => !pickedSameNameKeys.has(k)), Object.keys(p2Record).filter((k) => !pickedSameNameKeys.has(k)), (0, component_properties_matcher_1.propertySimilarityEvaluatorCreator)(this.componentTransition, p1Record, p2Record, pathP1, pathP2), propertySimilarityThreshold);
const renamedDiffs = renamedDiffMatchResults.matches.map(({ transition: { v1, v2 }, metadata: propDiff }) => {

@@ -141,3 +141,3 @@ var _a;

const similarity = typeof p1.value === 'string' && typeof p2.value === 'string'
? models_1.stringSimilarity(p1.value, p2.value)
? (0, models_1.stringSimilarity)(p1.value, p2.value)
: (p1.value === p2.value ? 1 : 0);

@@ -192,2 +192,2 @@ let operation;

exports.PropertyDiffCreator = PropertyDiffCreator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3BlcnR5LWRpZmYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBZXlCO0FBQ3pCLDBDQUE4QztBQUM5QyxpR0FBb0c7QUFDcEcseUVBQW1FO0FBV25FLE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFFOUIsWUFDbUIsbUJBQTBDO1FBQTFDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBdUI7UUFzR3JELHdCQUFtQixHQUFHLENBQzVCLEVBQTBCLEVBQzFCLEVBQTBCLEVBQzFCLE1BQThCLEVBQzlCLE1BQThCLEVBQzlCLEVBQUU7WUFDRixNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRTFELE1BQU0sY0FBYyxHQUFHLGdDQUFhLENBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUN2QixpRUFBa0MsQ0FDaEMsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixrQkFBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzFDLGtCQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENB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QUFDO1NBQ047YUFBTTtZQUNMLFNBQVMsR0FBRyxJQUFJLHlDQUFnQyxDQUFDLEVBQUUsRUFBRTtnQkFDbkQsY0FBYyxFQUFFLElBQUksbUJBQVUsQ0FBQyxFQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBQyxDQUFDO2dCQUN4RCxrQkFBa0IsRUFBRSxJQUFJLG1CQUFVLENBQUMsRUFBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsQ0FBQztnQkFDcEQsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjthQUM5QyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU87WUFDTCxVQUFVLEVBQUUsQ0FBQztZQUNiLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkUsU0FBUztTQUNWLENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCLENBQUUsR0FBMkI7UUFDckQsSUFBRyxHQUFHLFlBQVksbUNBQTBCO1lBQzFDLE9BQU8sQ0FBQyxDQUFDO2FBQ04sSUFBRyxHQUFHLFlBQVksb0NBQTJCLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBQztZQUNsRixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDL0Y7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDRjtBQXZRRCxrREF1UUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFByb3BlcnR5VmFsdWUsXG4gIENvbXBvbmVudFByb3BlcnR5QXJyYXksXG4gIENvbXBvbmVudENvbGxlY3Rpb25Qcm9wZXJ0eSxcbiAgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUsXG4gIENvbXBvbmVudFByb3BlcnR5UmVjb3JkLFxuICBFbXB0eUNvbXBvbmVudFByb3BlcnR5LFxuICBUcmFuc2l0aW9uLFxuICBJbnNlcnRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbiAgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG4gIFJlbW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxuICBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbiAgTW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxuICBhcnJheUludGVyc2VjdGlvbiwgaXNEZWZpbmVkLCBzdHJpbmdTaW1pbGFyaXR5LFxufSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgZnJvbUVudHJpZXMgfSBmcm9tICcuLi9wcml2YXRlL25vZGUnO1xuaW1wb3J0IHsgcHJvcGVydHlTaW1pbGFyaXR5RXZhbHVhdG9yQ3JlYXRvciB9IGZyb20gJy4vZW50aXR5LW1hdGNoZXJzL2NvbXBvbmVudC1wcm9wZXJ0aWVzLW1hdGNoZXInO1xuaW1wb3J0IHsgbWF0Y2hFbnRpdGllcyB9IGZyb20gJy4vZW50aXR5LW1hdGNoZXJzL2VudGl0aWVzLW1hdGNoZXInO1xuXG4vKipcbiAqIERlc2NyaWJlcyBob3cgdHdvIENvbXBvbmVudFByb3BlcnRpZXMgZGlmZmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlEaWZmIHtcbiAgcmVhZG9ubHkgc2ltaWxhcml0eTogbnVtYmVyLFxuICByZWFkb25seSB3ZWlnaHQ6IG51bWJlcixcbiAgcmVhZG9ubHkgb3BlcmF0aW9uPzogUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG59XG5cbmNvbnN0IHByb3BlcnR5U2ltaWxhcml0eVRocmVzaG9sZCA9IDAuNTtcblxuLyoqXG4gKiBDcmVhdGVzIHRoZSBQcm9wZXJ0eURpZmYgYmV0d2VlbiB0d28gcHJvcGVydGllcyBvZiBhIGdpdmVuIFRyYW5zaXRpb248Q29tcG9uZW50Pi5cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5RGlmZkNyZWF0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50VHJhbnNpdGlvbjogVHJhbnNpdGlvbjxDb21wb25lbnQ+LFxuICApIHtcbiAgICBpZighdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLnYxIHx8ICF0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24udjIpXG4gICAgICB0aHJvdyBFcnJvcignQ2Fubm90IGRpZmYgUHJvcGVydGllcyBvZiBUcmFuc2l0aW9uPENvbXBvbmVudD4gd2l0aCB1bmRlZmluZWQgdmVyc2lvbicpO1xuXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlKFxuICAgIHAxOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIHAyOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIGJhc2VQYXRoUDE6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gPSBbXSxcbiAgICBiYXNlUGF0aFAyID0gYmFzZVBhdGhQMSxcbiAgKTogUHJvcGVydHlEaWZmIHtcbiAgICBpZihwMSBpbnN0YW5jZW9mIENvbXBvbmVudFByb3BlcnR5UmVjb3JkICYmIHAyIGluc3RhbmNlb2YgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQpe1xuICAgICAgcmV0dXJuIHRoaXMuZnJvbVJlY29yZFByb3BlcnRpZXMocDEsIHAyLCBiYXNlUGF0aFAxLCBiYXNlUGF0aFAyKTtcbiAgICB9IGVsc2UgaWYocDEgaW5zdGFuY2VvZiBDb21wb25lbnRQcm9wZXJ0eUFycmF5ICYmIHAyIGluc3RhbmNlb2YgQ29tcG9uZW50UHJvcGVydHlBcnJheSl7XG4gICAgICByZXR1cm4gdGhpcy5mcm9tQXJyYXlQcm9wZXJ0aWVzKHAxLCBwMiwgYmFzZVBhdGhQMSwgYmFzZVBhdGhQMik7XG4gICAgfSBlbHNlIGlmKHAxIGluc3RhbmNlb2YgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUgJiYgcDIgaW5zdGFuY2VvZiBDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZSl7XG4gICAgICByZXR1cm4gdGhpcy5mcm9tUHJpbWl0aXZlcyhwMSwgcDIsIGJhc2VQYXRoUDEsIGJhc2VQYXRoUDIpO1xuICAgIH0gZWxzZSBpZihwMSBpbnN0YW5jZW9mIEVtcHR5Q29tcG9uZW50UHJvcGVydHkgJiYgcDIgaW5zdGFuY2VvZiBFbXB0eUNvbXBvbmVudFByb3BlcnR5KSB7XG4gICAgICByZXR1cm4ge3NpbWlsYXJpdHk6IDEsIHdlaWdodDogMH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZyb21EaWZmZXJlbnRQcm9wZXJ0aWVzKHAxLCBwMiwgYmFzZVBhdGhQMSwgYmFzZVBhdGhQMik7XG4gIH1cblxuICBwcml2YXRlIGZyb21SZWNvcmRQcm9wZXJ0aWVzKFxuICAgIHAxOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIHAyOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIHBhdGhQMTogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgICBwYXRoUDI6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4gICk6IFByb3BlcnR5RGlmZiB7XG4gICAgY29uc3QgW3AxUmVjb3JkLCBwMlJlY29yZF0gPSBbcDEscDJdLm1hcChwID0+IHAuZ2V0UmVjb3JkKCkpO1xuXG4gICAgY29uc3Qgc2FtZU5hbWVLZXlzID0gYXJyYXlJbnRlcnNlY3Rpb24oT2JqZWN0LmtleXMocDFSZWNvcmQpLCBPYmplY3Qua2V5cyhwMlJlY29yZCkpO1xuXG4gICAgY29uc3QgcGlja2VkU2FtZU5hbWVzOiBbc3RyaW5nLCBQcm9wZXJ0eURpZmZdW10gPSBzYW1lTmFtZUtleXNcbiAgICAgIC5tYXAoKGspOiBbc3RyaW5nLCBQcm9wZXJ0eURpZmZdID0+IFtrLCB0aGlzLmNyZWF0ZShwMVJlY29yZFtrXSwgcDJSZWNvcmRba10sIFsuLi5wYXRoUDEsIGtdLCBbLi4ucGF0aFAyLCBrXSldKVxuICAgICAgLm1hcCgoW2ssIHBkXSk6IFtzdHJpbmcsIFByb3BlcnR5RGlmZl0gPT4gW2ssIHtcbiAgICAgICAgLi4ucGQsXG4gICAgICAgIHNpbWlsYXJpdHk6IHBkLnNpbWlsYXJpdHkgKyAoMSAtIHBkLnNpbWlsYXJpdHkpKigxLyhwZC53ZWlnaHQrMSkpLCAvLyBrZXlzIGltcGFjdCBzaW1pbGlhcml0eSBhcyBtdWNoIGFzIHN0cmluZyB2YWx1ZXNcbiAgICAgICAgd2VpZ2h0OiBwZC53ZWlnaHQgKyAxLFxuICAgICAgfV0pO1xuXG4gICAgY29uc3QgcGlja2VkU2FtZU5hbWVLZXlzID0gbmV3IFNldChwaWNrZWRTYW1lTmFtZXMubWFwKChba10pID0+IGspKTtcbiAgICBjb25zdCBzYW1lTmFtZURpZmZzID0gcGlja2VkU2FtZU5hbWVzLm1hcCgoWywgcGRdKSA9PiBwZCk7XG5cbiAgICBjb25zdCByZW5hbWVkRGlmZk1hdGNoUmVzdWx0cyA9IG1hdGNoRW50aXRpZXM8c3RyaW5nLCBQcm9wZXJ0eURpZmY+KFxuICAgICAgT2JqZWN0LmtleXMocDFSZWNvcmQpLmZpbHRlcigoaykgPT4gIXBpY2tlZFNhbWVOYW1lS2V5cy5oYXMoaykpLFxuICAgICAgT2JqZWN0LmtleXMocDJSZWNvcmQpLmZpbHRlcigoaykgPT4gIXBpY2tlZFNhbWVOYW1lS2V5cy5oYXMoaykpLFxuICAgICAgcHJvcGVydHlTaW1pbGFyaXR5RXZhbHVhdG9yQ3JlYXRvcihcbiAgICAgICAgdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgICBwMVJlY29yZCwgcDJSZWNvcmQsIHBhdGhQMSwgcGF0aFAyLFxuICAgICAgKSxcbiAgICAgIHByb3BlcnR5U2ltaWxhcml0eVRocmVzaG9sZCxcbiAgICApO1xuXG4gICAgY29uc3QgcmVuYW1lZERpZmZzID0gcmVuYW1lZERpZmZNYXRjaFJlc3VsdHMubWF0Y2hlcy5tYXAoKHt0cmFuc2l0aW9uOiB7djEsIHYyfSwgbWV0YWRhdGE6IHByb3BEaWZmfSkgPT4ge1xuICAgICAgaWYoIXYxIHx8ICF2MilcbiAgICAgICAgdGhyb3cgRXJyb3IoJ0VudGl0eSBtYXRjaGluZyByZXR1cm5lZCB1bmRlZmluZWQgdmVyc2lvbnMnKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNpbWlsYXJpdHk6IHByb3BEaWZmLnNpbWlsYXJpdHksXG4gICAgICAgIHdlaWdodDogcHJvcERpZmYud2VpZ2h0LFxuICAgICAgICBvcGVyYXRpb246IG5ldyBNb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oe30sIHtcbiAgICAgICAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBbLi4ucGF0aFAxLCB2MVswXV0sIHYyOiBbLi4ucGF0aFAyLCB2MlswXV19KSxcbiAgICAgICAgICBwcm9wZXJ0eVRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MTogcDFSZWNvcmRbdjFdLCB2MjogcDJSZWNvcmRbdjJdfSksXG4gICAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbjogdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgICAgIGlubmVyT3BlcmF0aW9uczogKHByb3BEaWZmLm9wZXJhdGlvbiBhcyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbik/LmlubmVyT3BlcmF0aW9ucyxcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgcmVtb3ZlZERpZmZzID0gcmVuYW1lZERpZmZNYXRjaFJlc3VsdHMudW5tYXRjaGVkQS5tYXAoKGspID0+ICh7XG4gICAgICBzaW1pbGFyaXR5OiAwLFxuICAgICAgd2VpZ2h0OiB0aGlzLmNhbGNQcm9wZXJ0eVdlaWdodChwMVJlY29yZFtrXSksXG4gICAgICBvcGVyYXRpb246IG5ldyBSZW1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbihcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBbLi4ucGF0aFAxLCBrXX0pLFxuICAgICAgICAgIHByb3BlcnR5VHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBwMVJlY29yZFtrXX0pLFxuICAgICAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgICAgfSksXG4gICAgfSkpO1xuICAgIGNvbnN0IGluc2VydGVkRGlmZnMgPSByZW5hbWVkRGlmZk1hdGNoUmVzdWx0cy51bm1hdGNoZWRCLm1hcCgoaykgPT4gKHtcbiAgICAgIHNpbWlsYXJpdHk6IDAsXG4gICAgICB3ZWlnaHQ6IHRoaXMuY2FsY1Byb3BlcnR5V2VpZ2h0KHAyUmVjb3JkW2tdKSxcbiAgICAgIG9wZXJhdGlvbjogbmV3IEluc2VydFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djI6IFsuLi5wYXRoUDIsIGtdfSksXG4gICAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djI6IHAyUmVjb3JkW2tdfSksXG4gICAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbjogdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgICB9KSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tQ29sbGVjdGlvbkRpZmZzKFxuICAgICAgcDEsXG4gICAgICBwMixcbiAgICAgIFsuLi5zYW1lTmFtZURpZmZzLCAuLi5yZW5hbWVkRGlmZnMsIC4uLnJlbW92ZWREaWZmcywgLi4uaW5zZXJ0ZWREaWZmc10sXG4gICAgICBwYXRoUDEsXG4gICAgICBwYXRoUDIpO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tQXJyYXlQcm9wZXJ0aWVzID0gKFxuICAgIHAxOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIHAyOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIHBhdGhQMTogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgICBwYXRoUDI6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4gICkgPT4ge1xuICAgIGNvbnN0IFtwMUFycmF5LCBwMkFycmF5XSA9IFtwMSxwMl0ubWFwKHAgPT4gcC5nZXRBcnJheSgpKTtcblxuICAgIGNvbnN0IG1hdGNoZXJSZXN1bHRzID0gbWF0Y2hFbnRpdGllcyhcbiAgICAgIHAxQXJyYXkubWFwKChfLGkpID0+IGkpLFxuICAgICAgcDJBcnJheS5tYXAoKF8saSkgPT4gaSksXG4gICAgICBwcm9wZXJ0eVNpbWlsYXJpdHlFdmFsdWF0b3JDcmVhdG9yKFxuICAgICAgICB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24sXG4gICAgICAgIGZyb21FbnRyaWVzKHAxQXJyYXkubWFwKChlLCBpKSA9PiBbaSwgZV0pKSxcbiAgICAgICAgZnJvbUVudHJpZXMocDJBcnJheS5tYXAoKGUsIGkpID0+IFtpLCBlXSkpLFxuICAgICAgICBwYXRoUDEsIHBhdGhQMixcbiAgICAgICksXG4gICAgICBwcm9wZXJ0eVNpbWlsYXJpdHlUaHJlc2hvbGQsXG4gICAgKTtcblxuICAgIGNvbnN0IG1hdGNoZWREaWZmcyA9IG1hdGNoZXJSZXN1bHRzLm1hdGNoZXMubWFwKCh7dHJhbnNpdGlvbjoge3YxLCB2Mn0sIG1ldGFkYXRhOiBwcm9wRGlmZn0pID0+XG4gICAgICB2MSAmJiB2MiAmJiB2MSAhPT0gdjJcbiAgICAgICAgPyB7XG4gICAgICAgICAgc2ltaWxhcml0eTogcHJvcERpZmYuc2ltaWxhcml0eSxcbiAgICAgICAgICB3ZWlnaHQ6IHByb3BEaWZmLndlaWdodCxcbiAgICAgICAgICBvcGVyYXRpb246IG5ldyBNb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oe30sIHtcbiAgICAgICAgICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IFsuLi5wYXRoUDEsIHYxXSwgdjI6IFsuLi5wYXRoUDIsIHYyXX0pLFxuICAgICAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHAxQXJyYXlbdjFdLCB2MjogcDJBcnJheVt2Ml19KSxcbiAgICAgICAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgICAgICAgIGlubmVyT3BlcmF0aW9uczogKHByb3BEaWZmLm9wZXJhdGlvbiBhcyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbik/LmlubmVyT3BlcmF0aW9ucyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfVxuICAgICAgICA6IHByb3BEaWZmLFxuICAgICkuZmlsdGVyKGlzRGVmaW5lZCk7XG5cbiAgICBjb25zdCByZW1vdmVkRGlmZnMgPSBtYXRjaGVyUmVzdWx0cy51bm1hdGNoZWRBLm1hcCgoaSkgPT4gKHtcbiAgICAgIHNpbWlsYXJpdHk6IDAsXG4gICAgICB3ZWlnaHQ6IHRoaXMuY2FsY1Byb3BlcnR5V2VpZ2h0KHAxQXJyYXlbaV0pLFxuICAgICAgb3BlcmF0aW9uOiBuZXcgUmVtb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgcGF0aFRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MTogWy4uLnBhdGhQMSwgaV19KSxcbiAgICAgICAgICBwcm9wZXJ0eVRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MTogcDFBcnJheVtpXX0pLFxuICAgICAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgICAgfSksXG4gICAgfSkpO1xuXG4gICAgY29uc3QgaW5zZXJ0ZWREaWZmcyA9IG1hdGNoZXJSZXN1bHRzLnVubWF0Y2hlZEIubWFwKChpKSA9PiAoe1xuICAgICAgc2ltaWxhcml0eTogMCxcbiAgICAgIHdlaWdodDogdGhpcy5jYWxjUHJvcGVydHlXZWlnaHQocDJBcnJheVtpXSksXG4gICAgICBvcGVyYXRpb246IG5ldyBJbnNlcnRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbihcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YyOiBbLi4ucGF0aFAyLCBpXX0pLFxuICAgICAgICAgIHByb3BlcnR5VHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YyOiBwMkFycmF5W2ldfSksXG4gICAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbjogdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgICB9KSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tQ29sbGVjdGlvbkRpZmZzKHAxLCBwMiwgWy4uLm1hdGNoZWREaWZmcywgLi4uaW5zZXJ0ZWREaWZmcywgLi4ucmVtb3ZlZERpZmZzXSwgcGF0aFAxLCBwYXRoUDIpO1xuICB9O1xuXG4gIHByaXZhdGUgZnJvbUNvbGxlY3Rpb25EaWZmcyAoXG4gICAgcDE6IENvbXBvbmVudFByb3BlcnR5VmFsdWUsXG4gICAgcDI6IENvbXBvbmVudFByb3BlcnR5VmFsdWUsXG4gICAgaW5uZXJEaWZmczogUHJvcGVydHlEaWZmW10sXG4gICAgcGF0aFAxOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuICAgIHBhdGhQMjogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgKSB7XG4gICAgY29uc3QgdG90YWxXZWlnaHQgPSBpbm5lckRpZmZzLnJlZHVjZSgodG90YWwsIHMpID0+IHRvdGFsICsgcy53ZWlnaHQsIDApO1xuICAgIGlmKHRvdGFsV2VpZ2h0ID09PSAwKVxuICAgICAgcmV0dXJuIHtzaW1pbGFyaXR5OiAxLCB3ZWlnaHQ6IDB9O1xuICAgIGNvbnN0IHNjb3JlID0gaW5uZXJEaWZmcy5yZWR1Y2UoKGFjYywgcykgPT4gYWNjICsgcy5zaW1pbGFyaXR5ICogcy53ZWlnaHQsIDApIC8gdG90YWxXZWlnaHQ7XG5cbiAgICBjb25zdCBpbm5lck9wZXJhdGlvbnMgPSBpbm5lckRpZmZzLm1hcChkaWZmID0+IGRpZmYub3BlcmF0aW9uKS5maWx0ZXIoaXNEZWZpbmVkKTtcblxuICAgIGxldCBvcGVyYXRpb247XG4gICAgaWYoaW5uZXJPcGVyYXRpb25zLmxlbmd0aCA+IDApe1xuICAgICAgb3BlcmF0aW9uID0gbmV3IFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKHt9LCB7XG4gICAgICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHBhdGhQMSwgdjI6IHBhdGhQMn0pLFxuICAgICAgICBwcm9wZXJ0eVRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MTogcDEsIHYyOiBwMn0pLFxuICAgICAgICBjb21wb25lbnRUcmFuc2l0aW9uOiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24sXG4gICAgICAgIGlubmVyT3BlcmF0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB7c2ltaWxhcml0eTogc2NvcmUsIHdlaWdodDogdG90YWxXZWlnaHQsIG9wZXJhdGlvbn07XG4gIH1cblxuICBwcml2YXRlIGZyb21QcmltaXRpdmVzKFxuICAgIHAxOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIHAyOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIHBhdGhQMTogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgICBwYXRoUDI6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4gICkge1xuXG4gICAgY29uc3Qgc2ltaWxhcml0eSA9XG4gICAgICAgICAgICB0eXBlb2YgcDEudmFsdWUgPT09ICdzdHJpbmcnICYmIHR5cGVvZiBwMi52YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgPyBzdHJpbmdTaW1pbGFyaXR5KHAxLnZhbHVlLCBwMi52YWx1ZSlcbiAgICAgICAgICAgICAgOiAocDEudmFsdWUgPT09IHAyLnZhbHVlID8gMSA6IDApO1xuXG4gICAgbGV0IG9wZXJhdGlvbjtcbiAgICBpZihzaW1pbGFyaXR5ICE9PSAxKVxuICAgICAgb3BlcmF0aW9uID0gbmV3IFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKHt9LCB7XG4gICAgICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHBhdGhQMSwgdjI6IHBhdGhQMn0pLFxuICAgICAgICBwcm9wZXJ0eVRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MTogcDEsIHYyOiBwMn0pLFxuICAgICAgICBjb21wb25lbnRUcmFuc2l0aW9uOiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24sXG4gICAgICB9KTtcblxuICAgIHJldHVybiB7c2ltaWxhcml0eSwgd2VpZ2h0OiAyLCBvcGVyYXRpb259O1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tRGlmZmVyZW50UHJvcGVydGllcyhcbiAgICBwMTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICBwMjogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICBwYXRoUDE6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4gICAgcGF0aFAyOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuICApIHtcbiAgICBsZXQgb3BlcmF0aW9uO1xuICAgIGlmKHAxID09PSB1bmRlZmluZWQgJiYgcDIgIT09IHVuZGVmaW5lZCl7XG4gICAgICBvcGVyYXRpb24gPSBuZXcgSW5zZXJ0UHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgcGF0aFRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MjogcGF0aFAyfSksXG4gICAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djI6IHAyfSksXG4gICAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbjogdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHAxICE9PSB1bmRlZmluZWQgJiYgcDIgPT09IHVuZGVmaW5lZCl7XG4gICAgICBvcGVyYXRpb24gPSBuZXcgUmVtb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgcGF0aFRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MTogcGF0aFAxfSksXG4gICAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHAxfSksXG4gICAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbjogdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3BlcmF0aW9uID0gbmV3IFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKHt9LCB7XG4gICAgICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHBhdGhQMSwgdjI6IHBhdGhQMn0pLFxuICAgICAgICBwcm9wZXJ0eVRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MTogcDEsIHYyOiBwMn0pLFxuICAgICAgICBjb21wb25lbnRUcmFuc2l0aW9uOiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2ltaWxhcml0eTogMCxcbiAgICAgIHdlaWdodDogKHRoaXMuY2FsY1Byb3BlcnR5V2VpZ2h0KHAxKSArIHRoaXMuY2FsY1Byb3BlcnR5V2VpZ2h0KHAyKSksXG4gICAgICBvcGVyYXRpb24sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY1Byb3BlcnR5V2VpZ2h0IChvYmo6IENvbXBvbmVudFByb3BlcnR5VmFsdWUpOiBudW1iZXIge1xuICAgIGlmKG9iaiBpbnN0YW5jZW9mIENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlKVxuICAgICAgcmV0dXJuIDE7XG4gICAgZWxzZSBpZihvYmogaW5zdGFuY2VvZiBDb21wb25lbnRDb2xsZWN0aW9uUHJvcGVydHkgJiYgdHlwZW9mIG9iai52YWx1ZSA9PT0gJ29iamVjdCcpe1xuICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMob2JqLnZhbHVlKS5yZWR1Y2UoKHdlaWdodCwgcCkgPT4gd2VpZ2h0ICsgdGhpcy5jYWxjUHJvcGVydHlXZWlnaHQocCksIDApO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfVxufVxuXG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByb3BlcnR5LWRpZmYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBZXlCO0FBQ3pCLDBDQUE4QztBQUM5QyxpR0FBb0c7QUFDcEcseUVBQW1FO0FBV25FLE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxDQUFDO0FBRXhDOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFFOUIsWUFDbUIsbUJBQTBDO1FBQTFDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBdUI7UUFzR3JELHdCQUFtQixHQUFHLENBQzVCLEVBQTBCLEVBQzFCLEVBQTBCLEVBQzFCLE1BQThCLEVBQzlCLE1BQThCLEVBQzlCLEVBQUU7WUFDRixNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRTFELE1BQU0sY0FBYyxHQUFHLElBQUEsZ0NBQWEsRUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQ3ZCLElBQUEsaUVBQWtDLEVBQ2hDLElBQUksQ0FBQyxtQkFBbUIsRUFDeEIsSUFBQSxrQkFBVyxFQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQzFDLElBQUEsa0JBQVcsRUFBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVB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LFxuICBDb21wb25lbnRQcm9wZXJ0eUFycmF5LFxuICBDb21wb25lbnRDb2xsZWN0aW9uUHJvcGVydHksXG4gIENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlLFxuICBDb21wb25lbnRQcm9wZXJ0eVJlY29yZCxcbiAgRW1wdHlDb21wb25lbnRQcm9wZXJ0eSxcbiAgVHJhbnNpdGlvbixcbiAgSW5zZXJ0UHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG4gIFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxuICBSZW1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbiAgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG4gIE1vdmVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbixcbiAgYXJyYXlJbnRlcnNlY3Rpb24sIGlzRGVmaW5lZCwgc3RyaW5nU2ltaWxhcml0eSxcbn0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IGZyb21FbnRyaWVzIH0gZnJvbSAnLi4vcHJpdmF0ZS9ub2RlJztcbmltcG9ydCB7IHByb3BlcnR5U2ltaWxhcml0eUV2YWx1YXRvckNyZWF0b3IgfSBmcm9tICcuL2VudGl0eS1tYXRjaGVycy9jb21wb25lbnQtcHJvcGVydGllcy1tYXRjaGVyJztcbmltcG9ydCB7IG1hdGNoRW50aXRpZXMgfSBmcm9tICcuL2VudGl0eS1tYXRjaGVycy9lbnRpdGllcy1tYXRjaGVyJztcblxuLyoqXG4gKiBEZXNjcmliZXMgaG93IHR3byBDb21wb25lbnRQcm9wZXJ0aWVzIGRpZmZlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3BlcnR5RGlmZiB7XG4gIHJlYWRvbmx5IHNpbWlsYXJpdHk6IG51bWJlcixcbiAgcmVhZG9ubHkgd2VpZ2h0OiBudW1iZXIsXG4gIHJlYWRvbmx5IG9wZXJhdGlvbj86IFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxufVxuXG5jb25zdCBwcm9wZXJ0eVNpbWlsYXJpdHlUaHJlc2hvbGQgPSAwLjU7XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgUHJvcGVydHlEaWZmIGJldHdlZW4gdHdvIHByb3BlcnRpZXMgb2YgYSBnaXZlbiBUcmFuc2l0aW9uPENvbXBvbmVudD4uXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eURpZmZDcmVhdG9yIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudFRyYW5zaXRpb246IFRyYW5zaXRpb248Q29tcG9uZW50PixcbiAgKSB7XG4gICAgaWYoIXRoaXMuY29tcG9uZW50VHJhbnNpdGlvbi52MSB8fCAhdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLnYyKVxuICAgICAgdGhyb3cgRXJyb3IoJ0Nhbm5vdCBkaWZmIFByb3BlcnRpZXMgb2YgVHJhbnNpdGlvbjxDb21wb25lbnQ+IHdpdGggdW5kZWZpbmVkIHZlcnNpb24nKTtcblxuICB9XG5cbiAgcHVibGljIGNyZWF0ZShcbiAgICBwMTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICBwMjogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICBiYXNlUGF0aFAxOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+ID0gW10sXG4gICAgYmFzZVBhdGhQMiA9IGJhc2VQYXRoUDEsXG4gICk6IFByb3BlcnR5RGlmZiB7XG4gICAgaWYocDEgaW5zdGFuY2VvZiBDb21wb25lbnRQcm9wZXJ0eVJlY29yZCAmJiBwMiBpbnN0YW5jZW9mIENvbXBvbmVudFByb3BlcnR5UmVjb3JkKXtcbiAgICAgIHJldHVybiB0aGlzLmZyb21SZWNvcmRQcm9wZXJ0aWVzKHAxLCBwMiwgYmFzZVBhdGhQMSwgYmFzZVBhdGhQMik7XG4gICAgfSBlbHNlIGlmKHAxIGluc3RhbmNlb2YgQ29tcG9uZW50UHJvcGVydHlBcnJheSAmJiBwMiBpbnN0YW5jZW9mIENvbXBvbmVudFByb3BlcnR5QXJyYXkpe1xuICAgICAgcmV0dXJuIHRoaXMuZnJvbUFycmF5UHJvcGVydGllcyhwMSwgcDIsIGJhc2VQYXRoUDEsIGJhc2VQYXRoUDIpO1xuICAgIH0gZWxzZSBpZihwMSBpbnN0YW5jZW9mIENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlICYmIHAyIGluc3RhbmNlb2YgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUpe1xuICAgICAgcmV0dXJuIHRoaXMuZnJvbVByaW1pdGl2ZXMocDEsIHAyLCBiYXNlUGF0aFAxLCBiYXNlUGF0aFAyKTtcbiAgICB9IGVsc2UgaWYocDEgaW5zdGFuY2VvZiBFbXB0eUNvbXBvbmVudFByb3BlcnR5ICYmIHAyIGluc3RhbmNlb2YgRW1wdHlDb21wb25lbnRQcm9wZXJ0eSkge1xuICAgICAgcmV0dXJuIHtzaW1pbGFyaXR5OiAxLCB3ZWlnaHQ6IDB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mcm9tRGlmZmVyZW50UHJvcGVydGllcyhwMSwgcDIsIGJhc2VQYXRoUDEsIGJhc2VQYXRoUDIpO1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tUmVjb3JkUHJvcGVydGllcyhcbiAgICBwMTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICBwMjogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICBwYXRoUDE6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4gICAgcGF0aFAyOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuICApOiBQcm9wZXJ0eURpZmYge1xuICAgIGNvbnN0IFtwMVJlY29yZCwgcDJSZWNvcmRdID0gW3AxLHAyXS5tYXAocCA9PiBwLmdldFJlY29yZCgpKTtcblxuICAgIGNvbnN0IHNhbWVOYW1lS2V5cyA9IGFycmF5SW50ZXJzZWN0aW9uKE9iamVjdC5rZXlzKHAxUmVjb3JkKSwgT2JqZWN0LmtleXMocDJSZWNvcmQpKTtcblxuICAgIGNvbnN0IHBpY2tlZFNhbWVOYW1lczogW3N0cmluZywgUHJvcGVydHlEaWZmXVtdID0gc2FtZU5hbWVLZXlzXG4gICAgICAubWFwKChrKTogW3N0cmluZywgUHJvcGVydHlEaWZmXSA9PiBbaywgdGhpcy5jcmVhdGUocDFSZWNvcmRba10sIHAyUmVjb3JkW2tdLCBbLi4ucGF0aFAxLCBrXSwgWy4uLnBhdGhQMiwga10pXSlcbiAgICAgIC5tYXAoKFtrLCBwZF0pOiBbc3RyaW5nLCBQcm9wZXJ0eURpZmZdID0+IFtrLCB7XG4gICAgICAgIC4uLnBkLFxuICAgICAgICBzaW1pbGFyaXR5OiBwZC5zaW1pbGFyaXR5ICsgKDEgLSBwZC5zaW1pbGFyaXR5KSooMS8ocGQud2VpZ2h0KzEpKSwgLy8ga2V5cyBpbXBhY3Qgc2ltaWxpYXJpdHkgYXMgbXVjaCBhcyBzdHJpbmcgdmFsdWVzXG4gICAgICAgIHdlaWdodDogcGQud2VpZ2h0ICsgMSxcbiAgICAgIH1dKTtcblxuICAgIGNvbnN0IHBpY2tlZFNhbWVOYW1lS2V5cyA9IG5ldyBTZXQocGlja2VkU2FtZU5hbWVzLm1hcCgoW2tdKSA9PiBrKSk7XG4gICAgY29uc3Qgc2FtZU5hbWVEaWZmcyA9IHBpY2tlZFNhbWVOYW1lcy5tYXAoKFssIHBkXSkgPT4gcGQpO1xuXG4gICAgY29uc3QgcmVuYW1lZERpZmZNYXRjaFJlc3VsdHMgPSBtYXRjaEVudGl0aWVzPHN0cmluZywgUHJvcGVydHlEaWZmPihcbiAgICAgIE9iamVjdC5rZXlzKHAxUmVjb3JkKS5maWx0ZXIoKGspID0+ICFwaWNrZWRTYW1lTmFtZUtleXMuaGFzKGspKSxcbiAgICAgIE9iamVjdC5rZXlzKHAyUmVjb3JkKS5maWx0ZXIoKGspID0+ICFwaWNrZWRTYW1lTmFtZUtleXMuaGFzKGspKSxcbiAgICAgIHByb3BlcnR5U2ltaWxhcml0eUV2YWx1YXRvckNyZWF0b3IoXG4gICAgICAgIHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgICAgcDFSZWNvcmQsIHAyUmVjb3JkLCBwYXRoUDEsIHBhdGhQMixcbiAgICAgICksXG4gICAgICBwcm9wZXJ0eVNpbWlsYXJpdHlUaHJlc2hvbGQsXG4gICAgKTtcblxuICAgIGNvbnN0IHJlbmFtZWREaWZmcyA9IHJlbmFtZWREaWZmTWF0Y2hSZXN1bHRzLm1hdGNoZXMubWFwKCh7dHJhbnNpdGlvbjoge3YxLCB2Mn0sIG1ldGFkYXRhOiBwcm9wRGlmZn0pID0+IHtcbiAgICAgIGlmKCF2MSB8fCAhdjIpXG4gICAgICAgIHRocm93IEVycm9yKCdFbnRpdHkgbWF0Y2hpbmcgcmV0dXJuZWQgdW5kZWZpbmVkIHZlcnNpb25zJyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzaW1pbGFyaXR5OiBwcm9wRGlmZi5zaW1pbGFyaXR5LFxuICAgICAgICB3ZWlnaHQ6IHByb3BEaWZmLndlaWdodCxcbiAgICAgICAgb3BlcmF0aW9uOiBuZXcgTW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKHt9LCB7XG4gICAgICAgICAgcGF0aFRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MTogWy4uLnBhdGhQMSwgdjFbMF1dLCB2MjogWy4uLnBhdGhQMiwgdjJbMF1dfSksXG4gICAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHAxUmVjb3JkW3YxXSwgdjI6IHAyUmVjb3JkW3YyXX0pLFxuICAgICAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgICAgICBpbm5lck9wZXJhdGlvbnM6IChwcm9wRGlmZi5vcGVyYXRpb24gYXMgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24pPy5pbm5lck9wZXJhdGlvbnMsXG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlbW92ZWREaWZmcyA9IHJlbmFtZWREaWZmTWF0Y2hSZXN1bHRzLnVubWF0Y2hlZEEubWFwKChrKSA9PiAoe1xuICAgICAgc2ltaWxhcml0eTogMCxcbiAgICAgIHdlaWdodDogdGhpcy5jYWxjUHJvcGVydHlXZWlnaHQocDFSZWNvcmRba10pLFxuICAgICAgb3BlcmF0aW9uOiBuZXcgUmVtb3ZlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgcGF0aFRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MTogWy4uLnBhdGhQMSwga119KSxcbiAgICAgICAgICBwcm9wZXJ0eVRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MTogcDFSZWNvcmRba119KSxcbiAgICAgICAgICBjb21wb25lbnRUcmFuc2l0aW9uOiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24sXG4gICAgICAgIH0pLFxuICAgIH0pKTtcbiAgICBjb25zdCBpbnNlcnRlZERpZmZzID0gcmVuYW1lZERpZmZNYXRjaFJlc3VsdHMudW5tYXRjaGVkQi5tYXAoKGspID0+ICh7XG4gICAgICBzaW1pbGFyaXR5OiAwLFxuICAgICAgd2VpZ2h0OiB0aGlzLmNhbGNQcm9wZXJ0eVdlaWdodChwMlJlY29yZFtrXSksXG4gICAgICBvcGVyYXRpb246IG5ldyBJbnNlcnRQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbihcbiAgICAgICAge30sXG4gICAgICAgIHtcbiAgICAgICAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YyOiBbLi4ucGF0aFAyLCBrXX0pLFxuICAgICAgICAgIHByb3BlcnR5VHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YyOiBwMlJlY29yZFtrXX0pLFxuICAgICAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgICAgfSksXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHRoaXMuZnJvbUNvbGxlY3Rpb25EaWZmcyhcbiAgICAgIHAxLFxuICAgICAgcDIsXG4gICAgICBbLi4uc2FtZU5hbWVEaWZmcywgLi4ucmVuYW1lZERpZmZzLCAuLi5yZW1vdmVkRGlmZnMsIC4uLmluc2VydGVkRGlmZnNdLFxuICAgICAgcGF0aFAxLFxuICAgICAgcGF0aFAyKTtcbiAgfVxuXG4gIHByaXZhdGUgZnJvbUFycmF5UHJvcGVydGllcyA9IChcbiAgICBwMTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICBwMjogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICBwYXRoUDE6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4gICAgcGF0aFAyOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuICApID0+IHtcbiAgICBjb25zdCBbcDFBcnJheSwgcDJBcnJheV0gPSBbcDEscDJdLm1hcChwID0+IHAuZ2V0QXJyYXkoKSk7XG5cbiAgICBjb25zdCBtYXRjaGVyUmVzdWx0cyA9IG1hdGNoRW50aXRpZXMoXG4gICAgICBwMUFycmF5Lm1hcCgoXyxpKSA9PiBpKSxcbiAgICAgIHAyQXJyYXkubWFwKChfLGkpID0+IGkpLFxuICAgICAgcHJvcGVydHlTaW1pbGFyaXR5RXZhbHVhdG9yQ3JlYXRvcihcbiAgICAgICAgdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgICBmcm9tRW50cmllcyhwMUFycmF5Lm1hcCgoZSwgaSkgPT4gW2ksIGVdKSksXG4gICAgICAgIGZyb21FbnRyaWVzKHAyQXJyYXkubWFwKChlLCBpKSA9PiBbaSwgZV0pKSxcbiAgICAgICAgcGF0aFAxLCBwYXRoUDIsXG4gICAgICApLFxuICAgICAgcHJvcGVydHlTaW1pbGFyaXR5VGhyZXNob2xkLFxuICAgICk7XG5cbiAgICBjb25zdCBtYXRjaGVkRGlmZnMgPSBtYXRjaGVyUmVzdWx0cy5tYXRjaGVzLm1hcCgoe3RyYW5zaXRpb246IHt2MSwgdjJ9LCBtZXRhZGF0YTogcHJvcERpZmZ9KSA9PlxuICAgICAgdjEgJiYgdjIgJiYgdjEgIT09IHYyXG4gICAgICAgID8ge1xuICAgICAgICAgIHNpbWlsYXJpdHk6IHByb3BEaWZmLnNpbWlsYXJpdHksXG4gICAgICAgICAgd2VpZ2h0OiBwcm9wRGlmZi53ZWlnaHQsXG4gICAgICAgICAgb3BlcmF0aW9uOiBuZXcgTW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKHt9LCB7XG4gICAgICAgICAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBbLi4ucGF0aFAxLCB2MV0sIHYyOiBbLi4ucGF0aFAyLCB2Ml19KSxcbiAgICAgICAgICAgIHByb3BlcnR5VHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBwMUFycmF5W3YxXSwgdjI6IHAyQXJyYXlbdjJdfSksXG4gICAgICAgICAgICBjb21wb25lbnRUcmFuc2l0aW9uOiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24sXG4gICAgICAgICAgICBpbm5lck9wZXJhdGlvbnM6IChwcm9wRGlmZi5vcGVyYXRpb24gYXMgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24pPy5pbm5lck9wZXJhdGlvbnMsXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cbiAgICAgICAgOiBwcm9wRGlmZixcbiAgICApLmZpbHRlcihpc0RlZmluZWQpO1xuXG4gICAgY29uc3QgcmVtb3ZlZERpZmZzID0gbWF0Y2hlclJlc3VsdHMudW5tYXRjaGVkQS5tYXAoKGkpID0+ICh7XG4gICAgICBzaW1pbGFyaXR5OiAwLFxuICAgICAgd2VpZ2h0OiB0aGlzLmNhbGNQcm9wZXJ0eVdlaWdodChwMUFycmF5W2ldKSxcbiAgICAgIG9wZXJhdGlvbjogbmV3IFJlbW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IFsuLi5wYXRoUDEsIGldfSksXG4gICAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHAxQXJyYXlbaV19KSxcbiAgICAgICAgICBjb21wb25lbnRUcmFuc2l0aW9uOiB0aGlzLmNvbXBvbmVudFRyYW5zaXRpb24sXG4gICAgICAgIH0pLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGluc2VydGVkRGlmZnMgPSBtYXRjaGVyUmVzdWx0cy51bm1hdGNoZWRCLm1hcCgoaSkgPT4gKHtcbiAgICAgIHNpbWlsYXJpdHk6IDAsXG4gICAgICB3ZWlnaHQ6IHRoaXMuY2FsY1Byb3BlcnR5V2VpZ2h0KHAyQXJyYXlbaV0pLFxuICAgICAgb3BlcmF0aW9uOiBuZXcgSW5zZXJ0UHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24oXG4gICAgICAgIHt9LFxuICAgICAgICB7XG4gICAgICAgICAgcGF0aFRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MjogWy4uLnBhdGhQMiwgaV19KSxcbiAgICAgICAgICBwcm9wZXJ0eVRyYW5zaXRpb246IG5ldyBUcmFuc2l0aW9uKHt2MjogcDJBcnJheVtpXX0pLFxuICAgICAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgICAgfSksXG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIHRoaXMuZnJvbUNvbGxlY3Rpb25EaWZmcyhwMSwgcDIsIFsuLi5tYXRjaGVkRGlmZnMsIC4uLmluc2VydGVkRGlmZnMsIC4uLnJlbW92ZWREaWZmc10sIHBhdGhQMSwgcGF0aFAyKTtcbiAgfTtcblxuICBwcml2YXRlIGZyb21Db2xsZWN0aW9uRGlmZnMgKFxuICAgIHAxOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIHAyOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlLFxuICAgIGlubmVyRGlmZnM6IFByb3BlcnR5RGlmZltdLFxuICAgIHBhdGhQMTogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgICBwYXRoUDI6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4gICkge1xuICAgIGNvbnN0IHRvdGFsV2VpZ2h0ID0gaW5uZXJEaWZmcy5yZWR1Y2UoKHRvdGFsLCBzKSA9PiB0b3RhbCArIHMud2VpZ2h0LCAwKTtcbiAgICBpZih0b3RhbFdlaWdodCA9PT0gMClcbiAgICAgIHJldHVybiB7c2ltaWxhcml0eTogMSwgd2VpZ2h0OiAwfTtcbiAgICBjb25zdCBzY29yZSA9IGlubmVyRGlmZnMucmVkdWNlKChhY2MsIHMpID0+IGFjYyArIHMuc2ltaWxhcml0eSAqIHMud2VpZ2h0LCAwKSAvIHRvdGFsV2VpZ2h0O1xuXG4gICAgY29uc3QgaW5uZXJPcGVyYXRpb25zID0gaW5uZXJEaWZmcy5tYXAoZGlmZiA9PiBkaWZmLm9wZXJhdGlvbikuZmlsdGVyKGlzRGVmaW5lZCk7XG5cbiAgICBsZXQgb3BlcmF0aW9uO1xuICAgIGlmKGlubmVyT3BlcmF0aW9ucy5sZW5ndGggPiAwKXtcbiAgICAgIG9wZXJhdGlvbiA9IG5ldyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbih7fSwge1xuICAgICAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBwYXRoUDEsIHYyOiBwYXRoUDJ9KSxcbiAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHAxLCB2MjogcDJ9KSxcbiAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbjogdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgICBpbm5lck9wZXJhdGlvbnMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4ge3NpbWlsYXJpdHk6IHNjb3JlLCB3ZWlnaHQ6IHRvdGFsV2VpZ2h0LCBvcGVyYXRpb259O1xuICB9XG5cbiAgcHJpdmF0ZSBmcm9tUHJpbWl0aXZlcyhcbiAgICBwMTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICBwMjogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgICBwYXRoUDE6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4gICAgcGF0aFAyOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuICApIHtcblxuICAgIGNvbnN0IHNpbWlsYXJpdHkgPVxuICAgICAgICAgICAgdHlwZW9mIHAxLnZhbHVlID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgcDIudmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gc3RyaW5nU2ltaWxhcml0eShwMS52YWx1ZSwgcDIudmFsdWUpXG4gICAgICAgICAgICAgIDogKHAxLnZhbHVlID09PSBwMi52YWx1ZSA/IDEgOiAwKTtcblxuICAgIGxldCBvcGVyYXRpb247XG4gICAgaWYoc2ltaWxhcml0eSAhPT0gMSlcbiAgICAgIG9wZXJhdGlvbiA9IG5ldyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbih7fSwge1xuICAgICAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBwYXRoUDEsIHYyOiBwYXRoUDJ9KSxcbiAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHAxLCB2MjogcDJ9KSxcbiAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbjogdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgfSk7XG5cbiAgICByZXR1cm4ge3NpbWlsYXJpdHksIHdlaWdodDogMiwgb3BlcmF0aW9ufTtcbiAgfVxuXG4gIHByaXZhdGUgZnJvbURpZmZlcmVudFByb3BlcnRpZXMoXG4gICAgcDE6IENvbXBvbmVudFByb3BlcnR5VmFsdWUsXG4gICAgcDI6IENvbXBvbmVudFByb3BlcnR5VmFsdWUsXG4gICAgcGF0aFAxOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+LFxuICAgIHBhdGhQMjogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPixcbiAgKSB7XG4gICAgbGV0IG9wZXJhdGlvbjtcbiAgICBpZihwMSA9PT0gdW5kZWZpbmVkICYmIHAyICE9PSB1bmRlZmluZWQpe1xuICAgICAgb3BlcmF0aW9uID0gbmV3IEluc2VydFByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djI6IHBhdGhQMn0pLFxuICAgICAgICAgIHByb3BlcnR5VHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YyOiBwMn0pLFxuICAgICAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChwMSAhPT0gdW5kZWZpbmVkICYmIHAyID09PSB1bmRlZmluZWQpe1xuICAgICAgb3BlcmF0aW9uID0gbmV3IFJlbW92ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uKFxuICAgICAgICB7fSxcbiAgICAgICAge1xuICAgICAgICAgIHBhdGhUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHBhdGhQMX0pLFxuICAgICAgICAgIHByb3BlcnR5VHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBwMX0pLFxuICAgICAgICAgIGNvbXBvbmVudFRyYW5zaXRpb246IHRoaXMuY29tcG9uZW50VHJhbnNpdGlvbixcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wZXJhdGlvbiA9IG5ldyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbih7fSwge1xuICAgICAgICBwYXRoVHJhbnNpdGlvbjogbmV3IFRyYW5zaXRpb24oe3YxOiBwYXRoUDEsIHYyOiBwYXRoUDJ9KSxcbiAgICAgICAgcHJvcGVydHlUcmFuc2l0aW9uOiBuZXcgVHJhbnNpdGlvbih7djE6IHAxLCB2MjogcDJ9KSxcbiAgICAgICAgY29tcG9uZW50VHJhbnNpdGlvbjogdGhpcy5jb21wb25lbnRUcmFuc2l0aW9uLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNpbWlsYXJpdHk6IDAsXG4gICAgICB3ZWlnaHQ6ICh0aGlzLmNhbGNQcm9wZXJ0eVdlaWdodChwMSkgKyB0aGlzLmNhbGNQcm9wZXJ0eVdlaWdodChwMikpLFxuICAgICAgb3BlcmF0aW9uLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNhbGNQcm9wZXJ0eVdlaWdodCAob2JqOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlKTogbnVtYmVyIHtcbiAgICBpZihvYmogaW5zdGFuY2VvZiBDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZSlcbiAgICAgIHJldHVybiAxO1xuICAgIGVsc2UgaWYob2JqIGluc3RhbmNlb2YgQ29tcG9uZW50Q29sbGVjdGlvblByb3BlcnR5ICYmIHR5cGVvZiBvYmoudmFsdWUgPT09ICdvYmplY3QnKXtcbiAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKG9iai52YWx1ZSkucmVkdWNlKCh3ZWlnaHQsIHApID0+IHdlaWdodCArIHRoaXMuY2FsY1Byb3BlcnR5V2VpZ2h0KHApLCAwKTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cblxuIl19

@@ -73,3 +73,3 @@ "use strict";

...cfInfraModel.relationships.filter(r => r.source !== cfInfraRoot),
...node_1.flatMap(constructs, c => [...c.component.outgoing]),
...(0, node_1.flatMap)(constructs, c => [...c.component.outgoing]),
];

@@ -80,2 +80,2 @@ return new models_1.InfraModel(components, relationships);

exports.CDKParser = CDKParser;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBSXlCO0FBQ3pCLDZDQUE2QztBQUM3QyxzREFBMkQ7QUFFM0QsbURBQStDO0FBRS9DLE1BQWEsU0FBUztJQUtwQixZQUFZLElBQVksRUFBRSxHQUFHLFNBQTZCO1FBQ3hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx5QkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxLQUFLLENBQUMsSUFBbUI7UUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFcEUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUVyRSxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUVsRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7O1NBR0s7SUFDRyx1QkFBdUIsQ0FBQyxZQUF3QjtRQUN0RCxNQUFNLGdCQUFnQixHQUE4QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTlELFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM1RSxJQUFHLENBQUMsYUFBYTtnQkFBRSxPQUFPO1lBQzFCLElBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUM7Z0JBQ3RDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSw0QkFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDdEU7WUFDRCxvRUFBb0U7WUFDcEUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7U0FHSztJQUNHLG1DQUFtQyxDQUFDLFdBQXNCOztRQUNoRSxJQUFJO1lBQ0YsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFBLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLG1DQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNyRSxJQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFDO2dCQUNuRCxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQUEsUUFBUSxDQUFDLFNBQVMsRUFBRSxtQ0FBSSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3hFLE9BQU8sUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsRUFBQztvQkFDbEMsT0FBTyxZQUFZLENBQUM7aUJBQ3JCO2FBQ0Y7U0FDRjtRQUFDLE9BQU0sQ0FBQyxFQUFFO1lBQ1QsSUFBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLHFDQUE0QixDQUFDO2dCQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzFEO0lBQ0gsQ0FBQztJQUVEOzs7O1NBSUs7SUFDRyxVQUFVLENBQUMsWUFBd0IsRUFBRSxVQUEwQjtRQUNyRSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdFLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvRCxNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQztZQUN6RCxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQ3BDLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRztZQUNwQixHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUM7WUFDbkUsR0FBRyxjQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkQsQ0FBQztRQUVGLE9BQU8sSUFBSSxtQkFBVSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNuRCxDQUFDO0NBQ0Y7QUFsRkQsOEJBa0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRQcm9wZXJ0eUFjY2Vzc0Vycm9yLFxuICBJbmZyYU1vZGVsLFxufSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgZmxhdE1hcCB9IGZyb20gJy4uLy4uL3ByaXZhdGUvbm9kZSc7XG5pbXBvcnQgeyBDRlBhcnNlciwgQ0ZQYXJzZXJBcmdzIH0gZnJvbSAnLi4vY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi4vcGFyc2VyJztcbmltcG9ydCB7IENES0NvbnN0cnVjdCB9IGZyb20gJy4vY2RrLWNvbnN0cnVjdCc7XG5cbmV4cG9ydCBjbGFzcyBDREtQYXJzZXIgaW1wbGVtZW50cyBQYXJzZXIge1xuXG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2ZQYXJzZXI6IENGUGFyc2VyO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgLi4udGVtcGxhdGVzOiBSZWNvcmQ8YW55LCBhbnk+W10pIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuY2ZQYXJzZXIgPSBuZXcgQ0ZQYXJzZXIobmFtZSwgLi4udGVtcGxhdGVzKTtcbiAgfVxuXG4gIHB1YmxpYyBwYXJzZShhcmdzPzogQ0ZQYXJzZXJBcmdzKTogSW5mcmFNb2RlbCB7XG4gICAgY29uc3QgY2ZJbmZyYU1vZGVsID0gdGhpcy5jZlBhcnNlci5wYXJzZShhcmdzKTtcblxuICAgIGNvbnN0IGNvbnN0cnVjdHNCeVBhdGggPSB0aGlzLmV4dHJhY3RDb25zdHJ1Y3RzQnlQYXRoKGNmSW5mcmFNb2RlbCk7XG5cbiAgICBjb25zdHJ1Y3RzQnlQYXRoLmZvckVhY2goYyA9PiBjLnBvcHVsYXRlQW5jZXN0b3JzKGNvbnN0cnVjdHNCeVBhdGgpKTtcblxuICAgIGNvbnN0IGNvbnN0cnVjdHMgPSBbLi4uY29uc3RydWN0c0J5UGF0aC52YWx1ZXMoKV07XG5cbiAgICByZXR1cm4gdGhpcy5idWlsZE1vZGVsKGNmSW5mcmFNb2RlbCwgY29uc3RydWN0cyk7XG4gIH1cblxuICAvKipcbiAgICAgKiBFeHRyYWN0cyB0aGUgQ0RLQ29uc3RydWN0cyBmcm9tIHRoZSBjb25zdHJ1Y3QgcGF0aHMgaW4gdGhlIENESyBNZXRhZGF0YSBvZiB0aGUgSW5mcmFNb2RlbFxuICAgICAqIEBwYXJhbSBjZkluZnJhTW9kZWwgbW9kZWwgcmVzdWx0aW5nIGZyb20gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlXG4gICAgICovXG4gIHByaXZhdGUgZXh0cmFjdENvbnN0cnVjdHNCeVBhdGgoY2ZJbmZyYU1vZGVsOiBJbmZyYU1vZGVsKTogTWFwPHN0cmluZywgQ0RLQ29uc3RydWN0PiB7XG4gICAgY29uc3QgY29uc3RydWN0c0J5UGF0aDogTWFwPHN0cmluZywgQ0RLQ29uc3RydWN0PiA9IG5ldyBNYXAoKTtcblxuICAgIGNmSW5mcmFNb2RlbC5jb21wb25lbnRzLmZvckVhY2goY2ZDb21wb25lbnQgPT4ge1xuICAgICAgY29uc3QgY29uc3RydWN0UGF0aCA9IHRoaXMuZXh0cmFjdENvbnN0cnVjdFBhdGhGcm9tQ0ZDb21wb25lbnQoY2ZDb21wb25lbnQpO1xuICAgICAgaWYoIWNvbnN0cnVjdFBhdGgpIHJldHVybjtcbiAgICAgIGlmKCFjb25zdHJ1Y3RzQnlQYXRoLmhhcyhjb25zdHJ1Y3RQYXRoKSl7XG4gICAgICAgIGNvbnN0cnVjdHNCeVBhdGguc2V0KGNvbnN0cnVjdFBhdGgsIG5ldyBDREtDb25zdHJ1Y3QoY29uc3RydWN0UGF0aCkpO1xuICAgICAgfVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1ub24tbnVsbC1hc3NlcnRpb25cbiAgICAgIGNvbnN0cnVjdHNCeVBhdGguZ2V0KGNvbnN0cnVjdFBhdGgpIS5hZGRDaGlsZChjZkNvbXBvbmVudCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY29uc3RydWN0c0J5UGF0aDtcbiAgfVxuXG4gIC8qKlxuICAgICAqIFRha2VzIGEgQ29tcG9uZW50IGZyb20gdGhlIENsb3VkRm9ybWF0aW9uIEluZnJhTW9kZWwgYW5kIHJldHVybnMgaXRzIGNvbnN0cnVjdCBwYXRoIGlmIGl0IGV4aXN0c1xuICAgICAqIEBwYXJhbSBjZkNvbXBvbmVudCB0aGUgQ29tcG9uZW50IHRvIGV4dHJhY3QgdGhlIGNvbnN0cnVjdCBwYXRoIGZyb21cbiAgICAgKi9cbiAgcHJpdmF0ZSBleHRyYWN0Q29uc3RydWN0UGF0aEZyb21DRkNvbXBvbmVudChjZkNvbXBvbmVudDogQ29tcG9uZW50KTogc3RyaW5nIHwgdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0gKGNmQ29tcG9uZW50LnByb3BlcnRpZXMuZ2V0UmVjb3JkKCkgPz8ge30pLk1ldGFkYXRhO1xuICAgICAgaWYodHlwZW9mIG1ldGFkYXRhID09PSAnb2JqZWN0JyAmJiBtZXRhZGF0YSAhPT0gbnVsbCl7XG4gICAgICAgIGNvbnN0IHJlc291cmNlUGF0aCA9IChtZXRhZGF0YS5nZXRSZWNvcmQoKSA/PyB7fSlbJ2F3czpjZGs6cGF0aCddLnZhbHVlO1xuICAgICAgICBkZWxldGUgbWV0YWRhdGEuZ2V0UmVjb3JkKClbJ2F3czpjZGs6cGF0aCddO1xuICAgICAgICBpZih0eXBlb2YgcmVzb3VyY2VQYXRoID09PSAnc3RyaW5nJyl7XG4gICAgICAgICAgcmV0dXJuIHJlc291cmNlUGF0aDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2goZSkge1xuICAgICAgaWYoIShlIGluc3RhbmNlb2YgQ29tcG9uZW50UHJvcGVydHlBY2Nlc3NFcnJvcikpIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAgICogQnVpbGRzIHRoZSBmaW5hbCBJbmZyYU1vZGVsXG4gICAgICogQHBhcmFtIGNmSW5mcmFNb2RlbCB0aGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgcGFyc2VkIGJ5IHRoZSBDbG91ZEZvcmFtdGlvbiBwYXJzZXJcbiAgICAgKiBAcGFyYW0gY29uc3RydWN0cyB0aGUgQ29uc3RydWN0cyB0byBhZGQgdG8gdGhlIEluZnJhTW9kZWxcbiAgICAgKi9cbiAgcHJpdmF0ZSBidWlsZE1vZGVsKGNmSW5mcmFNb2RlbDogSW5mcmFNb2RlbCwgY29uc3RydWN0czogQ0RLQ29uc3RydWN0W10pOiBJbmZyYU1vZGVsIHtcbiAgICBjb25zdCBjZkluZnJhUm9vdCA9IGNmSW5mcmFNb2RlbC5jb21wb25lbnRzLmZpbmQoYyA9PiBjLmluY29taW5nLnNpemUgPT09IDApO1xuICAgIGNmSW5mcmFSb290Py5vdXRnb2luZy5mb3JFYWNoKHIgPT4gci50YXJnZXQucmVtb3ZlSW5jb21pbmcocikpO1xuXG4gICAgY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICAgIC4uLmNmSW5mcmFNb2RlbC5jb21wb25lbnRzLmZpbHRlcihjID0+IGMgIT09IGNmSW5mcmFSb290KSxcbiAgICAgIC4uLmNvbnN0cnVjdHMubWFwKGMgPT4gYy5jb21wb25lbnQpLFxuICAgIF07XG5cbiAgICBjb25zdCByZWxhdGlvbnNoaXBzID0gW1xuICAgICAgLi4uY2ZJbmZyYU1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKHIgPT4gci5zb3VyY2UgIT09IGNmSW5mcmFSb290KSxcbiAgICAgIC4uLmZsYXRNYXAoY29uc3RydWN0cywgYyA9PiBbLi4uYy5jb21wb25lbnQub3V0Z29pbmddKSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIG5ldyBJbmZyYU1vZGVsKGNvbXBvbmVudHMsIHJlbGF0aW9uc2hpcHMpO1xuICB9XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1wYXJzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBSXlCO0FBQ3pCLDZDQUE2QztBQUM3QyxzREFBMkQ7QUFFM0QsbURBQStDO0FBRS9DLE1BQWEsU0FBUztJQUtwQixZQUFZLElBQVksRUFBRSxHQUFHLFNBQTZCO1FBQ3hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx5QkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSxLQUFLLENBQUMsSUFBbUI7UUFDOUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFcEUsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUVyRSxNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUVsRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7O1NBR0s7SUFDRyx1QkFBdUIsQ0FBQyxZQUF3QjtRQUN0RCxNQUFNLGdCQUFnQixHQUE4QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTlELFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzVDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM1RSxJQUFHLENBQUMsYUFBYTtnQkFBRSxPQUFPO1lBQzFCLElBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUM7Z0JBQ3RDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSw0QkFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDdEU7WUFDRCxvRUFBb0U7WUFDcEUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7U0FHSztJQUNHLG1DQUFtQyxDQUFDLFdBQXNCOztRQUNoRSxJQUFJO1lBQ0YsTUFBTSxRQUFRLEdBQUcsQ0FBQyxNQUFBLFdBQVcsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLG1DQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNyRSxJQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFDO2dCQUNuRCxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQUEsUUFBUSxDQUFDLFNBQVMsRUFBRSxtQ0FBSSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3hFLE9BQU8sUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM1QyxJQUFHLE9BQU8sWUFBWSxLQUFLLFFBQVEsRUFBQztvQkFDbEMsT0FBTyxZQUFZLENBQUM7aUJBQ3JCO2FBQ0Y7U0FDRjtRQUFDLE9BQU0sQ0FBQyxFQUFFO1lBQ1QsSUFBRyxDQUFDLENBQUMsQ0FBQyxZQUFZLHFDQUE0QixDQUFDO2dCQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzFEO0lBQ0gsQ0FBQztJQUVEOzs7O1NBSUs7SUFDRyxVQUFVLENBQUMsWUFBd0IsRUFBRSxVQUEwQjtRQUNyRSxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdFLFdBQVcsYUFBWCxXQUFXLHVCQUFYLFdBQVcsQ0FBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvRCxNQUFNLFVBQVUsR0FBRztZQUNqQixHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQztZQUN6RCxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQ3BDLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRztZQUNwQixHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUM7WUFDbkUsR0FBRyxJQUFBLGNBQU8sRUFBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2RCxDQUFDO1FBRUYsT0FBTyxJQUFJLG1CQUFVLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7Q0FDRjtBQWxGRCw4QkFrRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFByb3BlcnR5QWNjZXNzRXJyb3IsXG4gIEluZnJhTW9kZWwsXG59IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnLi4vLi4vcHJpdmF0ZS9ub2RlJztcbmltcG9ydCB7IENGUGFyc2VyLCBDRlBhcnNlckFyZ3MgfSBmcm9tICcuLi9jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuLi9wYXJzZXInO1xuaW1wb3J0IHsgQ0RLQ29uc3RydWN0IH0gZnJvbSAnLi9jZGstY29uc3RydWN0JztcblxuZXhwb3J0IGNsYXNzIENES1BhcnNlciBpbXBsZW1lbnRzIFBhcnNlciB7XG5cbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBjZlBhcnNlcjogQ0ZQYXJzZXI7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCAuLi50ZW1wbGF0ZXM6IFJlY29yZDxhbnksIGFueT5bXSkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5jZlBhcnNlciA9IG5ldyBDRlBhcnNlcihuYW1lLCAuLi50ZW1wbGF0ZXMpO1xuICB9XG5cbiAgcHVibGljIHBhcnNlKGFyZ3M/OiBDRlBhcnNlckFyZ3MpOiBJbmZyYU1vZGVsIHtcbiAgICBjb25zdCBjZkluZnJhTW9kZWwgPSB0aGlzLmNmUGFyc2VyLnBhcnNlKGFyZ3MpO1xuXG4gICAgY29uc3QgY29uc3RydWN0c0J5UGF0aCA9IHRoaXMuZXh0cmFjdENvbnN0cnVjdHNCeVBhdGgoY2ZJbmZyYU1vZGVsKTtcblxuICAgIGNvbnN0cnVjdHNCeVBhdGguZm9yRWFjaChjID0+IGMucG9wdWxhdGVBbmNlc3RvcnMoY29uc3RydWN0c0J5UGF0aCkpO1xuXG4gICAgY29uc3QgY29uc3RydWN0cyA9IFsuLi5jb25zdHJ1Y3RzQnlQYXRoLnZhbHVlcygpXTtcblxuICAgIHJldHVybiB0aGlzLmJ1aWxkTW9kZWwoY2ZJbmZyYU1vZGVsLCBjb25zdHJ1Y3RzKTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIEV4dHJhY3RzIHRoZSBDREtDb25zdHJ1Y3RzIGZyb20gdGhlIGNvbnN0cnVjdCBwYXRocyBpbiB0aGUgQ0RLIE1ldGFkYXRhIG9mIHRoZSBJbmZyYU1vZGVsXG4gICAgICogQHBhcmFtIGNmSW5mcmFNb2RlbCBtb2RlbCByZXN1bHRpbmcgZnJvbSB0aGUgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGVcbiAgICAgKi9cbiAgcHJpdmF0ZSBleHRyYWN0Q29uc3RydWN0c0J5UGF0aChjZkluZnJhTW9kZWw6IEluZnJhTW9kZWwpOiBNYXA8c3RyaW5nLCBDREtDb25zdHJ1Y3Q+IHtcbiAgICBjb25zdCBjb25zdHJ1Y3RzQnlQYXRoOiBNYXA8c3RyaW5nLCBDREtDb25zdHJ1Y3Q+ID0gbmV3IE1hcCgpO1xuXG4gICAgY2ZJbmZyYU1vZGVsLmNvbXBvbmVudHMuZm9yRWFjaChjZkNvbXBvbmVudCA9PiB7XG4gICAgICBjb25zdCBjb25zdHJ1Y3RQYXRoID0gdGhpcy5leHRyYWN0Q29uc3RydWN0UGF0aEZyb21DRkNvbXBvbmVudChjZkNvbXBvbmVudCk7XG4gICAgICBpZighY29uc3RydWN0UGF0aCkgcmV0dXJuO1xuICAgICAgaWYoIWNvbnN0cnVjdHNCeVBhdGguaGFzKGNvbnN0cnVjdFBhdGgpKXtcbiAgICAgICAgY29uc3RydWN0c0J5UGF0aC5zZXQoY29uc3RydWN0UGF0aCwgbmV3IENES0NvbnN0cnVjdChjb25zdHJ1Y3RQYXRoKSk7XG4gICAgICB9XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgY29uc3RydWN0c0J5UGF0aC5nZXQoY29uc3RydWN0UGF0aCkhLmFkZENoaWxkKGNmQ29tcG9uZW50KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RzQnlQYXRoO1xuICB9XG5cbiAgLyoqXG4gICAgICogVGFrZXMgYSBDb21wb25lbnQgZnJvbSB0aGUgQ2xvdWRGb3JtYXRpb24gSW5mcmFNb2RlbCBhbmQgcmV0dXJucyBpdHMgY29uc3RydWN0IHBhdGggaWYgaXQgZXhpc3RzXG4gICAgICogQHBhcmFtIGNmQ29tcG9uZW50IHRoZSBDb21wb25lbnQgdG8gZXh0cmFjdCB0aGUgY29uc3RydWN0IHBhdGggZnJvbVxuICAgICAqL1xuICBwcml2YXRlIGV4dHJhY3RDb25zdHJ1Y3RQYXRoRnJvbUNGQ29tcG9uZW50KGNmQ29tcG9uZW50OiBDb21wb25lbnQpOiBzdHJpbmcgfCB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSAoY2ZDb21wb25lbnQucHJvcGVydGllcy5nZXRSZWNvcmQoKSA/PyB7fSkuTWV0YWRhdGE7XG4gICAgICBpZih0eXBlb2YgbWV0YWRhdGEgPT09ICdvYmplY3QnICYmIG1ldGFkYXRhICE9PSBudWxsKXtcbiAgICAgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gKG1ldGFkYXRhLmdldFJlY29yZCgpID8/IHt9KVsnYXdzOmNkazpwYXRoJ10udmFsdWU7XG4gICAgICAgIGRlbGV0ZSBtZXRhZGF0YS5nZXRSZWNvcmQoKVsnYXdzOmNkazpwYXRoJ107XG4gICAgICAgIGlmKHR5cGVvZiByZXNvdXJjZVBhdGggPT09ICdzdHJpbmcnKXtcbiAgICAgICAgICByZXR1cm4gcmVzb3VyY2VQYXRoO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICBpZighKGUgaW5zdGFuY2VvZiBDb21wb25lbnRQcm9wZXJ0eUFjY2Vzc0Vycm9yKSkgdGhyb3cgZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICAgKiBCdWlsZHMgdGhlIGZpbmFsIEluZnJhTW9kZWxcbiAgICAgKiBAcGFyYW0gY2ZJbmZyYU1vZGVsIHRoZSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBwYXJzZWQgYnkgdGhlIENsb3VkRm9yYW10aW9uIHBhcnNlclxuICAgICAqIEBwYXJhbSBjb25zdHJ1Y3RzIHRoZSBDb25zdHJ1Y3RzIHRvIGFkZCB0byB0aGUgSW5mcmFNb2RlbFxuICAgICAqL1xuICBwcml2YXRlIGJ1aWxkTW9kZWwoY2ZJbmZyYU1vZGVsOiBJbmZyYU1vZGVsLCBjb25zdHJ1Y3RzOiBDREtDb25zdHJ1Y3RbXSk6IEluZnJhTW9kZWwge1xuICAgIGNvbnN0IGNmSW5mcmFSb290ID0gY2ZJbmZyYU1vZGVsLmNvbXBvbmVudHMuZmluZChjID0+IGMuaW5jb21pbmcuc2l6ZSA9PT0gMCk7XG4gICAgY2ZJbmZyYVJvb3Q/Lm91dGdvaW5nLmZvckVhY2gociA9PiByLnRhcmdldC5yZW1vdmVJbmNvbWluZyhyKSk7XG5cbiAgICBjb25zdCBjb21wb25lbnRzID0gW1xuICAgICAgLi4uY2ZJbmZyYU1vZGVsLmNvbXBvbmVudHMuZmlsdGVyKGMgPT4gYyAhPT0gY2ZJbmZyYVJvb3QpLFxuICAgICAgLi4uY29uc3RydWN0cy5tYXAoYyA9PiBjLmNvbXBvbmVudCksXG4gICAgXTtcblxuICAgIGNvbnN0IHJlbGF0aW9uc2hpcHMgPSBbXG4gICAgICAuLi5jZkluZnJhTW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PiByLnNvdXJjZSAhPT0gY2ZJbmZyYVJvb3QpLFxuICAgICAgLi4uZmxhdE1hcChjb25zdHJ1Y3RzLCBjID0+IFsuLi5jLmNvbXBvbmVudC5vdXRnb2luZ10pLFxuICAgIF07XG5cbiAgICByZXR1cm4gbmV3IEluZnJhTW9kZWwoY29tcG9uZW50cywgcmVsYXRpb25zaGlwcyk7XG4gIH1cbn0iXX0=

@@ -55,3 +55,3 @@ "use strict";

else if (typeof _definition === 'object' && _definition !== null) {
return new models_1.ComponentPropertyRecord(node_1.fromEntries(Object.entries(_definition).map(([propKey, propValue]) => {
return new models_1.ComponentPropertyRecord((0, node_1.fromEntries)(Object.entries(_definition).map(([propKey, propValue]) => {
const newPropertyPath = [...propertyPath, propKey];

@@ -73,2 +73,2 @@ return [propKey, factory(propValue, newPropertyPath)];

exports.CFEntity = CFEntity;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2YtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQVd5QjtBQUN6Qiw2Q0FBaUQ7QUFFakQscUNBQWlDO0FBTWpDOzs7R0FHRztBQUNILE1BQXNCLFFBQVE7SUFNNUIsWUFBWSxJQUFZLEVBQUUsVUFBK0IsRUFBRSxJQUFrQjtRQUMzRSxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQUssQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQVVEOzs7Ozs7T0FNRztJQUNJLGFBQWEsQ0FDbEIsS0FBaUIsRUFDakIsVUFBb0M7SUFDcEMsNkRBQTZEO0lBQzdELGtCQUErQztRQUUvQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDdEIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ1QsSUFBSSxDQUFDLDRCQUE0QixDQUMvQixVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDbkUsR0FBRyxDQUFDLGNBQWMsRUFBRSxFQUNwQixFQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBQyxDQUN4RSxDQUNGLENBQ0osQ0FBQztRQUNGLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVMsNEJBQTRCLENBQ3BDLGVBQTBCLEVBQzFCLElBQVksRUFDWixPQUF1QztRQUV2QyxNQUFNLFlBQVksR0FBRyxJQUFJLCtCQUFzQixDQUM3QyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUMvQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFekMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELDZEQUE2RDtJQUM3RCwyQkFBMkIsQ0FBQyxhQUEwQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLCtCQUErQixDQUFDLFVBQXdCO1FBRWhFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RSxTQUFTLE9BQU8sQ0FBRSxXQUF5QixFQUFFLFlBQXNCO1lBQ2pFLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDOUIsT0FBTyxJQUFJLCtCQUFzQixDQUMvQixXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDdEUsVUFBVSxDQUNYLENBQUM7YUFDSDtpQkFBTSxJQUFHLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFO2dCQUNqRSxPQUFPLElBQUksZ0NBQXVCLENBQUMsa0JBQVcsQ0FDNUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFO29CQUN2RCxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNuRCxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztnQkFDeEQsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUNwQjtpQkFBTTtnQkFDTCxPQUFPLElBQUksbUNBQTBCLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ2hFO1FBQ0gsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsNkRBQTZEO0lBQ25ELDRCQUE0QixDQUFDLFlBQXNCO1FBQzNELE9BQU8sNEJBQW1CLENBQUMsSUFBSSxDQUFDO0lBQ2xDLENBQUM7Q0FFRjtBQXRHRCw0QkFzR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFByb3BlcnR5VmFsdWUsXG4gIENvbXBvbmVudFVwZGF0ZVR5cGUsXG4gIERlcGVuZGVuY3lSZWxhdGlvbnNoaXAsXG4gIEluZnJhTW9kZWwsXG4gIENvbXBvbmVudFByb3BlcnR5UmVjb3JkLFxuICBDb21wb25lbnRQcm9wZXJ0eVByaW1pdGl2ZSxcbiAgQ29tcG9uZW50UHJvcGVydHlBcnJheSxcbiAgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcE9wdGlvbnMsXG4gIFByb3BlcnR5UGF0aCxcbn0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IGZyb21FbnRyaWVzIH0gZnJvbSAnLi4vLi4vcHJpdmF0ZS9ub2RlJztcbmltcG9ydCB7IENGUGFyc2VyQXJncyB9IGZyb20gJy4vY2YtcGFyc2VyLWFyZ3MnO1xuaW1wb3J0IHsgQ0ZSZWYgfSBmcm9tICcuL2NmLXJlZic7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbi8vIEB0cy1pZ25vcmVcbmV4cG9ydCB0eXBlIENGRGVmaW5pdGlvbiA9IEFycmF5PENGRGVmaW5pdGlvbj4gfCBSZWNvcmQ8c3RyaW5nLCBDRkRlZmluaXRpb24+IHwgc3RyaW5nIHwgbnVtYmVyO1xuXG4vKipcbiAqIENGRW50aXR5IGJ1aWxkcyBhIENvbXBvbmVudCBhbmQgaXRzIG91dGdvaW5nIHJlYWx0aW9uc2hpcHNcbiAqIGZvciBhIGdpdmVuIENsb3VkRm9ybWF0aW9uIGVudGl0eSBmcm9tIGl0cyB0ZW1wbGF0ZSBkZWZpbml0aW9uXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDRkVudGl0eSB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbXBvbmVudDogQ29tcG9uZW50O1xuICBwcm90ZWN0ZWQgZGVwZW5kZW5jeVJlZnM6IENGUmVmW107XG4gIHByb3RlY3RlZCByZWFkb25seSBwYXJzZXJBcmdzOiBDRlBhcnNlckFyZ3M7XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBkZWZpbml0aW9uOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBhcmdzOiBDRlBhcnNlckFyZ3Mpe1xuICAgIHRoaXMuZGVwZW5kZW5jeVJlZnMgPSBDRlJlZi5yZWFkUmVmc0luRXhwcmVzc2lvbihkZWZpbml0aW9uKTtcbiAgICB0aGlzLnBhcnNlckFyZ3MgPSBhcmdzO1xuICAgIHRoaXMuY29tcG9uZW50ID0gdGhpcy5nZW5lcmF0ZUNvbXBvbmVudChuYW1lLCBkZWZpbml0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgdGhlIGNvbXBvbmVudCBmb3IgdGhpcyBDRkVudGl0eSwgY2FsbGVkIG9uIGNvbnN0cnVjdG9yXG4gICAqIGFuZCBpbXBsZW1lbnRlZCBpbiBlYWNoIHN1YmNsYXNzXG4gICAqIEBwYXJhbSBuYW1lIC0gQ29tcG9uZW50IG5hbWVcbiAgICogQHBhcmFtIGRlZmluaXRpb24gLSBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSBkZWZpbml0aW9uIG9mIHRoZSBlbnRpdHlcbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZW5lcmF0ZUNvbXBvbmVudChuYW1lOiBzdHJpbmcsIGRlZmluaXRpb246UmVjb3JkPHN0cmluZywgYW55Pik6Q29tcG9uZW50XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW5kIHJldHVybnMgdGhlIG91dGdvaW5nIHJlbGF0aW9uc2hpcHNcbiAgICogYWxvbmcgd2l0aCBhbnkgYWRkaXRpb25hbCBjb21wb25lbnRzIGFuZCB0aGVpciByZWxhdGlvbnNoaXBzXG4gICAqXG4gICAqIEBwYXJhbSBjZkVudGl0aWVzIC0gUmVmZXJlbmNlYWJsZSBDRkVudGl0aWVzIGluIHRoZSBzY29wZVxuICAgKiBAcGFyYW0gZXh0ZXJuYWxQYXJhbWV0ZXJzIC0gUmVmZXJlbmNlYWJsZSBDRkVudGl0aWVzIGNvbWluZyBmcm9tIG91dHNpZGUgb2YgdGhlIHN0YWNrJ3Mgc2NvcGVcbiAgICovXG4gIHB1YmxpYyBwb3B1bGF0ZU1vZGVsKFxuICAgIG1vZGVsOiBJbmZyYU1vZGVsLFxuICAgIGNmRW50aXRpZXM6IFJlY29yZDxzdHJpbmcsIENGRW50aXR5PixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgZXh0ZXJuYWxQYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgQ0ZFbnRpdHlbXT4sXG4gICk6IHZvaWQge1xuICAgIG1vZGVsLnJlbGF0aW9uc2hpcHMucHVzaChcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5kZXBlbmRlbmN5UmVmcylcbiAgICAgICAgLm1hcChyZWYgPT5cbiAgICAgICAgICB0aGlzLmNyZWF0ZURlcGVuZGVuY3lSZWxhdGlvbnNoaXAoXG4gICAgICAgICAgICBjZkVudGl0aWVzW3JlZi5sb2dpY2FsSWRdLmdldENvbXBvbmVudEluQXR0cmlidXRlUGF0aChyZWYuZGVzdFBhdGgpLFxuICAgICAgICAgICAgcmVmLmdldERlc2NyaXB0aW9uKCksXG4gICAgICAgICAgICB7c291cmNlUHJvcGVydHlQYXRoOiByZWYuc291cmNlUGF0aCwgdGFyZ2V0QXR0cmlidXRlUGF0aDogcmVmLmRlc3RQYXRofSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICk7XG4gICAgbW9kZWwuY29tcG9uZW50cy5wdXNoKHRoaXMuY29tcG9uZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVEZXBlbmRlbmN5UmVsYXRpb25zaGlwKFxuICAgIHRhcmdldENvbXBvbmVudDogQ29tcG9uZW50LFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogRGVwZW5kZW5jeVJlbGF0aW9uc2hpcE9wdGlvbnMsXG4gICk6IERlcGVuZGVuY3lSZWxhdGlvbnNoaXAge1xuICAgIGNvbnN0IHJlbGF0aW9uc2hpcCA9IG5ldyBEZXBlbmRlbmN5UmVsYXRpb25zaGlwKFxuICAgICAgdGhpcy5jb21wb25lbnQsIHRhcmdldENvbXBvbmVudCwgdHlwZSwgb3B0aW9ucyxcbiAgICApO1xuXG4gICAgdGhpcy5jb21wb25lbnQuYWRkT3V0Z29pbmcocmVsYXRpb25zaGlwKTtcblxuICAgIHJldHVybiByZWxhdGlvbnNoaXA7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGdldENvbXBvbmVudEluQXR0cmlidXRlUGF0aChhdHRyaWJ1dGVQYXRoOlByb3BlcnR5UGF0aCk6IENvbXBvbmVudHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnQ7XG4gIH1cblxuICAvKipcbiAgICogQSBDb21wb25lbnRQcm9wZXJ0eVZhbHVlIGZhY3RvcnkgdGhhdCB0YWtlcyBhIENsb3VkRm9ybWF0aW9uIGRlZmluaXRpb24gKGpzIG9iamVjdClcbiAgICogYW5kIHJlY3Vyc2l2ZWx5IGNyZWF0ZXMgdGhlIHJlc3BlY3RpdmUgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSBmb3IgZXZlcnkgcHJpbWl0aXZlLFxuICAgKiByZWNvcmQgb3IgYXJyYXlcbiAgICogQHBhcmFtIGRlZmluaXRpb24gdGhlIENsb3VkRm9ybWF0aW9uIGRlZmluaXRpb24gKGpzIG9iamVjdCBhcyBpdCBjb21lcyBmcm9tIHRoZSB0ZW1wbGF0ZSlcbiAgICogQHBhcmFtIHByb3BlcnR5UGF0aCB0aGUgcHJvcGVydHkga2V5IHBhdGggdGhhdCBsZWFkcyB0byB0aGlzIGRlZmluaXRpb25cbiAgICovXG4gIHByb3RlY3RlZCBjZkRlZmluaXRpb25Ub0NvbXBvbmVudFByb3BlcnR5KGRlZmluaXRpb246IENGRGVmaW5pdGlvbik6IENvbXBvbmVudFByb3BlcnR5VmFsdWV7XG5cbiAgICBjb25zdCB1cGRhdGVUeXBlR2V0dGVyID0gdGhpcy5nZXRVcGRhdGVUeXBlRm9yUHJvcGVydHlQYXRoLmJpbmQodGhpcyk7XG5cbiAgICBmdW5jdGlvbiBmYWN0b3J5IChfZGVmaW5pdGlvbjogQ0ZEZWZpbml0aW9uLCBwcm9wZXJ0eVBhdGg6IHN0cmluZ1tdKTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZSB7XG4gICAgICBjb25zdCB1cGRhdGVUeXBlID0gdXBkYXRlVHlwZUdldHRlcihwcm9wZXJ0eVBhdGgpO1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoX2RlZmluaXRpb24pKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UHJvcGVydHlBcnJheShcbiAgICAgICAgICBfZGVmaW5pdGlvbi5tYXAoKHYsIGkpID0+IGZhY3RvcnkodiwgWy4uLnByb3BlcnR5UGF0aCwgaS50b1N0cmluZygpXSkpLFxuICAgICAgICAgIHVwZGF0ZVR5cGUsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYodHlwZW9mIF9kZWZpbml0aW9uID09PSAnb2JqZWN0JyAmJiBfZGVmaW5pdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFByb3BlcnR5UmVjb3JkKGZyb21FbnRyaWVzKFxuICAgICAgICAgIE9iamVjdC5lbnRyaWVzKF9kZWZpbml0aW9uKS5tYXAoKFtwcm9wS2V5LCBwcm9wVmFsdWVdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdQcm9wZXJ0eVBhdGggPSBbLi4ucHJvcGVydHlQYXRoLCBwcm9wS2V5XTtcbiAgICAgICAgICAgIHJldHVybiBbcHJvcEtleSwgZmFjdG9yeShwcm9wVmFsdWUsIG5ld1Byb3BlcnR5UGF0aCldO1xuICAgICAgICAgIH0pKSwgdXBkYXRlVHlwZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlKF9kZWZpbml0aW9uLCB1cGRhdGVUeXBlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFjdG9yeShkZWZpbml0aW9uLCBbXSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIHByb3RlY3RlZCBnZXRVcGRhdGVUeXBlRm9yUHJvcGVydHlQYXRoKHByb3BlcnR5UGF0aDogc3RyaW5nW10pOiBDb21wb25lbnRVcGRhdGVUeXBlIHtcbiAgICByZXR1cm4gQ29tcG9uZW50VXBkYXRlVHlwZS5OT05FO1xuICB9XG5cbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2YtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQVd5QjtBQUN6Qiw2Q0FBaUQ7QUFFakQscUNBQWlDO0FBTWpDOzs7R0FHRztBQUNILE1BQXNCLFFBQVE7SUFNNUIsWUFBWSxJQUFZLEVBQUUsVUFBK0IsRUFBRSxJQUFrQjtRQUMzRSxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQUssQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQVVEOzs7Ozs7T0FNRztJQUNJLGFBQWEsQ0FDbEIsS0FBaUIsRUFDakIsVUFBb0M7SUFDcEMsNkRBQTZEO0lBQzdELGtCQUErQztRQUUvQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDdEIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7YUFDL0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQ1QsSUFBSSxDQUFDLDRCQUE0QixDQUMvQixVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDbkUsR0FBRyxDQUFDLGNBQWMsRUFBRSxFQUNwQixFQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBQyxDQUN4RSxDQUNGLENBQ0osQ0FBQztRQUNGLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVMsNEJBQTRCLENBQ3BDLGVBQTBCLEVBQzFCLElBQVksRUFDWixPQUF1QztRQUV2QyxNQUFNLFlBQVksR0FBRyxJQUFJLCtCQUFzQixDQUM3QyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUMvQyxDQUFDO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFekMsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELDZEQUE2RDtJQUM3RCwyQkFBMkIsQ0FBQyxhQUEwQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLCtCQUErQixDQUFDLFVBQXdCO1FBRWhFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RSxTQUFTLE9BQU8sQ0FBRSxXQUF5QixFQUFFLFlBQXNCO1lBQ2pFLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDOUIsT0FBTyxJQUFJLCtCQUFzQixDQUMvQixXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDdEUsVUFBVSxDQUNYLENBQUM7YUFDSDtpQkFBTSxJQUFHLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxXQUFXLEtBQUssSUFBSSxFQUFFO2dCQUNqRSxPQUFPLElBQUksZ0NBQXVCLENBQUMsSUFBQSxrQkFBVyxFQUM1QyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUU7b0JBQ3ZELE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ25ELE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUN4RCxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxtQ0FBMEIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDaEU7UUFDSCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCw2REFBNkQ7SUFDbkQsNEJBQTRCLENBQUMsWUFBc0I7UUFDM0QsT0FBTyw0QkFBbUIsQ0FBQyxJQUFJLENBQUM7SUFDbEMsQ0FBQztDQUVGO0FBdEdELDRCQXNHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UHJvcGVydHlWYWx1ZSxcbiAgQ29tcG9uZW50VXBkYXRlVHlwZSxcbiAgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCxcbiAgSW5mcmFNb2RlbCxcbiAgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQsXG4gIENvbXBvbmVudFByb3BlcnR5UHJpbWl0aXZlLFxuICBDb21wb25lbnRQcm9wZXJ0eUFycmF5LFxuICBEZXBlbmRlbmN5UmVsYXRpb25zaGlwT3B0aW9ucyxcbiAgUHJvcGVydHlQYXRoLFxufSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgZnJvbUVudHJpZXMgfSBmcm9tICcuLi8uLi9wcml2YXRlL25vZGUnO1xuaW1wb3J0IHsgQ0ZQYXJzZXJBcmdzIH0gZnJvbSAnLi9jZi1wYXJzZXItYXJncyc7XG5pbXBvcnQgeyBDRlJlZiB9IGZyb20gJy4vY2YtcmVmJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IHR5cGUgQ0ZEZWZpbml0aW9uID0gQXJyYXk8Q0ZEZWZpbml0aW9uPiB8IFJlY29yZDxzdHJpbmcsIENGRGVmaW5pdGlvbj4gfCBzdHJpbmcgfCBudW1iZXI7XG5cbi8qKlxuICogQ0ZFbnRpdHkgYnVpbGRzIGEgQ29tcG9uZW50IGFuZCBpdHMgb3V0Z29pbmcgcmVhbHRpb25zaGlwc1xuICogZm9yIGEgZ2l2ZW4gQ2xvdWRGb3JtYXRpb24gZW50aXR5IGZyb20gaXRzIHRlbXBsYXRlIGRlZmluaXRpb25cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENGRW50aXR5IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50OiBDb21wb25lbnQ7XG4gIHByb3RlY3RlZCBkZXBlbmRlbmN5UmVmczogQ0ZSZWZbXTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhcnNlckFyZ3M6IENGUGFyc2VyQXJncztcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIGRlZmluaXRpb246IFJlY29yZDxzdHJpbmcsIGFueT4sIGFyZ3M6IENGUGFyc2VyQXJncyl7XG4gICAgdGhpcy5kZXBlbmRlbmN5UmVmcyA9IENGUmVmLnJlYWRSZWZzSW5FeHByZXNzaW9uKGRlZmluaXRpb24pO1xuICAgIHRoaXMucGFyc2VyQXJncyA9IGFyZ3M7XG4gICAgdGhpcy5jb21wb25lbnQgPSB0aGlzLmdlbmVyYXRlQ29tcG9uZW50KG5hbWUsIGRlZmluaXRpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyB0aGUgY29tcG9uZW50IGZvciB0aGlzIENGRW50aXR5LCBjYWxsZWQgb24gY29uc3RydWN0b3JcbiAgICogYW5kIGltcGxlbWVudGVkIGluIGVhY2ggc3ViY2xhc3NcbiAgICogQHBhcmFtIG5hbWUgLSBDb21wb25lbnQgbmFtZVxuICAgKiBAcGFyYW0gZGVmaW5pdGlvbiAtIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIGRlZmluaXRpb24gb2YgdGhlIGVudGl0eVxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdlbmVyYXRlQ29tcG9uZW50KG5hbWU6IHN0cmluZywgZGVmaW5pdGlvbjpSZWNvcmQ8c3RyaW5nLCBhbnk+KTpDb21wb25lbnRcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbmQgcmV0dXJucyB0aGUgb3V0Z29pbmcgcmVsYXRpb25zaGlwc1xuICAgKiBhbG9uZyB3aXRoIGFueSBhZGRpdGlvbmFsIGNvbXBvbmVudHMgYW5kIHRoZWlyIHJlbGF0aW9uc2hpcHNcbiAgICpcbiAgICogQHBhcmFtIGNmRW50aXRpZXMgLSBSZWZlcmVuY2VhYmxlIENGRW50aXRpZXMgaW4gdGhlIHNjb3BlXG4gICAqIEBwYXJhbSBleHRlcm5hbFBhcmFtZXRlcnMgLSBSZWZlcmVuY2VhYmxlIENGRW50aXRpZXMgY29taW5nIGZyb20gb3V0c2lkZSBvZiB0aGUgc3RhY2sncyBzY29wZVxuICAgKi9cbiAgcHVibGljIHBvcHVsYXRlTW9kZWwoXG4gICAgbW9kZWw6IEluZnJhTW9kZWwsXG4gICAgY2ZFbnRpdGllczogUmVjb3JkPHN0cmluZywgQ0ZFbnRpdHk+LFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBleHRlcm5hbFBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBDRkVudGl0eVtdPixcbiAgKTogdm9pZCB7XG4gICAgbW9kZWwucmVsYXRpb25zaGlwcy5wdXNoKFxuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLmRlcGVuZGVuY3lSZWZzKVxuICAgICAgICAubWFwKHJlZiA9PlxuICAgICAgICAgIHRoaXMuY3JlYXRlRGVwZW5kZW5jeVJlbGF0aW9uc2hpcChcbiAgICAgICAgICAgIGNmRW50aXRpZXNbcmVmLmxvZ2ljYWxJZF0uZ2V0Q29tcG9uZW50SW5BdHRyaWJ1dGVQYXRoKHJlZi5kZXN0UGF0aCksXG4gICAgICAgICAgICByZWYuZ2V0RGVzY3JpcHRpb24oKSxcbiAgICAgICAgICAgIHtzb3VyY2VQcm9wZXJ0eVBhdGg6IHJlZi5zb3VyY2VQYXRoLCB0YXJnZXRBdHRyaWJ1dGVQYXRoOiByZWYuZGVzdFBhdGh9LFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgKTtcbiAgICBtb2RlbC5jb21wb25lbnRzLnB1c2godGhpcy5jb21wb25lbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZURlcGVuZGVuY3lSZWxhdGlvbnNoaXAoXG4gICAgdGFyZ2V0Q29tcG9uZW50OiBDb21wb25lbnQsXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwT3B0aW9ucyxcbiAgKTogRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCB7XG4gICAgY29uc3QgcmVsYXRpb25zaGlwID0gbmV3IERlcGVuZGVuY3lSZWxhdGlvbnNoaXAoXG4gICAgICB0aGlzLmNvbXBvbmVudCwgdGFyZ2V0Q29tcG9uZW50LCB0eXBlLCBvcHRpb25zLFxuICAgICk7XG5cbiAgICB0aGlzLmNvbXBvbmVudC5hZGRPdXRnb2luZyhyZWxhdGlvbnNoaXApO1xuXG4gICAgcmV0dXJuIHJlbGF0aW9uc2hpcDtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgZ2V0Q29tcG9uZW50SW5BdHRyaWJ1dGVQYXRoKGF0dHJpYnV0ZVBhdGg6UHJvcGVydHlQYXRoKTogQ29tcG9uZW50e1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIENvbXBvbmVudFByb3BlcnR5VmFsdWUgZmFjdG9yeSB0aGF0IHRha2VzIGEgQ2xvdWRGb3JtYXRpb24gZGVmaW5pdGlvbiAoanMgb2JqZWN0KVxuICAgKiBhbmQgcmVjdXJzaXZlbHkgY3JlYXRlcyB0aGUgcmVzcGVjdGl2ZSBDb21wb25lbnRQcm9wZXJ0eVZhbHVlIGZvciBldmVyeSBwcmltaXRpdmUsXG4gICAqIHJlY29yZCBvciBhcnJheVxuICAgKiBAcGFyYW0gZGVmaW5pdGlvbiB0aGUgQ2xvdWRGb3JtYXRpb24gZGVmaW5pdGlvbiAoanMgb2JqZWN0IGFzIGl0IGNvbWVzIGZyb20gdGhlIHRlbXBsYXRlKVxuICAgKiBAcGFyYW0gcHJvcGVydHlQYXRoIHRoZSBwcm9wZXJ0eSBrZXkgcGF0aCB0aGF0IGxlYWRzIHRvIHRoaXMgZGVmaW5pdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGNmRGVmaW5pdGlvblRvQ29tcG9uZW50UHJvcGVydHkoZGVmaW5pdGlvbjogQ0ZEZWZpbml0aW9uKTogQ29tcG9uZW50UHJvcGVydHlWYWx1ZXtcblxuICAgIGNvbnN0IHVwZGF0ZVR5cGVHZXR0ZXIgPSB0aGlzLmdldFVwZGF0ZVR5cGVGb3JQcm9wZXJ0eVBhdGguYmluZCh0aGlzKTtcblxuICAgIGZ1bmN0aW9uIGZhY3RvcnkgKF9kZWZpbml0aW9uOiBDRkRlZmluaXRpb24sIHByb3BlcnR5UGF0aDogc3RyaW5nW10pOiBDb21wb25lbnRQcm9wZXJ0eVZhbHVlIHtcbiAgICAgIGNvbnN0IHVwZGF0ZVR5cGUgPSB1cGRhdGVUeXBlR2V0dGVyKHByb3BlcnR5UGF0aCk7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShfZGVmaW5pdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21wb25lbnRQcm9wZXJ0eUFycmF5KFxuICAgICAgICAgIF9kZWZpbml0aW9uLm1hcCgodiwgaSkgPT4gZmFjdG9yeSh2LCBbLi4ucHJvcGVydHlQYXRoLCBpLnRvU3RyaW5nKCldKSksXG4gICAgICAgICAgdXBkYXRlVHlwZSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZih0eXBlb2YgX2RlZmluaXRpb24gPT09ICdvYmplY3QnICYmIF9kZWZpbml0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UHJvcGVydHlSZWNvcmQoZnJvbUVudHJpZXMoXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoX2RlZmluaXRpb24pLm1hcCgoW3Byb3BLZXksIHByb3BWYWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1Byb3BlcnR5UGF0aCA9IFsuLi5wcm9wZXJ0eVBhdGgsIHByb3BLZXldO1xuICAgICAgICAgICAgcmV0dXJuIFtwcm9wS2V5LCBmYWN0b3J5KHByb3BWYWx1ZSwgbmV3UHJvcGVydHlQYXRoKV07XG4gICAgICAgICAgfSkpLCB1cGRhdGVUeXBlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UHJvcGVydHlQcmltaXRpdmUoX2RlZmluaXRpb24sIHVwZGF0ZVR5cGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWN0b3J5KGRlZmluaXRpb24sIFtdKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgcHJvdGVjdGVkIGdldFVwZGF0ZVR5cGVGb3JQcm9wZXJ0eVBhdGgocHJvcGVydHlQYXRoOiBzdHJpbmdbXSk6IENvbXBvbmVudFVwZGF0ZVR5cGUge1xuICAgIHJldHVybiBDb21wb25lbnRVcGRhdGVUeXBlLk5PTkU7XG4gIH1cblxufSJdfQ==

@@ -11,3 +11,3 @@ "use strict";

super(name, definition, args);
[this.dependencyRefs, this.parameterRefs] = models_1.partitionArray(this.dependencyRefs, (ref) => (ref.sourcePath[0] !== 'Properties' || ref.sourcePath[1] !== 'Parameters'));
[this.dependencyRefs, this.parameterRefs] = (0, models_1.partitionArray)(this.dependencyRefs, (ref) => (ref.sourcePath[0] !== 'Properties' || ref.sourcePath[1] !== 'Parameters'));
const nestedStackName = this.component.name;

@@ -56,2 +56,2 @@ if (!this.parserArgs.nestedStacks || !{}.hasOwnProperty.call(this.parserArgs.nestedStacks, nestedStackName))

exports.CFNestedStack = CFNestedStack;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtbmVzdGVkLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2YtbmVzdGVkLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUFvRztBQUVwRywyQ0FBdUM7QUFDdkMsMkNBQXVDO0FBR3ZDLCtDQUEyQztBQUczQyxNQUFhLGFBQWMsU0FBUSx3QkFBVTtJQU0zQyxZQUFZLElBQVksRUFBRSxVQUErQixFQUFFLElBQWtCO1FBQzNFLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTlCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsdUJBQWMsQ0FDeEQsSUFBSSxDQUFDLGNBQWMsRUFDbkIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLENBQUMsQ0FDcEYsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1FBQzVDLElBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQztZQUN4RyxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsZUFBZSxrQ0FBa0MsQ0FBQyxDQUFDO1FBRWxHLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxvQkFBUSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN6RSxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsVUFBOEI7UUFDdEUsT0FBTyxJQUFJLGtCQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNyQyxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUk7WUFDeEIsVUFBVSxFQUFFLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxVQUFVLENBQUM7U0FDN0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGFBQWEsQ0FBQyxLQUFpQixFQUFFLEtBQStCO1FBQ3JFLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxDLE1BQU0sZ0NBQWdDLEdBQUcsRUFBZ0MsQ0FBQztRQUUxRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvQixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsOENBQThDO1lBQ3ZGLElBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxhQUFhLENBQUMsRUFBQztnQkFDbEQsZ0NBQWdDLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQ3REO1lBQ0QsZ0NBQWdDLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUNoRCxJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxlQUFlLEVBQ3BCLGdDQUFnQyxDQUNqQyxDQUFDO1FBRUYsTUFBTSxrQkFBa0IsR0FBb0IsV0FBVyxDQUFDLFVBQVU7YUFDL0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLGtCQUFTLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQWlCO2FBQzNFLEdBQUcsQ0FBQyxDQUFDLENBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUMsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7UUFFeEYsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsRUFBRSxHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5RSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxhQUEwQjs7UUFDcEQsTUFBTSxXQUFXLEdBQXlCLENBQUMsYUFBYSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQztZQUNyRyxDQUFDLENBQUMsTUFBQSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQ0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkYsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVkLElBQUcsV0FBVyxZQUFZLG9CQUFRO1lBQUUsT0FBTyxXQUFXLENBQUMsMkJBQTJCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNHLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0NBRUY7QUFwRUQsc0NBb0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmZyYU1vZGVsLCBQcm9wZXJ0eVBhdGgsIHBhcnRpdGlvbkFycmF5LCBSZWxhdGlvbnNoaXAgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgQ0ZFbnRpdHkgfSBmcm9tICcuL2NmLWVudGl0eSc7XG5pbXBvcnQgeyBDRk91dHB1dCB9IGZyb20gJy4vY2Ytb3V0cHV0JztcbmltcG9ydCB7IENGUGFyc2VyIH0gZnJvbSAnLi9jZi1wYXJzZXInO1xuaW1wb3J0IHsgQ0ZQYXJzZXJBcmdzIH0gZnJvbSAnLi9jZi1wYXJzZXItYXJncyc7XG5pbXBvcnQgeyBDRlJlZiB9IGZyb20gJy4vY2YtcmVmJztcbmltcG9ydCB7IENGUmVzb3VyY2UgfSBmcm9tICcuL2NmLXJlc291cmNlJztcblxuXG5leHBvcnQgY2xhc3MgQ0ZOZXN0ZWRTdGFjayBleHRlbmRzIENGUmVzb3VyY2Uge1xuXG4gIHJlYWRvbmx5IGlubmVyQ0ZFbnRpdGllczogUmVjb3JkPHN0cmluZywgQ0ZFbnRpdHk+W107XG4gIHJlYWRvbmx5IGlubmVyQ0ZQYXJzZXI6IENGUGFyc2VyO1xuICByZWFkb25seSBwYXJhbWV0ZXJSZWZzOiBDRlJlZltdO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgZGVmaW5pdGlvbjogUmVjb3JkPHN0cmluZywgYW55PiwgYXJnczogQ0ZQYXJzZXJBcmdzKXtcbiAgICBzdXBlcihuYW1lLCBkZWZpbml0aW9uLCBhcmdzKTtcblxuICAgIFt0aGlzLmRlcGVuZGVuY3lSZWZzLCB0aGlzLnBhcmFtZXRlclJlZnNdID0gcGFydGl0aW9uQXJyYXkoXG4gICAgICB0aGlzLmRlcGVuZGVuY3lSZWZzLFxuICAgICAgKHJlZikgPT4gKHJlZi5zb3VyY2VQYXRoWzBdICE9PSAnUHJvcGVydGllcycgfHwgcmVmLnNvdXJjZVBhdGhbMV0gIT09ICdQYXJhbWV0ZXJzJyksXG4gICAgKTtcblxuICAgIGNvbnN0IG5lc3RlZFN0YWNrTmFtZSA9IHRoaXMuY29tcG9uZW50Lm5hbWU7XG4gICAgaWYoIXRoaXMucGFyc2VyQXJncy5uZXN0ZWRTdGFja3MgfHwgIXt9Lmhhc093blByb3BlcnR5LmNhbGwodGhpcy5wYXJzZXJBcmdzLm5lc3RlZFN0YWNrcywgbmVzdGVkU3RhY2tOYW1lKSlcbiAgICAgIHRocm93IEVycm9yKGBDYW5ub3QgZXZhbHVhdGUgbmVzdGVkIHN0YWNrICcke25lc3RlZFN0YWNrTmFtZX0nLiBJdHMgdGVtcGxhdGUgd2FzIG5vdCBwcm92aWRlZGApO1xuXG4gICAgY29uc3QgaW5uZXJTdGFjayA9IHRoaXMucGFyc2VyQXJncy5uZXN0ZWRTdGFja3NbbmVzdGVkU3RhY2tOYW1lXTtcbiAgICB0aGlzLmlubmVyQ0ZQYXJzZXIgPSBuZXcgQ0ZQYXJzZXIobmVzdGVkU3RhY2tOYW1lLCBpbm5lclN0YWNrKTtcbiAgICB0aGlzLmlubmVyQ0ZFbnRpdGllcyA9IHRoaXMuaW5uZXJDRlBhcnNlci5jcmVhdGVDRkVudGl0aWVzKHRoaXMuY29tcG9uZW50LCB7XG4gICAgICBuZXN0ZWRTdGFja3M6IHRoaXMucGFyc2VyQXJncy5uZXN0ZWRTdGFja3MsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2VuZXJhdGVDb21wb25lbnQobmFtZTogc3RyaW5nLCBkZWZpbml0aW9uOlJlY29yZDxzdHJpbmcsIGFueT4pOiBDb21wb25lbnQge1xuICAgIHJldHVybiBuZXcgQ29tcG9uZW50KG5hbWUsICdSZXNvdXJjZScsIHtcbiAgICAgIHN1YnR5cGU6IGRlZmluaXRpb24uVHlwZSxcbiAgICAgIHByb3BlcnRpZXM6IHRoaXMuY2ZEZWZpbml0aW9uVG9Db21wb25lbnRQcm9wZXJ0eShkZWZpbml0aW9uKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBwb3B1bGF0ZU1vZGVsKG1vZGVsOiBJbmZyYU1vZGVsLCBub2RlczogUmVjb3JkPHN0cmluZywgQ0ZFbnRpdHk+KTogdm9pZCB7XG4gICAgc3VwZXIucG9wdWxhdGVNb2RlbChtb2RlbCwgbm9kZXMpO1xuXG4gICAgY29uc3QgY2ZFbnRpdGllc1JlZmVyZW5jZWRCeVBhcmFtZXRlcnMgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBDRkVudGl0eVtdPjtcblxuICAgIHRoaXMucGFyYW1ldGVyUmVmcy5mb3JFYWNoKHJlZiA9PiB7XG4gICAgICBjb25zdCBwYXJhbWV0ZXJOYW1lID0gcmVmLnNvdXJjZVBhdGhbMl07IC8vICdQcm9wZXJ0aWVzJywgJ1BhcmFtZXRlcnMnLCBbcGFyYW1ldGVyTmFtZV1cbiAgICAgIGlmKCFjZkVudGl0aWVzUmVmZXJlbmNlZEJ5UGFyYW1ldGVyc1twYXJhbWV0ZXJOYW1lXSl7XG4gICAgICAgIGNmRW50aXRpZXNSZWZlcmVuY2VkQnlQYXJhbWV0ZXJzW3BhcmFtZXRlck5hbWVdID0gW107XG4gICAgICB9XG4gICAgICBjZkVudGl0aWVzUmVmZXJlbmNlZEJ5UGFyYW1ldGVyc1twYXJhbWV0ZXJOYW1lXS5wdXNoKG5vZGVzW3JlZi5sb2dpY2FsSWRdKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG5lc3RlZE1vZGVsID0gdGhpcy5pbm5lckNGUGFyc2VyLmNyZWF0ZU1vZGVsKFxuICAgICAgdGhpcy5jb21wb25lbnQsXG4gICAgICB0aGlzLmlubmVyQ0ZFbnRpdGllcyxcbiAgICAgIGNmRW50aXRpZXNSZWZlcmVuY2VkQnlQYXJhbWV0ZXJzLFxuICAgICk7XG5cbiAgICBjb25zdCBjcm9zc1JlbGF0aW9uc2hpcHM6IFJlbGF0aW9uc2hpcFtdID0gKG5lc3RlZE1vZGVsLmNvbXBvbmVudHNcbiAgICAgIC5maWx0ZXIoYyA9PiBjIGluc3RhbmNlb2YgQ29tcG9uZW50ICYmIGMgIT09IHRoaXMuY29tcG9uZW50KSBhcyBDb21wb25lbnRbXSlcbiAgICAgIC5tYXAoKGM6Q29tcG9uZW50KSA9PiB0aGlzLmNyZWF0ZURlcGVuZGVuY3lSZWxhdGlvbnNoaXAoYywgJ25lc3RlZC1zdGFjay1jb21wb25lbnQnKSk7XG5cbiAgICBtb2RlbC5yZWxhdGlvbnNoaXBzLnB1c2goLi4uY3Jvc3NSZWxhdGlvbnNoaXBzLCAuLi5uZXN0ZWRNb2RlbC5yZWxhdGlvbnNoaXBzKTtcbiAgICBtb2RlbC5jb21wb25lbnRzLnB1c2goLi4ubmVzdGVkTW9kZWwuY29tcG9uZW50cy5maWx0ZXIoYyA9PiBjICE9PSB0aGlzLmNvbXBvbmVudCkpO1xuICB9XG5cbiAgZ2V0Q29tcG9uZW50SW5BdHRyaWJ1dGVQYXRoKGF0dHJpYnV0ZVBhdGg6UHJvcGVydHlQYXRoKTpDb21wb25lbnQge1xuICAgIGNvbnN0IGlubmVyRW50aXR5OiBDRkVudGl0eSB8IHVuZGVmaW5lZCA9IChhdHRyaWJ1dGVQYXRoLmxlbmd0aCA+PSAyICYmIGF0dHJpYnV0ZVBhdGhbMF0gPT09ICdPdXRwdXRzJylcbiAgICAgID8gdGhpcy5pbm5lckNGRW50aXRpZXMuZmluZChlbnRpdHkgPT4gZW50aXR5W2F0dHJpYnV0ZVBhdGhbMV1dKT8uW2F0dHJpYnV0ZVBhdGhbMV1dXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmKGlubmVyRW50aXR5IGluc3RhbmNlb2YgQ0ZPdXRwdXQpIHJldHVybiBpbm5lckVudGl0eS5nZXRDb21wb25lbnRJbkF0dHJpYnV0ZVBhdGgoYXR0cmlidXRlUGF0aC5zbGljZSgyKSk7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50O1xuICB9XG5cbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtbmVzdGVkLXN0YWNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2YtbmVzdGVkLXN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUFvRztBQUVwRywyQ0FBdUM7QUFDdkMsMkNBQXVDO0FBR3ZDLCtDQUEyQztBQUczQyxNQUFhLGFBQWMsU0FBUSx3QkFBVTtJQU0zQyxZQUFZLElBQVksRUFBRSxVQUErQixFQUFFLElBQWtCO1FBQzNFLEtBQUssQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTlCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBQSx1QkFBYyxFQUN4RCxJQUFJLENBQUMsY0FBYyxFQUNuQixDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksQ0FBQyxDQUNwRixDQUFDO1FBRUYsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDNUMsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO1lBQ3hHLE1BQU0sS0FBSyxDQUFDLGlDQUFpQyxlQUFlLGtDQUFrQyxDQUFDLENBQUM7UUFFbEcsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLG9CQUFRLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3pFLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVk7U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGlCQUFpQixDQUFDLElBQVksRUFBRSxVQUE4QjtRQUN0RSxPQUFPLElBQUksa0JBQVMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3JDLE9BQU8sRUFBRSxVQUFVLENBQUMsSUFBSTtZQUN4QixVQUFVLEVBQUUsSUFBSSxDQUFDLCtCQUErQixDQUFDLFVBQVUsQ0FBQztTQUM3RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWlCLEVBQUUsS0FBK0I7UUFDckUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEMsTUFBTSxnQ0FBZ0MsR0FBRyxFQUFnQyxDQUFDO1FBRTFFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyw4Q0FBOEM7WUFDdkYsSUFBRyxDQUFDLGdDQUFnQyxDQUFDLGFBQWEsQ0FBQyxFQUFDO2dCQUNsRCxnQ0FBZ0MsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7YUFDdEQ7WUFDRCxnQ0FBZ0MsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdFLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQ2hELElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGVBQWUsRUFDcEIsZ0NBQWdDLENBQ2pDLENBQUM7UUFFRixNQUFNLGtCQUFrQixHQUFvQixXQUFXLENBQUMsVUFBVTthQUMvRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksa0JBQVMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBaUI7YUFDM0UsR0FBRyxDQUFDLENBQUMsQ0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxFQUFFLHdCQUF3QixDQUFDLENBQUMsQ0FBQztRQUV4RixLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlFLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELDJCQUEyQixDQUFDLGFBQTBCOztRQUNwRCxNQUFNLFdBQVcsR0FBeUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDO1lBQ3JHLENBQUMsQ0FBQyxNQUFBLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBDQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRixDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWQsSUFBRyxXQUFXLFlBQVksb0JBQVE7WUFBRSxPQUFPLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0csT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Q0FFRjtBQXBFRCxzQ0FvRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluZnJhTW9kZWwsIFByb3BlcnR5UGF0aCwgcGFydGl0aW9uQXJyYXksIFJlbGF0aW9uc2hpcCB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBDRkVudGl0eSB9IGZyb20gJy4vY2YtZW50aXR5JztcbmltcG9ydCB7IENGT3V0cHV0IH0gZnJvbSAnLi9jZi1vdXRwdXQnO1xuaW1wb3J0IHsgQ0ZQYXJzZXIgfSBmcm9tICcuL2NmLXBhcnNlcic7XG5pbXBvcnQgeyBDRlBhcnNlckFyZ3MgfSBmcm9tICcuL2NmLXBhcnNlci1hcmdzJztcbmltcG9ydCB7IENGUmVmIH0gZnJvbSAnLi9jZi1yZWYnO1xuaW1wb3J0IHsgQ0ZSZXNvdXJjZSB9IGZyb20gJy4vY2YtcmVzb3VyY2UnO1xuXG5cbmV4cG9ydCBjbGFzcyBDRk5lc3RlZFN0YWNrIGV4dGVuZHMgQ0ZSZXNvdXJjZSB7XG5cbiAgcmVhZG9ubHkgaW5uZXJDRkVudGl0aWVzOiBSZWNvcmQ8c3RyaW5nLCBDRkVudGl0eT5bXTtcbiAgcmVhZG9ubHkgaW5uZXJDRlBhcnNlcjogQ0ZQYXJzZXI7XG4gIHJlYWRvbmx5IHBhcmFtZXRlclJlZnM6IENGUmVmW107XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBkZWZpbml0aW9uOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBhcmdzOiBDRlBhcnNlckFyZ3Mpe1xuICAgIHN1cGVyKG5hbWUsIGRlZmluaXRpb24sIGFyZ3MpO1xuXG4gICAgW3RoaXMuZGVwZW5kZW5jeVJlZnMsIHRoaXMucGFyYW1ldGVyUmVmc10gPSBwYXJ0aXRpb25BcnJheShcbiAgICAgIHRoaXMuZGVwZW5kZW5jeVJlZnMsXG4gICAgICAocmVmKSA9PiAocmVmLnNvdXJjZVBhdGhbMF0gIT09ICdQcm9wZXJ0aWVzJyB8fCByZWYuc291cmNlUGF0aFsxXSAhPT0gJ1BhcmFtZXRlcnMnKSxcbiAgICApO1xuXG4gICAgY29uc3QgbmVzdGVkU3RhY2tOYW1lID0gdGhpcy5jb21wb25lbnQubmFtZTtcbiAgICBpZighdGhpcy5wYXJzZXJBcmdzLm5lc3RlZFN0YWNrcyB8fCAhe30uaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLnBhcnNlckFyZ3MubmVzdGVkU3RhY2tzLCBuZXN0ZWRTdGFja05hbWUpKVxuICAgICAgdGhyb3cgRXJyb3IoYENhbm5vdCBldmFsdWF0ZSBuZXN0ZWQgc3RhY2sgJyR7bmVzdGVkU3RhY2tOYW1lfScuIEl0cyB0ZW1wbGF0ZSB3YXMgbm90IHByb3ZpZGVkYCk7XG5cbiAgICBjb25zdCBpbm5lclN0YWNrID0gdGhpcy5wYXJzZXJBcmdzLm5lc3RlZFN0YWNrc1tuZXN0ZWRTdGFja05hbWVdO1xuICAgIHRoaXMuaW5uZXJDRlBhcnNlciA9IG5ldyBDRlBhcnNlcihuZXN0ZWRTdGFja05hbWUsIGlubmVyU3RhY2spO1xuICAgIHRoaXMuaW5uZXJDRkVudGl0aWVzID0gdGhpcy5pbm5lckNGUGFyc2VyLmNyZWF0ZUNGRW50aXRpZXModGhpcy5jb21wb25lbnQsIHtcbiAgICAgIG5lc3RlZFN0YWNrczogdGhpcy5wYXJzZXJBcmdzLm5lc3RlZFN0YWNrcyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZW5lcmF0ZUNvbXBvbmVudChuYW1lOiBzdHJpbmcsIGRlZmluaXRpb246UmVjb3JkPHN0cmluZywgYW55Pik6IENvbXBvbmVudCB7XG4gICAgcmV0dXJuIG5ldyBDb21wb25lbnQobmFtZSwgJ1Jlc291cmNlJywge1xuICAgICAgc3VidHlwZTogZGVmaW5pdGlvbi5UeXBlLFxuICAgICAgcHJvcGVydGllczogdGhpcy5jZkRlZmluaXRpb25Ub0NvbXBvbmVudFByb3BlcnR5KGRlZmluaXRpb24pLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHBvcHVsYXRlTW9kZWwobW9kZWw6IEluZnJhTW9kZWwsIG5vZGVzOiBSZWNvcmQ8c3RyaW5nLCBDRkVudGl0eT4pOiB2b2lkIHtcbiAgICBzdXBlci5wb3B1bGF0ZU1vZGVsKG1vZGVsLCBub2Rlcyk7XG5cbiAgICBjb25zdCBjZkVudGl0aWVzUmVmZXJlbmNlZEJ5UGFyYW1ldGVycyA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIENGRW50aXR5W10+O1xuXG4gICAgdGhpcy5wYXJhbWV0ZXJSZWZzLmZvckVhY2gocmVmID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtZXRlck5hbWUgPSByZWYuc291cmNlUGF0aFsyXTsgLy8gJ1Byb3BlcnRpZXMnLCAnUGFyYW1ldGVycycsIFtwYXJhbWV0ZXJOYW1lXVxuICAgICAgaWYoIWNmRW50aXRpZXNSZWZlcmVuY2VkQnlQYXJhbWV0ZXJzW3BhcmFtZXRlck5hbWVdKXtcbiAgICAgICAgY2ZFbnRpdGllc1JlZmVyZW5jZWRCeVBhcmFtZXRlcnNbcGFyYW1ldGVyTmFtZV0gPSBbXTtcbiAgICAgIH1cbiAgICAgIGNmRW50aXRpZXNSZWZlcmVuY2VkQnlQYXJhbWV0ZXJzW3BhcmFtZXRlck5hbWVdLnB1c2gobm9kZXNbcmVmLmxvZ2ljYWxJZF0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgbmVzdGVkTW9kZWwgPSB0aGlzLmlubmVyQ0ZQYXJzZXIuY3JlYXRlTW9kZWwoXG4gICAgICB0aGlzLmNvbXBvbmVudCxcbiAgICAgIHRoaXMuaW5uZXJDRkVudGl0aWVzLFxuICAgICAgY2ZFbnRpdGllc1JlZmVyZW5jZWRCeVBhcmFtZXRlcnMsXG4gICAgKTtcblxuICAgIGNvbnN0IGNyb3NzUmVsYXRpb25zaGlwczogUmVsYXRpb25zaGlwW10gPSAobmVzdGVkTW9kZWwuY29tcG9uZW50c1xuICAgICAgLmZpbHRlcihjID0+IGMgaW5zdGFuY2VvZiBDb21wb25lbnQgJiYgYyAhPT0gdGhpcy5jb21wb25lbnQpIGFzIENvbXBvbmVudFtdKVxuICAgICAgLm1hcCgoYzpDb21wb25lbnQpID0+IHRoaXMuY3JlYXRlRGVwZW5kZW5jeVJlbGF0aW9uc2hpcChjLCAnbmVzdGVkLXN0YWNrLWNvbXBvbmVudCcpKTtcblxuICAgIG1vZGVsLnJlbGF0aW9uc2hpcHMucHVzaCguLi5jcm9zc1JlbGF0aW9uc2hpcHMsIC4uLm5lc3RlZE1vZGVsLnJlbGF0aW9uc2hpcHMpO1xuICAgIG1vZGVsLmNvbXBvbmVudHMucHVzaCguLi5uZXN0ZWRNb2RlbC5jb21wb25lbnRzLmZpbHRlcihjID0+IGMgIT09IHRoaXMuY29tcG9uZW50KSk7XG4gIH1cblxuICBnZXRDb21wb25lbnRJbkF0dHJpYnV0ZVBhdGgoYXR0cmlidXRlUGF0aDpQcm9wZXJ0eVBhdGgpOkNvbXBvbmVudCB7XG4gICAgY29uc3QgaW5uZXJFbnRpdHk6IENGRW50aXR5IHwgdW5kZWZpbmVkID0gKGF0dHJpYnV0ZVBhdGgubGVuZ3RoID49IDIgJiYgYXR0cmlidXRlUGF0aFswXSA9PT0gJ091dHB1dHMnKVxuICAgICAgPyB0aGlzLmlubmVyQ0ZFbnRpdGllcy5maW5kKGVudGl0eSA9PiBlbnRpdHlbYXR0cmlidXRlUGF0aFsxXV0pPy5bYXR0cmlidXRlUGF0aFsxXV1cbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYoaW5uZXJFbnRpdHkgaW5zdGFuY2VvZiBDRk91dHB1dCkgcmV0dXJuIGlubmVyRW50aXR5LmdldENvbXBvbmVudEluQXR0cmlidXRlUGF0aChhdHRyaWJ1dGVQYXRoLnNsaWNlKDIpKTtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnQ7XG4gIH1cblxufSJdfQ==

@@ -43,3 +43,3 @@ "use strict";

createCFEntities(templateRoot, args) {
const entities = this.templates.map(template => node_1.fromEntries(node_1.flatMap(Object.entries(template), ([componentType, definitions]) => Object.entries(definitions)
const entities = this.templates.map(template => (0, node_1.fromEntries)((0, node_1.flatMap)(Object.entries(template), ([componentType, definitions]) => Object.entries(definitions)
.map(([componentName, definition]) => [componentName, cfEntityFactory(componentType, componentName, definition, args !== null && args !== void 0 ? args : {})])

@@ -66,2 +66,2 @@ .filter(e => e[1] !== undefined))));

exports.CFParser = CFParser;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtcGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2YtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUFnRjtBQUNoRiw2Q0FBMEQ7QUFHMUQsdURBQWtEO0FBQ2xELDJDQUF1QztBQUN2QyxpREFBNkM7QUFFN0MsK0NBQTJDO0FBRTNDLE1BQU0sZUFBZSxHQUFHLENBQUMsYUFBcUIsRUFBRSxhQUFxQixFQUFFLFVBQWUsRUFBRSxVQUF3QixFQUFFLEVBQUU7SUFDbEgsUUFBTyxhQUFhLEVBQUM7UUFDbkIsS0FBSyxXQUFXO1lBQ2QsUUFBTyxVQUFVLENBQUMsSUFBSSxFQUFDO2dCQUNyQixLQUFLLDRCQUE0QixDQUFDLENBQUMsT0FBTyxJQUFJLCtCQUFhLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDbkcsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLHdCQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUN2RTtRQUNILEtBQUssWUFBWTtZQUNmLE9BQU8sSUFBSSwwQkFBVyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEUsS0FBSyxTQUFTO1lBQ1osT0FBTyxJQUFJLG9CQUFRLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxPQUFPLENBQUMsQ0FBQyxPQUFPLFNBQVMsQ0FBQztLQUMzQjtBQUNILENBQUMsQ0FBQztBQUVGLE1BQWEsUUFBUTtJQUtuQixZQUFZLElBQVksRUFBRSxHQUFHLFNBQTZCO1FBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O1NBR0s7SUFDRSxLQUFLLENBQUMsSUFBbUI7O1FBQzlCLE1BQU0sWUFBWSxHQUFHLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFlBQVksbUNBQUksSUFBSSxrQkFBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFNUUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7U0FFSztJQUNFLGdCQUFnQixDQUFDLFlBQXVCLEVBQUUsSUFBbUI7UUFDbEUsTUFBTSxRQUFRLEdBQStCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ3pFLGtCQUFXLENBQ1QsY0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQ2pFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO2FBQ3hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FDbkMsQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksYUFBSixJQUFJLGNBQUosSUFBSSxHQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDeEYsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBb0UsQ0FDdEcsQ0FDRixDQUNGLENBQUM7UUFFRixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLCtCQUFzQixDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzVGLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7O1NBR0s7SUFDRSxXQUFXLENBQ2hCLFlBQXNCLEVBQ3RCLFVBQXNDLEVBQ3RDLGtCQUErQztRQUUvQyxNQUFNLFVBQVUsR0FBRyxJQUFJLG1CQUFVLENBQy9CLENBQUMsWUFBWSxDQUFDLEVBQ2QsQ0FBQyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FDM0IsQ0FBQztRQUNGLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRUosT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBaEVELDRCQWdFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluZnJhTW9kZWwsIENvbXBvbmVudCwgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBmbGF0TWFwLCBmcm9tRW50cmllcyB9IGZyb20gJy4uLy4uL3ByaXZhdGUvbm9kZSc7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICcuLi9wYXJzZXInO1xuaW1wb3J0IHsgQ0ZFbnRpdHkgfSBmcm9tICcuL2NmLWVudGl0eSc7XG5pbXBvcnQgeyBDRk5lc3RlZFN0YWNrIH0gZnJvbSAnLi9jZi1uZXN0ZWQtc3RhY2snO1xuaW1wb3J0IHsgQ0ZPdXRwdXQgfSBmcm9tICcuL2NmLW91dHB1dCc7XG5pbXBvcnQgeyBDRlBhcmFtZXRlciB9IGZyb20gJy4vY2YtcGFyYW1ldGVyJztcbmltcG9ydCB7IENGUGFyc2VyQXJncyB9IGZyb20gJy4vY2YtcGFyc2VyLWFyZ3MnO1xuaW1wb3J0IHsgQ0ZSZXNvdXJjZSB9IGZyb20gJy4vY2YtcmVzb3VyY2UnO1xuXG5jb25zdCBjZkVudGl0eUZhY3RvcnkgPSAoY29tcG9uZW50VHlwZTogc3RyaW5nLCBjb21wb25lbnROYW1lOiBzdHJpbmcsIGRlZmluaXRpb246IGFueSwgcGFyc2VyQXJnczogQ0ZQYXJzZXJBcmdzKSA9PiB7XG4gIHN3aXRjaChjb21wb25lbnRUeXBlKXtcbiAgICBjYXNlICdSZXNvdXJjZXMnOlxuICAgICAgc3dpdGNoKGRlZmluaXRpb24uVHlwZSl7XG4gICAgICAgIGNhc2UgJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJzogcmV0dXJuIG5ldyBDRk5lc3RlZFN0YWNrKGNvbXBvbmVudE5hbWUsIGRlZmluaXRpb24sIHBhcnNlckFyZ3MpO1xuICAgICAgICBkZWZhdWx0OiByZXR1cm4gbmV3IENGUmVzb3VyY2UoY29tcG9uZW50TmFtZSwgZGVmaW5pdGlvbiwgcGFyc2VyQXJncyk7XG4gICAgICB9XG4gICAgY2FzZSAnUGFyYW1ldGVycyc6XG4gICAgICByZXR1cm4gbmV3IENGUGFyYW1ldGVyKGNvbXBvbmVudE5hbWUsIGRlZmluaXRpb24sIHBhcnNlckFyZ3MpO1xuICAgIGNhc2UgJ091dHB1dHMnOlxuICAgICAgcmV0dXJuIG5ldyBDRk91dHB1dChjb21wb25lbnROYW1lLCBkZWZpbml0aW9uLCBwYXJzZXJBcmdzKTtcbiAgICBkZWZhdWx0OiByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuXG5leHBvcnQgY2xhc3MgQ0ZQYXJzZXIgaW1wbGVtZW50cyBQYXJzZXIge1xuXG4gIHByaXZhdGUgdGVtcGxhdGVzOiBSZWNvcmQ8YW55LCBhbnk+W107XG4gIHByaXZhdGUgbmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgLi4udGVtcGxhdGVzOiBSZWNvcmQ8YW55LCBhbnk+W10pIHtcbiAgICB0aGlzLnRlbXBsYXRlcyA9IHRlbXBsYXRlcztcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgLyoqXG4gICAgICogUGFyc2VzIHRoZSBjbG91ZGZvcm1hdGlvbiB0ZW1wbGF0ZVxuICAgICAqIEBwYXJhbSBhcmdzIEFkZGl0aW9uYWwgYXJndW1lbnRzIGZvciBwYXJzaW5nIHRoZSB0ZW1wbGF0ZVxuICAgICAqL1xuICBwdWJsaWMgcGFyc2UoYXJncz86IENGUGFyc2VyQXJncyk6IEluZnJhTW9kZWwge1xuICAgIGNvbnN0IHRlbXBsYXRlUm9vdCA9IGFyZ3M/LnRlbXBsYXRlUm9vdCA/PyBuZXcgQ29tcG9uZW50KHRoaXMubmFtZSwgJ3Jvb3QnKTtcblxuICAgIGNvbnN0IGNmRW50aXRpZXMgPSB0aGlzLmNyZWF0ZUNGRW50aXRpZXModGVtcGxhdGVSb290LCBhcmdzKTtcblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vZGVsKHRlbXBsYXRlUm9vdCwgY2ZFbnRpdGllcyk7XG4gIH1cblxuICAvKipcbiAgICAgKiBQYXJzZXMgdGhlIGNsb3VkZm9ybWF0aW9uIHRlbXBsYXRlIG9udG8gQ0ZFbnRpdGllc1xuICAgICAqL1xuICBwdWJsaWMgY3JlYXRlQ0ZFbnRpdGllcyh0ZW1wbGF0ZVJvb3Q6IENvbXBvbmVudCwgYXJncz86IENGUGFyc2VyQXJncyk6UmVjb3JkPHN0cmluZywgQ0ZFbnRpdHk+W10ge1xuICAgIGNvbnN0IGVudGl0aWVzOiBSZWNvcmQ8c3RyaW5nLCBDRkVudGl0eT5bXSA9IHRoaXMudGVtcGxhdGVzLm1hcCh0ZW1wbGF0ZSA9PlxuICAgICAgZnJvbUVudHJpZXMoXG4gICAgICAgIGZsYXRNYXAoT2JqZWN0LmVudHJpZXModGVtcGxhdGUpLCAoW2NvbXBvbmVudFR5cGUsIGRlZmluaXRpb25zXSkgPT5cbiAgICAgICAgICBPYmplY3QuZW50cmllcyhkZWZpbml0aW9ucylcbiAgICAgICAgICAgIC5tYXAoKFtjb21wb25lbnROYW1lLCBkZWZpbml0aW9uXSkgPT5cbiAgICAgICAgICAgICAgW2NvbXBvbmVudE5hbWUsIGNmRW50aXR5RmFjdG9yeShjb21wb25lbnRUeXBlLCBjb21wb25lbnROYW1lLCBkZWZpbml0aW9uLCBhcmdzID8/IHt9KV0pXG4gICAgICAgICAgICAuZmlsdGVyKGUgPT4gZVsxXSAhPT0gdW5kZWZpbmVkKSBhcyBbc3RyaW5nLCBDRk5lc3RlZFN0YWNrIHwgQ0ZSZXNvdXJjZSB8IENGUGFyYW1ldGVyIHwgQ0ZPdXRwdXRdW10sXG4gICAgICAgICksXG4gICAgICApLFxuICAgICk7XG5cbiAgICBlbnRpdGllcy5mb3JFYWNoKCh0ZW1wbGF0ZUVudGl0aWVzKSA9PiBPYmplY3QudmFsdWVzKHRlbXBsYXRlRW50aXRpZXMpLmZvckVhY2goZW50aXR5ID0+IHtcbiAgICAgIGNvbnN0IHJvb3RSZWxhdGlvbnNoaXAgPSBuZXcgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCh0ZW1wbGF0ZVJvb3QsIGVudGl0eS5jb21wb25lbnQsICdyb290Jyk7XG4gICAgICBlbnRpdHkuY29tcG9uZW50LmFkZEluY29taW5nKHJvb3RSZWxhdGlvbnNoaXApO1xuICAgIH0pKTtcblxuICAgIHJldHVybiBlbnRpdGllcztcbiAgfVxuXG4gIC8qKlxuICAgICAqIENyZWF0ZXMgdGhlIGZpbmFsIEluZnJhTW9kZWwgZnJvbSB0aGUgcGFyc2VkIENGRW50aXRpZXNcbiAgICAgKiBAcGFyYW0gZXh0ZXJuYWxQYXJhbWV0ZXJzIC0gYW55IHJlZmVyZW5jZWFibGUgQ0ZFbnRpdGllcyBjb21pbmcgZnJvbSBvdXRzaWRlIG9mIHRoaXMgdGVtcGxhdGUncyBzY29wZVxuICAgICAqL1xuICBwdWJsaWMgY3JlYXRlTW9kZWwoXG4gICAgdGVtcGxhdGVSb290OkNvbXBvbmVudCxcbiAgICBjZkVudGl0aWVzOiBSZWNvcmQ8c3RyaW5nLCBDRkVudGl0eT5bXSxcbiAgICBleHRlcm5hbFBhcmFtZXRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBDRkVudGl0eVtdPixcbiAgKTpJbmZyYU1vZGVsIHtcbiAgICBjb25zdCBpbmZyYU1vZGVsID0gbmV3IEluZnJhTW9kZWwoXG4gICAgICBbdGVtcGxhdGVSb290XSxcbiAgICAgIFsuLi50ZW1wbGF0ZVJvb3Qub3V0Z29pbmddLFxuICAgICk7XG4gICAgY2ZFbnRpdGllcy5mb3JFYWNoKGVudGl0aWVzID0+IE9iamVjdC52YWx1ZXMoZW50aXRpZXMpLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICBub2RlLnBvcHVsYXRlTW9kZWwoaW5mcmFNb2RlbCwgZW50aXRpZXMsIGV4dGVybmFsUGFyYW1ldGVycyk7XG4gICAgfSkpO1xuXG4gICAgcmV0dXJuIGluZnJhTW9kZWw7XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtcGFyc2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2YtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUFnRjtBQUNoRiw2Q0FBMEQ7QUFHMUQsdURBQWtEO0FBQ2xELDJDQUF1QztBQUN2QyxpREFBNkM7QUFFN0MsK0NBQTJDO0FBRTNDLE1BQU0sZUFBZSxHQUFHLENBQUMsYUFBcUIsRUFBRSxhQUFxQixFQUFFLFVBQWUsRUFBRSxVQUF3QixFQUFFLEVBQUU7SUFDbEgsUUFBTyxhQUFhLEVBQUM7UUFDbkIsS0FBSyxXQUFXO1lBQ2QsUUFBTyxVQUFVLENBQUMsSUFBSSxFQUFDO2dCQUNyQixLQUFLLDRCQUE0QixDQUFDLENBQUMsT0FBTyxJQUFJLCtCQUFhLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDbkcsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLHdCQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUN2RTtRQUNILEtBQUssWUFBWTtZQUNmLE9BQU8sSUFBSSwwQkFBVyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEUsS0FBSyxTQUFTO1lBQ1osT0FBTyxJQUFJLG9CQUFRLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxPQUFPLENBQUMsQ0FBQyxPQUFPLFNBQVMsQ0FBQztLQUMzQjtBQUNILENBQUMsQ0FBQztBQUVGLE1BQWEsUUFBUTtJQUtuQixZQUFZLElBQVksRUFBRSxHQUFHLFNBQTZCO1FBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O1NBR0s7SUFDRSxLQUFLLENBQUMsSUFBbUI7O1FBQzlCLE1BQU0sWUFBWSxHQUFHLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFlBQVksbUNBQUksSUFBSSxrQkFBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFNUUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7U0FFSztJQUNFLGdCQUFnQixDQUFDLFlBQXVCLEVBQUUsSUFBbUI7UUFDbEUsTUFBTSxRQUFRLEdBQStCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQ3pFLElBQUEsa0JBQVcsRUFDVCxJQUFBLGNBQU8sRUFBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUNqRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQzthQUN4QixHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLENBQ25DLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxJQUFJLGFBQUosSUFBSSxjQUFKLElBQUksR0FBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3hGLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLENBQW9FLENBQ3RHLENBQ0YsQ0FDRixDQUFDO1FBRUYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSwrQkFBc0IsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM1RixNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFSixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7OztTQUdLO0lBQ0UsV0FBVyxDQUNoQixZQUFzQixFQUN0QixVQUFzQyxFQUN0QyxrQkFBK0M7UUFFL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxtQkFBVSxDQUMvQixDQUFDLFlBQVksQ0FBQyxFQUNkLENBQUMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQzNCLENBQUM7UUFDRixVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVKLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDRjtBQWhFRCw0QkFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmZyYU1vZGVsLCBDb21wb25lbnQsIFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgZmxhdE1hcCwgZnJvbUVudHJpZXMgfSBmcm9tICcuLi8uLi9wcml2YXRlL25vZGUnO1xuaW1wb3J0IHsgUGFyc2VyIH0gZnJvbSAnLi4vcGFyc2VyJztcbmltcG9ydCB7IENGRW50aXR5IH0gZnJvbSAnLi9jZi1lbnRpdHknO1xuaW1wb3J0IHsgQ0ZOZXN0ZWRTdGFjayB9IGZyb20gJy4vY2YtbmVzdGVkLXN0YWNrJztcbmltcG9ydCB7IENGT3V0cHV0IH0gZnJvbSAnLi9jZi1vdXRwdXQnO1xuaW1wb3J0IHsgQ0ZQYXJhbWV0ZXIgfSBmcm9tICcuL2NmLXBhcmFtZXRlcic7XG5pbXBvcnQgeyBDRlBhcnNlckFyZ3MgfSBmcm9tICcuL2NmLXBhcnNlci1hcmdzJztcbmltcG9ydCB7IENGUmVzb3VyY2UgfSBmcm9tICcuL2NmLXJlc291cmNlJztcblxuY29uc3QgY2ZFbnRpdHlGYWN0b3J5ID0gKGNvbXBvbmVudFR5cGU6IHN0cmluZywgY29tcG9uZW50TmFtZTogc3RyaW5nLCBkZWZpbml0aW9uOiBhbnksIHBhcnNlckFyZ3M6IENGUGFyc2VyQXJncykgPT4ge1xuICBzd2l0Y2goY29tcG9uZW50VHlwZSl7XG4gICAgY2FzZSAnUmVzb3VyY2VzJzpcbiAgICAgIHN3aXRjaChkZWZpbml0aW9uLlR5cGUpe1xuICAgICAgICBjYXNlICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjayc6IHJldHVybiBuZXcgQ0ZOZXN0ZWRTdGFjayhjb21wb25lbnROYW1lLCBkZWZpbml0aW9uLCBwYXJzZXJBcmdzKTtcbiAgICAgICAgZGVmYXVsdDogcmV0dXJuIG5ldyBDRlJlc291cmNlKGNvbXBvbmVudE5hbWUsIGRlZmluaXRpb24sIHBhcnNlckFyZ3MpO1xuICAgICAgfVxuICAgIGNhc2UgJ1BhcmFtZXRlcnMnOlxuICAgICAgcmV0dXJuIG5ldyBDRlBhcmFtZXRlcihjb21wb25lbnROYW1lLCBkZWZpbml0aW9uLCBwYXJzZXJBcmdzKTtcbiAgICBjYXNlICdPdXRwdXRzJzpcbiAgICAgIHJldHVybiBuZXcgQ0ZPdXRwdXQoY29tcG9uZW50TmFtZSwgZGVmaW5pdGlvbiwgcGFyc2VyQXJncyk7XG4gICAgZGVmYXVsdDogcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufTtcblxuZXhwb3J0IGNsYXNzIENGUGFyc2VyIGltcGxlbWVudHMgUGFyc2VyIHtcblxuICBwcml2YXRlIHRlbXBsYXRlczogUmVjb3JkPGFueSwgYW55PltdO1xuICBwcml2YXRlIG5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIC4uLnRlbXBsYXRlczogUmVjb3JkPGFueSwgYW55PltdKSB7XG4gICAgdGhpcy50ZW1wbGF0ZXMgPSB0ZW1wbGF0ZXM7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgICAqIFBhcnNlcyB0aGUgY2xvdWRmb3JtYXRpb24gdGVtcGxhdGVcbiAgICAgKiBAcGFyYW0gYXJncyBBZGRpdGlvbmFsIGFyZ3VtZW50cyBmb3IgcGFyc2luZyB0aGUgdGVtcGxhdGVcbiAgICAgKi9cbiAgcHVibGljIHBhcnNlKGFyZ3M/OiBDRlBhcnNlckFyZ3MpOiBJbmZyYU1vZGVsIHtcbiAgICBjb25zdCB0ZW1wbGF0ZVJvb3QgPSBhcmdzPy50ZW1wbGF0ZVJvb3QgPz8gbmV3IENvbXBvbmVudCh0aGlzLm5hbWUsICdyb290Jyk7XG5cbiAgICBjb25zdCBjZkVudGl0aWVzID0gdGhpcy5jcmVhdGVDRkVudGl0aWVzKHRlbXBsYXRlUm9vdCwgYXJncyk7XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVNb2RlbCh0ZW1wbGF0ZVJvb3QsIGNmRW50aXRpZXMpO1xuICB9XG5cbiAgLyoqXG4gICAgICogUGFyc2VzIHRoZSBjbG91ZGZvcm1hdGlvbiB0ZW1wbGF0ZSBvbnRvIENGRW50aXRpZXNcbiAgICAgKi9cbiAgcHVibGljIGNyZWF0ZUNGRW50aXRpZXModGVtcGxhdGVSb290OiBDb21wb25lbnQsIGFyZ3M/OiBDRlBhcnNlckFyZ3MpOlJlY29yZDxzdHJpbmcsIENGRW50aXR5PltdIHtcbiAgICBjb25zdCBlbnRpdGllczogUmVjb3JkPHN0cmluZywgQ0ZFbnRpdHk+W10gPSB0aGlzLnRlbXBsYXRlcy5tYXAodGVtcGxhdGUgPT5cbiAgICAgIGZyb21FbnRyaWVzKFxuICAgICAgICBmbGF0TWFwKE9iamVjdC5lbnRyaWVzKHRlbXBsYXRlKSwgKFtjb21wb25lbnRUeXBlLCBkZWZpbml0aW9uc10pID0+XG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMoZGVmaW5pdGlvbnMpXG4gICAgICAgICAgICAubWFwKChbY29tcG9uZW50TmFtZSwgZGVmaW5pdGlvbl0pID0+XG4gICAgICAgICAgICAgIFtjb21wb25lbnROYW1lLCBjZkVudGl0eUZhY3RvcnkoY29tcG9uZW50VHlwZSwgY29tcG9uZW50TmFtZSwgZGVmaW5pdGlvbiwgYXJncyA/PyB7fSldKVxuICAgICAgICAgICAgLmZpbHRlcihlID0+IGVbMV0gIT09IHVuZGVmaW5lZCkgYXMgW3N0cmluZywgQ0ZOZXN0ZWRTdGFjayB8IENGUmVzb3VyY2UgfCBDRlBhcmFtZXRlciB8IENGT3V0cHV0XVtdLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgZW50aXRpZXMuZm9yRWFjaCgodGVtcGxhdGVFbnRpdGllcykgPT4gT2JqZWN0LnZhbHVlcyh0ZW1wbGF0ZUVudGl0aWVzKS5mb3JFYWNoKGVudGl0eSA9PiB7XG4gICAgICBjb25zdCByb290UmVsYXRpb25zaGlwID0gbmV3IFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAodGVtcGxhdGVSb290LCBlbnRpdHkuY29tcG9uZW50LCAncm9vdCcpO1xuICAgICAgZW50aXR5LmNvbXBvbmVudC5hZGRJbmNvbWluZyhyb290UmVsYXRpb25zaGlwKTtcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gZW50aXRpZXM7XG4gIH1cblxuICAvKipcbiAgICAgKiBDcmVhdGVzIHRoZSBmaW5hbCBJbmZyYU1vZGVsIGZyb20gdGhlIHBhcnNlZCBDRkVudGl0aWVzXG4gICAgICogQHBhcmFtIGV4dGVybmFsUGFyYW1ldGVycyAtIGFueSByZWZlcmVuY2VhYmxlIENGRW50aXRpZXMgY29taW5nIGZyb20gb3V0c2lkZSBvZiB0aGlzIHRlbXBsYXRlJ3Mgc2NvcGVcbiAgICAgKi9cbiAgcHVibGljIGNyZWF0ZU1vZGVsKFxuICAgIHRlbXBsYXRlUm9vdDpDb21wb25lbnQsXG4gICAgY2ZFbnRpdGllczogUmVjb3JkPHN0cmluZywgQ0ZFbnRpdHk+W10sXG4gICAgZXh0ZXJuYWxQYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgQ0ZFbnRpdHlbXT4sXG4gICk6SW5mcmFNb2RlbCB7XG4gICAgY29uc3QgaW5mcmFNb2RlbCA9IG5ldyBJbmZyYU1vZGVsKFxuICAgICAgW3RlbXBsYXRlUm9vdF0sXG4gICAgICBbLi4udGVtcGxhdGVSb290Lm91dGdvaW5nXSxcbiAgICApO1xuICAgIGNmRW50aXRpZXMuZm9yRWFjaChlbnRpdGllcyA9PiBPYmplY3QudmFsdWVzKGVudGl0aWVzKS5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgbm9kZS5wb3B1bGF0ZU1vZGVsKGluZnJhTW9kZWwsIGVudGl0aWVzLCBleHRlcm5hbFBhcmFtZXRlcnMpO1xuICAgIH0pKTtcblxuICAgIHJldHVybiBpbmZyYU1vZGVsO1xuICB9XG59XG4iXX0=

@@ -9,3 +9,3 @@ "use strict";

const cf_ref_1 = require("./cf-ref");
const cfSpec = cfnspec_1.specification();
const cfSpec = (0, cfnspec_1.specification)();
/**Maps a CloudFormation UpdateType ('Mutable', 'Immutable', 'Conditional')

@@ -60,7 +60,7 @@ * to a ComponentUpdateType

}
const nextPropertyPath = schema_1.isListProperty(property) ? propertyPath.slice(2) : propertyPath.slice(1);
const nextPropertyPath = (0, schema_1.isListProperty)(property) ? propertyPath.slice(2) : propertyPath.slice(1);
const itemType = property.ItemType;
if (itemType) {
const propertySpec = cfSpec.PropertyTypes[[this.resourceType, itemType].join('.')];
if (propertySpec && schema_1.isRecordType(propertySpec)) {
if (propertySpec && (0, schema_1.isRecordType)(propertySpec)) {
const nextProperty = propertySpec.Properties[nextPropertyPath[0]];

@@ -94,2 +94,2 @@ if (nextProperty) {

exports.CFResource = CFResource;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZi1yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FJeUI7QUFDekIsOENBQXlEO0FBQ3pELHdEQUEyRTtBQUMzRSwyQ0FBdUM7QUFFdkMscUNBQWlDO0FBRWpDLE1BQU0sTUFBTSxHQUFHLHVCQUFhLEVBQUUsQ0FBQztBQUUvQjs7OztHQUlHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBd0M7SUFDN0QsU0FBUyxFQUFFLDRCQUFtQixDQUFDLFdBQVc7SUFDMUMsT0FBTyxFQUFFLDRCQUFtQixDQUFDLElBQUk7SUFDakMsV0FBVyxFQUFFLDRCQUFtQixDQUFDLG9CQUFvQjtDQUN0RCxDQUFDO0FBRUYsTUFBYSxVQUFXLFNBQVEsb0JBQVE7SUFJdEMsWUFBWSxJQUFZLEVBQUUsVUFBK0IsRUFBRSxJQUFrQjs7UUFDM0UsS0FBSyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFBLE1BQUEsVUFBVSxDQUFDLFNBQVMsMENBQUUsR0FBRyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsa0JBQVMsQ0FBQyxtQ0FBSSxFQUFFLENBQUMsQ0FBQztJQUN2SyxDQUFDO0lBRVMsaUJBQWlCLENBQUMsSUFBWSxFQUFFLFVBQThCO1FBQ3RFLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNwQyxPQUFPLElBQUksa0JBQVMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLEVBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUUs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QUM7O1lBQzdDLE9BQU8sNEJBQW1CLENBQUMsV0FBVyxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQXRGRCxnQ0FzRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFVwZGF0ZVR5cGUsXG4gIGlzRGVmaW5lZCxcbn0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IHNjaGVtYSwgc3BlY2lmaWNhdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2NmbnNwZWMnO1xuaW1wb3J0IHsgaXNMaXN0UHJvcGVydHksIGlzUmVjb3JkVHlwZSB9IGZyb20gJ0Bhd3MtY2RrL2NmbnNwZWMvbGliL3NjaGVtYSc7XG5pbXBvcnQgeyBDRkVudGl0eSB9IGZyb20gJy4vY2YtZW50aXR5JztcbmltcG9ydCB7IENGUGFyc2VyQXJncyB9IGZyb20gJy4vY2YtcGFyc2VyLWFyZ3MnO1xuaW1wb3J0IHsgQ0ZSZWYgfSBmcm9tICcuL2NmLXJlZic7XG5cbmNvbnN0IGNmU3BlYyA9IHNwZWNpZmljYXRpb24oKTtcblxuLyoqTWFwcyBhIENsb3VkRm9ybWF0aW9uIFVwZGF0ZVR5cGUgKCdNdXRhYmxlJywgJ0ltbXV0YWJsZScsICdDb25kaXRpb25hbCcpXG4gKiB0byBhIENvbXBvbmVudFVwZGF0ZVR5cGVcbiAqIE5vdGU6IGlmIHRoZSBwcm9wZXJ0eSBpcyBuZXN0ZWQgaW5zaWRlIGFub3RoZXIgcHJvcGVydHksIHRoaXMgbWFwcGluZyBkb2VzIG5vdFxuICogZGV0ZXJtaW5lIHRoZSBmaW5hbCBDb21wb25lbnRVcGRhdGVUeXBlXG4gKi9cbmNvbnN0IHVwZGF0ZVR5cGVNYXBwaW5nOiBSZWNvcmQ8c3RyaW5nLCBDb21wb25lbnRVcGRhdGVUeXBlPiA9IHtcbiAgSW1tdXRhYmxlOiBDb21wb25lbnRVcGRhdGVUeXBlLlJFUExBQ0VNRU5ULFxuICBNdXRhYmxlOiBDb21wb25lbnRVcGRhdGVUeXBlLk5PTkUsXG4gIENvbmRpdGlvbmFsOiBDb21wb25lbnRVcGRhdGVUeXBlLlBPU1NJQkxFX1JFUExBQ0VNRU5ULFxufTtcblxuZXhwb3J0IGNsYXNzIENGUmVzb3VyY2UgZXh0ZW5kcyBDRkVudGl0eSB7XG5cbiAgcHJpdmF0ZSByZXNvdXJjZVR5cGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIGRlZmluaXRpb246IFJlY29yZDxzdHJpbmcsIGFueT4sIGFyZ3M6IENGUGFyc2VyQXJncyl7XG4gICAgc3VwZXIobmFtZSwgZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgdGhpcy5kZXBlbmRlbmN5UmVmcy5wdXNoKC4uLmRlZmluaXRpb24uRGVwZW5kc09uPy5tYXAoKGxJZDogc3RyaW5nKSA9PiB0eXBlb2YgbElkID09PSAnc3RyaW5nJyA/IG5ldyBDRlJlZihbJ0RlcGVuZHNPbiddLCBsSWQpIDogdW5kZWZpbmVkKS5maWx0ZXIoaXNEZWZpbmVkKSA/PyBbXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2VuZXJhdGVDb21wb25lbnQobmFtZTogc3RyaW5nLCBkZWZpbml0aW9uOlJlY29yZDxzdHJpbmcsIGFueT4pOiBDb21wb25lbnQge1xuICAgIHRoaXMucmVzb3VyY2VUeXBlID0gZGVmaW5pdGlvbi5UeXBlO1xuICAgIHJldHVybiBuZXcgQ29tcG9uZW50KG5hbWUsICdSZXNvdXJjZScsIHtzdWJ0eXBlOiBkZWZpbml0aW9uLlR5cGUsIHByb3BlcnRpZXM6IHRoaXMuY2ZEZWZpbml0aW9uVG9Db21wb25lbnRQcm9wZXJ0eShkZWZpbml0aW9uKX0pO1xuICB9XG5cbiAgLyoqXG4gICAgICogRXh0cmFjdHMgdGhlIFVwZGF0ZVR5cGUgKE11dGFibGUsIEltbXV0YWJsZSwgQ29uZGl0aW9uYWwpIGluIHRoZSBDbG91ZEZvcm1hdGlvblxuICAgICAqIHNwZWMgYW5kIHRyYW5zZm9ybXMgaXQgaW50byBhIENvbXBvbmVudFVwZGF0ZVR5cGUgKFJlY3JlYXRlLCBOb25lLCBldGMpIGZvciBhIGdpdmVuIHByb3BlcnR5IHBhdGhcbiAgICAgKiBAcGFyYW0gcHJvcGVydHlQYXRoIFRoZSBrZXlzIGZvciBmaW5kaW5nIHRoZSBwcm9wZXJ0eSBpbiB0aGUgZGVmaW5pdGlvblxuICAgICAqL1xuICBwcm90ZWN0ZWQgZ2V0VXBkYXRlVHlwZUZvclByb3BlcnR5UGF0aChwcm9wZXJ0eVBhdGg6IHN0cmluZ1tdKTogQ29tcG9uZW50VXBkYXRlVHlwZSB7XG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gdGhpcy5yZXNvdXJjZVR5cGU7XG4gICAgaWYocHJvcGVydHlQYXRoWzBdID09PSAnUHJvcGVydGllcycgJiYgcmVzb3VyY2VUeXBlKSB7XG4gICAgICBjb25zdCByZXNvdXJjZVNwZWMgPSBjZlNwZWMuUmVzb3VyY2VUeXBlc1tyZXNvdXJjZVR5cGVdO1xuICAgICAgaWYoIXJlc291cmNlU3BlYyB8fCAhcmVzb3VyY2VTcGVjLlByb3BlcnRpZXMpXG4gICAgICAgIHJldHVybiBzdXBlci5nZXRVcGRhdGVUeXBlRm9yUHJvcGVydHlQYXRoKHByb3BlcnR5UGF0aCk7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHJlc291cmNlU3BlYy5Qcm9wZXJ0aWVzW3Byb3BlcnR5UGF0aFsxXV07XG4gICAgICBpZihwcm9wZXJ0eSAmJiBwcm9wZXJ0eVBhdGgubGVuZ3RoID49IDIpXG4gICAgICAgIHJldHVybiB0aGlzLmdldFVwZGF0ZVR5cGVGcm9tUHJvcGVydHlTcGVjKHByb3BlcnR5LCBwcm9wZXJ0eVBhdGguc2xpY2UoMSkpO1xuICAgIH1cbiAgICByZXR1cm4gQ29tcG9uZW50VXBkYXRlVHlwZS5OT05FO1xuICB9XG5cbiAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgQ29tcG9uZW50VXBkYXRlVHlwZSBmb3IgYSBwcm9wZXJ0eSBwYXRoLCBiYXNlZCBvbiB0aGUgQ2xvdWRGb3JtYXRpb24gc3BlY2lmaWNhdGlvbiBhbmQgaXRzIFVwZGF0ZVR5cGVcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgdGhlIHNwZWMgb2YgdGhlIGN1cnJlbnQgcHJvcGVydHlcbiAgICAgKiBAcGFyYW0gcHJvcGVydHlQYXRoIHRoZSBwYXRoIGZyb20gdGhlIGN1cnJlbnQgcHJvcGVydHkgdG8gdGhlIGRlc2lyZWQgcHJvcGVydHlcbiAgICAgKiBAcGFyYW0gc2NvcGVVcGRhdGVUeXBlIHRoZSBDb21wb25lbnRVcGRhdGVUeXBlIG9mIHRoZSBjdXJyZW50IHByb3BlcnR5J3MgcGFyZW50XG4gICAgICovXG4gIHByaXZhdGUgZ2V0VXBkYXRlVHlwZUZyb21Qcm9wZXJ0eVNwZWMoXG4gICAgcHJvcGVydHk6IHNjaGVtYS5Qcm9wZXJ0eSxcbiAgICBwcm9wZXJ0eVBhdGg6IHN0cmluZ1tdLFxuICAgIHNjb3BlVXBkYXRlVHlwZT86IENvbXBvbmVudFVwZGF0ZVR5cGUsXG4gICk6IENvbXBvbmVudFVwZGF0ZVR5cGUge1xuXG4gICAgY29uc3QgdXBkYXRlVHlwZSA9IHRoaXMuY2ZVcGRhdGVUeXBlVG9Db21wb25lbnRVcGRhdGVUeXBlKHByb3BlcnR5LlVwZGF0ZVR5cGUgPz8gJ011dGFibGUnLCBzY29wZVVwZGF0ZVR5cGUpO1xuXG4gICAgaWYocHJvcGVydHlQYXRoLmxlbmd0aCA9PT0gMSB8fCB1cGRhdGVUeXBlID09PSBDb21wb25lbnRVcGRhdGVUeXBlLk5PTkUpe1xuICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFByb3BlcnR5UGF0aCA9IGlzTGlzdFByb3BlcnR5KHByb3BlcnR5KSA/IHByb3BlcnR5UGF0aC5zbGljZSgyKSA6IHByb3BlcnR5UGF0aC5zbGljZSgxKTtcbiAgICBjb25zdCBpdGVtVHlwZSA9IChwcm9wZXJ0eSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KS5JdGVtVHlwZTtcblxuICAgIGlmKGl0ZW1UeXBlKXtcbiAgICAgIGNvbnN0IHByb3BlcnR5U3BlYyA9IGNmU3BlYy5Qcm9wZXJ0eVR5cGVzW1t0aGlzLnJlc291cmNlVHlwZSwgaXRlbVR5cGVdLmpvaW4oJy4nKV07XG4gICAgICBpZihwcm9wZXJ0eVNwZWMgJiYgaXNSZWNvcmRUeXBlKHByb3BlcnR5U3BlYykpe1xuICAgICAgICBjb25zdCBuZXh0UHJvcGVydHkgPSBwcm9wZXJ0eVNwZWMuUHJvcGVydGllc1tuZXh0UHJvcGVydHlQYXRoWzBdXTtcbiAgICAgICAgaWYobmV4dFByb3BlcnR5KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VXBkYXRlVHlwZUZyb21Qcm9wZXJ0eVNwZWMobmV4dFByb3BlcnR5LCBuZXh0UHJvcGVydHlQYXRoLCB1cGRhdGVUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gQ29tcG9uZW50VXBkYXRlVHlwZS5OT05FO1xuICB9XG5cbiAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgY29tcG9uZW50VXBkYXRlVHlwZSBvZiBhIHByb3BlcnR5IGJhc2VkIG9uIGl0cyBDbG91ZEZvcm1hdGlvbiBVcGRhdGVUeXBlIGFuZCB0aGUgQ29tcG9uZW50XG4gICAgICogVXBkYXRlVHlwZSBvZiBpdCdzIHNjb3BlICh0aGUgcGFyZW50IENvbXBvbmVudFByb3BlcnR5VmFsdWUpXG4gICAgICogQHBhcmFtIGNmVXBkYXRlVHlwZSB0aGUgQ2xvdWRGb3JtYXRpb24gVXBkYXRlVHlwZSAoJ011dGFibGUnLCAnSW1tdXRhYmxlJywgJ0NvbmRpdGlvbmFsJylcbiAgICAgKiBAcGFyYW0gc2NvcGVVcGRhdGVUeXBlIHRoZSBzY29wZSdzIENvbXBvbmVudFVwZGF0ZVR5cGVcbiAgICAgKi9cbiAgcHJpdmF0ZSBjZlVwZGF0ZVR5cGVUb0NvbXBvbmVudFVwZGF0ZVR5cGUoXG4gICAgY2ZVcGRhdGVUeXBlOiBzdHJpbmcsXG4gICAgc2NvcGVVcGRhdGVUeXBlPzogQ29tcG9uZW50VXBkYXRlVHlwZSxcbiAgKXtcbiAgICBjb25zdCBwcm9wZXJ0eVVwZGF0ZVR5cGUgPSB1cGRhdGVUeXBlTWFwcGluZ1tjZlVwZGF0ZVR5cGVdO1xuXG4gICAgaWYoIXNjb3BlVXBkYXRlVHlwZSkgcmV0dXJuIHByb3BlcnR5VXBkYXRlVHlwZTtcblxuICAgIGlmKHNjb3BlVXBkYXRlVHlwZSA9PT0gQ29tcG9uZW50VXBkYXRlVHlwZS5OT05FIHx8IHByb3BlcnR5VXBkYXRlVHlwZSA9PT0gQ29tcG9uZW50VXBkYXRlVHlwZS5OT05FKVxuICAgICAgcmV0dXJuIENvbXBvbmVudFVwZGF0ZVR5cGUuTk9ORTtcbiAgICBlbHNlIGlmKHNjb3BlVXBkYXRlVHlwZSA9PT0gQ29tcG9uZW50VXBkYXRlVHlwZS5QT1NTSUJMRV9SRVBMQUNFTUVOVFxuICAgICAgfHwgcHJvcGVydHlVcGRhdGVUeXBlID09PSBDb21wb25lbnRVcGRhdGVUeXBlLlBPU1NJQkxFX1JFUExBQ0VNRU5UKVxuICAgICAgcmV0dXJuIENvbXBvbmVudFVwZGF0ZVR5cGUuUE9TU0lCTEVfUkVQTEFDRU1FTlQ7XG4gICAgZWxzZSByZXR1cm4gQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVDtcbiAgfVxufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZi1yZXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FJeUI7QUFDekIsOENBQXlEO0FBQ3pELHdEQUEyRTtBQUMzRSwyQ0FBdUM7QUFFdkMscUNBQWlDO0FBRWpDLE1BQU0sTUFBTSxHQUFHLElBQUEsdUJBQWEsR0FBRSxDQUFDO0FBRS9COzs7O0dBSUc7QUFDSCxNQUFNLGlCQUFpQixHQUF3QztJQUM3RCxTQUFTLEVBQUUsNEJBQW1CLENBQUMsV0FBVztJQUMxQyxPQUFPLEVBQUUsNEJBQW1CLENBQUMsSUFBSTtJQUNqQyxXQUFXLEVBQUUsNEJBQW1CLENBQUMsb0JBQW9CO0NBQ3RELENBQUM7QUFFRixNQUFhLFVBQVcsU0FBUSxvQkFBUTtJQUl0QyxZQUFZLElBQVksRUFBRSxVQUErQixFQUFFLElBQWtCOztRQUMzRSxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQUEsTUFBQSxVQUFVLENBQUMsU0FBUywwQ0FBRSxHQUFHLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxjQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxrQkFBUyxDQUFDLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZLLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsVUFBOEI7UUFDdEUsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxrQkFBUyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUks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LENBQUMsb0JBQW9CLENBQUM7O1lBQzdDLE9BQU8sNEJBQW1CLENBQUMsV0FBVyxDQUFDO0lBQzlDLENBQUM7Q0FDRjtBQXRGRCxnQ0FzRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbXBvbmVudFVwZGF0ZVR5cGUsXG4gIGlzRGVmaW5lZCxcbn0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IHNjaGVtYSwgc3BlY2lmaWNhdGlvbiB9IGZyb20gJ0Bhd3MtY2RrL2NmbnNwZWMnO1xuaW1wb3J0IHsgaXNMaXN0UHJvcGVydHksIGlzUmVjb3JkVHlwZSB9IGZyb20gJ0Bhd3MtY2RrL2NmbnNwZWMvbGliL3NjaGVtYSc7XG5pbXBvcnQgeyBDRkVudGl0eSB9IGZyb20gJy4vY2YtZW50aXR5JztcbmltcG9ydCB7IENGUGFyc2VyQXJncyB9IGZyb20gJy4vY2YtcGFyc2VyLWFyZ3MnO1xuaW1wb3J0IHsgQ0ZSZWYgfSBmcm9tICcuL2NmLXJlZic7XG5cbmNvbnN0IGNmU3BlYyA9IHNwZWNpZmljYXRpb24oKTtcblxuLyoqTWFwcyBhIENsb3VkRm9ybWF0aW9uIFVwZGF0ZVR5cGUgKCdNdXRhYmxlJywgJ0ltbXV0YWJsZScsICdDb25kaXRpb25hbCcpXG4gKiB0byBhIENvbXBvbmVudFVwZGF0ZVR5cGVcbiAqIE5vdGU6IGlmIHRoZSBwcm9wZXJ0eSBpcyBuZXN0ZWQgaW5zaWRlIGFub3RoZXIgcHJvcGVydHksIHRoaXMgbWFwcGluZyBkb2VzIG5vdFxuICogZGV0ZXJtaW5lIHRoZSBmaW5hbCBDb21wb25lbnRVcGRhdGVUeXBlXG4gKi9cbmNvbnN0IHVwZGF0ZVR5cGVNYXBwaW5nOiBSZWNvcmQ8c3RyaW5nLCBDb21wb25lbnRVcGRhdGVUeXBlPiA9IHtcbiAgSW1tdXRhYmxlOiBDb21wb25lbnRVcGRhdGVUeXBlLlJFUExBQ0VNRU5ULFxuICBNdXRhYmxlOiBDb21wb25lbnRVcGRhdGVUeXBlLk5PTkUsXG4gIENvbmRpdGlvbmFsOiBDb21wb25lbnRVcGRhdGVUeXBlLlBPU1NJQkxFX1JFUExBQ0VNRU5ULFxufTtcblxuZXhwb3J0IGNsYXNzIENGUmVzb3VyY2UgZXh0ZW5kcyBDRkVudGl0eSB7XG5cbiAgcHJpdmF0ZSByZXNvdXJjZVR5cGU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIGRlZmluaXRpb246IFJlY29yZDxzdHJpbmcsIGFueT4sIGFyZ3M6IENGUGFyc2VyQXJncyl7XG4gICAgc3VwZXIobmFtZSwgZGVmaW5pdGlvbiwgYXJncyk7XG4gICAgdGhpcy5kZXBlbmRlbmN5UmVmcy5wdXNoKC4uLmRlZmluaXRpb24uRGVwZW5kc09uPy5tYXAoKGxJZDogc3RyaW5nKSA9PiB0eXBlb2YgbElkID09PSAnc3RyaW5nJyA/IG5ldyBDRlJlZihbJ0RlcGVuZHNPbiddLCBsSWQpIDogdW5kZWZpbmVkKS5maWx0ZXIoaXNEZWZpbmVkKSA/PyBbXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2VuZXJhdGVDb21wb25lbnQobmFtZTogc3RyaW5nLCBkZWZpbml0aW9uOlJlY29yZDxzdHJpbmcsIGFueT4pOiBDb21wb25lbnQge1xuICAgIHRoaXMucmVzb3VyY2VUeXBlID0gZGVmaW5pdGlvbi5UeXBlO1xuICAgIHJldHVybiBuZXcgQ29tcG9uZW50KG5hbWUsICdSZXNvdXJjZScsIHtzdWJ0eXBlOiBkZWZpbml0aW9uLlR5cGUsIHByb3BlcnRpZXM6IHRoaXMuY2ZEZWZpbml0aW9uVG9Db21wb25lbnRQcm9wZXJ0eShkZWZpbml0aW9uKX0pO1xuICB9XG5cbiAgLyoqXG4gICAgICogRXh0cmFjdHMgdGhlIFVwZGF0ZVR5cGUgKE11dGFibGUsIEltbXV0YWJsZSwgQ29uZGl0aW9uYWwpIGluIHRoZSBDbG91ZEZvcm1hdGlvblxuICAgICAqIHNwZWMgYW5kIHRyYW5zZm9ybXMgaXQgaW50byBhIENvbXBvbmVudFVwZGF0ZVR5cGUgKFJlY3JlYXRlLCBOb25lLCBldGMpIGZvciBhIGdpdmVuIHByb3BlcnR5IHBhdGhcbiAgICAgKiBAcGFyYW0gcHJvcGVydHlQYXRoIFRoZSBrZXlzIGZvciBmaW5kaW5nIHRoZSBwcm9wZXJ0eSBpbiB0aGUgZGVmaW5pdGlvblxuICAgICAqL1xuICBwcm90ZWN0ZWQgZ2V0VXBkYXRlVHlwZUZvclByb3BlcnR5UGF0aChwcm9wZXJ0eVBhdGg6IHN0cmluZ1tdKTogQ29tcG9uZW50VXBkYXRlVHlwZSB7XG4gICAgY29uc3QgcmVzb3VyY2VUeXBlID0gdGhpcy5yZXNvdXJjZVR5cGU7XG4gICAgaWYocHJvcGVydHlQYXRoWzBdID09PSAnUHJvcGVydGllcycgJiYgcmVzb3VyY2VUeXBlKSB7XG4gICAgICBjb25zdCByZXNvdXJjZVNwZWMgPSBjZlNwZWMuUmVzb3VyY2VUeXBlc1tyZXNvdXJjZVR5cGVdO1xuICAgICAgaWYoIXJlc291cmNlU3BlYyB8fCAhcmVzb3VyY2VTcGVjLlByb3BlcnRpZXMpXG4gICAgICAgIHJldHVybiBzdXBlci5nZXRVcGRhdGVUeXBlRm9yUHJvcGVydHlQYXRoKHByb3BlcnR5UGF0aCk7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHJlc291cmNlU3BlYy5Qcm9wZXJ0aWVzW3Byb3BlcnR5UGF0aFsxXV07XG4gICAgICBpZihwcm9wZXJ0eSAmJiBwcm9wZXJ0eVBhdGgubGVuZ3RoID49IDIpXG4gICAgICAgIHJldHVybiB0aGlzLmdldFVwZGF0ZVR5cGVGcm9tUHJvcGVydHlTcGVjKHByb3BlcnR5LCBwcm9wZXJ0eVBhdGguc2xpY2UoMSkpO1xuICAgIH1cbiAgICByZXR1cm4gQ29tcG9uZW50VXBkYXRlVHlwZS5OT05FO1xuICB9XG5cbiAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyB0aGUgQ29tcG9uZW50VXBkYXRlVHlwZSBmb3IgYSBwcm9wZXJ0eSBwYXRoLCBiYXNlZCBvbiB0aGUgQ2xvdWRGb3JtYXRpb24gc3BlY2lmaWNhdGlvbiBhbmQgaXRzIFVwZGF0ZVR5cGVcbiAgICAgKiBAcGFyYW0gcHJvcGVydHkgdGhlIHNwZWMgb2YgdGhlIGN1cnJlbnQgcHJvcGVydHlcbiAgICAgKiBAcGFyYW0gcHJvcGVydHlQYXRoIHRoZSBwYXRoIGZyb20gdGhlIGN1cnJlbnQgcHJvcGVydHkgdG8gdGhlIGRlc2lyZWQgcHJvcGVydHlcbiAgICAgKiBAcGFyYW0gc2NvcGVVcGRhdGVUeXBlIHRoZSBDb21wb25lbnRVcGRhdGVUeXBlIG9mIHRoZSBjdXJyZW50IHByb3BlcnR5J3MgcGFyZW50XG4gICAgICovXG4gIHByaXZhdGUgZ2V0VXBkYXRlVHlwZUZyb21Qcm9wZXJ0eVNwZWMoXG4gICAgcHJvcGVydHk6IHNjaGVtYS5Qcm9wZXJ0eSxcbiAgICBwcm9wZXJ0eVBhdGg6IHN0cmluZ1tdLFxuICAgIHNjb3BlVXBkYXRlVHlwZT86IENvbXBvbmVudFVwZGF0ZVR5cGUsXG4gICk6IENvbXBvbmVudFVwZGF0ZVR5cGUge1xuXG4gICAgY29uc3QgdXBkYXRlVHlwZSA9IHRoaXMuY2ZVcGRhdGVUeXBlVG9Db21wb25lbnRVcGRhdGVUeXBlKHByb3BlcnR5LlVwZGF0ZVR5cGUgPz8gJ011dGFibGUnLCBzY29wZVVwZGF0ZVR5cGUpO1xuXG4gICAgaWYocHJvcGVydHlQYXRoLmxlbmd0aCA9PT0gMSB8fCB1cGRhdGVUeXBlID09PSBDb21wb25lbnRVcGRhdGVUeXBlLk5PTkUpe1xuICAgICAgcmV0dXJuIHVwZGF0ZVR5cGU7XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFByb3BlcnR5UGF0aCA9IGlzTGlzdFByb3BlcnR5KHByb3BlcnR5KSA/IHByb3BlcnR5UGF0aC5zbGljZSgyKSA6IHByb3BlcnR5UGF0aC5zbGljZSgxKTtcbiAgICBjb25zdCBpdGVtVHlwZSA9IChwcm9wZXJ0eSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KS5JdGVtVHlwZTtcblxuICAgIGlmKGl0ZW1UeXBlKXtcbiAgICAgIGNvbnN0IHByb3BlcnR5U3BlYyA9IGNmU3BlYy5Qcm9wZXJ0eVR5cGVzW1t0aGlzLnJlc291cmNlVHlwZSwgaXRlbVR5cGVdLmpvaW4oJy4nKV07XG4gICAgICBpZihwcm9wZXJ0eVNwZWMgJiYgaXNSZWNvcmRUeXBlKHByb3BlcnR5U3BlYykpe1xuICAgICAgICBjb25zdCBuZXh0UHJvcGVydHkgPSBwcm9wZXJ0eVNwZWMuUHJvcGVydGllc1tuZXh0UHJvcGVydHlQYXRoWzBdXTtcbiAgICAgICAgaWYobmV4dFByb3BlcnR5KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VXBkYXRlVHlwZUZyb21Qcm9wZXJ0eVNwZWMobmV4dFByb3BlcnR5LCBuZXh0UHJvcGVydHlQYXRoLCB1cGRhdGVUeXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gQ29tcG9uZW50VXBkYXRlVHlwZS5OT05FO1xuICB9XG5cbiAgLyoqXG4gICAgICogRGVmaW5lcyB0aGUgY29tcG9uZW50VXBkYXRlVHlwZSBvZiBhIHByb3BlcnR5IGJhc2VkIG9uIGl0cyBDbG91ZEZvcm1hdGlvbiBVcGRhdGVUeXBlIGFuZCB0aGUgQ29tcG9uZW50XG4gICAgICogVXBkYXRlVHlwZSBvZiBpdCdzIHNjb3BlICh0aGUgcGFyZW50IENvbXBvbmVudFByb3BlcnR5VmFsdWUpXG4gICAgICogQHBhcmFtIGNmVXBkYXRlVHlwZSB0aGUgQ2xvdWRGb3JtYXRpb24gVXBkYXRlVHlwZSAoJ011dGFibGUnLCAnSW1tdXRhYmxlJywgJ0NvbmRpdGlvbmFsJylcbiAgICAgKiBAcGFyYW0gc2NvcGVVcGRhdGVUeXBlIHRoZSBzY29wZSdzIENvbXBvbmVudFVwZGF0ZVR5cGVcbiAgICAgKi9cbiAgcHJpdmF0ZSBjZlVwZGF0ZVR5cGVUb0NvbXBvbmVudFVwZGF0ZVR5cGUoXG4gICAgY2ZVcGRhdGVUeXBlOiBzdHJpbmcsXG4gICAgc2NvcGVVcGRhdGVUeXBlPzogQ29tcG9uZW50VXBkYXRlVHlwZSxcbiAgKXtcbiAgICBjb25zdCBwcm9wZXJ0eVVwZGF0ZVR5cGUgPSB1cGRhdGVUeXBlTWFwcGluZ1tjZlVwZGF0ZVR5cGVdO1xuXG4gICAgaWYoIXNjb3BlVXBkYXRlVHlwZSkgcmV0dXJuIHByb3BlcnR5VXBkYXRlVHlwZTtcblxuICAgIGlmKHNjb3BlVXBkYXRlVHlwZSA9PT0gQ29tcG9uZW50VXBkYXRlVHlwZS5OT05FIHx8IHByb3BlcnR5VXBkYXRlVHlwZSA9PT0gQ29tcG9uZW50VXBkYXRlVHlwZS5OT05FKVxuICAgICAgcmV0dXJuIENvbXBvbmVudFVwZGF0ZVR5cGUuTk9ORTtcbiAgICBlbHNlIGlmKHNjb3BlVXBkYXRlVHlwZSA9PT0gQ29tcG9uZW50VXBkYXRlVHlwZS5QT1NTSUJMRV9SRVBMQUNFTUVOVFxuICAgICAgfHwgcHJvcGVydHlVcGRhdGVUeXBlID09PSBDb21wb25lbnRVcGRhdGVUeXBlLlBPU1NJQkxFX1JFUExBQ0VNRU5UKVxuICAgICAgcmV0dXJuIENvbXBvbmVudFVwZGF0ZVR5cGUuUE9TU0lCTEVfUkVQTEFDRU1FTlQ7XG4gICAgZWxzZSByZXR1cm4gQ29tcG9uZW50VXBkYXRlVHlwZS5SRVBMQUNFTUVOVDtcbiAgfVxufSJdfQ==

@@ -9,6 +9,6 @@ "use strict";

function applyRules(diff, cRules) {
const rules = rule_parser_1.parseRules(cRules);
const idToOpMap = new Map(node_1.flatMap(diff.componentOperations, op => op instanceof models_1.PropertyComponentOperation ? op.explode() : [op]).map(op => [op.nodeData._id, op]));
const rules = (0, rule_parser_1.parseRules)(cRules);
const idToOpMap = new Map((0, node_1.flatMap)(diff.componentOperations, op => op instanceof models_1.PropertyComponentOperation ? op.explode() : [op]).map(op => [op.nodeData._id, op]));
const verticesMap = new rule_processor_1.RuleProcessor(diff.generateOutgoingGraph()).processRules(rules);
return new Map(node_1.flatMap([...verticesMap], ([vertex, effect]) => {
return new Map((0, node_1.flatMap)([...verticesMap], ([vertex, effect]) => {
const op = idToOpMap.get(vertex._id);

@@ -23,2 +23,2 @@ if (op === undefined)

exports.applyRules = applyRules;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcHBseS1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBNkc7QUFFN0csMENBQTBDO0FBQzFDLCtDQUEyQztBQUMzQyxxREFBaUQ7QUFFakQsU0FBZ0IsVUFBVSxDQUFDLElBQW9CLEVBQUUsTUFBa0I7SUFFakUsTUFBTSxLQUFLLEdBQUcsd0JBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFPLENBQy9CLElBQUksQ0FBQyxtQkFBbUIsRUFDeEIsRUFBRSxDQUFDLEVBQUUsQ0FBQSxFQUFFLFlBQVksbUNBQTBCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQ3JHLENBQUMsQ0FBQztJQUVILE1BQU0sV0FBVyxHQUFHLElBQUksOEJBQWEsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RixPQUFPLElBQUksR0FBRyxDQUFDLGNBQU8sQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBc0MsRUFBRTtRQUNoRyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFHLEVBQUUsS0FBSyxTQUFTO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDL0IsaUhBQWlIO1FBQ2pILE1BQU0sV0FBVyxHQUFHLEVBQUUsWUFBWSxtQ0FBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBbUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFqQkQsZ0NBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50T3BlcmF0aW9uLCBJbmZyYU1vZGVsRGlmZiwgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sIFJ1bGVFZmZlY3QgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgQ1VzZXJSdWxlcyB9IGZyb20gJ0Bhd3MtYzJhL3J1bGVzJztcbmltcG9ydCB7IGZsYXRNYXAgfSBmcm9tICcuLi9wcml2YXRlL25vZGUnO1xuaW1wb3J0IHsgcGFyc2VSdWxlcyB9IGZyb20gJy4vcnVsZS1wYXJzZXInO1xuaW1wb3J0IHsgUnVsZVByb2Nlc3NvciB9IGZyb20gJy4vcnVsZS1wcm9jZXNzb3InO1xuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlSdWxlcyhkaWZmOiBJbmZyYU1vZGVsRGlmZiwgY1J1bGVzOiBDVXNlclJ1bGVzKTogTWFwPENvbXBvbmVudE9wZXJhdGlvbiwgUnVsZUVmZmVjdD4ge1xuXG4gIGNvbnN0IHJ1bGVzID0gcGFyc2VSdWxlcyhjUnVsZXMpO1xuICBjb25zdCBpZFRvT3BNYXAgPSBuZXcgTWFwKGZsYXRNYXAoXG4gICAgZGlmZi5jb21wb25lbnRPcGVyYXRpb25zLFxuICAgIG9wID0+b3AgaW5zdGFuY2VvZiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiA/IG9wLmV4cGxvZGUoKSA6IFtvcF0pLm1hcChvcCA9PiBbb3Aubm9kZURhdGEuX2lkLCBvcF0sXG4gICkpO1xuXG4gIGNvbnN0IHZlcnRpY2VzTWFwID0gbmV3IFJ1bGVQcm9jZXNzb3IoZGlmZi5nZW5lcmF0ZU91dGdvaW5nR3JhcGgoKSkucHJvY2Vzc1J1bGVzKHJ1bGVzKTtcblxuICByZXR1cm4gbmV3IE1hcChmbGF0TWFwKFsuLi52ZXJ0aWNlc01hcF0sIChbdmVydGV4LCBlZmZlY3RdKTogW0NvbXBvbmVudE9wZXJhdGlvbiwgUnVsZUVmZmVjdF1bXSA9PiB7XG4gICAgY29uc3Qgb3AgPSBpZFRvT3BNYXAuZ2V0KHZlcnRleC5faWQpO1xuICAgIGlmKG9wID09PSB1bmRlZmluZWQpIHJldHVybiBbXTtcbiAgICAvLyBleHBsb2RpbmcgcHJvcGVydHkgb3BlcmF0aW9ucyAtIGVmZmVjdHMgb24gcHJvcGVydHkgb3BlcmF0aW9ucyBhbHNvIGFmZmVjdHMgdGhlIG9wZXJhdGlvbnMgb2YgaW5uZXIgcHJvcGVydGllc1xuICAgIGNvbnN0IGV4cGxvZGVkT3BzID0gb3AgaW5zdGFuY2VvZiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiA/IG9wLmV4cGxvZGUoKSA6IFtvcF07XG4gICAgcmV0dXJuIGV4cGxvZGVkT3BzLm1hcCgoZW9wKTpbQ29tcG9uZW50T3BlcmF0aW9uLCBSdWxlRWZmZWN0XSA9PiBbZW9wLCBlZmZlY3RdKTtcbiAgfSkpO1xufSJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcHBseS1ydWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBNkc7QUFFN0csMENBQTBDO0FBQzFDLCtDQUEyQztBQUMzQyxxREFBaUQ7QUFFakQsU0FBZ0IsVUFBVSxDQUFDLElBQW9CLEVBQUUsTUFBa0I7SUFFakUsTUFBTSxLQUFLLEdBQUcsSUFBQSx3QkFBVSxFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUEsY0FBTyxFQUMvQixJQUFJLENBQUMsbUJBQW1CLEVBQ3hCLEVBQUUsQ0FBQyxFQUFFLENBQUEsRUFBRSxZQUFZLG1DQUEwQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUNyRyxDQUFDLENBQUM7SUFFSCxNQUFNLFdBQVcsR0FBRyxJQUFJLDhCQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFeEYsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFBLGNBQU8sRUFBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBc0MsRUFBRTtRQUNoRyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFHLEVBQUUsS0FBSyxTQUFTO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDL0IsaUhBQWlIO1FBQ2pILE1BQU0sV0FBVyxHQUFHLEVBQUUsWUFBWSxtQ0FBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBbUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDbEYsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFqQkQsZ0NBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50T3BlcmF0aW9uLCBJbmZyYU1vZGVsRGlmZiwgUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sIFJ1bGVFZmZlY3QgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgQ1VzZXJSdWxlcyB9IGZyb20gJ0Bhd3MtYzJhL3J1bGVzJztcbmltcG9ydCB7IGZsYXRNYXAgfSBmcm9tICcuLi9wcml2YXRlL25vZGUnO1xuaW1wb3J0IHsgcGFyc2VSdWxlcyB9IGZyb20gJy4vcnVsZS1wYXJzZXInO1xuaW1wb3J0IHsgUnVsZVByb2Nlc3NvciB9IGZyb20gJy4vcnVsZS1wcm9jZXNzb3InO1xuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlSdWxlcyhkaWZmOiBJbmZyYU1vZGVsRGlmZiwgY1J1bGVzOiBDVXNlclJ1bGVzKTogTWFwPENvbXBvbmVudE9wZXJhdGlvbiwgUnVsZUVmZmVjdD4ge1xuXG4gIGNvbnN0IHJ1bGVzID0gcGFyc2VSdWxlcyhjUnVsZXMpO1xuICBjb25zdCBpZFRvT3BNYXAgPSBuZXcgTWFwKGZsYXRNYXAoXG4gICAgZGlmZi5jb21wb25lbnRPcGVyYXRpb25zLFxuICAgIG9wID0+b3AgaW5zdGFuY2VvZiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiA/IG9wLmV4cGxvZGUoKSA6IFtvcF0pLm1hcChvcCA9PiBbb3Aubm9kZURhdGEuX2lkLCBvcF0sXG4gICkpO1xuXG4gIGNvbnN0IHZlcnRpY2VzTWFwID0gbmV3IFJ1bGVQcm9jZXNzb3IoZGlmZi5nZW5lcmF0ZU91dGdvaW5nR3JhcGgoKSkucHJvY2Vzc1J1bGVzKHJ1bGVzKTtcblxuICByZXR1cm4gbmV3IE1hcChmbGF0TWFwKFsuLi52ZXJ0aWNlc01hcF0sIChbdmVydGV4LCBlZmZlY3RdKTogW0NvbXBvbmVudE9wZXJhdGlvbiwgUnVsZUVmZmVjdF1bXSA9PiB7XG4gICAgY29uc3Qgb3AgPSBpZFRvT3BNYXAuZ2V0KHZlcnRleC5faWQpO1xuICAgIGlmKG9wID09PSB1bmRlZmluZWQpIHJldHVybiBbXTtcbiAgICAvLyBleHBsb2RpbmcgcHJvcGVydHkgb3BlcmF0aW9ucyAtIGVmZmVjdHMgb24gcHJvcGVydHkgb3BlcmF0aW9ucyBhbHNvIGFmZmVjdHMgdGhlIG9wZXJhdGlvbnMgb2YgaW5uZXIgcHJvcGVydGllc1xuICAgIGNvbnN0IGV4cGxvZGVkT3BzID0gb3AgaW5zdGFuY2VvZiBQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbiA/IG9wLmV4cGxvZGUoKSA6IFtvcF07XG4gICAgcmV0dXJuIGV4cGxvZGVkT3BzLm1hcCgoZW9wKTpbQ29tcG9uZW50T3BlcmF0aW9uLCBSdWxlRWZmZWN0XSA9PiBbZW9wLCBlZmZlY3RdKTtcbiAgfSkpO1xufSJdfQ==

@@ -12,3 +12,3 @@ "use strict";

const appliesToHandler = (g, t1, t2) => {
if (!rule_processor_1.isScopeVertex(t1) || !rule_processor_1.isScopeVertex(t2))
if (!(0, rule_processor_1.isScopeVertex)(t1) || !(0, rule_processor_1.isScopeVertex)(t2))
return false;

@@ -23,2 +23,2 @@ return g

exports.appliesToHandler = appliesToHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGllcy10by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwcGxpZXMtdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esc0RBQThFO0FBRTlFOzs7OztHQUtHO0FBQ0ksTUFBTSxnQkFBZ0IsR0FBb0IsQ0FDL0MsQ0FBZ0IsRUFDaEIsRUFBYSxFQUNiLEVBQWEsRUFDSixFQUFFO0lBQ1gsSUFBRyxDQUFDLDhCQUFhLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyw4QkFBYSxDQUFDLEVBQUUsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRTFELE9BQU8sQ0FBQztTQUNMLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUNoQixLQUFLLENBQUMsV0FBVyxDQUFDO1NBQ2xCLEdBQUcsRUFBRTtTQUNMLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDcEMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNoQixDQUFDLENBQUM7QUFiVyxRQUFBLGdCQUFnQixvQkFhM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmbiBmcm9tICdmaWZpbmV0JztcbmltcG9ydCB7IGlzU2NvcGVWZXJ0ZXgsIE9wZXJhdG9ySGFuZGxlciwgU2NvcGVOb2RlIH0gZnJvbSAnLi4vcnVsZS1wcm9jZXNzb3InO1xuXG4vKipcbiAqIEVuc3VyZXMgdmVydGV4IHQxIGhhcyBlZGdlIGFwcGxpZXNUbyB0byB0MiBpbiBncmFwaCBnXG4gKiBAcGFyYW0gZyB0aGUgR3JhcGhcbiAqIEBwYXJhbSB0MSB2ZXJ0ZXggMVxuICogQHBhcmFtIHQyIHZlcnRleCAyXG4gKi9cbmV4cG9ydCBjb25zdCBhcHBsaWVzVG9IYW5kbGVyOiBPcGVyYXRvckhhbmRsZXIgPSA8ViwgRT4oXG4gIGc6IGZuLkdyYXBoPFYsRT4sXG4gIHQxOiBTY29wZU5vZGUsXG4gIHQyOiBTY29wZU5vZGUsXG4pOiBib29sZWFuID0+IHtcbiAgaWYoIWlzU2NvcGVWZXJ0ZXgodDEpIHx8ICFpc1Njb3BlVmVydGV4KHQyKSkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBnXG4gICAgLnYodDIudmVydGV4Ll9pZClcbiAgICAuaW5BbnkoJ2FwcGxpZXNUbycpXG4gICAgLnJ1bigpXG4gICAgLmZpbHRlcih2ID0+IHYuX2lkID09PSB0MS52ZXJ0ZXguX2lkKVxuICAgIC5sZW5ndGggPiAwO1xufTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGllcy10by5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwcGxpZXMtdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esc0RBQThFO0FBRTlFOzs7OztHQUtHO0FBQ0ksTUFBTSxnQkFBZ0IsR0FBb0IsQ0FDL0MsQ0FBZ0IsRUFDaEIsRUFBYSxFQUNiLEVBQWEsRUFDSixFQUFFO0lBQ1gsSUFBRyxDQUFDLElBQUEsOEJBQWEsRUFBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUEsOEJBQWEsRUFBQyxFQUFFLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUUxRCxPQUFPLENBQUM7U0FDTCxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDaEIsS0FBSyxDQUFDLFdBQVcsQ0FBQztTQUNsQixHQUFHLEVBQUU7U0FDTCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ3BDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBYlcsUUFBQSxnQkFBZ0Isb0JBYTNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZm4gZnJvbSAnZmlmaW5ldCc7XG5pbXBvcnQgeyBpc1Njb3BlVmVydGV4LCBPcGVyYXRvckhhbmRsZXIsIFNjb3BlTm9kZSB9IGZyb20gJy4uL3J1bGUtcHJvY2Vzc29yJztcblxuLyoqXG4gKiBFbnN1cmVzIHZlcnRleCB0MSBoYXMgZWRnZSBhcHBsaWVzVG8gdG8gdDIgaW4gZ3JhcGggZ1xuICogQHBhcmFtIGcgdGhlIEdyYXBoXG4gKiBAcGFyYW0gdDEgdmVydGV4IDFcbiAqIEBwYXJhbSB0MiB2ZXJ0ZXggMlxuICovXG5leHBvcnQgY29uc3QgYXBwbGllc1RvSGFuZGxlcjogT3BlcmF0b3JIYW5kbGVyID0gPFYsIEU+KFxuICBnOiBmbi5HcmFwaDxWLEU+LFxuICB0MTogU2NvcGVOb2RlLFxuICB0MjogU2NvcGVOb2RlLFxuKTogYm9vbGVhbiA9PiB7XG4gIGlmKCFpc1Njb3BlVmVydGV4KHQxKSB8fCAhaXNTY29wZVZlcnRleCh0MikpIHJldHVybiBmYWxzZTtcblxuICByZXR1cm4gZ1xuICAgIC52KHQyLnZlcnRleC5faWQpXG4gICAgLmluQW55KCdhcHBsaWVzVG8nKVxuICAgIC5ydW4oKVxuICAgIC5maWx0ZXIodiA9PiB2Ll9pZCA9PT0gdDEudmVydGV4Ll9pZClcbiAgICAubGVuZ3RoID4gMDtcbn07Il19

@@ -13,3 +13,3 @@ "use strict";

const containsHandler = (g, t1, t2) => {
if (!rule_processor_1.isScopeVertex(t1) || !rule_processor_1.isScopeVertex(t2))
if (!(0, rule_processor_1.isScopeVertex)(t1) || !(0, rule_processor_1.isScopeVertex)(t2))
return false;

@@ -36,5 +36,5 @@ return g

const isContainedInHandler = (g, t1, t2) => {
return exports.containsHandler(g, t2, t1);
return (0, exports.containsHandler)(g, t2, t1);
};
exports.isContainedInHandler = isContainedInHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb250YWlucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBcUU7QUFFckUsc0RBQThFO0FBRTlFOzs7OztHQUtHO0FBQ0ksTUFBTSxlQUFlLEdBQW9CLENBQzlDLENBQWdCLEVBQ2hCLEVBQWEsRUFDYixFQUFhLEVBQ0osRUFBRTtJQUNYLElBQUcsQ0FBQyw4QkFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsOEJBQWEsQ0FBQyxFQUFFLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUUxRCxPQUFPLENBQUM7U0FDTCxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDaEIsS0FBSyxDQUFDLFFBQVEsQ0FBQztTQUNmLE1BQU0sQ0FBQztRQUNOLFVBQVUsRUFBRSx5QkFBZ0IsQ0FBQyxZQUFZO1FBQ3pDLGdCQUFnQixFQUFFLHlCQUFnQixDQUFDLFVBQVU7S0FDZCxDQUFDO1NBQ2pDLE1BQU0sQ0FBQyxRQUFRLENBQUM7U0FDaEIsR0FBRyxFQUFFO1NBQ0wsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztTQUNwQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQWxCVyxRQUFBLGVBQWUsbUJBa0IxQjtBQUVGOzs7OztHQUtHO0FBQ0ksTUFBTSxvQkFBb0IsR0FBb0IsQ0FDbkQsQ0FBZ0IsRUFDaEIsRUFBYSxFQUNiLEVBQWEsRUFDSixFQUFFO0lBQ1gsT0FBTyx1QkFBZSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBTlcsUUFBQSxvQkFBb0Isd0JBTS9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxFbnRpdHlUeXBlcywgUmVsYXRpb25zaGlwVHlwZSB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgKiBhcyBmbiBmcm9tICdmaWZpbmV0JztcbmltcG9ydCB7IGlzU2NvcGVWZXJ0ZXgsIE9wZXJhdG9ySGFuZGxlciwgU2NvcGVOb2RlIH0gZnJvbSAnLi4vcnVsZS1wcm9jZXNzb3InO1xuXG4vKipcbiAqIEVuc3VyZXMgdmVydGV4IHQxIGhhcyBlZGdlICdzb3VyY2UnIHRvIGludGVybWVkaWFyeSBzdHJ1Y3R1cmFsIHJlbGF0aW9uc2hpcCB2ZXJ0ZXggd2l0aCwgd2hpY2ggaGFzIGVkZ2UgJ3RhcmdldCcgdG8gdDIgaW4gZ3JhcGggZ1xuICogQHBhcmFtIGcgdGhlIEdyYXBoXG4gKiBAcGFyYW0gdDEgdmVydGV4IDFcbiAqIEBwYXJhbSB0MiB2ZXJ0ZXggMlxuICovXG5leHBvcnQgY29uc3QgY29udGFpbnNIYW5kbGVyOiBPcGVyYXRvckhhbmRsZXIgPSA8ViwgRT4oXG4gIGc6IGZuLkdyYXBoPFYsRT4sXG4gIHQxOiBTY29wZU5vZGUsXG4gIHQyOiBTY29wZU5vZGUsXG4pOiBib29sZWFuID0+IHtcbiAgaWYoIWlzU2NvcGVWZXJ0ZXgodDEpIHx8ICFpc1Njb3BlVmVydGV4KHQyKSkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBnXG4gICAgLnYodDEudmVydGV4Ll9pZClcbiAgICAuaW5BbnkoJ3NvdXJjZScpXG4gICAgLmZpbHRlcih7XG4gICAgICBlbnRpdHlUeXBlOiBNb2RlbEVudGl0eVR5cGVzLnJlbGF0aW9uc2hpcCxcbiAgICAgIHJlbGF0aW9uc2hpcFR5cGU6IFJlbGF0aW9uc2hpcFR5cGUuU3RydWN0dXJhbCxcbiAgICB9IGFzIHVua25vd24gYXMgZm4uVmVydGV4UHJvcHM8Vj4pXG4gICAgLm91dEFueSgndGFyZ2V0JylcbiAgICAucnVuKClcbiAgICAuZmlsdGVyKHYgPT4gdi5faWQgPT09IHQyLnZlcnRleC5faWQpXG4gICAgLmxlbmd0aCA+IDA7XG59O1xuXG4vKipcbiAqIEVuc3VyZXMgdmVydGV4IHQyIGhhcyBlZGdlICdzb3VyY2UnIHRvIGludGVybWVkaWFyeSBzdHJ1Y3R1cmFsIHJlbGF0aW9uc2hpcCB2ZXJ0ZXgsIHdoaWNoIGhhcyBlZGdlICd0YXJnZXQnIHRvIHQxIGluIGdyYXBoIGdcbiAqIEBwYXJhbSBnIHRoZSBHcmFwaFxuICogQHBhcmFtIHQxIHZlcnRleCAxXG4gKiBAcGFyYW0gdDIgdmVydGV4IDJcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQ29udGFpbmVkSW5IYW5kbGVyOiBPcGVyYXRvckhhbmRsZXIgPSA8ViwgRT4oXG4gIGc6IGZuLkdyYXBoPFYsRT4sXG4gIHQxOiBTY29wZU5vZGUsXG4gIHQyOiBTY29wZU5vZGUsXG4pOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGNvbnRhaW5zSGFuZGxlcihnLCB0MiwgdDEpO1xufTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb250YWlucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBcUU7QUFFckUsc0RBQThFO0FBRTlFOzs7OztHQUtHO0FBQ0ksTUFBTSxlQUFlLEdBQW9CLENBQzlDLENBQWdCLEVBQ2hCLEVBQWEsRUFDYixFQUFhLEVBQ0osRUFBRTtJQUNYLElBQUcsQ0FBQyxJQUFBLDhCQUFhLEVBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLDhCQUFhLEVBQUMsRUFBRSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFMUQsT0FBTyxDQUFDO1NBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQUM7U0FDZixNQUFNLENBQUM7UUFDTixVQUFVLEVBQUUseUJBQWdCLENBQUMsWUFBWTtRQUN6QyxnQkFBZ0IsRUFBRSx5QkFBZ0IsQ0FBQyxVQUFVO0tBQ2QsQ0FBQztTQUNqQyxNQUFNLENBQUMsUUFBUSxDQUFDO1NBQ2hCLEdBQUcsRUFBRTtTQUNMLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDcEMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNoQixDQUFDLENBQUM7QUFsQlcsUUFBQSxlQUFlLG1CQWtCMUI7QUFFRjs7Ozs7R0FLRztBQUNJLE1BQU0sb0JBQW9CLEdBQW9CLENBQ25ELENBQWdCLEVBQ2hCLEVBQWEsRUFDYixFQUFhLEVBQ0osRUFBRTtJQUNYLE9BQU8sSUFBQSx1QkFBZSxFQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBTlcsUUFBQSxvQkFBb0Isd0JBTS9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxFbnRpdHlUeXBlcywgUmVsYXRpb25zaGlwVHlwZSB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgKiBhcyBmbiBmcm9tICdmaWZpbmV0JztcbmltcG9ydCB7IGlzU2NvcGVWZXJ0ZXgsIE9wZXJhdG9ySGFuZGxlciwgU2NvcGVOb2RlIH0gZnJvbSAnLi4vcnVsZS1wcm9jZXNzb3InO1xuXG4vKipcbiAqIEVuc3VyZXMgdmVydGV4IHQxIGhhcyBlZGdlICdzb3VyY2UnIHRvIGludGVybWVkaWFyeSBzdHJ1Y3R1cmFsIHJlbGF0aW9uc2hpcCB2ZXJ0ZXggd2l0aCwgd2hpY2ggaGFzIGVkZ2UgJ3RhcmdldCcgdG8gdDIgaW4gZ3JhcGggZ1xuICogQHBhcmFtIGcgdGhlIEdyYXBoXG4gKiBAcGFyYW0gdDEgdmVydGV4IDFcbiAqIEBwYXJhbSB0MiB2ZXJ0ZXggMlxuICovXG5leHBvcnQgY29uc3QgY29udGFpbnNIYW5kbGVyOiBPcGVyYXRvckhhbmRsZXIgPSA8ViwgRT4oXG4gIGc6IGZuLkdyYXBoPFYsRT4sXG4gIHQxOiBTY29wZU5vZGUsXG4gIHQyOiBTY29wZU5vZGUsXG4pOiBib29sZWFuID0+IHtcbiAgaWYoIWlzU2NvcGVWZXJ0ZXgodDEpIHx8ICFpc1Njb3BlVmVydGV4KHQyKSkgcmV0dXJuIGZhbHNlO1xuXG4gIHJldHVybiBnXG4gICAgLnYodDEudmVydGV4Ll9pZClcbiAgICAuaW5BbnkoJ3NvdXJjZScpXG4gICAgLmZpbHRlcih7XG4gICAgICBlbnRpdHlUeXBlOiBNb2RlbEVudGl0eVR5cGVzLnJlbGF0aW9uc2hpcCxcbiAgICAgIHJlbGF0aW9uc2hpcFR5cGU6IFJlbGF0aW9uc2hpcFR5cGUuU3RydWN0dXJhbCxcbiAgICB9IGFzIHVua25vd24gYXMgZm4uVmVydGV4UHJvcHM8Vj4pXG4gICAgLm91dEFueSgndGFyZ2V0JylcbiAgICAucnVuKClcbiAgICAuZmlsdGVyKHYgPT4gdi5faWQgPT09IHQyLnZlcnRleC5faWQpXG4gICAgLmxlbmd0aCA+IDA7XG59O1xuXG4vKipcbiAqIEVuc3VyZXMgdmVydGV4IHQyIGhhcyBlZGdlICdzb3VyY2UnIHRvIGludGVybWVkaWFyeSBzdHJ1Y3R1cmFsIHJlbGF0aW9uc2hpcCB2ZXJ0ZXgsIHdoaWNoIGhhcyBlZGdlICd0YXJnZXQnIHRvIHQxIGluIGdyYXBoIGdcbiAqIEBwYXJhbSBnIHRoZSBHcmFwaFxuICogQHBhcmFtIHQxIHZlcnRleCAxXG4gKiBAcGFyYW0gdDIgdmVydGV4IDJcbiAqL1xuZXhwb3J0IGNvbnN0IGlzQ29udGFpbmVkSW5IYW5kbGVyOiBPcGVyYXRvckhhbmRsZXIgPSA8ViwgRT4oXG4gIGc6IGZuLkdyYXBoPFYsRT4sXG4gIHQxOiBTY29wZU5vZGUsXG4gIHQyOiBTY29wZU5vZGUsXG4pOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIGNvbnRhaW5zSGFuZGxlcihnLCB0MiwgdDEpO1xufTsiXX0=

@@ -19,8 +19,8 @@ "use strict";

// of a vertex, we treat the value as a wildcard.
if (!rule_processor_1.isScopeVertex(t1) && t1.value === '*')
if (!(0, rule_processor_1.isScopeVertex)(t1) && t1.value === '*')
return true;
if (!rule_processor_1.isScopeVertex(t2) && t2.value === '*')
if (!(0, rule_processor_1.isScopeVertex)(t2) && t2.value === '*')
return true;
const [val1, val2] = [t1, t2].map(t => {
if (rule_processor_1.isScopeVertex(t)) {
if ((0, rule_processor_1.isScopeVertex)(t)) {
return extractValueFromVertex(t.vertex);

@@ -35,2 +35,2 @@ }

exports.equalsHandler = equalsHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXF1YWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUE4RTtBQUU5RTs7Ozs7R0FLRztBQUNJLE1BQU0sYUFBYSxHQUFvQixDQUM1QyxDQUFnQixFQUNoQixFQUFhLEVBQ2IsRUFBYSxFQUNKLEVBQUU7SUFFWCxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBa0IsRUFBRSxFQUFFO1FBQ3BELElBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFDO1lBQ3BDLE9BQVEsQ0FBb0MsQ0FBQyxLQUFLLENBQUM7U0FDcEQ7SUFDSCxDQUFDLENBQUM7SUFFRiw0REFBNEQ7SUFDNUQsaURBQWlEO0lBQ2pELElBQUksQ0FBQyw4QkFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEtBQUssR0FBRztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3hELElBQUksQ0FBQyw4QkFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEtBQUssR0FBRztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXhELE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3BDLElBQUcsOEJBQWEsQ0FBQyxDQUFDLENBQUMsRUFBQztZQUNsQixPQUFPLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0wsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksS0FBSyxJQUFJLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBMUJXLFFBQUEsYUFBYSxpQkEwQnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZm4gZnJvbSAnZmlmaW5ldCc7XG5pbXBvcnQgeyBpc1Njb3BlVmVydGV4LCBPcGVyYXRvckhhbmRsZXIsIFNjb3BlTm9kZSB9IGZyb20gJy4uL3J1bGUtcHJvY2Vzc29yJztcblxuLyoqXG4gKiBFbnN1cmVzIHQxIGVxdWFscyB0byB0MlxuICogQHBhcmFtIGcgdGhlIEdyYXBoXG4gKiBAcGFyYW0gdDEgdmVydGV4IDFcbiAqIEBwYXJhbSB0MiB2ZXJ0ZXggMlxuICovXG5leHBvcnQgY29uc3QgZXF1YWxzSGFuZGxlcjogT3BlcmF0b3JIYW5kbGVyID0gPFYsIEU+KFxuICBnOiBmbi5HcmFwaDxWLEU+LFxuICB0MTogU2NvcGVOb2RlLFxuICB0MjogU2NvcGVOb2RlLFxuKTogYm9vbGVhbiA9PiB7XG5cbiAgY29uc3QgZXh0cmFjdFZhbHVlRnJvbVZlcnRleCA9ICh2OiBmbi5WZXJ0ZXg8ViwgRT4pID0+IHtcbiAgICBpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHYsICd2YWx1ZScpKXtcbiAgICAgIHJldHVybiAodiBhcyBmbi5WZXJ0ZXg8ViwgRT4gJiB7dmFsdWU6IGFueX0pLnZhbHVlO1xuICAgIH1cbiAgfTtcblxuICAvLyBJZiB0aGUgc3BlY2lmaWVkIHNjYWxhciB2YWx1ZSBpcyAnKicgYW5kIG5vdCB0aGUgcHJvcGVydHlcbiAgLy8gb2YgYSB2ZXJ0ZXgsIHdlIHRyZWF0IHRoZSB2YWx1ZSBhcyBhIHdpbGRjYXJkLlxuICBpZiAoIWlzU2NvcGVWZXJ0ZXgodDEpICYmIHQxLnZhbHVlID09PSAnKicpIHJldHVybiB0cnVlO1xuICBpZiAoIWlzU2NvcGVWZXJ0ZXgodDIpICYmIHQyLnZhbHVlID09PSAnKicpIHJldHVybiB0cnVlO1xuXG4gIGNvbnN0IFt2YWwxLCB2YWwyXSA9IFt0MSwgdDJdLm1hcCh0ID0+IHtcbiAgICBpZihpc1Njb3BlVmVydGV4KHQpKXtcbiAgICAgIHJldHVybiBleHRyYWN0VmFsdWVGcm9tVmVydGV4KHQudmVydGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHQudmFsdWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdmFsMSA9PT0gdmFsMjtcbn07Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXF1YWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUE4RTtBQUU5RTs7Ozs7R0FLRztBQUNJLE1BQU0sYUFBYSxHQUFvQixDQUM1QyxDQUFnQixFQUNoQixFQUFhLEVBQ2IsRUFBYSxFQUNKLEVBQUU7SUFFWCxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBa0IsRUFBRSxFQUFFO1FBQ3BELElBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFDO1lBQ3BDLE9BQVEsQ0FBb0MsQ0FBQyxLQUFLLENBQUM7U0FDcEQ7SUFDSCxDQUFDLENBQUM7SUFFRiw0REFBNEQ7SUFDNUQsaURBQWlEO0lBQ2pELElBQUksQ0FBQyxJQUFBLDhCQUFhLEVBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssS0FBSyxHQUFHO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDeEQsSUFBSSxDQUFDLElBQUEsOEJBQWEsRUFBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxLQUFLLEdBQUc7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV4RCxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNwQyxJQUFHLElBQUEsOEJBQWEsRUFBQyxDQUFDLENBQUMsRUFBQztZQUNsQixPQUFPLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0wsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDO1NBQ2hCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksS0FBSyxJQUFJLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBMUJXLFFBQUEsYUFBYSxpQkEwQnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZm4gZnJvbSAnZmlmaW5ldCc7XG5pbXBvcnQgeyBpc1Njb3BlVmVydGV4LCBPcGVyYXRvckhhbmRsZXIsIFNjb3BlTm9kZSB9IGZyb20gJy4uL3J1bGUtcHJvY2Vzc29yJztcblxuLyoqXG4gKiBFbnN1cmVzIHQxIGVxdWFscyB0byB0MlxuICogQHBhcmFtIGcgdGhlIEdyYXBoXG4gKiBAcGFyYW0gdDEgdmVydGV4IDFcbiAqIEBwYXJhbSB0MiB2ZXJ0ZXggMlxuICovXG5leHBvcnQgY29uc3QgZXF1YWxzSGFuZGxlcjogT3BlcmF0b3JIYW5kbGVyID0gPFYsIEU+KFxuICBnOiBmbi5HcmFwaDxWLEU+LFxuICB0MTogU2NvcGVOb2RlLFxuICB0MjogU2NvcGVOb2RlLFxuKTogYm9vbGVhbiA9PiB7XG5cbiAgY29uc3QgZXh0cmFjdFZhbHVlRnJvbVZlcnRleCA9ICh2OiBmbi5WZXJ0ZXg8ViwgRT4pID0+IHtcbiAgICBpZih7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHYsICd2YWx1ZScpKXtcbiAgICAgIHJldHVybiAodiBhcyBmbi5WZXJ0ZXg8ViwgRT4gJiB7dmFsdWU6IGFueX0pLnZhbHVlO1xuICAgIH1cbiAgfTtcblxuICAvLyBJZiB0aGUgc3BlY2lmaWVkIHNjYWxhciB2YWx1ZSBpcyAnKicgYW5kIG5vdCB0aGUgcHJvcGVydHlcbiAgLy8gb2YgYSB2ZXJ0ZXgsIHdlIHRyZWF0IHRoZSB2YWx1ZSBhcyBhIHdpbGRjYXJkLlxuICBpZiAoIWlzU2NvcGVWZXJ0ZXgodDEpICYmIHQxLnZhbHVlID09PSAnKicpIHJldHVybiB0cnVlO1xuICBpZiAoIWlzU2NvcGVWZXJ0ZXgodDIpICYmIHQyLnZhbHVlID09PSAnKicpIHJldHVybiB0cnVlO1xuXG4gIGNvbnN0IFt2YWwxLCB2YWwyXSA9IFt0MSwgdDJdLm1hcCh0ID0+IHtcbiAgICBpZihpc1Njb3BlVmVydGV4KHQpKXtcbiAgICAgIHJldHVybiBleHRyYWN0VmFsdWVGcm9tVmVydGV4KHQudmVydGV4KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHQudmFsdWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdmFsMSA9PT0gdmFsMjtcbn07Il19

@@ -13,3 +13,3 @@ "use strict";

const referencesHandler = (g, t1, t2) => {
if (!rule_processor_1.isScopeVertex(t1) || !rule_processor_1.isScopeVertex(t2))
if (!(0, rule_processor_1.isScopeVertex)(t1) || !(0, rule_processor_1.isScopeVertex)(t2))
return false;

@@ -36,5 +36,5 @@ return g

const isReferencedInHandler = (g, t1, t2) => {
return exports.referencesHandler(g, t2, t1);
return (0, exports.referencesHandler)(g, t2, t1);
};
exports.isReferencedInHandler = isReferencedInHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlZmVyZW5jZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXFFO0FBR3JFLHNEQUE4RTtBQUU5RTs7Ozs7R0FLRztBQUNJLE1BQU0saUJBQWlCLEdBQW9CLENBQ2hELENBQWdCLEVBQ2hCLEVBQWEsRUFDYixFQUFhLEVBQ0osRUFBRTtJQUNYLElBQUcsQ0FBQyw4QkFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsOEJBQWEsQ0FBQyxFQUFFLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUUxRCxPQUFPLENBQUM7U0FDTCxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDaEIsS0FBSyxDQUFDLFFBQVEsQ0FBQztTQUNmLE1BQU0sQ0FBQztRQUNOLFVBQVUsRUFBRSx5QkFBZ0IsQ0FBQyxZQUFZO1FBQ3pDLGdCQUFnQixFQUFFLHlCQUFnQixDQUFDLFVBQVU7S0FDakIsQ0FBQztTQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDO1NBQ2hCLEdBQUcsRUFBRTtTQUNMLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7U0FDcEMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNoQixDQUFDLENBQUM7QUFsQlcsUUFBQSxpQkFBaUIscUJBa0I1QjtBQUVGOzs7OztHQUtHO0FBQ0ksTUFBTSxxQkFBcUIsR0FBb0IsQ0FDcEQsQ0FBZ0IsRUFDaEIsRUFBYSxFQUNiLEVBQWEsRUFDSixFQUFFO0lBQ1gsT0FBTyx5QkFBaUIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQztBQU5XLFFBQUEscUJBQXFCLHlCQU1oQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsRW50aXR5VHlwZXMsIFJlbGF0aW9uc2hpcFR5cGUgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0ICogYXMgZm4gZnJvbSAnZmlmaW5ldCc7XG5pbXBvcnQgeyBWZXJ0ZXhQcm9wcyB9IGZyb20gJ2ZpZmluZXQnO1xuaW1wb3J0IHsgaXNTY29wZVZlcnRleCwgT3BlcmF0b3JIYW5kbGVyLCBTY29wZU5vZGUgfSBmcm9tICcuLi9ydWxlLXByb2Nlc3Nvcic7XG5cbi8qKlxuICogRW5zdXJlcyB2ZXJ0ZXggdDEgaGFzIGVkZ2UgJ3NvdXJjZScgdG8gaW50ZXJtZWRpYXJ5IGRlcGVuZGVuY3kgcmVsYXRpb25zaGlwIHZlcnRleCwgd2hpY2ggaGFzIGVkZ2UgJ3RhcmdldCcgdG8gdDIgaW4gZ3JhcGggZ1xuICogQHBhcmFtIGcgdGhlIEdyYXBoXG4gKiBAcGFyYW0gdDEgdmVydGV4IDFcbiAqIEBwYXJhbSB0MiB2ZXJ0ZXggMlxuICovXG5leHBvcnQgY29uc3QgcmVmZXJlbmNlc0hhbmRsZXI6IE9wZXJhdG9ySGFuZGxlciA9IDxWLCBFPihcbiAgZzogZm4uR3JhcGg8VixFPixcbiAgdDE6IFNjb3BlTm9kZSxcbiAgdDI6IFNjb3BlTm9kZSxcbik6IGJvb2xlYW4gPT4ge1xuICBpZighaXNTY29wZVZlcnRleCh0MSkgfHwgIWlzU2NvcGVWZXJ0ZXgodDIpKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIGdcbiAgICAudih0MS52ZXJ0ZXguX2lkKVxuICAgIC5pbkFueSgnc291cmNlJylcbiAgICAuZmlsdGVyKHtcbiAgICAgIGVudGl0eVR5cGU6IE1vZGVsRW50aXR5VHlwZXMucmVsYXRpb25zaGlwLFxuICAgICAgcmVsYXRpb25zaGlwVHlwZTogUmVsYXRpb25zaGlwVHlwZS5EZXBlbmRlbmN5LFxuICAgIH0gYXMgdW5rbm93biBhcyBWZXJ0ZXhQcm9wczxWPilcbiAgICAub3V0QW55KCd0YXJnZXQnKVxuICAgIC5ydW4oKVxuICAgIC5maWx0ZXIodiA9PiB2Ll9pZCA9PT0gdDIudmVydGV4Ll9pZClcbiAgICAubGVuZ3RoID4gMDtcbn07XG5cbi8qKlxuICogRW5zdXJlcyB2ZXJ0ZXggdDIgaGFzIGVkZ2UgJ3NvdXJjZScgdG8gaW50ZXJtZWRpYXJ5IGRlcGVuZGVuY3kgcmVsYXRpb25zaGlwIHZlcnRleCwgd2hpY2ggaGFzIGVkZ2UgJ3RhcmdldCcgdG8gdDEgaW4gZ3JhcGggZ1xuICogQHBhcmFtIGcgdGhlIEdyYXBoXG4gKiBAcGFyYW0gdDEgdmVydGV4IDFcbiAqIEBwYXJhbSB0MiB2ZXJ0ZXggMlxuICovXG5leHBvcnQgY29uc3QgaXNSZWZlcmVuY2VkSW5IYW5kbGVyOiBPcGVyYXRvckhhbmRsZXIgPSA8ViwgRT4oXG4gIGc6IGZuLkdyYXBoPFYsRT4sXG4gIHQxOiBTY29wZU5vZGUsXG4gIHQyOiBTY29wZU5vZGUsXG4pOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIHJlZmVyZW5jZXNIYW5kbGVyKGcsIHQyLCB0MSk7XG59OyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlZmVyZW5jZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNENBQXFFO0FBR3JFLHNEQUE4RTtBQUU5RTs7Ozs7R0FLRztBQUNJLE1BQU0saUJBQWlCLEdBQW9CLENBQ2hELENBQWdCLEVBQ2hCLEVBQWEsRUFDYixFQUFhLEVBQ0osRUFBRTtJQUNYLElBQUcsQ0FBQyxJQUFBLDhCQUFhLEVBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFBLDhCQUFhLEVBQUMsRUFBRSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFMUQsT0FBTyxDQUFDO1NBQ0wsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQUM7U0FDZixNQUFNLENBQUM7UUFDTixVQUFVLEVBQUUseUJBQWdCLENBQUMsWUFBWTtRQUN6QyxnQkFBZ0IsRUFBRSx5QkFBZ0IsQ0FBQyxVQUFVO0tBQ2pCLENBQUM7U0FDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQztTQUNoQixHQUFHLEVBQUU7U0FDTCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ3BDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBbEJXLFFBQUEsaUJBQWlCLHFCQWtCNUI7QUFFRjs7Ozs7R0FLRztBQUNJLE1BQU0scUJBQXFCLEdBQW9CLENBQ3BELENBQWdCLEVBQ2hCLEVBQWEsRUFDYixFQUFhLEVBQ0osRUFBRTtJQUNYLE9BQU8sSUFBQSx5QkFBaUIsRUFBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQztBQU5XLFFBQUEscUJBQXFCLHlCQU1oQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsRW50aXR5VHlwZXMsIFJlbGF0aW9uc2hpcFR5cGUgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0ICogYXMgZm4gZnJvbSAnZmlmaW5ldCc7XG5pbXBvcnQgeyBWZXJ0ZXhQcm9wcyB9IGZyb20gJ2ZpZmluZXQnO1xuaW1wb3J0IHsgaXNTY29wZVZlcnRleCwgT3BlcmF0b3JIYW5kbGVyLCBTY29wZU5vZGUgfSBmcm9tICcuLi9ydWxlLXByb2Nlc3Nvcic7XG5cbi8qKlxuICogRW5zdXJlcyB2ZXJ0ZXggdDEgaGFzIGVkZ2UgJ3NvdXJjZScgdG8gaW50ZXJtZWRpYXJ5IGRlcGVuZGVuY3kgcmVsYXRpb25zaGlwIHZlcnRleCwgd2hpY2ggaGFzIGVkZ2UgJ3RhcmdldCcgdG8gdDIgaW4gZ3JhcGggZ1xuICogQHBhcmFtIGcgdGhlIEdyYXBoXG4gKiBAcGFyYW0gdDEgdmVydGV4IDFcbiAqIEBwYXJhbSB0MiB2ZXJ0ZXggMlxuICovXG5leHBvcnQgY29uc3QgcmVmZXJlbmNlc0hhbmRsZXI6IE9wZXJhdG9ySGFuZGxlciA9IDxWLCBFPihcbiAgZzogZm4uR3JhcGg8VixFPixcbiAgdDE6IFNjb3BlTm9kZSxcbiAgdDI6IFNjb3BlTm9kZSxcbik6IGJvb2xlYW4gPT4ge1xuICBpZighaXNTY29wZVZlcnRleCh0MSkgfHwgIWlzU2NvcGVWZXJ0ZXgodDIpKSByZXR1cm4gZmFsc2U7XG5cbiAgcmV0dXJuIGdcbiAgICAudih0MS52ZXJ0ZXguX2lkKVxuICAgIC5pbkFueSgnc291cmNlJylcbiAgICAuZmlsdGVyKHtcbiAgICAgIGVudGl0eVR5cGU6IE1vZGVsRW50aXR5VHlwZXMucmVsYXRpb25zaGlwLFxuICAgICAgcmVsYXRpb25zaGlwVHlwZTogUmVsYXRpb25zaGlwVHlwZS5EZXBlbmRlbmN5LFxuICAgIH0gYXMgdW5rbm93biBhcyBWZXJ0ZXhQcm9wczxWPilcbiAgICAub3V0QW55KCd0YXJnZXQnKVxuICAgIC5ydW4oKVxuICAgIC5maWx0ZXIodiA9PiB2Ll9pZCA9PT0gdDIudmVydGV4Ll9pZClcbiAgICAubGVuZ3RoID4gMDtcbn07XG5cbi8qKlxuICogRW5zdXJlcyB2ZXJ0ZXggdDIgaGFzIGVkZ2UgJ3NvdXJjZScgdG8gaW50ZXJtZWRpYXJ5IGRlcGVuZGVuY3kgcmVsYXRpb25zaGlwIHZlcnRleCwgd2hpY2ggaGFzIGVkZ2UgJ3RhcmdldCcgdG8gdDEgaW4gZ3JhcGggZ1xuICogQHBhcmFtIGcgdGhlIEdyYXBoXG4gKiBAcGFyYW0gdDEgdmVydGV4IDFcbiAqIEBwYXJhbSB0MiB2ZXJ0ZXggMlxuICovXG5leHBvcnQgY29uc3QgaXNSZWZlcmVuY2VkSW5IYW5kbGVyOiBPcGVyYXRvckhhbmRsZXIgPSA8ViwgRT4oXG4gIGc6IGZuLkdyYXBoPFYsRT4sXG4gIHQxOiBTY29wZU5vZGUsXG4gIHQyOiBTY29wZU5vZGUsXG4pOiBib29sZWFuID0+IHtcbiAgcmV0dXJuIHJlZmVyZW5jZXNIYW5kbGVyKGcsIHQyLCB0MSk7XG59OyJdfQ==

@@ -27,3 +27,3 @@ "use strict";

return {};
return node_1.fromEntries(Object.entries(bindings).map(([identifier, cselector]) => [identifier, parseSelector(cselector)]));
return (0, node_1.fromEntries)(Object.entries(bindings).map(([identifier, cselector]) => [identifier, parseSelector(cselector)]));
}

@@ -35,3 +35,3 @@ function parseSelector(selector) {

throw Error('Selector format not supported');
if (rules_1.isPathCSelector(selector)) {
if ((0, rules_1.isPathCSelector)(selector)) {
if (typeof selector.fromPath !== 'string')

@@ -44,3 +44,3 @@ throw Error("'fromPath' selector must be a string");

}
if (rules_1.isComponentCFilter(selector)) {
if ((0, rules_1.isComponentCFilter)(selector)) {
const { where, ...filter } = selector;

@@ -71,3 +71,3 @@ return {

const shortformKeys = Object.keys(shortform);
if (shortformKeys.length + ((models_1.isDefined(type) || models_1.isDefined(subtype)) ? 1 : 0) > 1)
if (shortformKeys.length + (((0, models_1.isDefined)(type) || (0, models_1.isDefined)(subtype)) ? 1 : 0) > 1)
throw Error('Cannot specify type or subtype more than once');

@@ -145,2 +145,2 @@ if (shortformKeys.length) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydWxlLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBOEQ7QUFDOUQsMENBbUJ3QjtBQUN4QiwwQ0FBOEM7QUFFOUM7Ozs7R0FJRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxLQUFrQjtJQUMzQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxJQUFlO0lBQ2hDLE9BQU87UUFDTCxHQUFHLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDNUIsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM5QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNqRCxNQUFNLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDakMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxRQUFvQjtJQUN6QyxJQUFHLENBQUMsUUFBUTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLE9BQU8sa0JBQVcsQ0FDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQ3ZELENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQzFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsUUFBbUI7SUFDeEMsSUFBRyxPQUFPLFFBQVEsS0FBSyxRQUFRO1FBQzdC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T0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUM1QjtZQUNILE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNsRCxJQUFHLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBQztnQkFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3hDO2lCQUFNO2dCQUNMLE9BQU8sbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDL0I7U0FDRjtJQUNILENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTCxRQUFRLEVBQUUsUUFBaUM7UUFDM0MsU0FBUyxFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQztRQUMzQyxVQUFVLEVBQUUscUJBQXFCLENBQUMsVUFBVSxDQUFDO0tBQzlDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsTUFBeUM7SUFDNUQsSUFBRyxNQUFNLEtBQUssU0FBUztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3ZDLElBQUcsTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7UUFDOUIsTUFBTSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7S0FDMUI7SUFDRCxPQUFPLE1BQThCLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRGVmaW5lZCwgTW9kZWxFbnRpdHlUeXBlcyB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQge1xuICBDb25kaXRpb25JbnB1dCxcbiAgUnVsZUNvbmRpdGlvbixcbiAgUnVsZUNvbmRpdGlvbk9wZXJhdG9yLFxuICBSdWxlQ29uZGl0aW9ucyxcbiAgU2VsZWN0b3IsXG4gIFNlbGVjdG9yRmlsdGVyLFxuICBVc2VyUnVsZSxcbiAgUnVsZVNjb3BlUmVmZXJlbmNlLFxuICBSdWxlRWZmZWN0RGVmaW5pdGlvbixcbiAgQ0JpbmRpbmdzLFxuICBDU2VsZWN0b3IsXG4gIENVc2VyUnVsZSxcbiAgaXNQYXRoQ1NlbGVjdG9yLFxuICBDb21wb25lbnRDRmlsdGVyLFxuICBDUnVsZUNvbmRpdGlvbnMsXG4gIGlzQ29tcG9uZW50Q0ZpbHRlcixcbiAgR2VuZXJhbENTZWxlY3RvcixcbiAgQ1J1bGVFZmZlY3REZWZpbml0aW9uLFxufSBmcm9tICdAYXdzLWMyYS9ydWxlcyc7XG5pbXBvcnQgeyBmcm9tRW50cmllcyB9IGZyb20gJy4uL3ByaXZhdGUvbm9kZSc7XG5cbi8qKlxuICogVHJhbnNmb3JtIENVc2VyUnVsZXMgKHVzZXIgY29uZmlndXJhdGlvbikgaW50byBVc2VyUnVsZXMgKGludGVybmFsIHJ1bGVzIHJlcHJlc2VudGF0aW9uKVxuICogQHBhcmFtIHJ1bGVzXG4gKiBAcmV0dXJucyB1c2VyIHJ1bGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVJ1bGVzKHJ1bGVzOiBDVXNlclJ1bGVbXSk6IFVzZXJSdWxlW117XG4gIHJldHVybiBydWxlcy5tYXAociA9PiBwYXJzZVJ1bGUocikpO1xufVxuXG5mdW5jdGlvbiBwYXJzZVJ1bGUocnVsZTogQ1VzZXJSdWxlKTogVXNlclJ1bGUge1xuICByZXR1cm4ge1xuICAgIGxldDogcGFyc2VCaW5kaW5ncyhydWxlLmxldCksXG4gICAgLi4ucGFyc2VDb25kaXRpb25zKHJ1bGUud2hlcmUpLFxuICAgIC4uLnJ1bGUudGhlbiA/IHt0aGVuOiBwYXJzZVJ1bGVzKHJ1bGUudGhlbil9IDoge30sXG4gICAgZWZmZWN0OiBwYXJzZUVmZmVjdChydWxlLmVmZmVjdCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlQmluZGluZ3MoYmluZGluZ3M/OiBDQmluZGluZ3Mpe1xuICBpZighYmluZGluZ3MpIHJldHVybiB7fTtcbiAgcmV0dXJuIGZyb21FbnRyaWVzKFxuICAgIE9iamVjdC5lbnRyaWVzKGJpbmRpbmdzKS5tYXAoKFtpZGVudGlmaWVyLCBjc2VsZWN0b3JdKSA9PlxuICAgICAgW2lkZW50aWZpZXIsIHBhcnNlU2VsZWN0b3IoY3NlbGVjdG9yKV0pLFxuICApO1xufVxuXG5mdW5jdGlvbiBwYXJzZVNlbGVjdG9yKHNlbGVjdG9yOiBDU2VsZWN0b3IpOiBTZWxlY3RvciB7XG4gIGlmKHR5cGVvZiBzZWxlY3RvciA9PT0gJ3N0cmluZycpXG4gICAgcmV0dXJuIHBhcnNlU3RyaW5nU2VsZWN0b3Ioc2VsZWN0b3IpO1xuXG4gIGlmKHR5cGVvZiBzZWxlY3RvciAhPT0gJ29iamVjdCcgfHwgc2VsZWN0b3IgPT09IG51bGwpXG4gICAgdGhyb3cgRXJyb3IoJ1NlbGVjdG9yIGZvcm1hdCBub3Qgc3VwcG9ydGVkJyk7XG5cbiAgaWYoaXNQYXRoQ1NlbGVjdG9yKHNlbGVjdG9yKSl7XG4gICAgaWYodHlwZW9mIHNlbGVjdG9yLmZyb21QYXRoICE9PSAnc3RyaW5nJylcbiAgICAgIHRocm93IEVycm9yKFwiJ2Zyb21QYXRoJyBzZWxlY3RvciBtdXN0IGJlIGEgc3RyaW5nXCIpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXJzZVN0cmluZ1NlbGVjdG9yKHNlbGVjdG9yLmZyb21QYXRoKSxcbiAgICAgIC4uLnBhcnNlQ29uZGl0aW9ucyhzZWxlY3Rvci53aGVyZSksXG4gICAgfTtcbiAgfVxuXG4gIGlmKGlzQ29tcG9uZW50Q0ZpbHRlcihzZWxlY3Rvcikpe1xuICAgIGNvbnN0IHsgd2hlcmUsIC4uLmZpbHRlciB9ID0gc2VsZWN0b3I7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbHRlcjogcGFyc2VDb21wb25lbnRDRmlsdGVyKGZpbHRlciksXG4gICAgICAuLi5wYXJzZUNvbmRpdGlvbnMod2hlcmUpLFxuICAgIH07XG4gIH1cblxuICBjb25zdCB7IHdoZXJlLCAuLi5maWx0ZXIgfSA9IHNlbGVjdG9yO1xuICByZXR1cm4ge1xuICAgIGZpbHRlcjogcGFyc2VHZW5lcmFsRmlsdGVyKGZpbHRlciksXG4gICAgLi4ucGFyc2VDb25kaXRpb25zKHdoZXJlKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VHZW5lcmFsRmlsdGVyKHNlbGVjdG9yOiBHZW5lcmFsQ1NlbGVjdG9yKTogU2VsZWN0b3JGaWx0ZXIge1xuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc2VsZWN0b3IpO1xuICBpZihrZXlzLmxlbmd0aCAhPT0gMSlcbiAgICB0aHJvdyBFcnJvcignU2VsZWN0b3IgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBwcm9wZXJ0eSAob3RoZXIgdGhhbiB3aGVyZSknKTtcblxuICByZXR1cm4ge1xuICAgIC4uLnNlbGVjdG9yW2tleXNbMF1dLFxuICAgIGVudGl0eVR5cGU6IGtleXNbMF0sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ29tcG9uZW50Q0ZpbHRlcihzZWxlY3RvcjogQ29tcG9uZW50Q0ZpbHRlcik6IFNlbGVjdG9yRmlsdGVyIHtcbiAgY29uc3QgeyBuYW1lLCAuLi5zaG9ydGZvcm19ID0gc2VsZWN0b3I7XG4gIGxldCB7IHR5cGUsIHN1YnR5cGUgfSA9IHNlbGVjdG9yO1xuXG4gIGNvbnN0IHNob3J0Zm9ybUtleXMgPSBPYmplY3Qua2V5cyhzaG9ydGZvcm0pO1xuICBpZihzaG9ydGZvcm1LZXlzLmxlbmd0aCArICgoaXNEZWZpbmVkKHR5cGUpIHx8IGlzRGVmaW5lZChzdWJ0eXBlKSkgPyAxIDogMCkgPiAxKVxuICAgIHRocm93IEVycm9yKCdDYW5ub3Qgc3BlY2lmeSB0eXBlIG9yIHN1YnR5cGUgbW9yZSB0aGFuIG9uY2UnKTtcblxuICBpZihzaG9ydGZvcm1LZXlzLmxlbmd0aCl7XG4gICAgdHlwZSA9IHNob3J0Zm9ybUtleXNbMF07XG4gICAgY29uc3QgdG1wU3VidHlwZSA9IChzaG9ydGZvcm0gYXMge1t0eXBlOiBzdHJpbmddOiBzdHJpbmd9KVt0eXBlXTtcbiAgICBpZih0eXBlb2YgdG1wU3VidHlwZSAhPT0gJ3N0cmluZycpXG4gICAgICB0aHJvdyBFcnJvcignU2hvcnRmb3JtIG9mIGNvbXBvbmVudCBzZWxlY3RvciBtdXN0IGhhdmUgYSBzdHJpbmcgc3VidHlwZScpO1xuICAgIHN1YnR5cGUgPSB0bXBTdWJ0eXBlO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBlbnRpdHlUeXBlOiBNb2RlbEVudGl0eVR5cGVzLmNvbXBvbmVudCxcbiAgICB0eXBlLFxuICAgIC4uLnN1YnR5cGUgPyB7c3VidHlwZX0gOiB7fSxcbiAgICAuLi5uYW1lID8ge25hbWV9IDoge30sXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlU3RyaW5nU2VsZWN0b3Ioc2VsZWN0b3I6IHN0cmluZyk6IFNlbGVjdG9yIHtcbiAgcmV0dXJuIHtcbiAgICBwcm9wZXJ0eVJlZmVyZW5jZTogcGFyc2VTY29wZVJlZmVyZW5jZShzZWxlY3RvciksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlU2NvcGVSZWZlcmVuY2Uoczogc3RyaW5nKTogUnVsZVNjb3BlUmVmZXJlbmNlIHtcbiAgY29uc3QgWyBpZGVudGlmaWVyICwgLi4ucHJvcGVydHlQYXRoXSA9IHMuc3BsaXQoJy4nKTtcbiAgcmV0dXJuIHtcbiAgICBpZGVudGlmaWVyLFxuICAgIHByb3BlcnR5UGF0aCxcbiAgfTtcbn1cblxuXG5mdW5jdGlvbiBwYXJzZUNvbmRpdGlvbnMoXG4gIGNvbmRpdGlvbnM/OiBDUnVsZUNvbmRpdGlvbnMsXG4pOiB7IHdoZXJlPzogUnVsZUNvbmRpdGlvbnM7IH0ge1xuICBpZihjb25kaXRpb25zID09PSB1bmRlZmluZWQpIHJldHVybiB7fTtcblxuICByZXR1cm4ge1xuICAgIHdoZXJlOiAodHlwZW9mIGNvbmRpdGlvbnMgPT09ICdzdHJpbmcnXG4gICAgICA/IFtwYXJzZUNvbmRpdGlvbihjb25kaXRpb25zKV1cbiAgICAgIDogY29uZGl0aW9ucy5tYXAocGFyc2VDb25kaXRpb24pXG4gICAgKS5maWx0ZXIoaXNEZWZpbmVkKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcGFyc2VDb25kaXRpb24oY29uZGl0aW9uOiBzdHJpbmcpOiBSdWxlQ29uZGl0aW9uIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3BsaXRDb25kaXRpb25zID0gY29uZGl0aW9uXG4gICAgLnNwbGl0KC9cXHMrL2cpO1xuICBpZighc3BsaXRDb25kaXRpb25zIHx8IHNwbGl0Q29uZGl0aW9ucy5sZW5ndGggIT09IDMpXG4gICAgcmV0dXJuO1xuICBjb25zdCBbbGVmdElucHV0LCBvcGVyYXRvciwgcmlnaHRJbnB1dF0gPSBzcGxpdENvbmRpdGlvbnM7XG5cbiAgaWYoIU9iamVjdC52YWx1ZXMoUnVsZUNvbmRpdGlvbk9wZXJhdG9yKS5pbmNsdWRlcyhvcGVyYXRvciBhcyBSdWxlQ29uZGl0aW9uT3BlcmF0b3IpKVxuICAgIHJldHVybjtcblxuICBjb25zdCBjb25kaXRpb25JbnB1dEZyb21TdHIgPSAoczogc3RyaW5nKTogQ29uZGl0aW9uSW5wdXQgPT4ge1xuICAgIGNvbnN0IHN0clNjYWxhclJlZ0V4cCA9IC9eW1wiJ10oLiopW1wiJ10kLztcbiAgICBpZighaXNOYU4ocyBhcyB1bmtub3duIGFzIG51bWJlcikpXG4gICAgICByZXR1cm4geyBzY2FsYXI6IHBhcnNlSW50KHMpIH07XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBzdHJTY2FsYXJSRU1hdGNoID0gcy5tYXRjaChzdHJTY2FsYXJSZWdFeHApO1xuICAgICAgaWYoc3RyU2NhbGFyUkVNYXRjaCAmJiBzdHJTY2FsYXJSRU1hdGNoWzFdICE9PSB1bmRlZmluZWQpe1xuICAgICAgICByZXR1cm4geyBzY2FsYXI6IHN0clNjYWxhclJFTWF0Y2hbMV0gfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwYXJzZVNjb3BlUmVmZXJlbmNlKHMpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG9wZXJhdG9yOiBvcGVyYXRvciBhcyBSdWxlQ29uZGl0aW9uT3BlcmF0b3IsXG4gICAgbGVmdElucHV0OiBjb25kaXRpb25JbnB1dEZyb21TdHIobGVmdElucHV0KSxcbiAgICByaWdodElucHV0OiBjb25kaXRpb25JbnB1dEZyb21TdHIocmlnaHRJbnB1dCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlRWZmZWN0KGVmZmVjdDogQ1J1bGVFZmZlY3REZWZpbml0aW9uIHwgdW5kZWZpbmVkKTogUnVsZUVmZmVjdERlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICBpZihlZmZlY3QgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGVmZmVjdDtcbiAgaWYoZWZmZWN0LnRhcmdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgZWZmZWN0LnRhcmdldCA9ICdjaGFuZ2UnO1xuICB9XG4gIHJldHVybiBlZmZlY3QgYXMgUnVsZUVmZmVjdERlZmluaXRpb247XG59Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1wYXJzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydWxlLXBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBOEQ7QUFDOUQsMENBbUJ3QjtBQUN4QiwwQ0FBOEM7QUFFOUM7Ozs7R0FJRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxLQUFrQjtJQUMzQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRkQsZ0NBRUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxJQUFlO0lBQ2hDLE9BQU87UUFDTCxHQUFHLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDNUIsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM5QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNqRCxNQUFNLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDakMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxRQUFvQjtJQUN6QyxJQUFHLENBQUMsUUFBUTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLE9BQU8sSUFBQSxrQkFBVyxFQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FDdkQsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FDMUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxRQUFtQjtJQUN4QyxJQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVE7UUFDN0IsT0FBTyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV2QyxJQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssSUFBSTtRQUNsRCxNQUFNLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBRS9DLElBQUcsSUFBQSx1QkFBZSxFQUFDLFFBQVEsQ0FBQyxFQUFDO1FBQzNCLElBQUcsT0FBTyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVE7WUFDdEMsTUFBTSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUN0RCxPQUFPO1lBQ0wsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3pDLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDbkMsQ0FBQztLQUNIO0lBRUQsSUFBRyxJQUFBLDBCQUFrQixFQUFDLFFBQVEsQ0FBQyxFQUFDO1FBQzlCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7UUFDdEMsT0FBTztZQUNMLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7WUFDckMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO1NBQzFCLENBQUM7S0FDSDtJQUVELE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUM7SUFDdEMsT0FBTztRQUNMLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7UUFDbEMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO0tBQzFCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxRQUEwQjtJQUNwRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLElBQUcsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQ2xCLE1BQU0sS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFFN0UsT0FBTztRQUNMLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQixVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNwQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsUUFBMEI7SUFDdkQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFNBQVMsRUFBQyxHQUFHLFFBQVEsQ0FBQztJQUN2QyxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUVqQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLElBQUcsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBQSxrQkFBUyxFQUFDLElBQUksQ0FBQyxJQUFJLElBQUEsa0JBQVMsRUFBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDN0UsTUFBTSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUUvRCxJQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUM7UUFDdEIsSUFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixNQUFNLFVBQVUsR0FBSSxTQUFzQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pFLElBQUcsT0FBTyxVQUFVLEtBQUssUUFBUTtZQUMvQixNQUFNLEtBQUssQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO1FBQzVFLE9BQU8sR0FBRyxVQUFVLENBQUM7S0FDdEI7SUFFRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLHlCQUFnQixDQUFDLFNBQVM7UUFDdEMsSUFBSTtRQUNKLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzNCLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO0tBQ3RCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxRQUFnQjtJQUMzQyxPQUFPO1FBQ0wsaUJBQWlCLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDO0tBQ2pELENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FBQyxDQUFTO0lBQ3BDLE1BQU0sQ0FBRSxVQUFVLEVBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELE9BQU87UUFDTCxVQUFVO1FBQ1YsWUFBWTtLQUNiLENBQUM7QUFDSixDQUFDO0FBR0QsU0FBUyxlQUFlLENBQ3RCLFVBQTRCO0lBRTVCLElBQUcsVUFBVSxLQUFLLFNBQVM7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUV2QyxPQUFPO1FBQ0wsS0FBSyxFQUFFLENBQUMsT0FBTyxVQUFVLEtBQUssUUFBUTtZQUNwQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQ2pDLENBQUMsTUFBTSxDQUFDLGtCQUFTLENBQUM7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FBQyxTQUFpQjtJQUN2QyxNQUFNLGVBQWUsR0FBRyxTQUFTO1NBQzlCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQixJQUFHLENBQUMsZUFBZSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUNqRCxPQUFPO0lBQ1QsTUFBTSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsZUFBZSxDQUFDO0lBRTFELElBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLDZCQUFxQixDQUFDLENBQUMsUUFBUSxDQUFDLFFBQWlDLENBQUM7UUFDbEYsT0FBTztJQUVULE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFTLEVBQWtCLEVBQUU7UUFDMUQsTUFBTSxlQUFlLEdBQUcsZ0JBQWdCLENBQUM7UUFDekMsSUFBRyxDQUFDLEtBQUssQ0FBQyxDQUFzQixDQUFDO1lBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDNUI7WUFDSCxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbEQsSUFBRyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQUM7Z0JBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxPQUFPLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9CO1NBQ0Y7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPO1FBQ0wsUUFBUSxFQUFFLFFBQWlDO1FBQzNDLFNBQVMsRUFBRSxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7UUFDM0MsVUFBVSxFQUFFLHFCQUFxQixDQUFDLFVBQVUsQ0FBQztLQUM5QyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLE1BQXlDO0lBQzVELElBQUcsTUFBTSxLQUFLLFNBQVM7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUN2QyxJQUFHLE1BQU0sQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1FBQzlCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO0tBQzFCO0lBQ0QsT0FBTyxNQUE4QixDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0RlZmluZWQsIE1vZGVsRW50aXR5VHlwZXMgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQ29uZGl0aW9uSW5wdXQsXG4gIFJ1bGVDb25kaXRpb24sXG4gIFJ1bGVDb25kaXRpb25PcGVyYXRvcixcbiAgUnVsZUNvbmRpdGlvbnMsXG4gIFNlbGVjdG9yLFxuICBTZWxlY3RvckZpbHRlcixcbiAgVXNlclJ1bGUsXG4gIFJ1bGVTY29wZVJlZmVyZW5jZSxcbiAgUnVsZUVmZmVjdERlZmluaXRpb24sXG4gIENCaW5kaW5ncyxcbiAgQ1NlbGVjdG9yLFxuICBDVXNlclJ1bGUsXG4gIGlzUGF0aENTZWxlY3RvcixcbiAgQ29tcG9uZW50Q0ZpbHRlcixcbiAgQ1J1bGVDb25kaXRpb25zLFxuICBpc0NvbXBvbmVudENGaWx0ZXIsXG4gIEdlbmVyYWxDU2VsZWN0b3IsXG4gIENSdWxlRWZmZWN0RGVmaW5pdGlvbixcbn0gZnJvbSAnQGF3cy1jMmEvcnVsZXMnO1xuaW1wb3J0IHsgZnJvbUVudHJpZXMgfSBmcm9tICcuLi9wcml2YXRlL25vZGUnO1xuXG4vKipcbiAqIFRyYW5zZm9ybSBDVXNlclJ1bGVzICh1c2VyIGNvbmZpZ3VyYXRpb24pIGludG8gVXNlclJ1bGVzIChpbnRlcm5hbCBydWxlcyByZXByZXNlbnRhdGlvbilcbiAqIEBwYXJhbSBydWxlc1xuICogQHJldHVybnMgdXNlciBydWxlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSdWxlcyhydWxlczogQ1VzZXJSdWxlW10pOiBVc2VyUnVsZVtde1xuICByZXR1cm4gcnVsZXMubWFwKHIgPT4gcGFyc2VSdWxlKHIpKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VSdWxlKHJ1bGU6IENVc2VyUnVsZSk6IFVzZXJSdWxlIHtcbiAgcmV0dXJuIHtcbiAgICBsZXQ6IHBhcnNlQmluZGluZ3MocnVsZS5sZXQpLFxuICAgIC4uLnBhcnNlQ29uZGl0aW9ucyhydWxlLndoZXJlKSxcbiAgICAuLi5ydWxlLnRoZW4gPyB7dGhlbjogcGFyc2VSdWxlcyhydWxlLnRoZW4pfSA6IHt9LFxuICAgIGVmZmVjdDogcGFyc2VFZmZlY3QocnVsZS5lZmZlY3QpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZUJpbmRpbmdzKGJpbmRpbmdzPzogQ0JpbmRpbmdzKXtcbiAgaWYoIWJpbmRpbmdzKSByZXR1cm4ge307XG4gIHJldHVybiBmcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhiaW5kaW5ncykubWFwKChbaWRlbnRpZmllciwgY3NlbGVjdG9yXSkgPT5cbiAgICAgIFtpZGVudGlmaWVyLCBwYXJzZVNlbGVjdG9yKGNzZWxlY3RvcildKSxcbiAgKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VTZWxlY3RvcihzZWxlY3RvcjogQ1NlbGVjdG9yKTogU2VsZWN0b3Ige1xuICBpZih0eXBlb2Ygc2VsZWN0b3IgPT09ICdzdHJpbmcnKVxuICAgIHJldHVybiBwYXJzZVN0cmluZ1NlbGVjdG9yKHNlbGVjdG9yKTtcblxuICBpZih0eXBlb2Ygc2VsZWN0b3IgIT09ICdvYmplY3QnIHx8IHNlbGVjdG9yID09PSBudWxsKVxuICAgIHRocm93IEVycm9yKCdTZWxlY3RvciBmb3JtYXQgbm90IHN1cHBvcnRlZCcpO1xuXG4gIGlmKGlzUGF0aENTZWxlY3RvcihzZWxlY3Rvcikpe1xuICAgIGlmKHR5cGVvZiBzZWxlY3Rvci5mcm9tUGF0aCAhPT0gJ3N0cmluZycpXG4gICAgICB0aHJvdyBFcnJvcihcIidmcm9tUGF0aCcgc2VsZWN0b3IgbXVzdCBiZSBhIHN0cmluZ1wiKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ucGFyc2VTdHJpbmdTZWxlY3RvcihzZWxlY3Rvci5mcm9tUGF0aCksXG4gICAgICAuLi5wYXJzZUNvbmRpdGlvbnMoc2VsZWN0b3Iud2hlcmUpLFxuICAgIH07XG4gIH1cblxuICBpZihpc0NvbXBvbmVudENGaWx0ZXIoc2VsZWN0b3IpKXtcbiAgICBjb25zdCB7IHdoZXJlLCAuLi5maWx0ZXIgfSA9IHNlbGVjdG9yO1xuICAgIHJldHVybiB7XG4gICAgICBmaWx0ZXI6IHBhcnNlQ29tcG9uZW50Q0ZpbHRlcihmaWx0ZXIpLFxuICAgICAgLi4ucGFyc2VDb25kaXRpb25zKHdoZXJlKSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgeyB3aGVyZSwgLi4uZmlsdGVyIH0gPSBzZWxlY3RvcjtcbiAgcmV0dXJuIHtcbiAgICBmaWx0ZXI6IHBhcnNlR2VuZXJhbEZpbHRlcihmaWx0ZXIpLFxuICAgIC4uLnBhcnNlQ29uZGl0aW9ucyh3aGVyZSksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlR2VuZXJhbEZpbHRlcihzZWxlY3RvcjogR2VuZXJhbENTZWxlY3Rvcik6IFNlbGVjdG9yRmlsdGVyIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHNlbGVjdG9yKTtcbiAgaWYoa2V5cy5sZW5ndGggIT09IDEpXG4gICAgdGhyb3cgRXJyb3IoJ1NlbGVjdG9yIG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgcHJvcGVydHkgKG90aGVyIHRoYW4gd2hlcmUpJyk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zZWxlY3RvcltrZXlzWzBdXSxcbiAgICBlbnRpdHlUeXBlOiBrZXlzWzBdLFxuICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZUNvbXBvbmVudENGaWx0ZXIoc2VsZWN0b3I6IENvbXBvbmVudENGaWx0ZXIpOiBTZWxlY3RvckZpbHRlciB7XG4gIGNvbnN0IHsgbmFtZSwgLi4uc2hvcnRmb3JtfSA9IHNlbGVjdG9yO1xuICBsZXQgeyB0eXBlLCBzdWJ0eXBlIH0gPSBzZWxlY3RvcjtcblxuICBjb25zdCBzaG9ydGZvcm1LZXlzID0gT2JqZWN0LmtleXMoc2hvcnRmb3JtKTtcbiAgaWYoc2hvcnRmb3JtS2V5cy5sZW5ndGggKyAoKGlzRGVmaW5lZCh0eXBlKSB8fCBpc0RlZmluZWQoc3VidHlwZSkpID8gMSA6IDApID4gMSlcbiAgICB0aHJvdyBFcnJvcignQ2Fubm90IHNwZWNpZnkgdHlwZSBvciBzdWJ0eXBlIG1vcmUgdGhhbiBvbmNlJyk7XG5cbiAgaWYoc2hvcnRmb3JtS2V5cy5sZW5ndGgpe1xuICAgIHR5cGUgPSBzaG9ydGZvcm1LZXlzWzBdO1xuICAgIGNvbnN0IHRtcFN1YnR5cGUgPSAoc2hvcnRmb3JtIGFzIHtbdHlwZTogc3RyaW5nXTogc3RyaW5nfSlbdHlwZV07XG4gICAgaWYodHlwZW9mIHRtcFN1YnR5cGUgIT09ICdzdHJpbmcnKVxuICAgICAgdGhyb3cgRXJyb3IoJ1Nob3J0Zm9ybSBvZiBjb21wb25lbnQgc2VsZWN0b3IgbXVzdCBoYXZlIGEgc3RyaW5nIHN1YnR5cGUnKTtcbiAgICBzdWJ0eXBlID0gdG1wU3VidHlwZTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZW50aXR5VHlwZTogTW9kZWxFbnRpdHlUeXBlcy5jb21wb25lbnQsXG4gICAgdHlwZSxcbiAgICAuLi5zdWJ0eXBlID8ge3N1YnR5cGV9IDoge30sXG4gICAgLi4ubmFtZSA/IHtuYW1lfSA6IHt9LFxuICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZVN0cmluZ1NlbGVjdG9yKHNlbGVjdG9yOiBzdHJpbmcpOiBTZWxlY3RvciB7XG4gIHJldHVybiB7XG4gICAgcHJvcGVydHlSZWZlcmVuY2U6IHBhcnNlU2NvcGVSZWZlcmVuY2Uoc2VsZWN0b3IpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZVNjb3BlUmVmZXJlbmNlKHM6IHN0cmluZyk6IFJ1bGVTY29wZVJlZmVyZW5jZSB7XG4gIGNvbnN0IFsgaWRlbnRpZmllciAsIC4uLnByb3BlcnR5UGF0aF0gPSBzLnNwbGl0KCcuJyk7XG4gIHJldHVybiB7XG4gICAgaWRlbnRpZmllcixcbiAgICBwcm9wZXJ0eVBhdGgsXG4gIH07XG59XG5cblxuZnVuY3Rpb24gcGFyc2VDb25kaXRpb25zKFxuICBjb25kaXRpb25zPzogQ1J1bGVDb25kaXRpb25zLFxuKTogeyB3aGVyZT86IFJ1bGVDb25kaXRpb25zOyB9IHtcbiAgaWYoY29uZGl0aW9ucyA9PT0gdW5kZWZpbmVkKSByZXR1cm4ge307XG5cbiAgcmV0dXJuIHtcbiAgICB3aGVyZTogKHR5cGVvZiBjb25kaXRpb25zID09PSAnc3RyaW5nJ1xuICAgICAgPyBbcGFyc2VDb25kaXRpb24oY29uZGl0aW9ucyldXG4gICAgICA6IGNvbmRpdGlvbnMubWFwKHBhcnNlQ29uZGl0aW9uKVxuICAgICkuZmlsdGVyKGlzRGVmaW5lZCksXG4gIH07XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ29uZGl0aW9uKGNvbmRpdGlvbjogc3RyaW5nKTogUnVsZUNvbmRpdGlvbiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHNwbGl0Q29uZGl0aW9ucyA9IGNvbmRpdGlvblxuICAgIC5zcGxpdCgvXFxzKy9nKTtcbiAgaWYoIXNwbGl0Q29uZGl0aW9ucyB8fCBzcGxpdENvbmRpdGlvbnMubGVuZ3RoICE9PSAzKVxuICAgIHJldHVybjtcbiAgY29uc3QgW2xlZnRJbnB1dCwgb3BlcmF0b3IsIHJpZ2h0SW5wdXRdID0gc3BsaXRDb25kaXRpb25zO1xuXG4gIGlmKCFPYmplY3QudmFsdWVzKFJ1bGVDb25kaXRpb25PcGVyYXRvcikuaW5jbHVkZXMob3BlcmF0b3IgYXMgUnVsZUNvbmRpdGlvbk9wZXJhdG9yKSlcbiAgICByZXR1cm47XG5cbiAgY29uc3QgY29uZGl0aW9uSW5wdXRGcm9tU3RyID0gKHM6IHN0cmluZyk6IENvbmRpdGlvbklucHV0ID0+IHtcbiAgICBjb25zdCBzdHJTY2FsYXJSZWdFeHAgPSAvXltcIiddKC4qKVtcIiddJC87XG4gICAgaWYoIWlzTmFOKHMgYXMgdW5rbm93biBhcyBudW1iZXIpKVxuICAgICAgcmV0dXJuIHsgc2NhbGFyOiBwYXJzZUludChzKSB9O1xuICAgIGVsc2Uge1xuICAgICAgY29uc3Qgc3RyU2NhbGFyUkVNYXRjaCA9IHMubWF0Y2goc3RyU2NhbGFyUmVnRXhwKTtcbiAgICAgIGlmKHN0clNjYWxhclJFTWF0Y2ggJiYgc3RyU2NhbGFyUkVNYXRjaFsxXSAhPT0gdW5kZWZpbmVkKXtcbiAgICAgICAgcmV0dXJuIHsgc2NhbGFyOiBzdHJTY2FsYXJSRU1hdGNoWzFdIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcGFyc2VTY29wZVJlZmVyZW5jZShzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICBvcGVyYXRvcjogb3BlcmF0b3IgYXMgUnVsZUNvbmRpdGlvbk9wZXJhdG9yLFxuICAgIGxlZnRJbnB1dDogY29uZGl0aW9uSW5wdXRGcm9tU3RyKGxlZnRJbnB1dCksXG4gICAgcmlnaHRJbnB1dDogY29uZGl0aW9uSW5wdXRGcm9tU3RyKHJpZ2h0SW5wdXQpLFxuICB9O1xufVxuXG5mdW5jdGlvbiBwYXJzZUVmZmVjdChlZmZlY3Q6IENSdWxlRWZmZWN0RGVmaW5pdGlvbiB8IHVuZGVmaW5lZCk6IFJ1bGVFZmZlY3REZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgaWYoZWZmZWN0ID09PSB1bmRlZmluZWQpIHJldHVybiBlZmZlY3Q7XG4gIGlmKGVmZmVjdC50YXJnZXQgPT09IHVuZGVmaW5lZCkge1xuICAgIGVmZmVjdC50YXJnZXQgPSAnY2hhbmdlJztcbiAgfVxuICByZXR1cm4gZWZmZWN0IGFzIFJ1bGVFZmZlY3REZWZpbml0aW9uO1xufSJdfQ==

@@ -38,7 +38,7 @@ "use strict";

processRulesWithScope(rules, scope) {
return new Map([...node_1.flatMap(rules, r => [...this.processRule(r, scope)])]);
return new Map([...(0, node_1.flatMap)(rules, r => [...this.processRule(r, scope)])]);
}
processRule(rule, currentScope) {
const newScopes = this.getScopesFromDeclarations(rule, currentScope);
return new Map([...node_1.flatMap(newScopes, (newScope) => {
return new Map([...(0, node_1.flatMap)(newScopes, (newScope) => {
let output = new Map();

@@ -63,3 +63,3 @@ if (rule.effect)

Object.entries((_a = rule.let) !== null && _a !== void 0 ? _a : []).forEach(([identifier, selector]) => {
newScopes = node_1.flatMap([...newScopes], (scope) => {
newScopes = (0, node_1.flatMap)([...newScopes], (scope) => {
const newScopeNodes = this.processDefinition(identifier, selector, scope);

@@ -75,3 +75,3 @@ if (!newScopeNodes.length)

let candidates = [];
if (rules_1.selectorIsReference(selector)) {
if ((0, rules_1.selectorIsReference)(selector)) {
const identifierModelEntity = scope[selector.propertyReference.identifier];

@@ -103,5 +103,5 @@ if (identifierModelEntity === undefined)

return [
...node_1.flatMap(newPropertyScopeNodes, v => this.navigateToPath(v, path)),
...node_1.flatMap(nestedPropertyScopeNodes, v => this.navigateToPath(v, path.slice(1))),
...node_1.flatMap(exposesValuesScopeNodes, v => this.navigateToPath(v, path.slice(1))),
...(0, node_1.flatMap)(newPropertyScopeNodes, v => this.navigateToPath(v, path)),
...(0, node_1.flatMap)(nestedPropertyScopeNodes, v => this.navigateToPath(v, path.slice(1))),
...(0, node_1.flatMap)(exposesValuesScopeNodes, v => this.navigateToPath(v, path.slice(1))),
...(_a = [entity.vertex[path[0]]].filter(fn.isDefined).map(scalarToScopeNode)) !== null && _a !== void 0 ? _a : [],

@@ -124,3 +124,3 @@ ];

var _a;
if (rules_1.isInputScalar(i))
if ((0, rules_1.isInputScalar)(i))
return [{ value: i.scalar }];

@@ -148,2 +148,2 @@ if (i.identifier === undefined)

exports.RuleProcessor = RuleProcessor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydWxlLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwwQ0FTd0I7QUFDeEIsOEJBQThCO0FBQzlCLDBDQUEwQztBQUMxQywyREFPNkI7QUFXN0IsU0FBZ0IsYUFBYSxDQUFDLENBQVksSUFBMEIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQWpILHNDQUFpSDtBQUlqSCxTQUFnQixZQUFZLENBQUMsQ0FBWSxJQUF5QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBOUcsb0NBQThHO0FBRTlHLFNBQVMsaUJBQWlCLENBQUMsTUFBMkI7SUFDcEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO0FBQ2xCLENBQUM7QUFDRCxTQUFTLGlCQUFpQixDQUFDLEtBQTBCO0lBQ25ELE9BQU8sRUFBQyxLQUFLLEVBQUMsQ0FBQztBQUNqQixDQUFDO0FBS0QsTUFBTSxpQkFBaUIsR0FBbUQ7SUFDeEUsQ0FBQyw2QkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxvQ0FBZ0I7SUFDbkQsQ0FBQyw2QkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxpQ0FBYTtJQUM3QyxDQUFDLDZCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUFFLHFDQUFpQjtJQUNyRCxDQUFDLDZCQUFxQixDQUFDLGNBQWMsQ0FBQyxFQUFFLHlDQUFxQjtJQUM3RCxDQUFDLDZCQUFxQixDQUFDLFFBQVEsQ0FBQyxFQUFFLG1DQUFlO0lBQ2pELENBQUMsNkJBQXFCLENBQUMsYUFBYSxDQUFDLEVBQUUsd0NBQW9CO0NBQzVELENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUVqQyxNQUFhLGFBQWE7SUFFeEIsWUFDbUIs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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxFbnRpdHksIFNlcmlhbGl6ZWQsIFJ1bGVFZmZlY3QgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgVXNlclJ1bGVzLFxuICBVc2VyUnVsZSxcbiAgUnVsZUVmZmVjdERlZmluaXRpb24sXG4gIFNlbGVjdG9yLFxuICBzZWxlY3RvcklzUmVmZXJlbmNlLFxuICBSdWxlQ29uZGl0aW9ucyxcbiAgUnVsZUNvbmRpdGlvbk9wZXJhdG9yLFxuICBpc0lucHV0U2NhbGFyLFxufSBmcm9tICdAYXdzLWMyYS9ydWxlcyc7XG5pbXBvcnQgKiBhcyBmbiBmcm9tICdmaWZpbmV0JztcbmltcG9ydCB7IGZsYXRNYXAgfSBmcm9tICcuLi9wcml2YXRlL25vZGUnO1xuaW1wb3J0IHtcbiAgYXBwbGllc1RvSGFuZGxlcixcbiAgaXNDb250YWluZWRJbkhhbmRsZXIsXG4gIGNvbnRhaW5zSGFuZGxlcixcbiAgaXNSZWZlcmVuY2VkSW5IYW5kbGVyLFxuICByZWZlcmVuY2VzSGFuZGxlcixcbiAgZXF1YWxzSGFuZGxlcixcbn0gZnJvbSAnLi9vcGVyYXRvci1oYW5kbGVycyc7XG5cbi8qKlxuICogUHJvY2VzcyB1c2VyIHJ1bGVzIGFuZCBhc3NpZ24gcnVsZSBlZmZlY3RzIHRvIHRoZSByZXNwZWN0aXZlIHZlcnRpY2VzIGluIHRoZSBncmFwaFxuICovXG5leHBvcnQgdHlwZSBSdWxlc1Njb3BlID0gUmVjb3JkPHN0cmluZywgU2NvcGVOb2RlPjtcbmV4cG9ydCB0eXBlIFJ1bGVPdXRwdXQgPSBNYXA8Zm4uVmVydGV4PGFueSwgYW55PiwgUnVsZUVmZmVjdD47XG5cbnR5cGUgVmVydGV4U2NvcGVOb2RlID0ge1xuICB2ZXJ0ZXg6IGZuLlZlcnRleDxhbnksIGFueT47XG59XG5leHBvcnQgZnVuY3Rpb24gaXNTY29wZVZlcnRleChuOiBTY29wZU5vZGUpOiBuIGlzIFZlcnRleFNjb3BlTm9kZSB7IHJldHVybiB7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sICd2ZXJ0ZXgnKTsgfVxudHlwZSBWYWx1ZVNjb3BlTm9kZSA9IHtcbiAgdmFsdWU6IFNlcmlhbGl6ZWRcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1Njb3BlVmFsdWUobjogU2NvcGVOb2RlKTogbiBpcyBWYWx1ZVNjb3BlTm9kZSB7IHJldHVybiB7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG4sICd2YWx1ZScpOyB9XG5leHBvcnQgdHlwZSBTY29wZU5vZGUgPSBWZXJ0ZXhTY29wZU5vZGUgfCBWYWx1ZVNjb3BlTm9kZTtcbmZ1bmN0aW9uIHZlcnRleFRvU2NvcGVOb2RlKHZlcnRleDogZm4uVmVydGV4PGFueSwgYW55Pik6IFZlcnRleFNjb3BlTm9kZSB7XG4gIHJldHVybiB7dmVydGV4fTtcbn1cbmZ1bmN0aW9uIHNjYWxhclRvU2NvcGVOb2RlKHZhbHVlOiBmbi5WZXJ0ZXg8YW55LCBhbnk+KSB7XG4gIHJldHVybiB7dmFsdWV9O1xufVxuXG5cbmV4cG9ydCB0eXBlIE9wZXJhdG9ySGFuZGxlciA9IDxWLCBFPihnOiBmbi5HcmFwaDxWLCBFPiwgdDE6IFNjb3BlTm9kZSwgdDI6IFNjb3BlTm9kZSkgPT4gYm9vbGVhbjtcblxuY29uc3Qgb3BlcmF0b3JUb0hhbmRsZXI6IFJlY29yZDxSdWxlQ29uZGl0aW9uT3BlcmF0b3IsIE9wZXJhdG9ySGFuZGxlcj4gPSB7XG4gIFtSdWxlQ29uZGl0aW9uT3BlcmF0b3IuYXBwbGllc1RvXTogYXBwbGllc1RvSGFuZGxlcixcbiAgW1J1bGVDb25kaXRpb25PcGVyYXRvci5lcXVhbHNdOiBlcXVhbHNIYW5kbGVyLFxuICBbUnVsZUNvbmRpdGlvbk9wZXJhdG9yLnJlZmVyZW5jZXNdOiByZWZlcmVuY2VzSGFuZGxlcixcbiAgW1J1bGVDb25kaXRpb25PcGVyYXRvci5pc1JlZmVyZW5jZWRJbl06IGlzUmVmZXJlbmNlZEluSGFuZGxlcixcbiAgW1J1bGVDb25kaXRpb25PcGVyYXRvci5jb250YWluc106IGNvbnRhaW5zSGFuZGxlcixcbiAgW1J1bGVDb25kaXRpb25PcGVyYXRvci5pc0NvbnRhaW5lZEluXTogaXNDb250YWluZWRJbkhhbmRsZXIsXG59O1xuXG5jb25zdCBwcm9wZXJ0eVBhdGhXaWxkY2FyZCA9ICcqJztcblxuZXhwb3J0IGNsYXNzIFJ1bGVQcm9jZXNzb3Ige1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZ3JhcGg6IGZuLkdyYXBoPGFueSwgYW55ICYge19sYWJlbDogc3RyaW5nLCBfaW46c3RyaW5nLCBfb3V0OnN0cmluZ30+LFxuICApe31cblxuICAvKipcbiAgICAgKiBBc3NpZ25zIHJ1bGUgZWZmZWN0cyB0byBzcGVjaWZpYyB2ZXJ0aWNlcyBpbiB0aGUgZ3JhcGgsIGJhc2VkIG9uIHRoZSBwcm92aWRlZCB1c2VyIHJ1bGVzXG4gICAgICovXG4gIHB1YmxpYyBwcm9jZXNzUnVsZXMocnVsZXM6IFVzZXJSdWxlcyk6IFJ1bGVPdXRwdXQge1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NSdWxlc1dpdGhTY29wZShydWxlcywge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzUnVsZXNXaXRoU2NvcGUocnVsZXM6IFVzZXJSdWxlcywgc2NvcGU6IFJ1bGVzU2NvcGUpOiBSdWxlT3V0cHV0IHtcbiAgICByZXR1cm4gbmV3IE1hcChbLi4uZmxhdE1hcChydWxlcywgciA9PiBbLi4udGhpcy5wcm9jZXNzUnVsZShyLCBzY29wZSldKV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzUnVsZShydWxlOiBVc2VyUnVsZSwgY3VycmVudFNjb3BlOiBSdWxlc1Njb3BlKTogUnVsZU91dHB1dHtcbiAgICBjb25zdCBuZXdTY29wZXMgPSB0aGlzLmdldFNjb3Blc0Zyb21EZWNsYXJhdGlvbnMocnVsZSwgY3VycmVudFNjb3BlKTtcbiAgICByZXR1cm4gbmV3IE1hcChbLi4uZmxhdE1hcChuZXdTY29wZXMsIChuZXdTY29wZSk6IFtNb2RlbEVudGl0eSwgUnVsZUVmZmVjdF1bXSA9PiB7XG4gICAgICBsZXQgb3V0cHV0ID0gbmV3IE1hcDxNb2RlbEVudGl0eSwgUnVsZUVmZmVjdD4oKTtcbiAgICAgIGlmKHJ1bGUuZWZmZWN0KVxuICAgICAgICBvdXRwdXQgPSBuZXcgTWFwKFsuLi5vdXRwdXQsIC4uLnRoaXMuZXh0cmFjdFJ1bGVFZmZlY3QobmV3U2NvcGUsIHJ1bGUuZWZmZWN0KV0pO1xuICAgICAgaWYocnVsZS50aGVuKVxuICAgICAgICBvdXRwdXQgPSBuZXcgTWFwKFsuLi5vdXRwdXQsIC4uLnRoaXMucHJvY2Vzc1J1bGVzV2l0aFNjb3BlKHJ1bGUudGhlbiwgbmV3U2NvcGUpXSk7XG4gICAgICByZXR1cm4gWy4uLm91dHB1dF07XG4gICAgfSldKTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFJ1bGVFZmZlY3Qoc2NvcGU6IFJ1bGVzU2NvcGUsIGVmZmVjdERlZmluaXRpb246IFJ1bGVFZmZlY3REZWZpbml0aW9uKTogUnVsZU91dHB1dCB7XG4gICAgY29uc3Qge3RhcmdldCwgLi4uZWZmZWN0fSA9IGVmZmVjdERlZmluaXRpb247XG4gICAgY29uc3QgdGFyZ2V0U2NvcGVOb2RlID0gc2NvcGVbdGFyZ2V0XTtcbiAgICBpZih0YXJnZXRTY29wZU5vZGUgPT09IHVuZGVmaW5lZCB8fCBpc1Njb3BlVmFsdWUodGFyZ2V0U2NvcGVOb2RlKSlcbiAgICAgIHJldHVybiBuZXcgTWFwKCk7XG4gICAgcmV0dXJuIG5ldyBNYXAoW1t0YXJnZXRTY29wZU5vZGUudmVydGV4LCBlZmZlY3RdXSk7XG4gIH1cblxuICBwcml2YXRlIGdldFNjb3Blc0Zyb21EZWNsYXJhdGlvbnMocnVsZTogVXNlclJ1bGUsIGN1cnJlbnRTY29wZTogUnVsZXNTY29wZSk6IFJ1bGVzU2NvcGVbXSB7XG4gICAgbGV0IG5ld1Njb3BlczogUnVsZXNTY29wZVtdID0gW3suLi5jdXJyZW50U2NvcGV9XTtcbiAgICBPYmplY3QuZW50cmllcyhydWxlLmxldCA/PyBbXSkuZm9yRWFjaChcbiAgICAgIChbaWRlbnRpZmllciwgc2VsZWN0b3JdKSA9PiB7XG4gICAgICAgIG5ld1Njb3BlcyA9IGZsYXRNYXAoWy4uLm5ld1Njb3Blc10sIChzY29wZSk6IFJ1bGVzU2NvcGVbXSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3U2NvcGVOb2RlcyA9IHRoaXMucHJvY2Vzc0RlZmluaXRpb24oaWRlbnRpZmllciwgc2VsZWN0b3IsIHNjb3BlKTtcbiAgICAgICAgICBpZighbmV3U2NvcGVOb2Rlcy5sZW5ndGgpXG4gICAgICAgICAgICByZXR1cm4gW3Njb3BlXTtcbiAgICAgICAgICByZXR1cm4gbmV3U2NvcGVOb2Rlcy5tYXAoZSA9PiAoey4uLnNjb3BlLCBbaWRlbnRpZmllcl06IGV9KSk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIG5ld1Njb3Blcy5maWx0ZXIoc2NvcGUgPT4gdGhpcy52ZXJpZnlDb25kaXRpb25zKHJ1bGUud2hlcmUgPz8gW10sIHNjb3BlKSk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NEZWZpbml0aW9uKGlkZW50aWZpZXI6IHN0cmluZywgc2VsZWN0b3I6IFNlbGVjdG9yLCBzY29wZTogUnVsZXNTY29wZSk6IFNjb3BlTm9kZVtde1xuICAgIGxldCBjYW5kaWRhdGVzOiBTY29wZU5vZGVbXSA9IFtdO1xuXG4gICAgaWYoc2VsZWN0b3JJc1JlZmVyZW5jZShzZWxlY3Rvcikpe1xuICAgICAgY29uc3QgaWRlbnRpZmllck1vZGVsRW50aXR5ID0gc2NvcGVbc2VsZWN0b3IucHJvcGVydHlSZWZlcmVuY2UuaWRlbnRpZmllcl07XG4gICAgICBpZihpZGVudGlmaWVyTW9kZWxFbnRpdHkgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgY2FuZGlkYXRlcyA9IHRoaXMubmF2aWdhdGVUb1BhdGgoXG4gICAgICAgIGlkZW50aWZpZXJNb2RlbEVudGl0eSxcbiAgICAgICAgc2VsZWN0b3IucHJvcGVydHlSZWZlcmVuY2UucHJvcGVydHlQYXRoLFxuICAgICAgKS5maWx0ZXIoZm4uaXNEZWZpbmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FuZGlkYXRlcyA9IHRoaXMuZ3JhcGgudihzZWxlY3Rvci5maWx0ZXIpLnJ1bigpLm1hcCh2ZXJ0ZXhUb1Njb3BlTm9kZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbmRpZGF0ZXMuZmlsdGVyKGNhbmRpZGF0ZSA9PiB7XG4gICAgICBjb25zdCBuZXdTY29wZSA9IHsuLi5zY29wZSwgW2lkZW50aWZpZXJdOiBjYW5kaWRhdGV9O1xuICAgICAgcmV0dXJuIHRoaXMudmVyaWZ5Q29uZGl0aW9ucyhcbiAgICAgICAgc2VsZWN0b3Iud2hlcmUgPz8gW10sXG4gICAgICAgIG5ld1Njb3BlLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgbmF2aWdhdGVUb1BhdGgoZW50aXR5OiBTY29wZU5vZGUsIHBhdGg/OiBzdHJpbmdbXSk6IFNjb3BlTm9kZVtdIHtcbiAgICBpZihlbnRpdHkgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFtdO1xuICAgIGlmKCFwYXRoIHx8IHBhdGgubGVuZ3RoID09PSAwKSByZXR1cm4gW2VudGl0eV07XG5cbiAgICBpZihpc1Njb3BlVmVydGV4KGVudGl0eSkpIHtcbiAgICAgIGNvbnN0IHRyYXZlcnNlID0gKGNvbmRpdGlvbnM6IGFueSk6IFZlcnRleFNjb3BlTm9kZVtdID0+XG4gICAgICAgIHRoaXMuZ3JhcGgudihlbnRpdHkudmVydGV4KS5vdXRBbnkoY29uZGl0aW9ucykucnVuKCkubWFwKHZlcnRleFRvU2NvcGVOb2RlKTtcbiAgICAgIGNvbnN0IG5ld1Byb3BlcnR5U2NvcGVOb2RlcyA9IHRyYXZlcnNlKHtfbGFiZWw6ICdoYXNQcm9wZXJ0aWVzJ30pO1xuICAgICAgY29uc3QgbmVzdGVkUHJvcGVydHlTY29wZU5vZGVzID0gdHJhdmVyc2Uoe19sYWJlbDogJ3ZhbHVlJywgLi4ucGF0aFswXSA9PT0gcHJvcGVydHlQYXRoV2lsZGNhcmQgPyB7fSA6IHtrZXk6IHBhdGhbMF19fSk7XG4gICAgICBjb25zdCBleHBvc2VzVmFsdWVzU2NvcGVOb2RlcyA9IHRyYXZlcnNlKHtfbGFiZWw6ICdleHBvc2VzVmFsdWVzJywga2V5OiBwYXRoWzBdfSk7XG5cbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmZsYXRNYXAobmV3UHJvcGVydHlTY29wZU5vZGVzLCB2ID0+IHRoaXMubmF2aWdhdGVUb1BhdGgodiwgcGF0aCkpLFxuICAgICAgICAuLi5mbGF0TWFwKG5lc3RlZFByb3BlcnR5U2NvcGVOb2RlcywgdiA9PiB0aGlzLm5hdmlnYXRlVG9QYXRoKHYsIHBhdGguc2xpY2UoMSkpKSxcbiAgICAgICAgLi4uZmxhdE1hcChleHBvc2VzVmFsdWVzU2NvcGVOb2RlcywgdiA9PiB0aGlzLm5hdmlnYXRlVG9QYXRoKHYsIHBhdGguc2xpY2UoMSkpKSxcbiAgICAgICAgLi4uW2VudGl0eS52ZXJ0ZXhbcGF0aFswXV1dLmZpbHRlcihmbi5pc0RlZmluZWQpLm1hcChzY2FsYXJUb1Njb3BlTm9kZSkgPz8gW10sXG4gICAgICBdO1xuICAgIH0gZWxzZSBpZihpc1Njb3BlVmFsdWUoZW50aXR5KSl7XG4gICAgICBjb25zdCB2YWx1ZSA9IGVudGl0eS52YWx1ZTtcbiAgICAgIGlmKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09IHVuZGVmaW5lZCkgcmV0dXJuIFtdO1xuICAgICAgaWYodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jyl7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdmlnYXRlVG9QYXRoKCh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtwYXRoWzBdXSwgcGF0aC5zbGljZSgxKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHZlcmlmeUNvbmRpdGlvbnMoXG4gICAgY29uZGl0aW9uczogUnVsZUNvbmRpdGlvbnMsXG4gICAgc2NvcGU6IFJ1bGVzU2NvcGUsXG4gICk6IGJvb2xlYW4ge1xuXG4gICAgZm9yKGNvbnN0IGMgb2YgY29uZGl0aW9ucyl7XG4gICAgICBjb25zdCBbbGVmdENhbmRpZGF0ZXMsIHJpZ2h0Q2FuZGlkYXRlc10gPSBbYy5sZWZ0SW5wdXQsIGMucmlnaHRJbnB1dF0ubWFwKChpKTogU2NvcGVOb2RlW10gPT4ge1xuICAgICAgICBpZihpc0lucHV0U2NhbGFyKGkpKSByZXR1cm4gW3sgdmFsdWU6IGkuc2NhbGFyIH1dO1xuICAgICAgICBpZihpLmlkZW50aWZpZXIgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFtdO1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZpZ2F0ZVRvUGF0aChzY29wZVtpLmlkZW50aWZpZXJdLCBpLnByb3BlcnR5UGF0aCA/PyBbXSk7XG4gICAgICB9KTtcblxuICAgICAgbGV0IGFwcHJvdmVkID0gZmFsc2U7XG4gICAgICBmb3IgKGxldCBsID0gMDsgIWFwcHJvdmVkICYmIGwgPCBsZWZ0Q2FuZGlkYXRlcy5sZW5ndGg7IGwrKykge1xuICAgICAgICBjb25zdCBsZWZ0ID0gbGVmdENhbmRpZGF0ZXNbbF07XG4gICAgICAgIGZvciAobGV0IHIgPSAwOyAhYXBwcm92ZWQgJiYgciA8IHJpZ2h0Q2FuZGlkYXRlcy5sZW5ndGg7IHIrKykge1xuICAgICAgICAgIGNvbnN0IHJpZ2h0ID0gcmlnaHRDYW5kaWRhdGVzW3JdO1xuICAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0ICYmIE9iamVjdC52YWx1ZXMoUnVsZUNvbmRpdGlvbk9wZXJhdG9yKS5pbmNsdWRlcyhjLm9wZXJhdG9yKSkge1xuICAgICAgICAgICAgYXBwcm92ZWQgPSBvcGVyYXRvclRvSGFuZGxlcltjLm9wZXJhdG9yXSh0aGlzLmdyYXBoLCBsZWZ0LCByaWdodCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZighYXBwcm92ZWQpIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydWxlLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwwQ0FTd0I7QUFDeEIsOEJBQThCO0FBQzlCLDBDQUEwQztBQUMxQywyREFPNkI7QUFXN0IsU0FBZ0IsYUFBYSxDQUFDLENBQVksSUFBMEIsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQWpILHNDQUFpSDtBQUlqSCxTQUFnQixZQUFZLENBQUMsQ0FBWSxJQUF5QixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFBOUcsb0NBQThHO0FBRTlHLFNBQVMsaUJBQWlCLENBQUMsTUFBMkI7SUFDcEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxDQUFDO0FBQ2xCLENBQUM7QUFDRCxTQUFTLGlCQUFpQixDQUFDLEtBQTBCO0lBQ25ELE9BQU8sRUFBQyxLQUFLLEVBQUMsQ0FBQztBQUNqQixDQUFDO0FBS0QsTUFBTSxpQkFBaUIsR0FBbUQ7SUFDeEUsQ0FBQyw2QkFBcUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxvQ0FBZ0I7SUFDbkQsQ0FBQyw2QkFBcUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxpQ0FBYTtJQUM3QyxDQUFDLDZCQUFxQixDQUFDLFVBQVUsQ0FBQyxFQUFFLHFDQUFpQjtJQUNyRCxDQUFDLDZCQUFxQixDQUFDLGNBQWMsQ0FBQyxFQUFFLHlDQUFxQjtJQUM3RCxDQUFDLDZCQUFxQixDQUFDLFFBQVEsQ0FBQyxFQUFFLG1DQUFlO0lBQ2pELENBQUMsNkJBQXFCLENBQUMsYUFBYSxDQUFDLEVBQUUsd0NBQW9CO0NBQzVELENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUVqQyxNQUFhLGFBQWE7SUFFeEIsWUFDbUIs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SSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBbElELHNDQWtJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsRW50aXR5LCBTZXJpYWxpemVkLCBSdWxlRWZmZWN0IH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7XG4gIFVzZXJSdWxlcyxcbiAgVXNlclJ1bGUsXG4gIFJ1bGVFZmZlY3REZWZpbml0aW9uLFxuICBTZWxlY3RvcixcbiAgc2VsZWN0b3JJc1JlZmVyZW5jZSxcbiAgUnVsZUNvbmRpdGlvbnMsXG4gIFJ1bGVDb25kaXRpb25PcGVyYXRvcixcbiAgaXNJbnB1dFNjYWxhcixcbn0gZnJvbSAnQGF3cy1jMmEvcnVsZXMnO1xuaW1wb3J0ICogYXMgZm4gZnJvbSAnZmlmaW5ldCc7XG5pbXBvcnQgeyBmbGF0TWFwIH0gZnJvbSAnLi4vcHJpdmF0ZS9ub2RlJztcbmltcG9ydCB7XG4gIGFwcGxpZXNUb0hhbmRsZXIsXG4gIGlzQ29udGFpbmVkSW5IYW5kbGVyLFxuICBjb250YWluc0hhbmRsZXIsXG4gIGlzUmVmZXJlbmNlZEluSGFuZGxlcixcbiAgcmVmZXJlbmNlc0hhbmRsZXIsXG4gIGVxdWFsc0hhbmRsZXIsXG59IGZyb20gJy4vb3BlcmF0b3ItaGFuZGxlcnMnO1xuXG4vKipcbiAqIFByb2Nlc3MgdXNlciBydWxlcyBhbmQgYXNzaWduIHJ1bGUgZWZmZWN0cyB0byB0aGUgcmVzcGVjdGl2ZSB2ZXJ0aWNlcyBpbiB0aGUgZ3JhcGhcbiAqL1xuZXhwb3J0IHR5cGUgUnVsZXNTY29wZSA9IFJlY29yZDxzdHJpbmcsIFNjb3BlTm9kZT47XG5leHBvcnQgdHlwZSBSdWxlT3V0cHV0ID0gTWFwPGZuLlZlcnRleDxhbnksIGFueT4sIFJ1bGVFZmZlY3Q+O1xuXG50eXBlIFZlcnRleFNjb3BlTm9kZSA9IHtcbiAgdmVydGV4OiBmbi5WZXJ0ZXg8YW55LCBhbnk+O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzU2NvcGVWZXJ0ZXgobjogU2NvcGVOb2RlKTogbiBpcyBWZXJ0ZXhTY29wZU5vZGUgeyByZXR1cm4ge30uaGFzT3duUHJvcGVydHkuY2FsbChuLCAndmVydGV4Jyk7IH1cbnR5cGUgVmFsdWVTY29wZU5vZGUgPSB7XG4gIHZhbHVlOiBTZXJpYWxpemVkXG59XG5leHBvcnQgZnVuY3Rpb24gaXNTY29wZVZhbHVlKG46IFNjb3BlTm9kZSk6IG4gaXMgVmFsdWVTY29wZU5vZGUgeyByZXR1cm4ge30uaGFzT3duUHJvcGVydHkuY2FsbChuLCAndmFsdWUnKTsgfVxuZXhwb3J0IHR5cGUgU2NvcGVOb2RlID0gVmVydGV4U2NvcGVOb2RlIHwgVmFsdWVTY29wZU5vZGU7XG5mdW5jdGlvbiB2ZXJ0ZXhUb1Njb3BlTm9kZSh2ZXJ0ZXg6IGZuLlZlcnRleDxhbnksIGFueT4pOiBWZXJ0ZXhTY29wZU5vZGUge1xuICByZXR1cm4ge3ZlcnRleH07XG59XG5mdW5jdGlvbiBzY2FsYXJUb1Njb3BlTm9kZSh2YWx1ZTogZm4uVmVydGV4PGFueSwgYW55Pikge1xuICByZXR1cm4ge3ZhbHVlfTtcbn1cblxuXG5leHBvcnQgdHlwZSBPcGVyYXRvckhhbmRsZXIgPSA8ViwgRT4oZzogZm4uR3JhcGg8ViwgRT4sIHQxOiBTY29wZU5vZGUsIHQyOiBTY29wZU5vZGUpID0+IGJvb2xlYW47XG5cbmNvbnN0IG9wZXJhdG9yVG9IYW5kbGVyOiBSZWNvcmQ8UnVsZUNvbmRpdGlvbk9wZXJhdG9yLCBPcGVyYXRvckhhbmRsZXI+ID0ge1xuICBbUnVsZUNvbmRpdGlvbk9wZXJhdG9yLmFwcGxpZXNUb106IGFwcGxpZXNUb0hhbmRsZXIsXG4gIFtSdWxlQ29uZGl0aW9uT3BlcmF0b3IuZXF1YWxzXTogZXF1YWxzSGFuZGxlcixcbiAgW1J1bGVDb25kaXRpb25PcGVyYXRvci5yZWZlcmVuY2VzXTogcmVmZXJlbmNlc0hhbmRsZXIsXG4gIFtSdWxlQ29uZGl0aW9uT3BlcmF0b3IuaXNSZWZlcmVuY2VkSW5dOiBpc1JlZmVyZW5jZWRJbkhhbmRsZXIsXG4gIFtSdWxlQ29uZGl0aW9uT3BlcmF0b3IuY29udGFpbnNdOiBjb250YWluc0hhbmRsZXIsXG4gIFtSdWxlQ29uZGl0aW9uT3BlcmF0b3IuaXNDb250YWluZWRJbl06IGlzQ29udGFpbmVkSW5IYW5kbGVyLFxufTtcblxuY29uc3QgcHJvcGVydHlQYXRoV2lsZGNhcmQgPSAnKic7XG5cbmV4cG9ydCBjbGFzcyBSdWxlUHJvY2Vzc29yIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGdyYXBoOiBmbi5HcmFwaDxhbnksIGFueSAmIHtfbGFiZWw6IHN0cmluZywgX2luOnN0cmluZywgX291dDpzdHJpbmd9PixcbiAgKXt9XG5cbiAgLyoqXG4gICAgICogQXNzaWducyBydWxlIGVmZmVjdHMgdG8gc3BlY2lmaWMgdmVydGljZXMgaW4gdGhlIGdyYXBoLCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdXNlciBydWxlc1xuICAgICAqL1xuICBwdWJsaWMgcHJvY2Vzc1J1bGVzKHJ1bGVzOiBVc2VyUnVsZXMpOiBSdWxlT3V0cHV0IHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzUnVsZXNXaXRoU2NvcGUocnVsZXMsIHt9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1J1bGVzV2l0aFNjb3BlKHJ1bGVzOiBVc2VyUnVsZXMsIHNjb3BlOiBSdWxlc1Njb3BlKTogUnVsZU91dHB1dCB7XG4gICAgcmV0dXJuIG5ldyBNYXAoWy4uLmZsYXRNYXAocnVsZXMsIHIgPT4gWy4uLnRoaXMucHJvY2Vzc1J1bGUociwgc2NvcGUpXSldKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1J1bGUocnVsZTogVXNlclJ1bGUsIGN1cnJlbnRTY29wZTogUnVsZXNTY29wZSk6IFJ1bGVPdXRwdXR7XG4gICAgY29uc3QgbmV3U2NvcGVzID0gdGhpcy5nZXRTY29wZXNGcm9tRGVjbGFyYXRpb25zKHJ1bGUsIGN1cnJlbnRTY29wZSk7XG4gICAgcmV0dXJuIG5ldyBNYXAoWy4uLmZsYXRNYXAobmV3U2NvcGVzLCAobmV3U2NvcGUpOiBbTW9kZWxFbnRpdHksIFJ1bGVFZmZlY3RdW10gPT4ge1xuICAgICAgbGV0IG91dHB1dCA9IG5ldyBNYXA8TW9kZWxFbnRpdHksIFJ1bGVFZmZlY3Q+KCk7XG4gICAgICBpZihydWxlLmVmZmVjdClcbiAgICAgICAgb3V0cHV0ID0gbmV3IE1hcChbLi4ub3V0cHV0LCAuLi50aGlzLmV4dHJhY3RSdWxlRWZmZWN0KG5ld1Njb3BlLCBydWxlLmVmZmVjdCldKTtcbiAgICAgIGlmKHJ1bGUudGhlbilcbiAgICAgICAgb3V0cHV0ID0gbmV3IE1hcChbLi4ub3V0cHV0LCAuLi50aGlzLnByb2Nlc3NSdWxlc1dpdGhTY29wZShydWxlLnRoZW4sIG5ld1Njb3BlKV0pO1xuICAgICAgcmV0dXJuIFsuLi5vdXRwdXRdO1xuICAgIH0pXSk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RSdWxlRWZmZWN0KHNjb3BlOiBSdWxlc1Njb3BlLCBlZmZlY3REZWZpbml0aW9uOiBSdWxlRWZmZWN0RGVmaW5pdGlvbik6IFJ1bGVPdXRwdXQge1xuICAgIGNvbnN0IHt0YXJnZXQsIC4uLmVmZmVjdH0gPSBlZmZlY3REZWZpbml0aW9uO1xuICAgIGNvbnN0IHRhcmdldFNjb3BlTm9kZSA9IHNjb3BlW3RhcmdldF07XG4gICAgaWYodGFyZ2V0U2NvcGVOb2RlID09PSB1bmRlZmluZWQgfHwgaXNTY29wZVZhbHVlKHRhcmdldFNjb3BlTm9kZSkpXG4gICAgICByZXR1cm4gbmV3IE1hcCgpO1xuICAgIHJldHVybiBuZXcgTWFwKFtbdGFyZ2V0U2NvcGVOb2RlLnZlcnRleCwgZWZmZWN0XV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTY29wZXNGcm9tRGVjbGFyYXRpb25zKHJ1bGU6IFVzZXJSdWxlLCBjdXJyZW50U2NvcGU6IFJ1bGVzU2NvcGUpOiBSdWxlc1Njb3BlW10ge1xuICAgIGxldCBuZXdTY29wZXM6IFJ1bGVzU2NvcGVbXSA9IFt7Li4uY3VycmVudFNjb3BlfV07XG4gICAgT2JqZWN0LmVudHJpZXMocnVsZS5sZXQgPz8gW10pLmZvckVhY2goXG4gICAgICAoW2lkZW50aWZpZXIsIHNlbGVjdG9yXSkgPT4ge1xuICAgICAgICBuZXdTY29wZXMgPSBmbGF0TWFwKFsuLi5uZXdTY29wZXNdLCAoc2NvcGUpOiBSdWxlc1Njb3BlW10gPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1Njb3BlTm9kZXMgPSB0aGlzLnByb2Nlc3NEZWZpbml0aW9uKGlkZW50aWZpZXIsIHNlbGVjdG9yLCBzY29wZSk7XG4gICAgICAgICAgaWYoIW5ld1Njb3BlTm9kZXMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIFtzY29wZV07XG4gICAgICAgICAgcmV0dXJuIG5ld1Njb3BlTm9kZXMubWFwKGUgPT4gKHsuLi5zY29wZSwgW2lkZW50aWZpZXJdOiBlfSkpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHJldHVybiBuZXdTY29wZXMuZmlsdGVyKHNjb3BlID0+IHRoaXMudmVyaWZ5Q29uZGl0aW9ucyhydWxlLndoZXJlID8/IFtdLCBzY29wZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzRGVmaW5pdGlvbihpZGVudGlmaWVyOiBzdHJpbmcsIHNlbGVjdG9yOiBTZWxlY3Rvciwgc2NvcGU6IFJ1bGVzU2NvcGUpOiBTY29wZU5vZGVbXXtcbiAgICBsZXQgY2FuZGlkYXRlczogU2NvcGVOb2RlW10gPSBbXTtcblxuICAgIGlmKHNlbGVjdG9ySXNSZWZlcmVuY2Uoc2VsZWN0b3IpKXtcbiAgICAgIGNvbnN0IGlkZW50aWZpZXJNb2RlbEVudGl0eSA9IHNjb3BlW3NlbGVjdG9yLnByb3BlcnR5UmVmZXJlbmNlLmlkZW50aWZpZXJdO1xuICAgICAgaWYoaWRlbnRpZmllck1vZGVsRW50aXR5ID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIGNhbmRpZGF0ZXMgPSB0aGlzLm5hdmlnYXRlVG9QYXRoKFxuICAgICAgICBpZGVudGlmaWVyTW9kZWxFbnRpdHksXG4gICAgICAgIHNlbGVjdG9yLnByb3BlcnR5UmVmZXJlbmNlLnByb3BlcnR5UGF0aCxcbiAgICAgICkuZmlsdGVyKGZuLmlzRGVmaW5lZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbmRpZGF0ZXMgPSB0aGlzLmdyYXBoLnYoc2VsZWN0b3IuZmlsdGVyKS5ydW4oKS5tYXAodmVydGV4VG9TY29wZU5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBjYW5kaWRhdGVzLmZpbHRlcihjYW5kaWRhdGUgPT4ge1xuICAgICAgY29uc3QgbmV3U2NvcGUgPSB7Li4uc2NvcGUsIFtpZGVudGlmaWVyXTogY2FuZGlkYXRlfTtcbiAgICAgIHJldHVybiB0aGlzLnZlcmlmeUNvbmRpdGlvbnMoXG4gICAgICAgIHNlbGVjdG9yLndoZXJlID8/IFtdLFxuICAgICAgICBuZXdTY29wZSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG9QYXRoKGVudGl0eTogU2NvcGVOb2RlLCBwYXRoPzogc3RyaW5nW10pOiBTY29wZU5vZGVbXSB7XG4gICAgaWYoZW50aXR5ID09PSB1bmRlZmluZWQpIHJldHVybiBbXTtcbiAgICBpZighcGF0aCB8fCBwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtlbnRpdHldO1xuXG4gICAgaWYoaXNTY29wZVZlcnRleChlbnRpdHkpKSB7XG4gICAgICBjb25zdCB0cmF2ZXJzZSA9IChjb25kaXRpb25zOiBhbnkpOiBWZXJ0ZXhTY29wZU5vZGVbXSA9PlxuICAgICAgICB0aGlzLmdyYXBoLnYoZW50aXR5LnZlcnRleCkub3V0QW55KGNvbmRpdGlvbnMpLnJ1bigpLm1hcCh2ZXJ0ZXhUb1Njb3BlTm9kZSk7XG4gICAgICBjb25zdCBuZXdQcm9wZXJ0eVNjb3BlTm9kZXMgPSB0cmF2ZXJzZSh7X2xhYmVsOiAnaGFzUHJvcGVydGllcyd9KTtcbiAgICAgIGNvbnN0IG5lc3RlZFByb3BlcnR5U2NvcGVOb2RlcyA9IHRyYXZlcnNlKHtfbGFiZWw6ICd2YWx1ZScsIC4uLnBhdGhbMF0gPT09IHByb3BlcnR5UGF0aFdpbGRjYXJkID8ge30gOiB7a2V5OiBwYXRoWzBdfX0pO1xuICAgICAgY29uc3QgZXhwb3Nlc1ZhbHVlc1Njb3BlTm9kZXMgPSB0cmF2ZXJzZSh7X2xhYmVsOiAnZXhwb3Nlc1ZhbHVlcycsIGtleTogcGF0aFswXX0pO1xuXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5mbGF0TWFwKG5ld1Byb3BlcnR5U2NvcGVOb2RlcywgdiA9PiB0aGlzLm5hdmlnYXRlVG9QYXRoKHYsIHBhdGgpKSxcbiAgICAgICAgLi4uZmxhdE1hcChuZXN0ZWRQcm9wZXJ0eVNjb3BlTm9kZXMsIHYgPT4gdGhpcy5uYXZpZ2F0ZVRvUGF0aCh2LCBwYXRoLnNsaWNlKDEpKSksXG4gICAgICAgIC4uLmZsYXRNYXAoZXhwb3Nlc1ZhbHVlc1Njb3BlTm9kZXMsIHYgPT4gdGhpcy5uYXZpZ2F0ZVRvUGF0aCh2LCBwYXRoLnNsaWNlKDEpKSksXG4gICAgICAgIC4uLltlbnRpdHkudmVydGV4W3BhdGhbMF1dXS5maWx0ZXIoZm4uaXNEZWZpbmVkKS5tYXAoc2NhbGFyVG9TY29wZU5vZGUpID8/IFtdLFxuICAgICAgXTtcbiAgICB9IGVsc2UgaWYoaXNTY29wZVZhbHVlKGVudGl0eSkpe1xuICAgICAgY29uc3QgdmFsdWUgPSBlbnRpdHkudmFsdWU7XG4gICAgICBpZih2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PSB1bmRlZmluZWQpIHJldHVybiBbXTtcbiAgICAgIGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpe1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZpZ2F0ZVRvUGF0aCgodmFsdWUgYXMgUmVjb3JkPHN0cmluZywgYW55PilbcGF0aFswXV0sIHBhdGguc2xpY2UoMSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICB2ZXJpZnlDb25kaXRpb25zKFxuICAgIGNvbmRpdGlvbnM6IFJ1bGVDb25kaXRpb25zLFxuICAgIHNjb3BlOiBSdWxlc1Njb3BlLFxuICApOiBib29sZWFuIHtcblxuICAgIGZvcihjb25zdCBjIG9mIGNvbmRpdGlvbnMpe1xuICAgICAgY29uc3QgW2xlZnRDYW5kaWRhdGVzLCByaWdodENhbmRpZGF0ZXNdID0gW2MubGVmdElucHV0LCBjLnJpZ2h0SW5wdXRdLm1hcCgoaSk6IFNjb3BlTm9kZVtdID0+IHtcbiAgICAgICAgaWYoaXNJbnB1dFNjYWxhcihpKSkgcmV0dXJuIFt7IHZhbHVlOiBpLnNjYWxhciB9XTtcbiAgICAgICAgaWYoaS5pZGVudGlmaWVyID09PSB1bmRlZmluZWQpIHJldHVybiBbXTtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF2aWdhdGVUb1BhdGgoc2NvcGVbaS5pZGVudGlmaWVyXSwgaS5wcm9wZXJ0eVBhdGggPz8gW10pO1xuICAgICAgfSk7XG5cbiAgICAgIGxldCBhcHByb3ZlZCA9IGZhbHNlO1xuICAgICAgZm9yIChsZXQgbCA9IDA7ICFhcHByb3ZlZCAmJiBsIDwgbGVmdENhbmRpZGF0ZXMubGVuZ3RoOyBsKyspIHtcbiAgICAgICAgY29uc3QgbGVmdCA9IGxlZnRDYW5kaWRhdGVzW2xdO1xuICAgICAgICBmb3IgKGxldCByID0gMDsgIWFwcHJvdmVkICYmIHIgPCByaWdodENhbmRpZGF0ZXMubGVuZ3RoOyByKyspIHtcbiAgICAgICAgICBjb25zdCByaWdodCA9IHJpZ2h0Q2FuZGlkYXRlc1tyXTtcbiAgICAgICAgICBpZiAobGVmdCAmJiByaWdodCAmJiBPYmplY3QudmFsdWVzKFJ1bGVDb25kaXRpb25PcGVyYXRvcikuaW5jbHVkZXMoYy5vcGVyYXRvcikpIHtcbiAgICAgICAgICAgIGFwcHJvdmVkID0gb3BlcmF0b3JUb0hhbmRsZXJbYy5vcGVyYXRvcl0odGhpcy5ncmFwaCwgbGVmdCwgcmlnaHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoIWFwcHJvdmVkKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG59Il19
{
"name": "@aws-c2a/engine",
"version": "0.5.0",
"version": "0.6.0",
"description": "The CDK Change Analyzer is a tool that enables detecting dangerous changes within CDK projects.",

@@ -29,5 +29,5 @@ "main": "lib/index.js",

"dependencies": {
"@aws-c2a/models": "^0.5.0",
"@aws-c2a/rules": "^0.5.0",
"@aws-cdk/cfnspec": "^1.115.0",
"@aws-c2a/models": "^0.6.0",
"@aws-c2a/rules": "^0.6.0",
"@aws-cdk/cfnspec": "1.115.0",
"fifinet": "0.1.7",

@@ -37,3 +37,3 @@ "graphviz": "0.0.9"

"devDependencies": {
"@aws-cdk/core": "^1.115.0",
"@aws-cdk/core": "1.115.0",
"@babel/core": "^7.12.13",

@@ -59,3 +59,3 @@ "@babel/preset-env": "^7.12.13",

},
"gitHead": "ca8a2214e9258a7193110857687cb90320fc20ac"
"gitHead": "e8b1afb56d7ea4d1eb54a44a654b4d161f8b9ccb"
}

@@ -10,6 +10,6 @@ "use strict";

const dir = 'test/change-aggregations';
const { readSampleInput, } = utils_1.ParserUtilsCreator(dir);
const { readSampleInput, } = (0, utils_1.ParserUtilsCreator)(dir);
test('Extract Agg of operation type, component type and component subtype', () => {
const diff = infra_model_diff_1.diffTestCase1();
const aggs = aggregations_1.extractComponentOperationsAggs(diff, new Map());
const diff = (0, infra_model_diff_1.diffTestCase1)();
const aggs = (0, aggregations_1.extractComponentOperationsAggs)(diff, new Map());
expect(aggs.length).toBe(1);

@@ -33,3 +33,3 @@ expect(aggs[0].characteristics).toMatchObject({ RISK: 'unknown' });

const diff = new model_diffing_1.DiffCreator(new models_1.Transition({ v1: oldModel, v2: newModel })).create();
const aggs = aggregations_1.extractComponentOperationsAggs(diff, new Map());
const aggs = (0, aggregations_1.extractComponentOperationsAggs)(diff, new Map());
expect(aggs.length).toBe(1);

@@ -39,2 +39,2 @@ expect((_a = aggs[0].subAggs) === null || _a === void 0 ? void 0 : _a.length).toBe(10);

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncy1leHRyYWN0b3IudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFnZ3MtZXh0cmFjdG9yLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBNkM7QUFDN0MseURBRWdDO0FBQ2hDLDJEQUVpQztBQUNqQyxpRUFBdUQ7QUFDdkQsNkVBQXVFO0FBQ3ZFLG9DQUE4QztBQUU5QyxNQUFNLEdBQUcsR0FBRywwQkFBMEIsQ0FBQztBQUV2QyxNQUFNLEVBQ0osZUFBZSxHQUNoQixHQUFHLDBCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRTVCLElBQUksQ0FBQyxxRUFBcUUsRUFBRSxHQUFHLEVBQUU7SUFFL0UsTUFBTSxJQUFJLEdBQUcsZ0NBQWEsRUFBRSxDQUFDO0lBQzdCLE1BQU0sSUFBSSxHQUFHLDZDQUE4QixDQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFN0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQztJQUNqRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUcsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUNsRCxtQkFBbUIsRUFBRSxnQkFBZ0I7UUFDckMsZ0JBQWdCLEVBQUUsVUFBVTtLQUM3QixDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFHLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDbEQsbUJBQW1CLEVBQUUsb0JBQW9CO1FBQ3pDLGdCQUFnQixFQUFFLFVBQVU7S0FDN0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFHSCxJQUFJLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxFQUFFOztJQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUFJLDRCQUFTLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEcsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBUyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRS9GLE1BQU0sSUFBSSxHQUFHLElBQUksMkJBQVcsQ0FBQyxJQUFJLG1CQUFVLENBQUMsRUFBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEYsTUFBTSxJQUFJLEdBQUcsNkNBQThCLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUU3RCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1QixNQUFNLENBQUMsTUFBQSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTywwQ0FBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQge1xuICBleHRyYWN0Q29tcG9uZW50T3BlcmF0aW9uc0FnZ3MsXG59IGZyb20gJy4uLy4uL2xpYi9hZ2dyZWdhdGlvbnMnO1xuaW1wb3J0IHtcbiAgRGlmZkNyZWF0b3IsXG59IGZyb20gJy4uLy4uL2xpYi9tb2RlbC1kaWZmaW5nJztcbmltcG9ydCB7IENES1BhcnNlciB9IGZyb20gJy4uLy4uL2xpYi9wbGF0Zm9ybS1tYXBwaW5nJztcbmltcG9ydCB7IGRpZmZUZXN0Q2FzZTEgfSBmcm9tICcuLi9kZWZhdWx0LXRlc3QtY2FzZXMvaW5mcmEtbW9kZWwtZGlmZic7XG5pbXBvcnQgeyBQYXJzZXJVdGlsc0NyZWF0b3IgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGRpciA9ICd0ZXN0L2NoYW5nZS1hZ2dyZWdhdGlvbnMnO1xuXG5jb25zdCB7XG4gIHJlYWRTYW1wbGVJbnB1dCxcbn0gPSBQYXJzZXJVdGlsc0NyZWF0b3IoZGlyKTtcblxudGVzdCgnRXh0cmFjdCBBZ2cgb2Ygb3BlcmF0aW9uIHR5cGUsIGNvbXBvbmVudCB0eXBlIGFuZCBjb21wb25lbnQgc3VidHlwZScsICgpID0+IHtcblxuICBjb25zdCBkaWZmID0gZGlmZlRlc3RDYXNlMSgpO1xuICBjb25zdCBhZ2dzID0gZXh0cmFjdENvbXBvbmVudE9wZXJhdGlvbnNBZ2dzKGRpZmYsIG5ldyBNYXAoKSk7XG5cbiAgZXhwZWN0KGFnZ3MubGVuZ3RoKS50b0JlKDEpO1xuICBleHBlY3QoYWdnc1swXS5jaGFyYWN0ZXJpc3RpY3MpLnRvTWF0Y2hPYmplY3Qoe1JJU0s6ICd1bmtub3duJ30pO1xuICBjb25zdCBzdWJBZ2dzMSA9IGFnZ3NbMF0uc3ViQWdncztcbiAgZXhwZWN0KHN1YkFnZ3MxPy5sZW5ndGgpLnRvQmUoMik7XG4gIGV4cGVjdChzdWJBZ2dzMT8uWzBdLmNoYXJhY3RlcmlzdGljcykudG9NYXRjaE9iamVjdCh7XG4gICAgJ0NvbXBvbmVudCBTdWJ0eXBlJzogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICAnQ29tcG9uZW50IFR5cGUnOiAncmVzb3VyY2UnLFxuICB9KTtcbiAgZXhwZWN0KHN1YkFnZ3MxPy5bMV0uY2hhcmFjdGVyaXN0aWNzKS50b01hdGNoT2JqZWN0KHtcbiAgICAnQ29tcG9uZW50IFN1YnR5cGUnOiAnQVdTOjpFQzI6Okluc3RhbmNlJyxcbiAgICAnQ29tcG9uZW50IFR5cGUnOiAncmVzb3VyY2UnLFxuICB9KTtcbn0pO1xuXG5cbnRlc3QoJ0dyb3VwIG9wZXJhdGlvbnMgZnJvbSBiaWcgdGVtcGxhdGUnLCAoKSA9PiB7XG4gIGNvbnN0IG9sZE1vZGVsID0gbmV3IENES1BhcnNlcigncm9vdCcsIHJlYWRTYW1wbGVJbnB1dCgna2Vzc2VsLXJ1bi1zdGFjay1iZWZvcmUuanNvbicpKS5wYXJzZSgpO1xuICBjb25zdCBuZXdNb2RlbCA9IG5ldyBDREtQYXJzZXIoJ3Jvb3QnLCByZWFkU2FtcGxlSW5wdXQoJ2tlc3NlbC1ydW4tc3RhY2stYWZ0ZXIuanNvbicpKS5wYXJzZSgpO1xuXG4gIGNvbnN0IGRpZmYgPSBuZXcgRGlmZkNyZWF0b3IobmV3IFRyYW5zaXRpb24oe3YxOiBvbGRNb2RlbCwgdjI6IG5ld01vZGVsfSkpLmNyZWF0ZSgpO1xuICBjb25zdCBhZ2dzID0gZXh0cmFjdENvbXBvbmVudE9wZXJhdGlvbnNBZ2dzKGRpZmYsIG5ldyBNYXAoKSk7XG5cbiAgZXhwZWN0KGFnZ3MubGVuZ3RoKS50b0JlKDEpO1xuICBleHBlY3QoYWdnc1swXS5zdWJBZ2dzPy5sZW5ndGgpLnRvQmUoMTApO1xuICBleHBlY3QoYWdnc1swXS5lbnRpdGllcy5zaXplKS50b0JlKDgxKTtcbn0pOyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncy1leHRyYWN0b3IudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFnZ3MtZXh0cmFjdG9yLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBNkM7QUFDN0MseURBRWdDO0FBQ2hDLDJEQUVpQztBQUNqQyxpRUFBdUQ7QUFDdkQsNkVBQXVFO0FBQ3ZFLG9DQUE4QztBQUU5QyxNQUFNLEdBQUcsR0FBRywwQkFBMEIsQ0FBQztBQUV2QyxNQUFNLEVBQ0osZUFBZSxHQUNoQixHQUFHLElBQUEsMEJBQWtCLEVBQUMsR0FBRyxDQUFDLENBQUM7QUFFNUIsSUFBSSxDQUFDLHFFQUFxRSxFQUFFLEdBQUcsRUFBRTtJQUUvRSxNQUFNLElBQUksR0FBRyxJQUFBLGdDQUFhLEdBQUUsQ0FBQztJQUM3QixNQUFNLElBQUksR0FBRyxJQUFBLDZDQUE4QixFQUFDLElBQUksRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFN0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQztJQUNqRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUcsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUNsRCxtQkFBbUIsRUFBRSxnQkFBZ0I7UUFDckMsZ0JBQWdCLEVBQUUsVUFBVTtLQUM3QixDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFHLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDbEQsbUJBQW1CLEVBQUUsb0JBQW9CO1FBQ3pDLGdCQUFnQixFQUFFLFVBQVU7S0FDN0IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFHSCxJQUFJLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxFQUFFOztJQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUFJLDRCQUFTLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEcsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBUyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRS9GLE1BQU0sSUFBSSxHQUFHLElBQUksMkJBQVcsQ0FBQyxJQUFJLG1CQUFVLENBQUMsRUFBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEYsTUFBTSxJQUFJLEdBQUcsSUFBQSw2Q0FBOEIsRUFBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBRTdELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLE1BQU0sQ0FBQyxNQUFBLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLDBDQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7XG4gIGV4dHJhY3RDb21wb25lbnRPcGVyYXRpb25zQWdncyxcbn0gZnJvbSAnLi4vLi4vbGliL2FnZ3JlZ2F0aW9ucyc7XG5pbXBvcnQge1xuICBEaWZmQ3JlYXRvcixcbn0gZnJvbSAnLi4vLi4vbGliL21vZGVsLWRpZmZpbmcnO1xuaW1wb3J0IHsgQ0RLUGFyc2VyIH0gZnJvbSAnLi4vLi4vbGliL3BsYXRmb3JtLW1hcHBpbmcnO1xuaW1wb3J0IHsgZGlmZlRlc3RDYXNlMSB9IGZyb20gJy4uL2RlZmF1bHQtdGVzdC1jYXNlcy9pbmZyYS1tb2RlbC1kaWZmJztcbmltcG9ydCB7IFBhcnNlclV0aWxzQ3JlYXRvciB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgZGlyID0gJ3Rlc3QvY2hhbmdlLWFnZ3JlZ2F0aW9ucyc7XG5cbmNvbnN0IHtcbiAgcmVhZFNhbXBsZUlucHV0LFxufSA9IFBhcnNlclV0aWxzQ3JlYXRvcihkaXIpO1xuXG50ZXN0KCdFeHRyYWN0IEFnZyBvZiBvcGVyYXRpb24gdHlwZSwgY29tcG9uZW50IHR5cGUgYW5kIGNvbXBvbmVudCBzdWJ0eXBlJywgKCkgPT4ge1xuXG4gIGNvbnN0IGRpZmYgPSBkaWZmVGVzdENhc2UxKCk7XG4gIGNvbnN0IGFnZ3MgPSBleHRyYWN0Q29tcG9uZW50T3BlcmF0aW9uc0FnZ3MoZGlmZiwgbmV3IE1hcCgpKTtcblxuICBleHBlY3QoYWdncy5sZW5ndGgpLnRvQmUoMSk7XG4gIGV4cGVjdChhZ2dzWzBdLmNoYXJhY3RlcmlzdGljcykudG9NYXRjaE9iamVjdCh7UklTSzogJ3Vua25vd24nfSk7XG4gIGNvbnN0IHN1YkFnZ3MxID0gYWdnc1swXS5zdWJBZ2dzO1xuICBleHBlY3Qoc3ViQWdnczE/Lmxlbmd0aCkudG9CZSgyKTtcbiAgZXhwZWN0KHN1YkFnZ3MxPy5bMF0uY2hhcmFjdGVyaXN0aWNzKS50b01hdGNoT2JqZWN0KHtcbiAgICAnQ29tcG9uZW50IFN1YnR5cGUnOiAnQVdTOjpJQU06OlJvbGUnLFxuICAgICdDb21wb25lbnQgVHlwZSc6ICdyZXNvdXJjZScsXG4gIH0pO1xuICBleHBlY3Qoc3ViQWdnczE/LlsxXS5jaGFyYWN0ZXJpc3RpY3MpLnRvTWF0Y2hPYmplY3Qoe1xuICAgICdDb21wb25lbnQgU3VidHlwZSc6ICdBV1M6OkVDMjo6SW5zdGFuY2UnLFxuICAgICdDb21wb25lbnQgVHlwZSc6ICdyZXNvdXJjZScsXG4gIH0pO1xufSk7XG5cblxudGVzdCgnR3JvdXAgb3BlcmF0aW9ucyBmcm9tIGJpZyB0ZW1wbGF0ZScsICgpID0+IHtcbiAgY29uc3Qgb2xkTW9kZWwgPSBuZXcgQ0RLUGFyc2VyKCdyb290JywgcmVhZFNhbXBsZUlucHV0KCdrZXNzZWwtcnVuLXN0YWNrLWJlZm9yZS5qc29uJykpLnBhcnNlKCk7XG4gIGNvbnN0IG5ld01vZGVsID0gbmV3IENES1BhcnNlcigncm9vdCcsIHJlYWRTYW1wbGVJbnB1dCgna2Vzc2VsLXJ1bi1zdGFjay1hZnRlci5qc29uJykpLnBhcnNlKCk7XG5cbiAgY29uc3QgZGlmZiA9IG5ldyBEaWZmQ3JlYXRvcihuZXcgVHJhbnNpdGlvbih7djE6IG9sZE1vZGVsLCB2MjogbmV3TW9kZWx9KSkuY3JlYXRlKCk7XG4gIGNvbnN0IGFnZ3MgPSBleHRyYWN0Q29tcG9uZW50T3BlcmF0aW9uc0FnZ3MoZGlmZiwgbmV3IE1hcCgpKTtcblxuICBleHBlY3QoYWdncy5sZW5ndGgpLnRvQmUoMSk7XG4gIGV4cGVjdChhZ2dzWzBdLnN1YkFnZ3M/Lmxlbmd0aCkudG9CZSgxMCk7XG4gIGV4cGVjdChhZ2dzWzBdLmVudGl0aWVzLnNpemUpLnRvQmUoODEpO1xufSk7Il19

@@ -7,4 +7,4 @@ "use strict";

test('Basic Replacement from Property Change', () => {
const diff = infra_model_diff_1.diffTestCase1();
const propagatedDiff = model_diffing_1.propagateChanges(diff);
const diff = (0, infra_model_diff_1.diffTestCase1)();
const propagatedDiff = (0, model_diffing_1.propagateChanges)(diff);
const operations = propagatedDiff.componentOperations;

@@ -56,4 +56,4 @@ const originalUpdateComponent1 = operations.find(o => {

test('ReplaceOperation-caused PropertyUpdate should have the proper property paths', () => {
const diff = infra_model_diff_1.diffTestCase1();
const propagatedDiff = model_diffing_1.propagateChanges(diff);
const diff = (0, infra_model_diff_1.diffTestCase1)();
const propagatedDiff = (0, model_diffing_1.propagateChanges)(diff);
const operations = propagatedDiff.componentOperations;

@@ -66,2 +66,2 @@ const updateCausedByReplacement = operations.find(o => o instanceof models_1.UpdatePropertyComponentOperation

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXByb3BhZ2F0aW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjaGFuZ2UtcHJvcGFnYXRpb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRDQUd5QjtBQUN6QiwyREFBMkQ7QUFDM0QsNkVBQXVFO0FBRXZFLElBQUksQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7SUFFbEQsTUFBTSxJQUFJLEdBQUcsZ0NBQWEsRUFBRSxDQUFDO0lBQzdCLE1BQU0sY0FBYyxHQUFHLGdDQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQztJQUV0RCxNQUFNLHdCQUF3QixHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1FBQUMsT0FBQSxDQUFDLFlBQVkseUNBQWdDO2VBQzFGLENBQUEsTUFBQSxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSwwQ0FBRSxJQUFJLE1BQUssWUFBWTtlQUMvQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7S0FBQSxDQUFDLENBQUM7SUFDbkIsTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFOztRQUFDLE9BQUEsQ0FBQyxZQUFZLHlDQUFnQztlQUMxRixDQUFBLE1BQUEsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsMENBQUUsSUFBSSxNQUFLLFlBQVk7ZUFDL0MsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0tBQUEsQ0FBQyxDQUFDO0lBRW5CLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9DLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRS9DLE1BQU0sc0NBQXNDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTs7UUFBQyxPQUFBLENBQUMsWUFBWSxrQ0FBeUI7ZUFDakcsQ0FBQSxNQUFBLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLDBDQUFFLElBQUksTUFBSyxZQUFZO2VBQy9DLENBQUMsQ0FBQyxLQUFLLEtBQUssd0JBQXdCLENBQUE7S0FBQSxDQUM1QyxDQUFDO0lBQ0YsTUFBTSxzQ0FBc0MsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFOztRQUFDLE9BQUEsQ0FBQyxZQUFZLGtDQUF5QjtlQUNqRyxDQUFBLE1BQUEsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsMENBQUUsSUFBSSxNQUFLLFlBQVk7ZUFDL0MsQ0FBQyxDQUFDLEtBQUssS0FBSyx3QkFBd0IsQ0FBQTtLQUFBLENBQzVDLENBQUM7SUFFRixNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3RCxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUU3RCxNQUFNLG1DQUFtQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1FBQUMsT0FBQSxDQUFDLFlBQVkseUNBQWdDO2VBQ3JHLENBQUEsTUFBQSxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSwwQ0FBRSxJQUFJLE1BQUssWUFBWTtlQUMvQyxDQUFDLENBQUMsS0FBSyxLQUFLLHNDQUFzQyxDQUFBO0tBQUEsQ0FDMUQsQ0FBQztJQUNGLE1BQU0sMkRBQTJELEdBQy9ELFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1FBQUMsT0FBQSxDQUFDLFlBQVksa0NBQXlCO2VBQ3RELENBQUEsTUFBQSxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSwwQ0FBRSxJQUFJLE1BQUssWUFBWTtlQUMvQyxDQUFDLENBQUMsS0FBSyxLQUFLLG1DQUFtQyxDQUFBO0tBQUEsQ0FDbkQsQ0FBQztJQUVKLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFELE1BQU0sQ0FBQywyREFBMkQsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRWxGLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBR0gsSUFBSSxDQUFDLDhFQUE4RSxFQUFFLEdBQUcsRUFBRTtJQUV4RixNQUFNLElBQUksR0FBRyxnQ0FBYSxFQUFFLENBQUM7SUFDN0IsTUFBTSxjQUFjLEdBQUcsZ0NBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLG1CQUFtQixDQUFDO0lBRXRELE1BQU0seUJBQXlCLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNwRCxDQUFDLFlBQVkseUNBQWdDO1dBQ3RDLENBQUMsQ0FBQyxLQUFLLFlBQVksa0NBQXlCLENBQXFDLENBQUM7SUFDM0YsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEQsTUFBTSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNyRixNQUFNLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLG1CQUFtQixFQUFFLHNCQUFzQixDQUFDLENBQUMsQ0FBQztBQUM3RyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb24sXG4gIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uLFxufSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgcHJvcGFnYXRlQ2hhbmdlcyB9IGZyb20gJy4uLy4uL2xpYi9tb2RlbC1kaWZmaW5nJztcbmltcG9ydCB7IGRpZmZUZXN0Q2FzZTEgfSBmcm9tICcuLi9kZWZhdWx0LXRlc3QtY2FzZXMvaW5mcmEtbW9kZWwtZGlmZic7XG5cbnRlc3QoJ0Jhc2ljIFJlcGxhY2VtZW50IGZyb20gUHJvcGVydHkgQ2hhbmdlJywgKCkgPT4ge1xuXG4gIGNvbnN0IGRpZmYgPSBkaWZmVGVzdENhc2UxKCk7XG4gIGNvbnN0IHByb3BhZ2F0ZWREaWZmID0gcHJvcGFnYXRlQ2hhbmdlcyhkaWZmKTtcbiAgY29uc3Qgb3BlcmF0aW9ucyA9IHByb3BhZ2F0ZWREaWZmLmNvbXBvbmVudE9wZXJhdGlvbnM7XG5cbiAgY29uc3Qgb3JpZ2luYWxVcGRhdGVDb21wb25lbnQxID0gb3BlcmF0aW9ucy5maW5kKG8gPT4gbyBpbnN0YW5jZW9mIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uXG4gICAgICAgICYmIG8uY29tcG9uZW50VHJhbnNpdGlvbi52MT8ubmFtZSA9PT0gJ2NvbXBvbmVudDEnXG4gICAgICAgICYmICFvLmNhdXNlKTtcbiAgY29uc3Qgb3JpZ2luYWxVcGRhdGVDb21wb25lbnQyID0gb3BlcmF0aW9ucy5maW5kKG8gPT4gbyBpbnN0YW5jZW9mIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uXG4gICAgICAgICYmIG8uY29tcG9uZW50VHJhbnNpdGlvbi52MT8ubmFtZSA9PT0gJ2NvbXBvbmVudDInXG4gICAgICAgICYmICFvLmNhdXNlKTtcblxuICBleHBlY3Qob3JpZ2luYWxVcGRhdGVDb21wb25lbnQxKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3Qob3JpZ2luYWxVcGRhdGVDb21wb25lbnQyKS50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHJlcGxhY2VtZW50Q29tcDFDYXVzZWRCeU9yaWdpbmFsVXBkYXRlID0gb3BlcmF0aW9ucy5maW5kKG8gPT4gbyBpbnN0YW5jZW9mIFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb25cbiAgICAgICAgJiYgby5jb21wb25lbnRUcmFuc2l0aW9uLnYxPy5uYW1lID09PSAnY29tcG9uZW50MSdcbiAgICAgICAgJiYgby5jYXVzZSA9PT0gb3JpZ2luYWxVcGRhdGVDb21wb25lbnQxLFxuICApO1xuICBjb25zdCByZXBsYWNlbWVudENvbXAyQ2F1c2VkQnlPcmlnaW5hbFVwZGF0ZSA9IG9wZXJhdGlvbnMuZmluZChvID0+IG8gaW5zdGFuY2VvZiBSZXBsYWNlQ29tcG9uZW50T3BlcmF0aW9uXG4gICAgICAgICYmIG8uY29tcG9uZW50VHJhbnNpdGlvbi52MT8ubmFtZSA9PT0gJ2NvbXBvbmVudDInXG4gICAgICAgICYmIG8uY2F1c2UgPT09IG9yaWdpbmFsVXBkYXRlQ29tcG9uZW50MixcbiAgKTtcblxuICBleHBlY3QocmVwbGFjZW1lbnRDb21wMUNhdXNlZEJ5T3JpZ2luYWxVcGRhdGUpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChyZXBsYWNlbWVudENvbXAyQ2F1c2VkQnlPcmlnaW5hbFVwZGF0ZSkudG9CZURlZmluZWQoKTtcblxuICBjb25zdCB1cGRhdGVDb21wMkNhdXNlZEJ5UmVwbGFjZW1lbnRDb21wMSA9IG9wZXJhdGlvbnMuZmluZChvID0+IG8gaW5zdGFuY2VvZiBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvblxuICAgICAgICAmJiBvLmNvbXBvbmVudFRyYW5zaXRpb24udjE/Lm5hbWUgPT09ICdjb21wb25lbnQyJ1xuICAgICAgICAmJiBvLmNhdXNlID09PSByZXBsYWNlbWVudENvbXAxQ2F1c2VkQnlPcmlnaW5hbFVwZGF0ZSxcbiAgKTtcbiAgY29uc3QgcmVwbGFjZW1lbnRDb21wMkNhdXNlZEJ5VXBkYXRlQ29tcDJDYXVzZWRCeVJlcGxhY2VtZW50Q29tcDEgPVxuICAgIG9wZXJhdGlvbnMuZmluZChvID0+IG8gaW5zdGFuY2VvZiBSZXBsYWNlQ29tcG9uZW50T3BlcmF0aW9uXG4gICAgICAmJiBvLmNvbXBvbmVudFRyYW5zaXRpb24udjE/Lm5hbWUgPT09ICdjb21wb25lbnQyJ1xuICAgICAgJiYgby5jYXVzZSA9PT0gdXBkYXRlQ29tcDJDYXVzZWRCeVJlcGxhY2VtZW50Q29tcDEsXG4gICAgKTtcblxuICBleHBlY3QodXBkYXRlQ29tcDJDYXVzZWRCeVJlcGxhY2VtZW50Q29tcDEpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChyZXBsYWNlbWVudENvbXAyQ2F1c2VkQnlVcGRhdGVDb21wMkNhdXNlZEJ5UmVwbGFjZW1lbnRDb21wMSkudG9CZURlZmluZWQoKTtcblxuICBleHBlY3Qob3BlcmF0aW9ucy5sZW5ndGgpLnRvQmUoNik7XG59KTtcblxuXG50ZXN0KCdSZXBsYWNlT3BlcmF0aW9uLWNhdXNlZCBQcm9wZXJ0eVVwZGF0ZSBzaG91bGQgaGF2ZSB0aGUgcHJvcGVyIHByb3BlcnR5IHBhdGhzJywgKCkgPT4ge1xuXG4gIGNvbnN0IGRpZmYgPSBkaWZmVGVzdENhc2UxKCk7XG4gIGNvbnN0IHByb3BhZ2F0ZWREaWZmID0gcHJvcGFnYXRlQ2hhbmdlcyhkaWZmKTtcbiAgY29uc3Qgb3BlcmF0aW9ucyA9IHByb3BhZ2F0ZWREaWZmLmNvbXBvbmVudE9wZXJhdGlvbnM7XG5cbiAgY29uc3QgdXBkYXRlQ2F1c2VkQnlSZXBsYWNlbWVudCA9IG9wZXJhdGlvbnMuZmluZChvID0+XG4gICAgbyBpbnN0YW5jZW9mIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uXG4gICAgICAgICYmIG8uY2F1c2UgaW5zdGFuY2VvZiBSZXBsYWNlQ29tcG9uZW50T3BlcmF0aW9uKSBhcyBVcGRhdGVQcm9wZXJ0eUNvbXBvbmVudE9wZXJhdGlvbjtcbiAgZXhwZWN0KHVwZGF0ZUNhdXNlZEJ5UmVwbGFjZW1lbnQpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdCh1cGRhdGVDYXVzZWRCeVJlcGxhY2VtZW50LnBhdGhUcmFuc2l0aW9uLnYxKS50b0VxdWFsKFsnbmVzdGVkJywgJ3Byb3BDb21wMiddKTtcbiAgZXhwZWN0KHVwZGF0ZUNhdXNlZEJ5UmVwbGFjZW1lbnQucGF0aFRyYW5zaXRpb24udjIpLnRvRXF1YWwoWyduZXN0ZWROYW1lQ2hhbmdlZCcsICdwcm9wQ29tcDJOYW1lQ2hhbmdlZCddKTtcbn0pO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXByb3BhZ2F0aW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjaGFuZ2UtcHJvcGFnYXRpb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRDQUd5QjtBQUN6QiwyREFBMkQ7QUFDM0QsNkVBQXVFO0FBRXZFLElBQUksQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7SUFFbEQsTUFBTSxJQUFJLEdBQUcsSUFBQSxnQ0FBYSxHQUFFLENBQUM7SUFDN0IsTUFBTSxjQUFjLEdBQUcsSUFBQSxnQ0FBZ0IsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsbUJBQW1CLENBQUM7SUFFdEQsTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFOztRQUFDLE9BQUEsQ0FBQyxZQUFZLHlDQUFnQztlQUMxRixDQUFBLE1BQUEsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsMENBQUUsSUFBSSxNQUFLLFlBQVk7ZUFDL0MsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0tBQUEsQ0FBQyxDQUFDO0lBQ25CLE1BQU0sd0JBQXdCLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTs7UUFBQyxPQUFBLENBQUMsWUFBWSx5Q0FBZ0M7ZUFDMUYsQ0FBQSxNQUFBLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLDBDQUFFLElBQUksTUFBSyxZQUFZO2VBQy9DLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtLQUFBLENBQUMsQ0FBQztJQUVuQixNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUUvQyxNQUFNLHNDQUFzQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1FBQUMsT0FBQSxDQUFDLFlBQVksa0NBQXlCO2VBQ2pHLENBQUEsTUFBQSxDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSwwQ0FBRSxJQUFJLE1BQUssWUFBWTtlQUMvQyxDQUFDLENBQUMsS0FBSyxLQUFLLHdCQUF3QixDQUFBO0tBQUEsQ0FDNUMsQ0FBQztJQUNGLE1BQU0sc0NBQXNDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTs7UUFBQyxPQUFBLENBQUMsWUFBWSxrQ0FBeUI7ZUFDakcsQ0FBQSxNQUFBLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLDBDQUFFLElBQUksTUFBSyxZQUFZO2VBQy9DLENBQUMsQ0FBQyxLQUFLLEtBQUssd0JBQXdCLENBQUE7S0FBQSxDQUM1QyxDQUFDO0lBRUYsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDN0QsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFN0QsTUFBTSxtQ0FBbUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFOztRQUFDLE9BQUEsQ0FBQyxZQUFZLHlDQUFnQztlQUNyRyxDQUFBLE1BQUEsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsMENBQUUsSUFBSSxNQUFLLFlBQVk7ZUFDL0MsQ0FBQyxDQUFDLEtBQUssS0FBSyxzQ0FBc0MsQ0FBQTtLQUFBLENBQzFELENBQUM7SUFDRixNQUFNLDJEQUEyRCxHQUMvRCxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFOztRQUFDLE9BQUEsQ0FBQyxZQUFZLGtDQUF5QjtlQUN0RCxDQUFBLE1BQUEsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsMENBQUUsSUFBSSxNQUFLLFlBQVk7ZUFDL0MsQ0FBQyxDQUFDLEtBQUssS0FBSyxtQ0FBbUMsQ0FBQTtLQUFBLENBQ25ELENBQUM7SUFFSixNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxRCxNQUFNLENBQUMsMkRBQTJELENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVsRixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUMsQ0FBQztBQUdILElBQUksQ0FBQyw4RUFBOEUsRUFBRSxHQUFHLEVBQUU7SUFFeEYsTUFBTSxJQUFJLEdBQUcsSUFBQSxnQ0FBYSxHQUFFLENBQUM7SUFDN0IsTUFBTSxjQUFjLEdBQUcsSUFBQSxnQ0FBZ0IsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsbUJBQW1CLENBQUM7SUFFdEQsTUFBTSx5QkFBeUIsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3BELENBQUMsWUFBWSx5Q0FBZ0M7V0FDdEMsQ0FBQyxDQUFDLEtBQUssWUFBWSxrQ0FBeUIsQ0FBcUMsQ0FBQztJQUMzRixNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoRCxNQUFNLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO0FBQzdHLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvbixcbiAgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb24sXG59IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBwcm9wYWdhdGVDaGFuZ2VzIH0gZnJvbSAnLi4vLi4vbGliL21vZGVsLWRpZmZpbmcnO1xuaW1wb3J0IHsgZGlmZlRlc3RDYXNlMSB9IGZyb20gJy4uL2RlZmF1bHQtdGVzdC1jYXNlcy9pbmZyYS1tb2RlbC1kaWZmJztcblxudGVzdCgnQmFzaWMgUmVwbGFjZW1lbnQgZnJvbSBQcm9wZXJ0eSBDaGFuZ2UnLCAoKSA9PiB7XG5cbiAgY29uc3QgZGlmZiA9IGRpZmZUZXN0Q2FzZTEoKTtcbiAgY29uc3QgcHJvcGFnYXRlZERpZmYgPSBwcm9wYWdhdGVDaGFuZ2VzKGRpZmYpO1xuICBjb25zdCBvcGVyYXRpb25zID0gcHJvcGFnYXRlZERpZmYuY29tcG9uZW50T3BlcmF0aW9ucztcblxuICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbXBvbmVudDEgPSBvcGVyYXRpb25zLmZpbmQobyA9PiBvIGluc3RhbmNlb2YgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25cbiAgICAgICAgJiYgby5jb21wb25lbnRUcmFuc2l0aW9uLnYxPy5uYW1lID09PSAnY29tcG9uZW50MSdcbiAgICAgICAgJiYgIW8uY2F1c2UpO1xuICBjb25zdCBvcmlnaW5hbFVwZGF0ZUNvbXBvbmVudDIgPSBvcGVyYXRpb25zLmZpbmQobyA9PiBvIGluc3RhbmNlb2YgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25cbiAgICAgICAgJiYgby5jb21wb25lbnRUcmFuc2l0aW9uLnYxPy5uYW1lID09PSAnY29tcG9uZW50MidcbiAgICAgICAgJiYgIW8uY2F1c2UpO1xuXG4gIGV4cGVjdChvcmlnaW5hbFVwZGF0ZUNvbXBvbmVudDEpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChvcmlnaW5hbFVwZGF0ZUNvbXBvbmVudDIpLnRvQmVEZWZpbmVkKCk7XG5cbiAgY29uc3QgcmVwbGFjZW1lbnRDb21wMUNhdXNlZEJ5T3JpZ2luYWxVcGRhdGUgPSBvcGVyYXRpb25zLmZpbmQobyA9PiBvIGluc3RhbmNlb2YgUmVwbGFjZUNvbXBvbmVudE9wZXJhdGlvblxuICAgICAgICAmJiBvLmNvbXBvbmVudFRyYW5zaXRpb24udjE/Lm5hbWUgPT09ICdjb21wb25lbnQxJ1xuICAgICAgICAmJiBvLmNhdXNlID09PSBvcmlnaW5hbFVwZGF0ZUNvbXBvbmVudDEsXG4gICk7XG4gIGNvbnN0IHJlcGxhY2VtZW50Q29tcDJDYXVzZWRCeU9yaWdpbmFsVXBkYXRlID0gb3BlcmF0aW9ucy5maW5kKG8gPT4gbyBpbnN0YW5jZW9mIFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb25cbiAgICAgICAgJiYgby5jb21wb25lbnRUcmFuc2l0aW9uLnYxPy5uYW1lID09PSAnY29tcG9uZW50MidcbiAgICAgICAgJiYgby5jYXVzZSA9PT0gb3JpZ2luYWxVcGRhdGVDb21wb25lbnQyLFxuICApO1xuXG4gIGV4cGVjdChyZXBsYWNlbWVudENvbXAxQ2F1c2VkQnlPcmlnaW5hbFVwZGF0ZSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHJlcGxhY2VtZW50Q29tcDJDYXVzZWRCeU9yaWdpbmFsVXBkYXRlKS50b0JlRGVmaW5lZCgpO1xuXG4gIGNvbnN0IHVwZGF0ZUNvbXAyQ2F1c2VkQnlSZXBsYWNlbWVudENvbXAxID0gb3BlcmF0aW9ucy5maW5kKG8gPT4gbyBpbnN0YW5jZW9mIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uXG4gICAgICAgICYmIG8uY29tcG9uZW50VHJhbnNpdGlvbi52MT8ubmFtZSA9PT0gJ2NvbXBvbmVudDInXG4gICAgICAgICYmIG8uY2F1c2UgPT09IHJlcGxhY2VtZW50Q29tcDFDYXVzZWRCeU9yaWdpbmFsVXBkYXRlLFxuICApO1xuICBjb25zdCByZXBsYWNlbWVudENvbXAyQ2F1c2VkQnlVcGRhdGVDb21wMkNhdXNlZEJ5UmVwbGFjZW1lbnRDb21wMSA9XG4gICAgb3BlcmF0aW9ucy5maW5kKG8gPT4gbyBpbnN0YW5jZW9mIFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb25cbiAgICAgICYmIG8uY29tcG9uZW50VHJhbnNpdGlvbi52MT8ubmFtZSA9PT0gJ2NvbXBvbmVudDInXG4gICAgICAmJiBvLmNhdXNlID09PSB1cGRhdGVDb21wMkNhdXNlZEJ5UmVwbGFjZW1lbnRDb21wMSxcbiAgICApO1xuXG4gIGV4cGVjdCh1cGRhdGVDb21wMkNhdXNlZEJ5UmVwbGFjZW1lbnRDb21wMSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHJlcGxhY2VtZW50Q29tcDJDYXVzZWRCeVVwZGF0ZUNvbXAyQ2F1c2VkQnlSZXBsYWNlbWVudENvbXAxKS50b0JlRGVmaW5lZCgpO1xuXG4gIGV4cGVjdChvcGVyYXRpb25zLmxlbmd0aCkudG9CZSg2KTtcbn0pO1xuXG5cbnRlc3QoJ1JlcGxhY2VPcGVyYXRpb24tY2F1c2VkIFByb3BlcnR5VXBkYXRlIHNob3VsZCBoYXZlIHRoZSBwcm9wZXIgcHJvcGVydHkgcGF0aHMnLCAoKSA9PiB7XG5cbiAgY29uc3QgZGlmZiA9IGRpZmZUZXN0Q2FzZTEoKTtcbiAgY29uc3QgcHJvcGFnYXRlZERpZmYgPSBwcm9wYWdhdGVDaGFuZ2VzKGRpZmYpO1xuICBjb25zdCBvcGVyYXRpb25zID0gcHJvcGFnYXRlZERpZmYuY29tcG9uZW50T3BlcmF0aW9ucztcblxuICBjb25zdCB1cGRhdGVDYXVzZWRCeVJlcGxhY2VtZW50ID0gb3BlcmF0aW9ucy5maW5kKG8gPT5cbiAgICBvIGluc3RhbmNlb2YgVXBkYXRlUHJvcGVydHlDb21wb25lbnRPcGVyYXRpb25cbiAgICAgICAgJiYgby5jYXVzZSBpbnN0YW5jZW9mIFJlcGxhY2VDb21wb25lbnRPcGVyYXRpb24pIGFzIFVwZGF0ZVByb3BlcnR5Q29tcG9uZW50T3BlcmF0aW9uO1xuICBleHBlY3QodXBkYXRlQ2F1c2VkQnlSZXBsYWNlbWVudCkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KHVwZGF0ZUNhdXNlZEJ5UmVwbGFjZW1lbnQucGF0aFRyYW5zaXRpb24udjEpLnRvRXF1YWwoWyduZXN0ZWQnLCAncHJvcENvbXAyJ10pO1xuICBleHBlY3QodXBkYXRlQ2F1c2VkQnlSZXBsYWNlbWVudC5wYXRoVHJhbnNpdGlvbi52MikudG9FcXVhbChbJ25lc3RlZE5hbWVDaGFuZ2VkJywgJ3Byb3BDb21wMk5hbWVDaGFuZ2VkJ10pO1xufSk7XG4iXX0=

@@ -8,3 +8,3 @@ "use strict";

const dir = 'test/model-diffing';
const { readSampleInput, genGraphOnEnvFlag, stringifyComponents, } = utils_1.ParserUtilsCreator(dir);
const { readSampleInput, genGraphOnEnvFlag, stringifyComponents, } = (0, utils_1.ParserUtilsCreator)(dir);
test('Matching basic template', () => {

@@ -24,2 +24,2 @@ const oldModel = new platform_mapping_1.CDKParser('root', readSampleInput('simple-template-before.json')).parse();

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW1hdGNoaW5nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb21wb25lbnQtbWF0Y2hpbmcudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRDQUE2QztBQUM3QywyREFFaUM7QUFDakMsaUVBQXVEO0FBQ3ZELG9DQUE4QztBQUU5QyxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQztBQUVqQyxNQUFNLEVBQ0osZUFBZSxFQUNmLGlCQUFpQixFQUNqQixtQkFBbUIsR0FDcEIsR0FBRywwQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUU1QixJQUFJLENBQUMseUJBQXlCLEVBQUUsR0FBRyxFQUFFO0lBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksNEJBQVMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvRixNQUFNLFFBQVEsR0FBRyxJQUFJLDRCQUFTLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFOUYsaUJBQWlCLENBQUMsUUFBUSxFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFDdEQsaUJBQWlCLENBQUMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFFckQsTUFBTSxJQUFJLEdBQUcsSUFBSSwyQkFBVyxDQUFDLElBQUksbUJBQVUsQ0FBQyxFQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwRixNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN0RCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUU7SUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBUyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hHLE1BQU0sUUFBUSxHQUFHLElBQUksNEJBQVMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUUvRixNQUFNLElBQUksR0FBRyxJQUFJLDJCQUFXLENBQUMsSUFBSSxtQkFBVSxDQUFDLEVBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BGLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNpdGlvbiB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQge1xuICBEaWZmQ3JlYXRvcixcbn0gZnJvbSAnLi4vLi4vbGliL21vZGVsLWRpZmZpbmcnO1xuaW1wb3J0IHsgQ0RLUGFyc2VyIH0gZnJvbSAnLi4vLi4vbGliL3BsYXRmb3JtLW1hcHBpbmcnO1xuaW1wb3J0IHsgUGFyc2VyVXRpbHNDcmVhdG9yIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5jb25zdCBkaXIgPSAndGVzdC9tb2RlbC1kaWZmaW5nJztcblxuY29uc3Qge1xuICByZWFkU2FtcGxlSW5wdXQsXG4gIGdlbkdyYXBoT25FbnZGbGFnLFxuICBzdHJpbmdpZnlDb21wb25lbnRzLFxufSA9IFBhcnNlclV0aWxzQ3JlYXRvcihkaXIpO1xuXG50ZXN0KCdNYXRjaGluZyBiYXNpYyB0ZW1wbGF0ZScsICgpID0+IHtcbiAgY29uc3Qgb2xkTW9kZWwgPSBuZXcgQ0RLUGFyc2VyKCdyb290JywgcmVhZFNhbXBsZUlucHV0KCdzaW1wbGUtdGVtcGxhdGUtYmVmb3JlLmpzb24nKSkucGFyc2UoKTtcbiAgY29uc3QgbmV3TW9kZWwgPSBuZXcgQ0RLUGFyc2VyKCdyb290JywgcmVhZFNhbXBsZUlucHV0KCdzaW1wbGUtdGVtcGxhdGUtYWZ0ZXIuanNvbicpKS5wYXJzZSgpO1xuXG4gIGdlbkdyYXBoT25FbnZGbGFnKG9sZE1vZGVsLCAnc2ltcGxlLXRlbXBsYXRlLWJlZm9yZScpO1xuICBnZW5HcmFwaE9uRW52RmxhZyhuZXdNb2RlbCwgJ3NpbXBsZS10ZW1wbGF0ZS1hZnRlcicpO1xuXG4gIGNvbnN0IGRpZmYgPSBuZXcgRGlmZkNyZWF0b3IobmV3IFRyYW5zaXRpb24oe3YxOiBvbGRNb2RlbCwgdjI6IG5ld01vZGVsfSkpLmNyZWF0ZSgpO1xuICBleHBlY3Qoc3RyaW5naWZ5Q29tcG9uZW50cyhkaWZmKSkudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcblxudGVzdCgnTWF0Y2hpbmcgYmlnIHRlbXBsYXRlJywgKCkgPT4ge1xuICBjb25zdCBvbGRNb2RlbCA9IG5ldyBDREtQYXJzZXIoJ3Jvb3QnLCByZWFkU2FtcGxlSW5wdXQoJ2tlc3NlbC1ydW4tc3RhY2stYmVmb3JlLmpzb24nKSkucGFyc2UoKTtcbiAgY29uc3QgbmV3TW9kZWwgPSBuZXcgQ0RLUGFyc2VyKCdyb290JywgcmVhZFNhbXBsZUlucHV0KCdrZXNzZWwtcnVuLXN0YWNrLWFmdGVyLmpzb24nKSkucGFyc2UoKTtcblxuICBjb25zdCBkaWZmID0gbmV3IERpZmZDcmVhdG9yKG5ldyBUcmFuc2l0aW9uKHt2MTogb2xkTW9kZWwsIHYyOiBuZXdNb2RlbH0pKS5jcmVhdGUoKTtcbiAgZXhwZWN0KHN0cmluZ2lmeUNvbXBvbmVudHMoZGlmZikpLnRvTWF0Y2hTbmFwc2hvdCgpO1xufSk7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LW1hdGNoaW5nLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb21wb25lbnQtbWF0Y2hpbmcudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRDQUE2QztBQUM3QywyREFFaUM7QUFDakMsaUVBQXVEO0FBQ3ZELG9DQUE4QztBQUU5QyxNQUFNLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQztBQUVqQyxNQUFNLEVBQ0osZUFBZSxFQUNmLGlCQUFpQixFQUNqQixtQkFBbUIsR0FDcEIsR0FBRyxJQUFBLDBCQUFrQixFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRTVCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7SUFDbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBUyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9GLE1BQU0sUUFBUSxHQUFHLElBQUksNEJBQVMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUU5RixpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUN0RCxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUVyRCxNQUFNLElBQUksR0FBRyxJQUFJLDJCQUFXLENBQUMsSUFBSSxtQkFBVSxDQUFDLEVBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BGLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3RELENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEdBQUcsRUFBRTtJQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLDRCQUFTLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEcsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBUyxDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRS9GLE1BQU0sSUFBSSxHQUFHLElBQUksMkJBQVcsQ0FBQyxJQUFJLG1CQUFVLENBQUMsRUFBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEYsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDdEQsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2l0aW9uIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7XG4gIERpZmZDcmVhdG9yLFxufSBmcm9tICcuLi8uLi9saWIvbW9kZWwtZGlmZmluZyc7XG5pbXBvcnQgeyBDREtQYXJzZXIgfSBmcm9tICcuLi8uLi9saWIvcGxhdGZvcm0tbWFwcGluZyc7XG5pbXBvcnQgeyBQYXJzZXJVdGlsc0NyZWF0b3IgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGRpciA9ICd0ZXN0L21vZGVsLWRpZmZpbmcnO1xuXG5jb25zdCB7XG4gIHJlYWRTYW1wbGVJbnB1dCxcbiAgZ2VuR3JhcGhPbkVudkZsYWcsXG4gIHN0cmluZ2lmeUNvbXBvbmVudHMsXG59ID0gUGFyc2VyVXRpbHNDcmVhdG9yKGRpcik7XG5cbnRlc3QoJ01hdGNoaW5nIGJhc2ljIHRlbXBsYXRlJywgKCkgPT4ge1xuICBjb25zdCBvbGRNb2RlbCA9IG5ldyBDREtQYXJzZXIoJ3Jvb3QnLCByZWFkU2FtcGxlSW5wdXQoJ3NpbXBsZS10ZW1wbGF0ZS1iZWZvcmUuanNvbicpKS5wYXJzZSgpO1xuICBjb25zdCBuZXdNb2RlbCA9IG5ldyBDREtQYXJzZXIoJ3Jvb3QnLCByZWFkU2FtcGxlSW5wdXQoJ3NpbXBsZS10ZW1wbGF0ZS1hZnRlci5qc29uJykpLnBhcnNlKCk7XG5cbiAgZ2VuR3JhcGhPbkVudkZsYWcob2xkTW9kZWwsICdzaW1wbGUtdGVtcGxhdGUtYmVmb3JlJyk7XG4gIGdlbkdyYXBoT25FbnZGbGFnKG5ld01vZGVsLCAnc2ltcGxlLXRlbXBsYXRlLWFmdGVyJyk7XG5cbiAgY29uc3QgZGlmZiA9IG5ldyBEaWZmQ3JlYXRvcihuZXcgVHJhbnNpdGlvbih7djE6IG9sZE1vZGVsLCB2MjogbmV3TW9kZWx9KSkuY3JlYXRlKCk7XG4gIGV4cGVjdChzdHJpbmdpZnlDb21wb25lbnRzKGRpZmYpKS50b01hdGNoU25hcHNob3QoKTtcbn0pO1xuXG50ZXN0KCdNYXRjaGluZyBiaWcgdGVtcGxhdGUnLCAoKSA9PiB7XG4gIGNvbnN0IG9sZE1vZGVsID0gbmV3IENES1BhcnNlcigncm9vdCcsIHJlYWRTYW1wbGVJbnB1dCgna2Vzc2VsLXJ1bi1zdGFjay1iZWZvcmUuanNvbicpKS5wYXJzZSgpO1xuICBjb25zdCBuZXdNb2RlbCA9IG5ldyBDREtQYXJzZXIoJ3Jvb3QnLCByZWFkU2FtcGxlSW5wdXQoJ2tlc3NlbC1ydW4tc3RhY2stYWZ0ZXIuanNvbicpKS5wYXJzZSgpO1xuXG4gIGNvbnN0IGRpZmYgPSBuZXcgRGlmZkNyZWF0b3IobmV3IFRyYW5zaXRpb24oe3YxOiBvbGRNb2RlbCwgdjI6IG5ld01vZGVsfSkpLmNyZWF0ZSgpO1xuICBleHBlY3Qoc3RyaW5naWZ5Q29tcG9uZW50cyhkaWZmKSkudG9NYXRjaFNuYXBzaG90KCk7XG59KTsiXX0=

@@ -7,3 +7,3 @@ "use strict";

const cdkParserDir = 'test/platform-mapping/cdk';
const { readSampleInput, genGraphOnEnvFlag, stringifyComponents, } = utils_1.ParserUtilsCreator(cdkParserDir);
const { readSampleInput, genGraphOnEnvFlag, stringifyComponents, } = (0, utils_1.ParserUtilsCreator)(cdkParserDir);
test('CDK simple template', () => {

@@ -60,2 +60,2 @@ const cfnTemplate = readSampleInput('simple-template.json');

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXBhcnNlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLXBhcnNlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNENBQWlGO0FBQ2pGLG9FQUEwRDtBQUMxRCx1Q0FBaUQ7QUFFakQsTUFBTSxZQUFZLEdBQUcsMkJBQTJCLENBQUM7QUFFakQsTUFBTSxFQUNKLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLEdBQUcsMEJBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFckMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtJQUMvQixNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUM1RCxNQUFNLE1BQU0sR0FBRyxJQUFJLDRCQUFTLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUU3QixpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUU1QyxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN2RCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7SUFDekMsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDcEUsTUFBTSxNQUFNLEdBQUcsSUFBSSw0QkFBUyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNsRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFN0IsaUJBQWlCLENBQUMsS0FBSyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFFaEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7QUFDdkQsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksNEJBQVMsQ0FBQyxNQUFNLEVBQUU7UUFDbkMsU0FBUyxFQUFFO1lBQ1QsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxrQkFBa0I7Z0JBQ3hCLFVBQVUsRUFBRTtvQkFDVixTQUFTLEVBQUUsZUFBZTtvQkFDMUIsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRTtpQkFDakM7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSLGNBQWMsRUFBRSxtREFBbUQ7aUJBQ3BFO2FBQ0Y7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsUUFBUSxFQUFFO29CQUNSLGNBQWMsRUFBRSxtREFBbUQ7aUJBQ3BFO2FBQ0Y7U0FDRjtLQUNGLENBQUMsQ0FBQztJQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUNyRCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSwrQkFBc0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RixNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEYsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFVBQVU7V0FDcEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksa0JBQWtCO1dBQ25DLENBQUMsWUFBWSwrQkFBc0IsQ0FDM0MsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFVBQVU7V0FDcEIsQ0FBQyxZQUFZLCtCQUFzQixDQUMzQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksa0JBQWtCO1dBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLGdCQUFnQjtXQUNqQyxDQUFDLFlBQVksK0JBQXNCLENBQzNDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCwgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBDREtQYXJzZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvcGxhdGZvcm0tbWFwcGluZyc7XG5pbXBvcnQgeyBQYXJzZXJVdGlsc0NyZWF0b3IgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmNvbnN0IGNka1BhcnNlckRpciA9ICd0ZXN0L3BsYXRmb3JtLW1hcHBpbmcvY2RrJztcblxuY29uc3Qge1xuICByZWFkU2FtcGxlSW5wdXQsXG4gIGdlbkdyYXBoT25FbnZGbGFnLFxuICBzdHJpbmdpZnlDb21wb25lbnRzLFxufSA9IFBhcnNlclV0aWxzQ3JlYXRvcihjZGtQYXJzZXJEaXIpO1xuXG50ZXN0KCdDREsgc2ltcGxlIHRlbXBsYXRlJywgKCkgPT4ge1xuICBjb25zdCBjZm5UZW1wbGF0ZSA9IHJlYWRTYW1wbGVJbnB1dCgnc2ltcGxlLXRlbXBsYXRlLmpzb24nKTtcbiAgY29uc3QgcGFyc2VyID0gbmV3IENES1BhcnNlcigncm9vdCcsIGNmblRlbXBsYXRlKTtcbiAgY29uc3QgbW9kZWwgPSBwYXJzZXIucGFyc2UoKTtcblxuICBnZW5HcmFwaE9uRW52RmxhZyhtb2RlbCwgJ3NpbXBsZS10ZW1wbGF0ZScpO1xuXG4gIGV4cGVjdChzdHJpbmdpZnlDb21wb25lbnRzKG1vZGVsKSkudG9NYXRjaFNuYXBzaG90KCk7XG59KTtcblxudGVzdCgnQ0RLIGtlc3NlbCBydW4gc3RhY2sgdGVtcGxhdGUnLCAoKSA9PiB7XG4gIGNvbnN0IGNmblRlbXBsYXRlID0gcmVhZFNhbXBsZUlucHV0KCdLZXNzZWxSdW5TdGFjay50ZW1wbGF0ZS5qc29uJyk7XG4gIGNvbnN0IHBhcnNlciA9IG5ldyBDREtQYXJzZXIoJ3Jvb3QnLCBjZm5UZW1wbGF0ZSk7XG4gIGNvbnN0IG1vZGVsID0gcGFyc2VyLnBhcnNlKCk7XG5cbiAgZ2VuR3JhcGhPbkVudkZsYWcobW9kZWwsICdrZXNzZWwtcnVuLXRlbXBsYXRlJyk7XG5cbiAgZXhwZWN0KHN0cmluZ2lmeUNvbXBvbmVudHMobW9kZWwpKS50b01hdGNoU25hcHNob3QoKTtcbn0pO1xuXG50ZXN0KCdCYXNpYyByZXNvdXJjZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHBhcnNlciA9IG5ldyBDREtQYXJzZXIoJ3Jvb3QnLCB7XG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBsb2dpY2FsSWQwOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OklBTTo6UG9saWN5JyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIHByb3BlcnR5MTogJ3Byb3BlcnR5VmFsdWUnLFxuICAgICAgICAgIHByb3BlcnR5MjogeyBSZWY6ICdsb2dpY2FsSWQxJyB9LFxuICAgICAgICB9LFxuICAgICAgICBNZXRhZGF0YToge1xuICAgICAgICAgICdhd3M6Y2RrOnBhdGgnOiAnQ0RLU3RhY2svT3V0dGVyQ29uc3RydWN0MC9Jbm5lckNvbnN0cnVjdC9SZXNvdXJjZScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbG9naWNhbElkMToge1xuICAgICAgICBUeXBlOiAnQVdTOjpJQU06OlBvbGljeScsXG4gICAgICAgIE1ldGFkYXRhOiB7XG4gICAgICAgICAgJ2F3czpjZGs6cGF0aCc6ICdDREtTdGFjay9PdXR0ZXJDb25zdHJ1Y3QxL0lubmVyQ29uc3RydWN0L1Jlc291cmNlJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IG1vZGVsID0gcGFyc2VyLnBhcnNlKCk7XG4gIGdlbkdyYXBoT25FbnZGbGFnKG1vZGVsLCAnYmFzaWMtcmVzb3VyY2VzLXRlbXBsYXRlJyk7XG4gIGV4cGVjdChtb2RlbC5jb21wb25lbnRzLmxlbmd0aCkudG9CZSg5KTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMubGVuZ3RoKS50b0JlKDkpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PiByIGluc3RhbmNlb2YgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCkubGVuZ3RoKS50b0JlKDEpO1xuICBleHBlY3QobW9kZWwuY29tcG9uZW50cy5maWx0ZXIoYyA9PiBjLm5hbWUgPT0gJ0lubmVyQ29uc3RydWN0JykubGVuZ3RoKS50b0JlKDIpO1xuICBleHBlY3QobW9kZWwuY29tcG9uZW50cy5maWx0ZXIoYyA9PiBjLm5hbWUgPT0gJ0lubmVyQ29uc3RydWN0JykubGVuZ3RoKS50b0JlKDIpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PlxuICAgIHIuc291cmNlLm5hbWUgPT0gJ0NES1N0YWNrJ1xuICAgICAgICAmJiByLnRhcmdldC5uYW1lID09ICdPdXR0ZXJDb25zdHJ1Y3QxJ1xuICAgICAgICAmJiByIGluc3RhbmNlb2YgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCxcbiAgKS5sZW5ndGgpLnRvQmUoMSk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihyID0+XG4gICAgci5zb3VyY2UubmFtZSA9PSAnQ0RLU3RhY2snXG4gICAgICAgICYmIHIgaW5zdGFuY2VvZiBTdHJ1Y3R1cmFsUmVsYXRpb25zaGlwLFxuICApLmxlbmd0aCkudG9CZSgyKTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKHIgPT5cbiAgICByLnNvdXJjZS5uYW1lID09ICdPdXR0ZXJDb25zdHJ1Y3QxJ1xuICAgICAgICAmJiByLnRhcmdldC5uYW1lID09ICdJbm5lckNvbnN0cnVjdCdcbiAgICAgICAgJiYgciBpbnN0YW5jZW9mIFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAsXG4gICkubGVuZ3RoKS50b0JlKDEpO1xufSk7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXBhcnNlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLXBhcnNlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNENBQWlGO0FBQ2pGLG9FQUEwRDtBQUMxRCx1Q0FBaUQ7QUFFakQsTUFBTSxZQUFZLEdBQUcsMkJBQTJCLENBQUM7QUFFakQsTUFBTSxFQUNKLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxZQUFZLENBQUMsQ0FBQztBQUVyQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzVELE1BQU0sTUFBTSxHQUFHLElBQUksNEJBQVMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRTdCLGlCQUFpQixDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0FBQ3ZELENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtJQUN6QyxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUNwRSxNQUFNLE1BQU0sR0FBRyxJQUFJLDRCQUFTLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUU3QixpQkFBaUIsQ0FBQyxLQUFLLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUVoRCxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN2RCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7SUFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSw0QkFBUyxDQUFDLE1BQU0sRUFBRTtRQUNuQyxTQUFTLEVBQUU7WUFDVCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsVUFBVSxFQUFFO29CQUNWLFNBQVMsRUFBRSxlQUFlO29CQUMxQixTQUFTLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFO2lCQUNqQztnQkFDRCxRQUFRLEVBQUU7b0JBQ1IsY0FBYyxFQUFFLG1EQUFtRDtpQkFDcEU7YUFDRjtZQUNELFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixRQUFRLEVBQUU7b0JBQ1IsY0FBYyxFQUFFLG1EQUFtRDtpQkFDcEU7YUFDRjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzdCLGlCQUFpQixDQUFDLEtBQUssRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLCtCQUFzQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVGLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEYsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVTtXQUNwQixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxrQkFBa0I7V0FDbkMsQ0FBQyxZQUFZLCtCQUFzQixDQUMzQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVTtXQUNwQixDQUFDLFlBQVksK0JBQXNCLENBQzNDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNwQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxrQkFBa0I7V0FDNUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksZ0JBQWdCO1dBQ2pDLENBQUMsWUFBWSwrQkFBc0IsQ0FDM0MsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXBlbmRlbmN5UmVsYXRpb25zaGlwLCBTdHJ1Y3R1cmFsUmVsYXRpb25zaGlwIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IENES1BhcnNlciB9IGZyb20gJy4uLy4uLy4uL2xpYi9wbGF0Zm9ybS1tYXBwaW5nJztcbmltcG9ydCB7IFBhcnNlclV0aWxzQ3JlYXRvciB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgY2RrUGFyc2VyRGlyID0gJ3Rlc3QvcGxhdGZvcm0tbWFwcGluZy9jZGsnO1xuXG5jb25zdCB7XG4gIHJlYWRTYW1wbGVJbnB1dCxcbiAgZ2VuR3JhcGhPbkVudkZsYWcsXG4gIHN0cmluZ2lmeUNvbXBvbmVudHMsXG59ID0gUGFyc2VyVXRpbHNDcmVhdG9yKGNka1BhcnNlckRpcik7XG5cbnRlc3QoJ0NESyBzaW1wbGUgdGVtcGxhdGUnLCAoKSA9PiB7XG4gIGNvbnN0IGNmblRlbXBsYXRlID0gcmVhZFNhbXBsZUlucHV0KCdzaW1wbGUtdGVtcGxhdGUuanNvbicpO1xuICBjb25zdCBwYXJzZXIgPSBuZXcgQ0RLUGFyc2VyKCdyb290JywgY2ZuVGVtcGxhdGUpO1xuICBjb25zdCBtb2RlbCA9IHBhcnNlci5wYXJzZSgpO1xuXG4gIGdlbkdyYXBoT25FbnZGbGFnKG1vZGVsLCAnc2ltcGxlLXRlbXBsYXRlJyk7XG5cbiAgZXhwZWN0KHN0cmluZ2lmeUNvbXBvbmVudHMobW9kZWwpKS50b01hdGNoU25hcHNob3QoKTtcbn0pO1xuXG50ZXN0KCdDREsga2Vzc2VsIHJ1biBzdGFjayB0ZW1wbGF0ZScsICgpID0+IHtcbiAgY29uc3QgY2ZuVGVtcGxhdGUgPSByZWFkU2FtcGxlSW5wdXQoJ0tlc3NlbFJ1blN0YWNrLnRlbXBsYXRlLmpzb24nKTtcbiAgY29uc3QgcGFyc2VyID0gbmV3IENES1BhcnNlcigncm9vdCcsIGNmblRlbXBsYXRlKTtcbiAgY29uc3QgbW9kZWwgPSBwYXJzZXIucGFyc2UoKTtcblxuICBnZW5HcmFwaE9uRW52RmxhZyhtb2RlbCwgJ2tlc3NlbC1ydW4tdGVtcGxhdGUnKTtcblxuICBleHBlY3Qoc3RyaW5naWZ5Q29tcG9uZW50cyhtb2RlbCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xufSk7XG5cbnRlc3QoJ0Jhc2ljIHJlc291cmNlcycsICgpID0+IHtcbiAgY29uc3QgcGFyc2VyID0gbmV3IENES1BhcnNlcigncm9vdCcsIHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIGxvZ2ljYWxJZDA6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6SUFNOjpQb2xpY3knLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcHJvcGVydHkxOiAncHJvcGVydHlWYWx1ZScsXG4gICAgICAgICAgcHJvcGVydHkyOiB7IFJlZjogJ2xvZ2ljYWxJZDEnIH0sXG4gICAgICAgIH0sXG4gICAgICAgIE1ldGFkYXRhOiB7XG4gICAgICAgICAgJ2F3czpjZGs6cGF0aCc6ICdDREtTdGFjay9PdXR0ZXJDb25zdHJ1Y3QwL0lubmVyQ29uc3RydWN0L1Jlc291cmNlJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBsb2dpY2FsSWQxOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OklBTTo6UG9saWN5JyxcbiAgICAgICAgTWV0YWRhdGE6IHtcbiAgICAgICAgICAnYXdzOmNkazpwYXRoJzogJ0NES1N0YWNrL091dHRlckNvbnN0cnVjdDEvSW5uZXJDb25zdHJ1Y3QvUmVzb3VyY2UnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9KTtcbiAgY29uc3QgbW9kZWwgPSBwYXJzZXIucGFyc2UoKTtcbiAgZ2VuR3JhcGhPbkVudkZsYWcobW9kZWwsICdiYXNpYy1yZXNvdXJjZXMtdGVtcGxhdGUnKTtcbiAgZXhwZWN0KG1vZGVsLmNvbXBvbmVudHMubGVuZ3RoKS50b0JlKDkpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5sZW5ndGgpLnRvQmUoOSk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihyID0+IHIgaW5zdGFuY2VvZiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwKS5sZW5ndGgpLnRvQmUoMSk7XG4gIGV4cGVjdChtb2RlbC5jb21wb25lbnRzLmZpbHRlcihjID0+IGMubmFtZSA9PSAnSW5uZXJDb25zdHJ1Y3QnKS5sZW5ndGgpLnRvQmUoMik7XG4gIGV4cGVjdChtb2RlbC5jb21wb25lbnRzLmZpbHRlcihjID0+IGMubmFtZSA9PSAnSW5uZXJDb25zdHJ1Y3QnKS5sZW5ndGgpLnRvQmUoMik7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihyID0+XG4gICAgci5zb3VyY2UubmFtZSA9PSAnQ0RLU3RhY2snXG4gICAgICAgICYmIHIudGFyZ2V0Lm5hbWUgPT0gJ091dHRlckNvbnN0cnVjdDEnXG4gICAgICAgICYmIHIgaW5zdGFuY2VvZiBTdHJ1Y3R1cmFsUmVsYXRpb25zaGlwLFxuICApLmxlbmd0aCkudG9CZSgxKTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKHIgPT5cbiAgICByLnNvdXJjZS5uYW1lID09ICdDREtTdGFjaydcbiAgICAgICAgJiYgciBpbnN0YW5jZW9mIFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAsXG4gICkubGVuZ3RoKS50b0JlKDIpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PlxuICAgIHIuc291cmNlLm5hbWUgPT0gJ091dHRlckNvbnN0cnVjdDEnXG4gICAgICAgICYmIHIudGFyZ2V0Lm5hbWUgPT0gJ0lubmVyQ29uc3RydWN0J1xuICAgICAgICAmJiByIGluc3RhbmNlb2YgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCxcbiAgKS5sZW5ndGgpLnRvQmUoMSk7XG59KTsiXX0=

@@ -7,3 +7,3 @@ "use strict";

const cloudformationDir = 'test/platform-mapping/cloudformation';
const { readSampleInput, genGraphOnEnvFlag, stringifyComponents, } = utils_1.ParserUtilsCreator(cloudformationDir);
const { readSampleInput, genGraphOnEnvFlag, stringifyComponents, } = (0, utils_1.ParserUtilsCreator)(cloudformationDir);
test('CloudFormation simple template', () => {

@@ -60,2 +60,2 @@ const cfnTemplate = readSampleInput('integ.dynamodb.expected.json');

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtcGFyc2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZi1wYXJzZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRDQUV5QjtBQUN6QixvRUFBeUQ7QUFDekQsdUNBQWlEO0FBRWpELE1BQU0saUJBQWlCLEdBQUcsc0NBQXNDLENBQUM7QUFFakUsTUFBTSxFQUNKLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLEdBQUcsMEJBQWtCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUUxQyxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO0lBQzFDLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksMkJBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRTdCLGlCQUFpQixDQUFDLEtBQUssRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBRXBELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3JELE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLCtCQUFzQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlGLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLGlDQUFp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Q0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSwrQkFBc0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM5RixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlcGVuZGVuY3lSZWxhdGlvbnNoaXAsXG59IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBDRlBhcnNlciB9IGZyb20gJy4uLy4uLy4uL2xpYi9wbGF0Zm9ybS1tYXBwaW5nJztcbmltcG9ydCB7IFBhcnNlclV0aWxzQ3JlYXRvciB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuY29uc3QgY2xvdWRmb3JtYXRpb25EaXIgPSAndGVzdC9wbGF0Zm9ybS1tYXBwaW5nL2Nsb3VkZm9ybWF0aW9uJztcblxuY29uc3Qge1xuICByZWFkU2FtcGxlSW5wdXQsXG4gIGdlbkdyYXBoT25FbnZGbGFnLFxuICBzdHJpbmdpZnlDb21wb25lbnRzLFxufSA9IFBhcnNlclV0aWxzQ3JlYXRvcihjbG91ZGZvcm1hdGlvbkRpcik7XG5cbnRlc3QoJ0Nsb3VkRm9ybWF0aW9uIHNpbXBsZSB0ZW1wbGF0ZScsICgpID0+IHtcbiAgY29uc3QgY2ZuVGVtcGxhdGUgPSByZWFkU2FtcGxlSW5wdXQoJ2ludGVnLmR5bmFtb2RiLmV4cGVjdGVkLmpzb24nKTtcbiAgY29uc3QgcGFyc2VyID0gbmV3IENGUGFyc2VyKCdyb290JywgY2ZuVGVtcGxhdGUpO1xuICBjb25zdCBtb2RlbCA9IHBhcnNlci5wYXJzZSgpO1xuXG4gIGdlbkdyYXBoT25FbnZGbGFnKG1vZGVsLCAnaW50ZWcuZHluYW1vZGIuZXhwZWN0ZWQnKTtcblxuICBleHBlY3Qoc3RyaW5naWZ5Q29tcG9uZW50cyhtb2RlbCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICBleHBlY3QobW9kZWwuY29tcG9uZW50cy5sZW5ndGgpLnRvQmUoNyk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmxlbmd0aCkudG9CZSgxMCk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihyID0+IHIgaW5zdGFuY2VvZiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwKS5sZW5ndGgpLnRvQmUoNCk7XG59KTtcblxudGVzdCgnQ2xvdWRGb3JtYXRpb24gY29tcGxleCB0ZW1wbGF0ZScsICgpID0+IHtcbiAgY29uc3QgY2ZuVGVtcGxhdGUgPSByZWFkU2FtcGxlSW5wdXQoJ2ludGVnLmluc3RhbmNlLmV4cGVjdGVkLmpzb24nKTtcbiAgY29uc3QgcGFyc2VyID0gbmV3IENGUGFyc2VyKCdyb290JywgY2ZuVGVtcGxhdGUpO1xuICBjb25zdCBtb2RlbCA9IHBhcnNlci5wYXJzZSgpO1xuXG4gIGdlbkdyYXBoT25FbnZGbGFnKG1vZGVsLCAnaW50ZWcuaW5zdGFuY2UuZXhwZWN0ZWQnKTtcblxuICBleHBlY3Qoc3RyaW5naWZ5Q29tcG9uZW50cyhtb2RlbCkpLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICBleHBlY3QobW9kZWwuY29tcG9uZW50cy5sZW5ndGgpLnRvQmUoNDApO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5sZW5ndGgpLnRvQmUoOTUpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PiByIGluc3RhbmNlb2YgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCkubGVuZ3RoKS50b0JlKDU2KTtcbn0pO1xuXG50ZXN0KCdDbG91ZEZvcm1hdGlvbiBuZXN0ZWQgdGVtcGxhdGUnLCAoKSA9PiB7XG4gIGNvbnN0IGNmblRlbXBsYXRlT3V0ZXIgPSByZWFkU2FtcGxlSW5wdXQoJ25lc3RlZC1zdGFja3Mtb3V0ZXIuanNvbicpO1xuICBjb25zdCBjZm5UZW1wbGF0ZUlubmVyID0gcmVhZFNhbXBsZUlucHV0KCduZXN0ZWQtc3RhY2tzLWlubmVyLmpzb24nKTtcblxuICBjb25zdCBwYXJzZXIgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBjZm5UZW1wbGF0ZU91dGVyKTtcbiAgY29uc3QgbW9kZWwgPSBwYXJzZXIucGFyc2Uoe25lc3RlZFN0YWNrczoge05lc3RlZFN0YWNrOiBjZm5UZW1wbGF0ZUlubmVyfX0pO1xuXG4gIGdlbkdyYXBoT25FbnZGbGFnKG1vZGVsLCAnbmVzdGVkLXN0YWNrcycpO1xuXG4gIGV4cGVjdChzdHJpbmdpZnlDb21wb25lbnRzKG1vZGVsKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIGV4cGVjdChtb2RlbC5jb21wb25lbnRzLmxlbmd0aCkudG9CZSg4KTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMubGVuZ3RoKS50b0JlKDE2KTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKHIgPT4gciBpbnN0YW5jZW9mIERlcGVuZGVuY3lSZWxhdGlvbnNoaXApLmxlbmd0aCkudG9CZSg5KTtcbn0pO1xuXG50ZXN0KCdCYXNpYyByZXNvdXJjZXMnLCAoKSA9PiB7XG4gIGNvbnN0IHBhcnNlciA9IG5ldyBDRlBhcnNlcigncm9vdCcsIHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIGxvZ2ljYWxJZDA6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6SUFNOjpQb2xpY3knLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcHJvcGVydHkxOiAncHJvcGVydHlWYWx1ZScsXG4gICAgICAgICAgcHJvcGVydHkyOiB7IFJlZjogJ2xvZ2ljYWxJZDEnIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbG9naWNhbElkMToge1xuICAgICAgICBUeXBlOiAnQVdTOjpJQU06OlBvbGljeScsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xuICBjb25zdCBtb2RlbCA9IHBhcnNlci5wYXJzZSgpO1xuICBleHBlY3QobW9kZWwuY29tcG9uZW50cy5sZW5ndGgpLnRvQmUoMyk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmxlbmd0aCkudG9CZSgzKTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKHIgPT4gciBpbnN0YW5jZW9mIERlcGVuZGVuY3lSZWxhdGlvbnNoaXApLmxlbmd0aCkudG9CZSgxKTtcbn0pO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2YtcGFyc2VyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZi1wYXJzZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRDQUV5QjtBQUN6QixvRUFBeUQ7QUFDekQsdUNBQWlEO0FBRWpELE1BQU0saUJBQWlCLEdBQUcsc0NBQXNDLENBQUM7QUFFakUsTUFBTSxFQUNKLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxHQUFHLEVBQUU7SUFDMUMsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDcEUsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBUSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNqRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7SUFFN0IsaUJBQWlCLENBQUMsS0FBSyxFQUFFLHlCQUF5QixDQUFDLENBQUM7SUFFcEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDckQsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksK0JBQXNCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUYsQ0FBQyxDQUFDLENBQUM7QUFFSCxJQUFJLENBQUMs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TUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLCtCQUFzQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzlGLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCxcbn0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IENGUGFyc2VyIH0gZnJvbSAnLi4vLi4vLi4vbGliL3BsYXRmb3JtLW1hcHBpbmcnO1xuaW1wb3J0IHsgUGFyc2VyVXRpbHNDcmVhdG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBjbG91ZGZvcm1hdGlvbkRpciA9ICd0ZXN0L3BsYXRmb3JtLW1hcHBpbmcvY2xvdWRmb3JtYXRpb24nO1xuXG5jb25zdCB7XG4gIHJlYWRTYW1wbGVJbnB1dCxcbiAgZ2VuR3JhcGhPbkVudkZsYWcsXG4gIHN0cmluZ2lmeUNvbXBvbmVudHMsXG59ID0gUGFyc2VyVXRpbHNDcmVhdG9yKGNsb3VkZm9ybWF0aW9uRGlyKTtcblxudGVzdCgnQ2xvdWRGb3JtYXRpb24gc2ltcGxlIHRlbXBsYXRlJywgKCkgPT4ge1xuICBjb25zdCBjZm5UZW1wbGF0ZSA9IHJlYWRTYW1wbGVJbnB1dCgnaW50ZWcuZHluYW1vZGIuZXhwZWN0ZWQuanNvbicpO1xuICBjb25zdCBwYXJzZXIgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBjZm5UZW1wbGF0ZSk7XG4gIGNvbnN0IG1vZGVsID0gcGFyc2VyLnBhcnNlKCk7XG5cbiAgZ2VuR3JhcGhPbkVudkZsYWcobW9kZWwsICdpbnRlZy5keW5hbW9kYi5leHBlY3RlZCcpO1xuXG4gIGV4cGVjdChzdHJpbmdpZnlDb21wb25lbnRzKG1vZGVsKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIGV4cGVjdChtb2RlbC5jb21wb25lbnRzLmxlbmd0aCkudG9CZSg3KTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMubGVuZ3RoKS50b0JlKDEwKTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKHIgPT4gciBpbnN0YW5jZW9mIERlcGVuZGVuY3lSZWxhdGlvbnNoaXApLmxlbmd0aCkudG9CZSg0KTtcbn0pO1xuXG50ZXN0KCdDbG91ZEZvcm1hdGlvbiBjb21wbGV4IHRlbXBsYXRlJywgKCkgPT4ge1xuICBjb25zdCBjZm5UZW1wbGF0ZSA9IHJlYWRTYW1wbGVJbnB1dCgnaW50ZWcuaW5zdGFuY2UuZXhwZWN0ZWQuanNvbicpO1xuICBjb25zdCBwYXJzZXIgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBjZm5UZW1wbGF0ZSk7XG4gIGNvbnN0IG1vZGVsID0gcGFyc2VyLnBhcnNlKCk7XG5cbiAgZ2VuR3JhcGhPbkVudkZsYWcobW9kZWwsICdpbnRlZy5pbnN0YW5jZS5leHBlY3RlZCcpO1xuXG4gIGV4cGVjdChzdHJpbmdpZnlDb21wb25lbnRzKG1vZGVsKSkudG9NYXRjaFNuYXBzaG90KCk7XG4gIGV4cGVjdChtb2RlbC5jb21wb25lbnRzLmxlbmd0aCkudG9CZSg0MCk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmxlbmd0aCkudG9CZSg5NSk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihyID0+IHIgaW5zdGFuY2VvZiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwKS5sZW5ndGgpLnRvQmUoNTYpO1xufSk7XG5cbnRlc3QoJ0Nsb3VkRm9ybWF0aW9uIG5lc3RlZCB0ZW1wbGF0ZScsICgpID0+IHtcbiAgY29uc3QgY2ZuVGVtcGxhdGVPdXRlciA9IHJlYWRTYW1wbGVJbnB1dCgnbmVzdGVkLXN0YWNrcy1vdXRlci5qc29uJyk7XG4gIGNvbnN0IGNmblRlbXBsYXRlSW5uZXIgPSByZWFkU2FtcGxlSW5wdXQoJ25lc3RlZC1zdGFja3MtaW5uZXIuanNvbicpO1xuXG4gIGNvbnN0IHBhcnNlciA9IG5ldyBDRlBhcnNlcigncm9vdCcsIGNmblRlbXBsYXRlT3V0ZXIpO1xuICBjb25zdCBtb2RlbCA9IHBhcnNlci5wYXJzZSh7bmVzdGVkU3RhY2tzOiB7TmVzdGVkU3RhY2s6IGNmblRlbXBsYXRlSW5uZXJ9fSk7XG5cbiAgZ2VuR3JhcGhPbkVudkZsYWcobW9kZWwsICduZXN0ZWQtc3RhY2tzJyk7XG5cbiAgZXhwZWN0KHN0cmluZ2lmeUNvbXBvbmVudHMobW9kZWwpKS50b01hdGNoU25hcHNob3QoKTtcbiAgZXhwZWN0KG1vZGVsLmNvbXBvbmVudHMubGVuZ3RoKS50b0JlKDgpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5sZW5ndGgpLnRvQmUoMTYpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PiByIGluc3RhbmNlb2YgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCkubGVuZ3RoKS50b0JlKDkpO1xufSk7XG5cbnRlc3QoJ0Jhc2ljIHJlc291cmNlcycsICgpID0+IHtcbiAgY29uc3QgcGFyc2VyID0gbmV3IENGUGFyc2VyKCdyb290Jywge1xuICAgIFJlc291cmNlczoge1xuICAgICAgbG9naWNhbElkMDoge1xuICAgICAgICBUeXBlOiAnQVdTOjpJQU06OlBvbGljeScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBwcm9wZXJ0eTE6ICdwcm9wZXJ0eVZhbHVlJyxcbiAgICAgICAgICBwcm9wZXJ0eTI6IHsgUmVmOiAnbG9naWNhbElkMScgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBsb2dpY2FsSWQxOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OklBTTo6UG9saWN5JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IG1vZGVsID0gcGFyc2VyLnBhcnNlKCk7XG4gIGV4cGVjdChtb2RlbC5jb21wb25lbnRzLmxlbmd0aCkudG9CZSgzKTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMubGVuZ3RoKS50b0JlKDMpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PiByIGluc3RhbmNlb2YgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCkubGVuZ3RoKS50b0JlKDEpO1xufSk7XG4iXX0=

@@ -7,3 +7,3 @@ "use strict";

const cloudformationDir = 'test/platform-mapping/cloudformation';
const { genGraphOnEnvFlag, } = utils_1.ParserUtilsCreator(cloudformationDir);
const { genGraphOnEnvFlag, } = (0, utils_1.ParserUtilsCreator)(cloudformationDir);
test('Nested Stack Parameters\' dependencies', () => {

@@ -159,2 +159,2 @@ const outer = {

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLXN0YWNrcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmVzdGVkLXN0YWNrcy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNENBR3lCO0FBQ3pCLG9FQUF5RDtBQUN6RCx1Q0FBaUQ7QUFFakQsTUFBTSxpQkFBaUIsR0FBRyxzQ0FBc0MsQ0FBQztBQUVqRSxNQUFNLEVBQ0osaUJBQWlCLEdBQ2xCLEdBQUcsMEJBQWtCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUUxQyxJQUFJLENBQUMsd0NBQXdDLEVBQUUsR0FBRyxFQUFFO0lBQ2xELE1BQU0sS0FBSyxHQUFHO1FBQ1osVUFBVSxFQUFFO1lBQ1YsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLE9BQU8sRUFBRSxjQUFjO2FBQ3hCO1NBQ0Y7UUFDRCxTQUFTLEVBQUU7WUFDVCxXQUFXLEVBQUU7Z0JBQ1gsSUFBSSxFQUFFLDRCQUE0QjtnQkFDbEMsVUFBVSxFQUFFO29CQUNWLFVBQVUsRUFBRTt3QkFDVixlQUFlLEVBQUUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFDO3FCQUN0QztpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUc7UUFDWixVQUFVLEVBQUU7WUFDVixlQUFlLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLGNBQWM7YUFDeEI7U0FDRjtLQUNGLENBQUM7SUFFRixNQUFNLE1BQU0sR0FBRyxJQUFJLDJCQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBQyxZQUFZLEVBQUUsRUFBQyxXQUFXLEVBQUUsS0FBSyxFQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMs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Q0FDckMsRUFBRSxZQUFZLCtCQUFzQjtXQUM3QixFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxnQkFBZ0I7V0FDbkMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssaUJBQWlCO1dBQ3BDLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsWUFBWSwrQkFBc0IsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUNsSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEMsQ0FBQyxZQUFZLCtCQUFzQjtXQUN4QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVO1dBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FDNUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3BDLENBQUMsWUFBWSwrQkFBc0I7V0FDeEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssY0FBYztXQUNoQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxhQUFhLENBQzNDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCxcbiAgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCxcbn0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IENGUGFyc2VyIH0gZnJvbSAnLi4vLi4vLi4vbGliL3BsYXRmb3JtLW1hcHBpbmcnO1xuaW1wb3J0IHsgUGFyc2VyVXRpbHNDcmVhdG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5jb25zdCBjbG91ZGZvcm1hdGlvbkRpciA9ICd0ZXN0L3BsYXRmb3JtLW1hcHBpbmcvY2xvdWRmb3JtYXRpb24nO1xuXG5jb25zdCB7XG4gIGdlbkdyYXBoT25FbnZGbGFnLFxufSA9IFBhcnNlclV0aWxzQ3JlYXRvcihjbG91ZGZvcm1hdGlvbkRpcik7XG5cbnRlc3QoJ05lc3RlZCBTdGFjayBQYXJhbWV0ZXJzXFwnIGRlcGVuZGVuY2llcycsICgpID0+IHtcbiAgY29uc3Qgb3V0ZXIgPSB7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgUGFyYW1ldGVyMDoge1xuICAgICAgICBUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgRGVmYXVsdDogJ2RlZmF1bHRWYWx1ZScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBOZXN0ZWRTdGFjazoge1xuICAgICAgICBUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2snLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgSW5uZXJQYXJhbWV0ZXIwOiB7IFJlZjogJ1BhcmFtZXRlcjAnfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGlubmVyID0ge1xuICAgIFBhcmFtZXRlcnM6IHtcbiAgICAgIElubmVyUGFyYW1ldGVyMDoge1xuICAgICAgICBUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgRGVmYXVsdDogJ2RlZmF1bHRWYWx1ZScsXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgcGFyc2VyID0gbmV3IENGUGFyc2VyKCdyb290Jywgb3V0ZXIpO1xuICBjb25zdCBtb2RlbCA9IHBhcnNlci5wYXJzZSh7bmVzdGVkU3RhY2tzOiB7TmVzdGVkU3RhY2s6IGlubmVyfX0pO1xuICBleHBlY3QobW9kZWwuY29tcG9uZW50cy5sZW5ndGgpLnRvQmUoNCk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmxlbmd0aCkudG9CZSg1KTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKHIgPT4gciBpbnN0YW5jZW9mIERlcGVuZGVuY3lSZWxhdGlvbnNoaXApLmxlbmd0aCkudG9CZSgyKTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKGRyID0+XG4gICAgZHIgaW5zdGFuY2VvZiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwXG4gICAgICAmJiBkci5zb3VyY2UubmFtZSA9PT0gJ0lubmVyUGFyYW1ldGVyMCdcbiAgICAgICYmIGRyLnRhcmdldC5uYW1lID09PSAnUGFyYW1ldGVyMCdcbiAgICAgICYmIFsuLi5kci5zb3VyY2UuaW5jb21pbmddLmZpbHRlcihzciA9PlxuICAgICAgICBzciBpbnN0YW5jZW9mIFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAgJiYgc3Iuc291cmNlLm5hbWUgPT09ICdOZXN0ZWRTdGFjaycsXG4gICAgICApLmxlbmd0aCA9PT0gMSxcbiAgKS5sZW5ndGgpLnRvQmUoMSk7XG59KTtcblxudGVzdCgnTmVzdGVkIFN0YWNrIE91dHB1dHNcXCcgZGVwZW5kZW5jaWVzJywgKCkgPT4ge1xuICBjb25zdCBvdXRlciA9IHtcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIE5lc3RlZFN0YWNrOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycsXG4gICAgICAgIFByb3BlcnRpZXM6IHt9LFxuICAgICAgfSxcbiAgICAgIFJlc291cmNlOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBQcm9wZXJ0eTogeyAnRm46OkdldEF0dCc6IFsnTmVzdGVkU3RhY2snLCAnT3V0cHV0cy5PdXRwdXQnXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGlubmVyID0ge1xuICAgIE91dHB1dHM6IHtcbiAgICAgIE91dHB1dDoge1xuICAgICAgICBWYWx1ZTogJ3ZhbHVlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBwYXJzZXIgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBvdXRlcik7XG4gIGNvbnN0IG1vZGVsID0gcGFyc2VyLnBhcnNlKHtuZXN0ZWRTdGFja3M6IHtOZXN0ZWRTdGFjazogaW5uZXJ9fSk7XG4gIGV4cGVjdChtb2RlbC5jb21wb25lbnRzLmxlbmd0aCkudG9CZSg0KTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMubGVuZ3RoKS50b0JlKDUpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PiByIGluc3RhbmNlb2YgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCkubGVuZ3RoKS50b0JlKDIpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PlxuICAgIHIgaW5zdGFuY2VvZiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwXG4gICAgICAgICYmIHIuc291cmNlLm5hbWUgPT09ICdSZXNvdXJjZSdcbiAgICAgICAgJiYgci50YXJnZXQubmFtZSA9PT0gJ091dHB1dCcsXG4gICkubGVuZ3RoKS50b0JlKDEpO1xufSk7XG5cbnRlc3QoJ0RvdWJsZSBOZXN0ZWQgU3RhY2tcXCdzIGRlcGVuZGVuY2llcycsICgpID0+IHtcbiAgY29uc3Qgb3V0ZXJTdGFjayA9IHtcbiAgICBQYXJhbWV0ZXJzOiB7XG4gICAgICBQYXJhbWV0ZXI6IHtcbiAgICAgICAgVHlwZTogJ1N0cmluZycsXG4gICAgICAgIERlZmF1bHQ6ICdkZWZhdWx0VmFsdWUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIFJlc291cmNlczoge1xuICAgICAgTWlkZGxlU3RhY2s6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIFBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIE1pZGRsZVBhcmFtZXRlcjogeyBSZWY6ICdQYXJhbWV0ZXInfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIFJlc291cmNlOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBQcm9wZXJ0eTogeyAnRm46OkdldEF0dCc6IFsnTWlkZGxlU3RhY2snLCAnT3V0cHV0cy5NaWRkbGVPdXRwdXQnXSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IG1pZGRsZVN0YWNrID0ge1xuICAgIFBhcmFtZXRlcnM6IHtcbiAgICAgIE1pZGRsZVBhcmFtZXRlcjoge1xuICAgICAgICBUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgRGVmYXVsdDogJ2RlZmF1bHRWYWx1ZScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBJbm5lclN0YWNrOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBJbm5lclBhcmFtZXRlcjogeyBSZWY6ICdNaWRkbGVQYXJhbWV0ZXInfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIE91dHB1dHM6IHtcbiAgICAgIE1pZGRsZU91dHB1dDoge1xuICAgICAgICBWYWx1ZTogeyAnRm46OkdldEF0dCc6IFsnSW5uZXJTdGFjaycsICdPdXRwdXRzLklubmVyT3V0cHV0J10gfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBpbm5lclN0YWNrID0ge1xuICAgIFBhcmFtZXRlcnM6IHtcbiAgICAgIElubmVyUGFyYW1ldGVyOiB7XG4gICAgICAgIFR5cGU6ICdTdHJpbmcnLFxuICAgICAgICBEZWZhdWx0OiAnZGVmYXVsdFZhbHVlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBPdXRwdXRzOiB7XG4gICAgICBJbm5lck91dHB1dDoge1xuICAgICAgICBWYWx1ZTogJ3ZhbHVlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBwYXJzZXIgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBvdXRlclN0YWNrKTtcbiAgY29uc3QgbW9kZWwgPSBwYXJzZXIucGFyc2Uoe25lc3RlZFN0YWNrczoge01pZGRsZVN0YWNrOiBtaWRkbGVTdGFjaywgSW5uZXJTdGFjazogaW5uZXJTdGFja319KTtcbiAgZ2VuR3JhcGhPbkVudkZsYWcobW9kZWwsICdkb3VibGUtbmVzdGVkLXN0YWNrJyk7XG4gIGV4cGVjdChtb2RlbC5jb21wb25lbnRzLmxlbmd0aCkudG9CZSg5KTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMubGVuZ3RoKS50b0JlKDE5KTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKHIgPT4gciBpbnN0YW5jZW9mIERlcGVuZGVuY3lSZWxhdGlvbnNoaXApLmxlbmd0aCkudG9CZSgxMSk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihkciA9PlxuICAgIGRyIGluc3RhbmNlb2YgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcFxuICAgICAgICAgJiYgZHIuc291cmNlLm5hbWUgPT09ICdNaWRkbGVQYXJhbWV0ZXInXG4gICAgICAgICAmJiBkci50YXJnZXQubmFtZSA9PT0gJ1BhcmFtZXRlcidcbiAgICAgICAgICYmIFsuLi5kci5zb3VyY2UuaW5jb21pbmddLmZpbHRlcihzciA9PiBzciBpbnN0YW5jZW9mIFN0cnVjdHVyYWxSZWxhdGlvbnNoaXAgJiYgc3Iuc291cmNlLm5hbWUgPT09ICdNaWRkbGVTdGFjaycpLmxlbmd0aCA9PT0gMSxcbiAgKS5sZW5ndGgpLnRvQmUoMSk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihkciA9PlxuICAgIGRyIGluc3RhbmNlb2YgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcFxuICAgICAgICAmJiBkci5zb3VyY2UubmFtZSA9PT0gJ0lubmVyUGFyYW1ldGVyJ1xuICAgICAgICAmJiBkci50YXJnZXQubmFtZSA9PT0gJ01pZGRsZVBhcmFtZXRlcidcbiAgICAgICAgJiYgWy4uLmRyLnNvdXJjZS5pbmNvbWluZ10uZmlsdGVyKHNyID0+IHNyIGluc3RhbmNlb2YgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCAmJiBzci5zb3VyY2UubmFtZSA9PT0gJ0lubmVyU3RhY2snKS5sZW5ndGggPT09IDEsXG4gICkubGVuZ3RoKS50b0JlKDEpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PlxuICAgIHIgaW5zdGFuY2VvZiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwXG4gICAgICAgICAgICAmJiByLnNvdXJjZS5uYW1lID09PSAnUmVzb3VyY2UnXG4gICAgICAgICAgICAmJiByLnRhcmdldC5uYW1lID09PSAnTWlkZGxlT3V0cHV0JyxcbiAgKS5sZW5ndGgpLnRvQmUoMSk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihyID0+XG4gICAgciBpbnN0YW5jZW9mIERlcGVuZGVuY3lSZWxhdGlvbnNoaXBcbiAgICAgICAgICAgICYmIHIuc291cmNlLm5hbWUgPT09ICdNaWRkbGVPdXRwdXQnXG4gICAgICAgICAgICAmJiByLnRhcmdldC5uYW1lID09PSAnSW5uZXJPdXRwdXQnLFxuICApLmxlbmd0aCkudG9CZSgxKTtcbn0pOyJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGVkLXN0YWNrcy50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibmVzdGVkLXN0YWNrcy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNENBR3lCO0FBQ3pCLG9FQUF5RDtBQUN6RCx1Q0FBaUQ7QUFFakQsTUFBTSxpQkFBaUIsR0FBRyxzQ0FBc0MsQ0FBQztBQUVqRSxNQUFNLEVBQ0osaUJBQWlCLEdBQ2xCLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTFDLElBQUksQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLEVBQUU7SUFDbEQsTUFBTSxLQUFLLEdBQUc7UUFDWixVQUFVLEVBQUU7WUFDVixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsT0FBTyxFQUFFLGNBQWM7YUFDeEI7U0FDRjtRQUNELFNBQVMsRUFBRTtZQUNULFdBQVcsRUFBRTtnQkFDWCxJQUFJLEVBQUUsNEJBQTRCO2dCQUNsQyxVQUFVLEVBQUU7b0JBQ1YsVUFBVSxFQUFFO3dCQUNWLGVBQWUsRUFBRSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUM7cUJBQ3RDO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGLENBQUM7SUFFRixNQUFNLEtBQUssR0FBRztRQUNaLFVBQVUsRUFBRTtZQUNWLGVBQWUsRUFBRTtnQkFDZixJQUFJLEVBQUUsUUFBUTtnQkFDZCxPQUFPLEVBQUUsY0FBYzthQUN4QjtTQUNGO0tBQ0YsQ0FBQztJQUVGLE1BQU0sTUFBTSxHQUFHLElBQUksMkJBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDM0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFDLFlBQVksRUFBRSxFQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUMsRUFBQyxDQUFDLENBQUM7SUFDakUsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMs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RUFBRSxDQUNyQyxFQUFFLFlBQVksK0JBQXNCO1dBQzdCLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGdCQUFnQjtXQUNuQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxpQkFBaUI7V0FDcEMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxZQUFZLCtCQUFzQixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQ2xJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNwQyxDQUFDLFlBQVksK0JBQXNCO1dBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVU7V0FDNUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUM1QyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEMsQ0FBQyxZQUFZLCtCQUFzQjtXQUN4QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxjQUFjO1dBQ2hDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FDM0MsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXBlbmRlbmN5UmVsYXRpb25zaGlwLFxuICBTdHJ1Y3R1cmFsUmVsYXRpb25zaGlwLFxufSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgQ0ZQYXJzZXIgfSBmcm9tICcuLi8uLi8uLi9saWIvcGxhdGZvcm0tbWFwcGluZyc7XG5pbXBvcnQgeyBQYXJzZXJVdGlsc0NyZWF0b3IgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmNvbnN0IGNsb3VkZm9ybWF0aW9uRGlyID0gJ3Rlc3QvcGxhdGZvcm0tbWFwcGluZy9jbG91ZGZvcm1hdGlvbic7XG5cbmNvbnN0IHtcbiAgZ2VuR3JhcGhPbkVudkZsYWcsXG59ID0gUGFyc2VyVXRpbHNDcmVhdG9yKGNsb3VkZm9ybWF0aW9uRGlyKTtcblxudGVzdCgnTmVzdGVkIFN0YWNrIFBhcmFtZXRlcnNcXCcgZGVwZW5kZW5jaWVzJywgKCkgPT4ge1xuICBjb25zdCBvdXRlciA9IHtcbiAgICBQYXJhbWV0ZXJzOiB7XG4gICAgICBQYXJhbWV0ZXIwOiB7XG4gICAgICAgIFR5cGU6ICdTdHJpbmcnLFxuICAgICAgICBEZWZhdWx0OiAnZGVmYXVsdFZhbHVlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIE5lc3RlZFN0YWNrOiB7XG4gICAgICAgIFR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpTdGFjaycsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBJbm5lclBhcmFtZXRlcjA6IHsgUmVmOiAnUGFyYW1ldGVyMCd9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgaW5uZXIgPSB7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgSW5uZXJQYXJhbWV0ZXIwOiB7XG4gICAgICAgIFR5cGU6ICdTdHJpbmcnLFxuICAgICAgICBEZWZhdWx0OiAnZGVmYXVsdFZhbHVlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBjb25zdCBwYXJzZXIgPSBuZXcgQ0ZQYXJzZXIoJ3Jvb3QnLCBvdXRlcik7XG4gIGNvbnN0IG1vZGVsID0gcGFyc2VyLnBhcnNlKHtuZXN0ZWRTdGFja3M6IHtOZXN0ZWRTdGFjazogaW5uZXJ9fSk7XG4gIGV4cGVjdChtb2RlbC5jb21wb25lbnRzLmxlbmd0aCkudG9CZSg0KTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMubGVuZ3RoKS50b0JlKDUpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PiByIGluc3RhbmNlb2YgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCkubGVuZ3RoKS50b0JlKDIpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIoZHIgPT5cbiAgICBkciBpbnN0YW5jZW9mIERlcGVuZGVuY3lSZWxhdGlvbnNoaXBcbiAgICAgICYmIGRyLnNvdXJjZS5uYW1lID09PSAnSW5uZXJQYXJhbWV0ZXIwJ1xuICAgICAgJiYgZHIudGFyZ2V0Lm5hbWUgPT09ICdQYXJhbWV0ZXIwJ1xuICAgICAgJiYgWy4uLmRyLnNvdXJjZS5pbmNvbWluZ10uZmlsdGVyKHNyID0+XG4gICAgICAgIHNyIGluc3RhbmNlb2YgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCAmJiBzci5zb3VyY2UubmFtZSA9PT0gJ05lc3RlZFN0YWNrJyxcbiAgICAgICkubGVuZ3RoID09PSAxLFxuICApLmxlbmd0aCkudG9CZSgxKTtcbn0pO1xuXG50ZXN0KCdOZXN0ZWQgU3RhY2sgT3V0cHV0c1xcJyBkZXBlbmRlbmNpZXMnLCAoKSA9PiB7XG4gIGNvbnN0IG91dGVyID0ge1xuICAgIFJlc291cmNlczoge1xuICAgICAgTmVzdGVkU3RhY2s6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyxcbiAgICAgICAgUHJvcGVydGllczoge30sXG4gICAgICB9LFxuICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIFByb3BlcnR5OiB7ICdGbjo6R2V0QXR0JzogWydOZXN0ZWRTdGFjaycsICdPdXRwdXRzLk91dHB1dCddIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgaW5uZXIgPSB7XG4gICAgT3V0cHV0czoge1xuICAgICAgT3V0cHV0OiB7XG4gICAgICAgIFZhbHVlOiAndmFsdWUnLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IHBhcnNlciA9IG5ldyBDRlBhcnNlcigncm9vdCcsIG91dGVyKTtcbiAgY29uc3QgbW9kZWwgPSBwYXJzZXIucGFyc2Uoe25lc3RlZFN0YWNrczoge05lc3RlZFN0YWNrOiBpbm5lcn19KTtcbiAgZXhwZWN0KG1vZGVsLmNvbXBvbmVudHMubGVuZ3RoKS50b0JlKDQpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5sZW5ndGgpLnRvQmUoNSk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihyID0+IHIgaW5zdGFuY2VvZiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwKS5sZW5ndGgpLnRvQmUoMik7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihyID0+XG4gICAgciBpbnN0YW5jZW9mIERlcGVuZGVuY3lSZWxhdGlvbnNoaXBcbiAgICAgICAgJiYgci5zb3VyY2UubmFtZSA9PT0gJ1Jlc291cmNlJ1xuICAgICAgICAmJiByLnRhcmdldC5uYW1lID09PSAnT3V0cHV0JyxcbiAgKS5sZW5ndGgpLnRvQmUoMSk7XG59KTtcblxudGVzdCgnRG91YmxlIE5lc3RlZCBTdGFja1xcJ3MgZGVwZW5kZW5jaWVzJywgKCkgPT4ge1xuICBjb25zdCBvdXRlclN0YWNrID0ge1xuICAgIFBhcmFtZXRlcnM6IHtcbiAgICAgIFBhcmFtZXRlcjoge1xuICAgICAgICBUeXBlOiAnU3RyaW5nJyxcbiAgICAgICAgRGVmYXVsdDogJ2RlZmF1bHRWYWx1ZScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgUmVzb3VyY2VzOiB7XG4gICAgICBNaWRkbGVTdGFjazoge1xuICAgICAgICBUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6U3RhY2snLFxuICAgICAgICBQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgTWlkZGxlUGFyYW1ldGVyOiB7IFJlZjogJ1BhcmFtZXRlcid9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgUmVzb3VyY2U6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIFByb3BlcnR5OiB7ICdGbjo6R2V0QXR0JzogWydNaWRkbGVTdGFjaycsICdPdXRwdXRzLk1pZGRsZU91dHB1dCddIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3QgbWlkZGxlU3RhY2sgPSB7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgTWlkZGxlUGFyYW1ldGVyOiB7XG4gICAgICAgIFR5cGU6ICdTdHJpbmcnLFxuICAgICAgICBEZWZhdWx0OiAnZGVmYXVsdFZhbHVlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIElubmVyU3RhY2s6IHtcbiAgICAgICAgVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OlN0YWNrJyxcbiAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgIFBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIElubmVyUGFyYW1ldGVyOiB7IFJlZjogJ01pZGRsZVBhcmFtZXRlcid9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgT3V0cHV0czoge1xuICAgICAgTWlkZGxlT3V0cHV0OiB7XG4gICAgICAgIFZhbHVlOiB7ICdGbjo6R2V0QXR0JzogWydJbm5lclN0YWNrJywgJ091dHB1dHMuSW5uZXJPdXRwdXQnXSB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IGlubmVyU3RhY2sgPSB7XG4gICAgUGFyYW1ldGVyczoge1xuICAgICAgSW5uZXJQYXJhbWV0ZXI6IHtcbiAgICAgICAgVHlwZTogJ1N0cmluZycsXG4gICAgICAgIERlZmF1bHQ6ICdkZWZhdWx0VmFsdWUnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIE91dHB1dHM6IHtcbiAgICAgIElubmVyT3V0cHV0OiB7XG4gICAgICAgIFZhbHVlOiAndmFsdWUnLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIGNvbnN0IHBhcnNlciA9IG5ldyBDRlBhcnNlcigncm9vdCcsIG91dGVyU3RhY2spO1xuICBjb25zdCBtb2RlbCA9IHBhcnNlci5wYXJzZSh7bmVzdGVkU3RhY2tzOiB7TWlkZGxlU3RhY2s6IG1pZGRsZVN0YWNrLCBJbm5lclN0YWNrOiBpbm5lclN0YWNrfX0pO1xuICBnZW5HcmFwaE9uRW52RmxhZyhtb2RlbCwgJ2RvdWJsZS1uZXN0ZWQtc3RhY2snKTtcbiAgZXhwZWN0KG1vZGVsLmNvbXBvbmVudHMubGVuZ3RoKS50b0JlKDkpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5sZW5ndGgpLnRvQmUoMTkpO1xuICBleHBlY3QobW9kZWwucmVsYXRpb25zaGlwcy5maWx0ZXIociA9PiByIGluc3RhbmNlb2YgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcCkubGVuZ3RoKS50b0JlKDExKTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKGRyID0+XG4gICAgZHIgaW5zdGFuY2VvZiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwXG4gICAgICAgICAmJiBkci5zb3VyY2UubmFtZSA9PT0gJ01pZGRsZVBhcmFtZXRlcidcbiAgICAgICAgICYmIGRyLnRhcmdldC5uYW1lID09PSAnUGFyYW1ldGVyJ1xuICAgICAgICAgJiYgWy4uLmRyLnNvdXJjZS5pbmNvbWluZ10uZmlsdGVyKHNyID0+IHNyIGluc3RhbmNlb2YgU3RydWN0dXJhbFJlbGF0aW9uc2hpcCAmJiBzci5zb3VyY2UubmFtZSA9PT0gJ01pZGRsZVN0YWNrJykubGVuZ3RoID09PSAxLFxuICApLmxlbmd0aCkudG9CZSgxKTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKGRyID0+XG4gICAgZHIgaW5zdGFuY2VvZiBEZXBlbmRlbmN5UmVsYXRpb25zaGlwXG4gICAgICAgICYmIGRyLnNvdXJjZS5uYW1lID09PSAnSW5uZXJQYXJhbWV0ZXInXG4gICAgICAgICYmIGRyLnRhcmdldC5uYW1lID09PSAnTWlkZGxlUGFyYW1ldGVyJ1xuICAgICAgICAmJiBbLi4uZHIuc291cmNlLmluY29taW5nXS5maWx0ZXIoc3IgPT4gc3IgaW5zdGFuY2VvZiBTdHJ1Y3R1cmFsUmVsYXRpb25zaGlwICYmIHNyLnNvdXJjZS5uYW1lID09PSAnSW5uZXJTdGFjaycpLmxlbmd0aCA9PT0gMSxcbiAgKS5sZW5ndGgpLnRvQmUoMSk7XG4gIGV4cGVjdChtb2RlbC5yZWxhdGlvbnNoaXBzLmZpbHRlcihyID0+XG4gICAgciBpbnN0YW5jZW9mIERlcGVuZGVuY3lSZWxhdGlvbnNoaXBcbiAgICAgICAgICAgICYmIHIuc291cmNlLm5hbWUgPT09ICdSZXNvdXJjZSdcbiAgICAgICAgICAgICYmIHIudGFyZ2V0Lm5hbWUgPT09ICdNaWRkbGVPdXRwdXQnLFxuICApLmxlbmd0aCkudG9CZSgxKTtcbiAgZXhwZWN0KG1vZGVsLnJlbGF0aW9uc2hpcHMuZmlsdGVyKHIgPT5cbiAgICByIGluc3RhbmNlb2YgRGVwZW5kZW5jeVJlbGF0aW9uc2hpcFxuICAgICAgICAgICAgJiYgci5zb3VyY2UubmFtZSA9PT0gJ01pZGRsZU91dHB1dCdcbiAgICAgICAgICAgICYmIHIudGFyZ2V0Lm5hbWUgPT09ICdJbm5lck91dHB1dCcsXG4gICkubGVuZ3RoKS50b0JlKDEpO1xufSk7Il19

@@ -30,3 +30,3 @@ "use strict";

test('Rule processor condition with references operator', () => {
const diff = infra_model_diff_1.diffTestCase1();
const diff = (0, infra_model_diff_1.diffTestCase1)();
const rules = generateRulesWithConditions([{

@@ -41,3 +41,3 @@ leftInput: { identifier: 'instance' },

test('Rule processor condition with references operator in opposite direction should fail', () => {
const diff = infra_model_diff_1.diffTestCase1();
const diff = (0, infra_model_diff_1.diffTestCase1)();
const rules = generateRulesWithConditions([{

@@ -52,3 +52,3 @@ leftInput: { identifier: 'role' },

test('Rule processor condition with isReferencedIn operator', () => {
const diff = infra_model_diff_1.diffTestCase1();
const diff = (0, infra_model_diff_1.diffTestCase1)();
const rules = generateRulesWithConditions([{

@@ -63,3 +63,3 @@ leftInput: { identifier: 'role' },

test('Rule processor condition with contains operator', () => {
const diff = infra_model_diff_1.diffTestCase1();
const diff = (0, infra_model_diff_1.diffTestCase1)();
const rules = generateRulesWithConditions([{

@@ -74,3 +74,3 @@ leftInput: { identifier: 'construct' },

test('Rule processor condition with contains operator finds nothing', () => {
const diff = infra_model_diff_1.diffTestCase1();
const diff = (0, infra_model_diff_1.diffTestCase1)();
const rules = generateRulesWithConditions([{

@@ -85,3 +85,3 @@ leftInput: { identifier: 'construct' },

test('Rule processor condition with isContainedIn operator', () => {
const diff = infra_model_diff_1.diffTestCase1();
const diff = (0, infra_model_diff_1.diffTestCase1)();
const rules = generateRulesWithConditions([{

@@ -96,3 +96,3 @@ leftInput: { identifier: 'role' },

test('Rule processor condition with contains operator should not match reference relationships', () => {
const diff = infra_model_diff_1.diffTestCase1();
const diff = (0, infra_model_diff_1.diffTestCase1)();
const rules = generateRulesWithConditions([{

@@ -106,2 +106,2 @@ leftInput: { identifier: 'instance' },

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtcmVsYXRpb25zaGlwLW9wZXJhdG9yLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydWxlcy1yZWxhdGlvbnNoaXAtb3BlcmF0b3IudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRDQUF1RDtBQUN2RCwwQ0FBa0Y7QUFDbEYsbUNBQTBDO0FBQzFDLDZFQUF1RTtBQUV2RTs7Ozs7O0dBTUc7QUFDSCxTQUFTLDJCQUEyQixDQUFDLFVBQTBCO0lBQzdELE9BQU8sQ0FBQztZQUNOLEdBQUcsRUFBRTtnQkFDSCxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEVBQUM7Z0JBQ3pGLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRTtnQkFDbEcsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUU7Z0JBQ3JFLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2FBQy9EO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixJQUFJLEVBQUUsaUJBQVEsQ0FBQyxJQUFJO2dCQUNuQixNQUFNLEVBQUUsbUJBQVUsQ0FBQyxNQUFNO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELElBQUksQ0FBQyxtREFBbUQsRUFBRSxHQUFHLEVBQUU7SUFFN0QsTUFBTSxJQUFJLEdBQUcsZ0NBQWEsRUFBRSxDQUFDO0lBRTdCLE1BQU0sS0FBSyxHQUFHLDJCQUEyQixDQUFDLENBQUM7WUFD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O0lBRUosTUFBTSxNQUFNLEdBQUcsSUFBSSxtQkFBYSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25GLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVsZUFjdGlvbiwgUnVsZVJpc2sgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHsgUnVsZUNvbmRpdGlvbnMsIFJ1bGVDb25kaXRpb25PcGVyYXRvciwgVXNlclJ1bGVzIH0gZnJvbSAnQGF3cy1jMmEvcnVsZXMnO1xuaW1wb3J0IHsgUnVsZVByb2Nlc3NvciB9IGZyb20gJy4uLy4uL2xpYic7XG5pbXBvcnQgeyBkaWZmVGVzdENhc2UxIH0gZnJvbSAnLi4vZGVmYXVsdC10ZXN0LWNhc2VzL2luZnJhLW1vZGVsLWRpZmYnO1xuXG4vKipcbiAqIEdlbmVyYXRlcyBydWxlcyBmb3IgZXhhbXBsZSBkaWZmIDEgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmRpdGlvbnNcbiAqIEBwYXJhbSB0MVxuICogQHBhcmFtIG9wZXJhdG9yXG4gKiBAcGFyYW0gdDJcbiAqIEByZXR1cm5zXG4gKi9cbmZ1bmN0aW9uIGdlbmVyYXRlUnVsZXNXaXRoQ29uZGl0aW9ucyhjb25kaXRpb25zOiBSdWxlQ29uZGl0aW9ucyk6IFVzZXJSdWxlc3tcbiAgcmV0dXJuIFt7XG4gICAgbGV0OiB7XG4gICAgICByb2xlOiB7IGZpbHRlcjogeyBlbnRpdHlUeXBlOiAnY29tcG9uZW50JywgdHlwZTogJ3Jlc291cmNlJywgc3VidHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9fSxcbiAgICAgIGluc3RhbmNlOiB7IGZpbHRlcjogeyBlbnRpdHlUeXBlOiAnY29tcG9uZW50JywgdHlwZTogJ3Jlc291cmNlJywgc3VidHlwZTogJ0FXUzo6RUMyOjpJbnN0YW5jZScgfSB9LFxuICAgICAgY29uc3RydWN0OiB7IGZpbHRlcjogeyBlbnRpdHlUeXBlOiAnY29tcG9uZW50JywgdHlwZTogJ2NvbnN0cnVjdCcgfSB9LFxuICAgICAgY2hhbmdlOiB7IGZpbHRlcjoge2VudGl0eVR5cGU6ICdjaGFuZ2UnIH0sIHdoZXJlOiBjb25kaXRpb25zIH0sXG4gICAgfSxcbiAgICBlZmZlY3Q6IHtcbiAgICAgIHRhcmdldDogJ2NoYW5nZScsXG4gICAgICByaXNrOiBSdWxlUmlzay5IaWdoLFxuICAgICAgYWN0aW9uOiBSdWxlQWN0aW9uLlJlamVjdCxcbiAgICB9LFxuICB9XTtcbn1cblxudGVzdCgnUnVsZSBwcm9jZXNzb3IgY29uZGl0aW9uIHdpdGggcmVmZXJlbmNlcyBvcGVyYXRvcicsICgpID0+IHtcblxuICBjb25zdCBkaWZmID0gZGlmZlRlc3RDYXNlMSgpO1xuXG4gIGNvbnN0IHJ1bGVzID0gZ2VuZXJhdGVSdWxlc1dpdGhDb25kaXRpb25zKFt7XG4gICAgbGVmdElucHV0OiB7aWRlbnRpZmllcjogJ2luc3RhbmNlJ30sXG4gICAgb3BlcmF0b3I6IFJ1bGVDb25kaXRpb25PcGVyYXRvci5yZWZlcmVuY2VzLFxuICAgIHJpZ2h0SW5wdXQ6IHtpZGVudGlmaWVyOiAncm9sZSd9LFxuICB9XSk7XG5cbiAgY29uc3QgcmVzdWx0ID0gbmV3IFJ1bGVQcm9jZXNzb3IoZGlmZi5nZW5lcmF0ZU91dGdvaW5nR3JhcGgoKSkucHJvY2Vzc1J1bGVzKHJ1bGVzKTtcbiAgZXhwZWN0KHJlc3VsdC5zaXplKS50b0VxdWFsKDIpO1xufSk7XG5cbnRlc3QoJ1J1bGUgcHJvY2Vzc29yIGNvbmRpdGlvbiB3aXRoIHJlZmVyZW5jZXMgb3BlcmF0b3IgaW4gb3Bwb3NpdGUgZGlyZWN0aW9uIHNob3VsZCBmYWlsJywgKCkgPT4ge1xuXG4gIGNvbnN0IGRpZmYgPSBkaWZmVGVzdENhc2UxKCk7XG5cbiAgY29uc3QgcnVsZXMgPSBnZW5lcmF0ZVJ1bGVzV2l0aENvbmRpdGlvbnMoW3tcbiAgICBsZWZ0SW5wdXQ6IHtpZGVudGlmaWVyOiAncm9sZSd9LFxuICAgIG9wZXJhdG9yOiBSdWxlQ29uZGl0aW9uT3BlcmF0b3IucmVmZXJlbmNlcyxcbiAgICByaWdodElucHV0OiB7aWRlbnRpZmllcjogJ2luc3RhbmNlJ30sXG4gIH1dKTtcblxuICBjb25zdCByZXN1bHQgPSBuZXcgUnVsZVByb2Nlc3NvcihkaWZmLmdlbmVyYXRlT3V0Z29pbmdHcmFwaCgpKS5wcm9jZXNzUnVsZXMocnVsZXMpO1xuICBleHBlY3QocmVzdWx0LnNpemUpLnRvRXF1YWwoMCk7XG59KTtcblxudGVzdCgnUnVsZSBwcm9jZXNzb3IgY29uZGl0aW9uIHdpdGggaXNSZWZlcmVuY2VkSW4gb3BlcmF0b3InLCAoKSA9PiB7XG5cbiAgY29uc3QgZGlmZiA9IGRpZmZUZXN0Q2FzZTEoKTtcblxuICBjb25zdCBydWxlcyA9IGdlbmVyYXRlUnVsZXNXaXRoQ29uZGl0aW9ucyhbe1xuICAgIGxlZnRJbnB1dDoge2lkZW50aWZpZXI6ICdyb2xlJ30sXG4gICAgb3BlcmF0b3I6IFJ1bGVDb25kaXRpb25PcGVyYXRvci5pc1JlZmVyZW5jZWRJbixcbiAgICByaWdodElucHV0OiB7aWRlbnRpZmllcjogJ2luc3RhbmNlJ30sXG4gIH1dKTtcblxuICBjb25zdCByZXN1bHQgPSBuZXcgUnVsZVByb2Nlc3NvcihkaWZmLmdlbmVyYXRlT3V0Z29pbmdHcmFwaCgpKS5wcm9jZXNzUnVsZXMocnVsZXMpO1xuICBleHBlY3QocmVzdWx0LnNpemUpLnRvRXF1YWwoMik7XG59KTtcblxudGVzdCgnUnVsZSBwcm9jZXNzb3IgY29uZGl0aW9uIHdpdGggY29udGFpbnMgb3BlcmF0b3InLCAoKSA9PiB7XG5cbiAgY29uc3QgZGlmZiA9IGRpZmZUZXN0Q2FzZTEoKTtcblxuICBjb25zdCBydWxlcyA9IGdlbmVyYXRlUnVsZXNXaXRoQ29uZGl0aW9ucyhbe1xuICAgIGxlZnRJbnB1dDoge2lkZW50aWZpZXI6ICdjb25zdHJ1Y3QnfSxcbiAgICBvcGVyYXRvcjogUnVsZUNvbmRpdGlvbk9wZXJhdG9yLmNvbnRhaW5zLFxuICAgIHJpZ2h0SW5wdXQ6IHtpZGVudGlmaWVyOiAncm9sZSd9LFxuICB9XSk7XG5cbiAgY29uc3QgcmVzdWx0ID0gbmV3IFJ1bGVQcm9jZXNzb3IoZGlmZi5nZW5lcmF0ZU91dGdvaW5nR3JhcGgoKSkucHJvY2Vzc1J1bGVzKHJ1bGVzKTtcbiAgZXhwZWN0KHJlc3VsdC5zaXplKS50b0VxdWFsKDIpO1xufSk7XG5cbnRlc3QoJ1J1bGUgcHJvY2Vzc29yIGNvbmRpdGlvbiB3aXRoIGNvbnRhaW5zIG9wZXJhdG9yIGZpbmRzIG5vdGhpbmcnLCAoKSA9PiB7XG5cbiAgY29uc3QgZGlmZiA9IGRpZmZUZXN0Q2FzZTEoKTtcblxuICBjb25zdCBydWxlcyA9IGdlbmVyYXRlUnVsZXNXaXRoQ29uZGl0aW9ucyhbe1xuICAgIGxlZnRJbnB1dDoge2lkZW50aWZpZXI6ICdjb25zdHJ1Y3QnfSxcbiAgICBvcGVyYXRvcjogUnVsZUNvbmRpdGlvbk9wZXJhdG9yLmNvbnRhaW5zLFxuICAgIHJpZ2h0SW5wdXQ6IHtpZGVudGlmaWVyOiAnaW5zdGFuY2UnfSxcbiAgfV0pO1xuXG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBSdWxlUHJvY2Vzc29yKGRpZmYuZ2VuZXJhdGVPdXRnb2luZ0dyYXBoKCkpLnByb2Nlc3NSdWxlcyhydWxlcyk7XG4gIGV4cGVjdChyZXN1bHQuc2l6ZSkudG9FcXVhbCgwKTtcbn0pO1xuXG50ZXN0KCdSdWxlIHByb2Nlc3NvciBjb25kaXRpb24gd2l0aCBpc0NvbnRhaW5lZEluIG9wZXJhdG9yJywgKCkgPT4ge1xuXG4gIGNvbnN0IGRpZmYgPSBkaWZmVGVzdENhc2UxKCk7XG5cbiAgY29uc3QgcnVsZXMgPSBnZW5lcmF0ZVJ1bGVzV2l0aENvbmRpdGlvbnMoW3tcbiAgICBsZWZ0SW5wdXQ6IHtpZGVudGlmaWVyOiAncm9sZSd9LFxuICAgIG9wZXJhdG9yOiBSdWxlQ29uZGl0aW9uT3BlcmF0b3IuaXNDb250YWluZWRJbixcbiAgICByaWdodElucHV0OiB7aWRlbnRpZmllcjogJ2NvbnN0cnVjdCd9LFxuICB9XSk7XG5cbiAgY29uc3QgcmVzdWx0ID0gbmV3IFJ1bGVQcm9jZXNzb3IoZGlmZi5nZW5lcmF0ZU91dGdvaW5nR3JhcGgoKSkucHJvY2Vzc1J1bGVzKHJ1bGVzKTtcbiAgZXhwZWN0KHJlc3VsdC5zaXplKS50b0VxdWFsKDIpO1xufSk7XG5cbnRlc3QoJ1J1bGUgcHJvY2Vzc29yIGNvbmRpdGlvbiB3aXRoIGNvbnRhaW5zIG9wZXJhdG9yIHNob3VsZCBub3QgbWF0Y2ggcmVmZXJlbmNlIHJlbGF0aW9uc2hpcHMnLCAoKSA9PiB7XG5cbiAgY29uc3QgZGlmZiA9IGRpZmZUZXN0Q2FzZTEoKTtcblxuICBjb25zdCBydWxlcyA9IGdlbmVyYXRlUnVsZXNXaXRoQ29uZGl0aW9ucyhbe1xuICAgIGxlZnRJbnB1dDoge2lkZW50aWZpZXI6ICdpbnN0YW5jZSd9LFxuICAgIG9wZXJhdG9yOiBSdWxlQ29uZGl0aW9uT3BlcmF0b3IuY29udGFpbnMsXG4gICAgcmlnaHRJbnB1dDoge2lkZW50aWZpZXI6ICdyb2xlJ30sXG4gIH1dKTtcblxuICBjb25zdCByZXN1bHQgPSBuZXcgUnVsZVByb2Nlc3NvcihkaWZmLmdlbmVyYXRlT3V0Z29pbmdHcmFwaCgpKS5wcm9jZXNzUnVsZXMocnVsZXMpO1xuICBleHBlY3QocmVzdWx0LnNpemUpLnRvRXF1YWwoMCk7XG59KTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMtcmVsYXRpb25zaGlwLW9wZXJhdG9yLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJydWxlcy1yZWxhdGlvbnNoaXAtb3BlcmF0b3IudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDRDQUF1RDtBQUN2RCwwQ0FBa0Y7QUFDbEYsbUNBQTBDO0FBQzFDLDZFQUF1RTtBQUV2RTs7Ozs7O0dBTUc7QUFDSCxTQUFTLDJCQUEyQixDQUFDLFVBQTBCO0lBQzdELE9BQU8sQ0FBQztZQUNOLEdBQUcsRUFBRTtnQkFDSCxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEVBQUM7Z0JBQ3pGLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsRUFBRTtnQkFDbEcsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUU7Z0JBQ3JFLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2FBQy9EO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixJQUFJLEVBQUUsaUJBQVEsQ0FBQyxJQUFJO2dCQUNuQixNQUFNLEVBQUUsbUJBQVUsQ0FBQyxNQUFNO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELElBQUksQ0FBQyxtREFBbUQsRUFBRSxHQUFHLEVBQUU7SUFFN0QsTUFBTSxJQUFJLEdBQUcsSUFBQSxnQ0FBYSxHQUFFLENBQUM7SUFFN0IsTUFBTSxLQUFLLEdBQUcsMkJBQTJCLENBQUMsQ0FB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RUFBRSxNQUFNLEVBQUM7U0FDakMsQ0FBQyxDQUFDLENBQUM7SUFFSixNQUFNLE1BQU0sR0FBRyxJQUFJLG1CQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSdWxlQWN0aW9uLCBSdWxlUmlzayB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBSdWxlQ29uZGl0aW9ucywgUnVsZUNvbmRpdGlvbk9wZXJhdG9yLCBVc2VyUnVsZXMgfSBmcm9tICdAYXdzLWMyYS9ydWxlcyc7XG5pbXBvcnQgeyBSdWxlUHJvY2Vzc29yIH0gZnJvbSAnLi4vLi4vbGliJztcbmltcG9ydCB7IGRpZmZUZXN0Q2FzZTEgfSBmcm9tICcuLi9kZWZhdWx0LXRlc3QtY2FzZXMvaW5mcmEtbW9kZWwtZGlmZic7XG5cbi8qKlxuICogR2VuZXJhdGVzIHJ1bGVzIGZvciBleGFtcGxlIGRpZmYgMSB3aXRoIHRoZSBzcGVjaWZpZWQgY29uZGl0aW9uc1xuICogQHBhcmFtIHQxXG4gKiBAcGFyYW0gb3BlcmF0b3JcbiAqIEBwYXJhbSB0MlxuICogQHJldHVybnNcbiAqL1xuZnVuY3Rpb24gZ2VuZXJhdGVSdWxlc1dpdGhDb25kaXRpb25zKGNvbmRpdGlvbnM6IFJ1bGVDb25kaXRpb25zKTogVXNlclJ1bGVze1xuICByZXR1cm4gW3tcbiAgICBsZXQ6IHtcbiAgICAgIHJvbGU6IHsgZmlsdGVyOiB7IGVudGl0eVR5cGU6ICdjb21wb25lbnQnLCB0eXBlOiAncmVzb3VyY2UnLCBzdWJ0eXBlOiAnQVdTOjpJQU06OlJvbGUnIH19LFxuICAgICAgaW5zdGFuY2U6IHsgZmlsdGVyOiB7IGVudGl0eVR5cGU6ICdjb21wb25lbnQnLCB0eXBlOiAncmVzb3VyY2UnLCBzdWJ0eXBlOiAnQVdTOjpFQzI6Okluc3RhbmNlJyB9IH0sXG4gICAgICBjb25zdHJ1Y3Q6IHsgZmlsdGVyOiB7IGVudGl0eVR5cGU6ICdjb21wb25lbnQnLCB0eXBlOiAnY29uc3RydWN0JyB9IH0sXG4gICAgICBjaGFuZ2U6IHsgZmlsdGVyOiB7ZW50aXR5VHlwZTogJ2NoYW5nZScgfSwgd2hlcmU6IGNvbmRpdGlvbnMgfSxcbiAgICB9LFxuICAgIGVmZmVjdDoge1xuICAgICAgdGFyZ2V0OiAnY2hhbmdlJyxcbiAgICAgIHJpc2s6IFJ1bGVSaXNrLkhpZ2gsXG4gICAgICBhY3Rpb246IFJ1bGVBY3Rpb24uUmVqZWN0LFxuICAgIH0sXG4gIH1dO1xufVxuXG50ZXN0KCdSdWxlIHByb2Nlc3NvciBjb25kaXRpb24gd2l0aCByZWZlcmVuY2VzIG9wZXJhdG9yJywgKCkgPT4ge1xuXG4gIGNvbnN0IGRpZmYgPSBkaWZmVGVzdENhc2UxKCk7XG5cbiAgY29uc3QgcnVsZXMgPSBnZW5lcmF0ZVJ1bGVzV2l0aENvbmRpdGlvbnMoW3tcbiAgICBsZWZ0SW5wdXQ6IHtpZGVudGlmaWVyOiAnaW5zdGFuY2UnfSxcbiAgICBvcGVyYXRvcjogUnVsZUNvbmRpdGlvbk9wZXJhdG9yLnJlZmVyZW5jZXMsXG4gICAgcmlnaHRJbnB1dDoge2lkZW50aWZpZXI6ICdyb2xlJ30sXG4gIH1dKTtcblxuICBjb25zdCByZXN1bHQgPSBuZXcgUnVsZVByb2Nlc3NvcihkaWZmLmdlbmVyYXRlT3V0Z29pbmdHcmFwaCgpKS5wcm9jZXNzUnVsZXMocnVsZXMpO1xuICBleHBlY3QocmVzdWx0LnNpemUpLnRvRXF1YWwoMik7XG59KTtcblxudGVzdCgnUnVsZSBwcm9jZXNzb3IgY29uZGl0aW9uIHdpdGggcmVmZXJlbmNlcyBvcGVyYXRvciBpbiBvcHBvc2l0ZSBkaXJlY3Rpb24gc2hvdWxkIGZhaWwnLCAoKSA9PiB7XG5cbiAgY29uc3QgZGlmZiA9IGRpZmZUZXN0Q2FzZTEoKTtcblxuICBjb25zdCBydWxlcyA9IGdlbmVyYXRlUnVsZXNXaXRoQ29uZGl0aW9ucyhbe1xuICAgIGxlZnRJbnB1dDoge2lkZW50aWZpZXI6ICdyb2xlJ30sXG4gICAgb3BlcmF0b3I6IFJ1bGVDb25kaXRpb25PcGVyYXRvci5yZWZlcmVuY2VzLFxuICAgIHJpZ2h0SW5wdXQ6IHtpZGVudGlmaWVyOiAnaW5zdGFuY2UnfSxcbiAgfV0pO1xuXG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBSdWxlUHJvY2Vzc29yKGRpZmYuZ2VuZXJhdGVPdXRnb2luZ0dyYXBoKCkpLnByb2Nlc3NSdWxlcyhydWxlcyk7XG4gIGV4cGVjdChyZXN1bHQuc2l6ZSkudG9FcXVhbCgwKTtcbn0pO1xuXG50ZXN0KCdSdWxlIHByb2Nlc3NvciBjb25kaXRpb24gd2l0aCBpc1JlZmVyZW5jZWRJbiBvcGVyYXRvcicsICgpID0+IHtcblxuICBjb25zdCBkaWZmID0gZGlmZlRlc3RDYXNlMSgpO1xuXG4gIGNvbnN0IHJ1bGVzID0gZ2VuZXJhdGVSdWxlc1dpdGhDb25kaXRpb25zKFt7XG4gICAgbGVmdElucHV0OiB7aWRlbnRpZmllcjogJ3JvbGUnfSxcbiAgICBvcGVyYXRvcjogUnVsZUNvbmRpdGlvbk9wZXJhdG9yLmlzUmVmZXJlbmNlZEluLFxuICAgIHJpZ2h0SW5wdXQ6IHtpZGVudGlmaWVyOiAnaW5zdGFuY2UnfSxcbiAgfV0pO1xuXG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBSdWxlUHJvY2Vzc29yKGRpZmYuZ2VuZXJhdGVPdXRnb2luZ0dyYXBoKCkpLnByb2Nlc3NSdWxlcyhydWxlcyk7XG4gIGV4cGVjdChyZXN1bHQuc2l6ZSkudG9FcXVhbCgyKTtcbn0pO1xuXG50ZXN0KCdSdWxlIHByb2Nlc3NvciBjb25kaXRpb24gd2l0aCBjb250YWlucyBvcGVyYXRvcicsICgpID0+IHtcblxuICBjb25zdCBkaWZmID0gZGlmZlRlc3RDYXNlMSgpO1xuXG4gIGNvbnN0IHJ1bGVzID0gZ2VuZXJhdGVSdWxlc1dpdGhDb25kaXRpb25zKFt7XG4gICAgbGVmdElucHV0OiB7aWRlbnRpZmllcjogJ2NvbnN0cnVjdCd9LFxuICAgIG9wZXJhdG9yOiBSdWxlQ29uZGl0aW9uT3BlcmF0b3IuY29udGFpbnMsXG4gICAgcmlnaHRJbnB1dDoge2lkZW50aWZpZXI6ICdyb2xlJ30sXG4gIH1dKTtcblxuICBjb25zdCByZXN1bHQgPSBuZXcgUnVsZVByb2Nlc3NvcihkaWZmLmdlbmVyYXRlT3V0Z29pbmdHcmFwaCgpKS5wcm9jZXNzUnVsZXMocnVsZXMpO1xuICBleHBlY3QocmVzdWx0LnNpemUpLnRvRXF1YWwoMik7XG59KTtcblxudGVzdCgnUnVsZSBwcm9jZXNzb3IgY29uZGl0aW9uIHdpdGggY29udGFpbnMgb3BlcmF0b3IgZmluZHMgbm90aGluZycsICgpID0+IHtcblxuICBjb25zdCBkaWZmID0gZGlmZlRlc3RDYXNlMSgpO1xuXG4gIGNvbnN0IHJ1bGVzID0gZ2VuZXJhdGVSdWxlc1dpdGhDb25kaXRpb25zKFt7XG4gICAgbGVmdElucHV0OiB7aWRlbnRpZmllcjogJ2NvbnN0cnVjdCd9LFxuICAgIG9wZXJhdG9yOiBSdWxlQ29uZGl0aW9uT3BlcmF0b3IuY29udGFpbnMsXG4gICAgcmlnaHRJbnB1dDoge2lkZW50aWZpZXI6ICdpbnN0YW5jZSd9LFxuICB9XSk7XG5cbiAgY29uc3QgcmVzdWx0ID0gbmV3IFJ1bGVQcm9jZXNzb3IoZGlmZi5nZW5lcmF0ZU91dGdvaW5nR3JhcGgoKSkucHJvY2Vzc1J1bGVzKHJ1bGVzKTtcbiAgZXhwZWN0KHJlc3VsdC5zaXplKS50b0VxdWFsKDApO1xufSk7XG5cbnRlc3QoJ1J1bGUgcHJvY2Vzc29yIGNvbmRpdGlvbiB3aXRoIGlzQ29udGFpbmVkSW4gb3BlcmF0b3InLCAoKSA9PiB7XG5cbiAgY29uc3QgZGlmZiA9IGRpZmZUZXN0Q2FzZTEoKTtcblxuICBjb25zdCBydWxlcyA9IGdlbmVyYXRlUnVsZXNXaXRoQ29uZGl0aW9ucyhbe1xuICAgIGxlZnRJbnB1dDoge2lkZW50aWZpZXI6ICdyb2xlJ30sXG4gICAgb3BlcmF0b3I6IFJ1bGVDb25kaXRpb25PcGVyYXRvci5pc0NvbnRhaW5lZEluLFxuICAgIHJpZ2h0SW5wdXQ6IHtpZGVudGlmaWVyOiAnY29uc3RydWN0J30sXG4gIH1dKTtcblxuICBjb25zdCByZXN1bHQgPSBuZXcgUnVsZVByb2Nlc3NvcihkaWZmLmdlbmVyYXRlT3V0Z29pbmdHcmFwaCgpKS5wcm9jZXNzUnVsZXMocnVsZXMpO1xuICBleHBlY3QocmVzdWx0LnNpemUpLnRvRXF1YWwoMik7XG59KTtcblxudGVzdCgnUnVsZSBwcm9jZXNzb3IgY29uZGl0aW9uIHdpdGggY29udGFpbnMgb3BlcmF0b3Igc2hvdWxkIG5vdCBtYXRjaCByZWZlcmVuY2UgcmVsYXRpb25zaGlwcycsICgpID0+IHtcblxuICBjb25zdCBkaWZmID0gZGlmZlRlc3RDYXNlMSgpO1xuXG4gIGNvbnN0IHJ1bGVzID0gZ2VuZXJhdGVSdWxlc1dpdGhDb25kaXRpb25zKFt7XG4gICAgbGVmdElucHV0OiB7aWRlbnRpZmllcjogJ2luc3RhbmNlJ30sXG4gICAgb3BlcmF0b3I6IFJ1bGVDb25kaXRpb25PcGVyYXRvci5jb250YWlucyxcbiAgICByaWdodElucHV0OiB7aWRlbnRpZmllcjogJ3JvbGUnfSxcbiAgfV0pO1xuXG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBSdWxlUHJvY2Vzc29yKGRpZmYuZ2VuZXJhdGVPdXRnb2luZ0dyYXBoKCkpLnByb2Nlc3NSdWxlcyhydWxlcyk7XG4gIGV4cGVjdChyZXN1bHQuc2l6ZSkudG9FcXVhbCgwKTtcbn0pOyJdfQ==

@@ -48,3 +48,3 @@ "use strict";

test('Rules parser', () => {
expect(lib_1.parseRules(diffTestCase1CRules)).toEqual(diffTestCase1Rules);
expect((0, lib_1.parseRules)(diffTestCase1CRules)).toEqual(diffTestCase1Rules);
});

@@ -73,6 +73,6 @@ test('Rules conditions parsing', () => {

}];
expect(lib_1.parseRules(cRules)).toMatchObject(expectedRules);
expect((0, lib_1.parseRules)(cRules)).toMatchObject(expectedRules);
});
test('Rule processor basic filter', () => {
const diff = infra_model_diff_1.diffTestCase1();
const diff = (0, infra_model_diff_1.diffTestCase1)();
const result = new lib_1.RuleProcessor(diff.generateOutgoingGraph()).processRules(diffTestCase1Rules);

@@ -86,3 +86,3 @@ expect(result.size).toEqual(2);

test('Rule processor appliesTo condition', () => {
const diff = infra_model_diff_1.diffTestCase1();
const diff = (0, infra_model_diff_1.diffTestCase1)();
const rules = [{

@@ -108,2 +108,2 @@ let: {

});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJ1bGVzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBdUQ7QUFDdkQsMENBSXdCO0FBQ3hCLG1DQUFvRDtBQUNwRCw2RUFBdUU7QUFFdkUsTUFBTSxtQkFBbUIsR0FBZ0IsQ0FBQztRQUN4QyxHQUFHLEVBQUU7WUFDSCxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxFQUFDO1lBQ25FLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBQztTQUM1QztRQUNELElBQUksRUFBRSxDQUFDO2dCQUNMLEdBQUcsRUFBRTtvQkFDSCxPQUFPLEVBQUUsY0FBYztvQkFDdkIsTUFBTSxFQUFFLGlCQUFpQjtvQkFDekIsV0FBVyxFQUFFLDJCQUEyQjtvQkFDeEMsV0FBVyxFQUFFLGtCQUFrQjtvQkFDL0IsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFO2lCQUN0QztnQkFDRCxNQUFNLEVBQUU7b0JBQ04sTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLElBQUksRUFBRSxpQkFBUSxDQUFDLElBQUk7b0JBQ25CLE1BQU0sRUFBRSxtQkFBVSxDQUFDLE1BQU07aUJBQzFCO2FBQ0YsQ0FBQztLQUNILENBQUMsQ0FBQztBQUVILE1BQU0sa0JBQWtCLEdBQWUsQ0FBQztRQUN0QyxHQUFHLEVBQUU7WUFDSCxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEVBQUM7WUFDekYsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxvQkFB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LFFBQVEsRUFBQzs0QkFDakMsUUFBUSxFQUFFLDZCQUFxQixDQUFDLFNBQVM7NEJBQ3pDLFVBQVUsRUFBRSxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7eUJBQ2pDLENBQUMsRUFBRTthQUNMO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixJQUFJLEVBQUUsaUJBQVEsQ0FBQyxJQUFJO2dCQUNuQixNQUFNLEVBQUUsbUJBQVUsQ0FBQyxNQUFNO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxNQUFNLEdBQUcsSUFBSSxtQkFBYSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25GLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxJQUFJLEVBQUUsaUJBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLG1CQUFVLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQztBQUN0RixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJ1bGVBY3Rpb24sIFJ1bGVSaXNrIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7XG4gIENVc2VyUnVsZSwgQ1VzZXJSdWxlcyxcbiAgUnVsZUNvbmRpdGlvbk9wZXJhdG9yLFxuICBVc2VyUnVsZSwgVXNlclJ1bGVzLFxufSBmcm9tICdAYXdzLWMyYS9ydWxlcyc7XG5pbXBvcnQge3BhcnNlUnVsZXMsIFJ1bGVQcm9jZXNzb3J9IGZyb20gJy4uLy4uL2xpYic7XG5pbXBvcnQgeyBkaWZmVGVzdENhc2UxIH0gZnJvbSAnLi4vZGVmYXVsdC10ZXN0LWNhc2VzL2luZnJhLW1vZGVsLWRpZmYnO1xuXG5jb25zdCBkaWZmVGVzdENhc2UxQ1J1bGVzOiBDVXNlclJ1bGVbXSA9IFt7XG4gIGxldDoge1xuICAgIHJvbGU6IHsgY29tcG9uZW50OiB7IHR5cGU6ICdyZXNvdXJjZScsIHN1YnR5cGU6ICdBV1M6OklBTTo6Um9sZScgfX0sXG4gICAgaW5zdGFuY2U6IHsgcmVzb3VyY2U6ICdBV1M6OkVDMjo6SW5zdGFuY2UnfSxcbiAgfSxcbiAgdGhlbjogW3tcbiAgICBsZXQ6IHtcbiAgICAgIHNvbWVLZXk6ICdyb2xlLnNvbWVLZXknLFxuICAgICAgbmVzdGVkOiAnaW5zdGFuY2UubmVzdGVkJyxcbiAgICAgIHByb3BDb21wMl8xOiAnaW5zdGFuY2UubmVzdGVkLnByb3BDb21wMicsXG4gICAgICBwcm9wQ29tcDJfMjogJ25lc3RlZC5wcm9wQ29tcDInLFxuICAgICAgY2hhbmdlOiB7IGNoYW5nZToge3R5cGU6ICdVUERBVEUnIH0gfSxcbiAgICB9LFxuICAgIGVmZmVjdDoge1xuICAgICAgdGFyZ2V0OiAnY2hhbmdlJyxcbiAgICAgIHJpc2s6IFJ1bGVSaXNrLkhpZ2gsXG4gICAgICBhY3Rpb246IFJ1bGVBY3Rpb24uUmVqZWN0LFxuICAgIH0sXG4gIH1dLFxufV07XG5cbmNvbnN0IGRpZmZUZXN0Q2FzZTFSdWxlczogVXNlclJ1bGVbXSA9IFt7XG4gIGxldDoge1xuICAgIHJvbGU6IHsgZmlsdGVyOiB7IGVudGl0eVR5cGU6ICdjb21wb25lbnQnLCB0eXBlOiAncmVzb3VyY2UnLCBzdWJ0eXBlOiAnQVdTOjpJQU06OlJvbGUnIH19LFxuICAgIGluc3RhbmNlOiB7IGZpbHRlcjogeyBlbnRpdHlUeXBlOiAnY29tcG9uZW50JywgdHlwZTogJ3Jlc291cmNlJywgc3VidHlwZTogJ0FXUzo6RUMyOjpJbnN0YW5jZScgfX0sXG4gIH0sXG4gIHRoZW46IFt7XG4gICAgbGV0OiB7XG4gICAgICBzb21lS2V5OiB7IHByb3BlcnR5UmVmZXJlbmNlOiB7aWRlbnRpZmllcjogJ3JvbGUnLCBwcm9wZXJ0eVBhdGg6IFsnc29tZUtleSddIH0gfSxcbiAgICAgIG5lc3RlZDogeyBwcm9wZXJ0eVJlZmVyZW5jZToge2lkZW50aWZpZXI6ICdpbnN0YW5jZScsIHByb3BlcnR5UGF0aDogWyduZXN0ZWQnXSB9IH0sXG4gICAgICBwcm9wQ29tcDJfMTogeyBwcm9wZXJ0eVJlZmVyZW5jZToge2lkZW50aWZpZXI6ICdpbnN0YW5jZScsIHByb3BlcnR5UGF0aDogWyduZXN0ZWQnLCAncHJvcENvbXAyJ10gfSB9LFxuICAgICAgcHJvcENvbXAyXzI6IHsgcHJvcGVydHlSZWZlcmVuY2U6IHtpZGVudGlmaWVyOiAnbmVzdGVkJywgcHJvcGVydHlQYXRoOiBbJ3Byb3BDb21wMiddIH0gfSxcbiAgICAgIGNoYW5nZTogeyBmaWx0ZXI6IHtlbnRpdHlUeXBlOiAnY2hhbmdlJywgdHlwZTogJ1VQREFURScgfSB9LFxuICAgIH0sXG4gICAgZWZmZWN0OiB7XG4gICAgICB0YXJnZXQ6ICdjaGFuZ2UnLFxuICAgICAgcmlzazogUnVsZVJpc2suSGlnaCxcbiAgICAgIGFjdGlvbjogUnVsZUFjdGlvbi5SZWplY3QsXG4gICAgfSxcbiAgfV0sXG59XTtcblxudGVzdCgnUnVsZXMgcGFyc2VyJywgKCkgPT4ge1xuICBleHBlY3QocGFyc2VSdWxlcyhkaWZmVGVzdENhc2UxQ1J1bGVzKSkudG9FcXVhbChkaWZmVGVzdENhc2UxUnVsZXMpO1xufSk7XG5cbnRlc3QoJ1J1bGVzIGNvbmRpdGlvbnMgcGFyc2luZycsICgpID0+IHtcbiAgY29uc3QgY1J1bGVzOiBDVXNlclJ1bGVzID0gW3tcbiAgICBsZXQ6IHtcbiAgICAgIHJvbGU6IHsgcmVzb3VyY2U6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGNoYW5nZTogeyB3aGVyZTogWydjaGFuZ2UgYXBwbGllc1RvIHJvbGUnXSwgY2hhbmdlOiB7fX0sXG4gICAgfSxcbiAgfV07XG5cbiAgY29uc3QgZXhwZWN0ZWRSdWxlczogVXNlclJ1bGVzID0gW3tcbiAgICBsZXQ6IHtcbiAgICAgIHJvbGU6IHsgZmlsdGVyOiB7IGVudGl0eVR5cGU6ICdjb21wb25lbnQnLCB0eXBlOiAncmVzb3VyY2UnLCBzdWJ0eXBlOiAnQVdTOjpJQU06OlJvbGUnIH19LFxuICAgICAgY2hhbmdlOiB7XG4gICAgICAgIGZpbHRlcjoge2VudGl0eVR5cGU6ICdjaGFuZ2UnfSxcbiAgICAgICAgd2hlcmU6IFt7XG4gICAgICAgICAgb3BlcmF0b3I6IFJ1bGVDb25kaXRpb25PcGVyYXRvci5hcHBsaWVzVG8sXG4gICAgICAgICAgbGVmdElucHV0OiB7aWRlbnRpZmllcjogJ2NoYW5nZSd9LFxuICAgICAgICAgIHJpZ2h0SW5wdXQ6IHtpZGVudGlmaWVyOiAncm9sZSd9LFxuICAgICAgICB9XSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfV07XG5cbiAgZXhwZWN0KHBhcnNlUnVsZXMoY1J1bGVzKSkudG9NYXRjaE9iamVjdChleHBlY3RlZFJ1bGVzKTtcbn0pO1xuXG50ZXN0KCdSdWxlIHByb2Nlc3NvciBiYXNpYyBmaWx0ZXInLCAoKSA9PiB7XG5cbiAgY29uc3QgZGlmZiA9IGRpZmZUZXN0Q2FzZTEoKTtcblxuICBjb25zdCByZXN1bHQgPSBuZXcgUnVsZVByb2Nlc3NvcihkaWZmLmdlbmVyYXRlT3V0Z29pbmdHcmFwaCgpKS5wcm9jZXNzUnVsZXMoZGlmZlRlc3RDYXNlMVJ1bGVzKTtcblxuICBleHBlY3QocmVzdWx0LnNpemUpLnRvRXF1YWwoMik7XG4gIGV4cGVjdChbLi4ucmVzdWx0XVswXVswXSkudG9NYXRjaE9iamVjdCh7IGVudGl0eVR5cGU6ICdjaGFuZ2UnLCB0eXBlOiAnVVBEQVRFJyB9KTtcbiAgZXhwZWN0KFsuLi5yZXN1bHRdWzBdWzFdKS50b0VxdWFsKHtyaXNrOiBSdWxlUmlzay5IaWdoLCBhY3Rpb246IFJ1bGVBY3Rpb24uUmVqZWN0fSk7XG4gIGV4cGVjdChbLi4ucmVzdWx0XVsxXVswXSkudG9NYXRjaE9iamVjdCh7IGVudGl0eVR5cGU6ICdjaGFuZ2UnLCB0eXBlOiAnVVBEQVRFJyB9KTtcbiAgZXhwZWN0KFsuLi5yZXN1bHRdWzFdWzFdKS50b0VxdWFsKHtyaXNrOiBSdWxlUmlzay5IaWdoLCBhY3Rpb246IFJ1bGVBY3Rpb24uUmVqZWN0fSk7XG59KTtcblxudGVzdCgnUnVsZSBwcm9jZXNzb3IgYXBwbGllc1RvIGNvbmRpdGlvbicsICgpID0+IHtcblxuICBjb25zdCBkaWZmID0gZGlmZlRlc3RDYXNlMSgpO1xuXG4gIGNvbnN0IHJ1bGVzID0gW3tcbiAgICBsZXQ6IHtcbiAgICAgIHJvbGU6IHsgZmlsdGVyOiB7IGVudGl0eVR5cGU6ICdjb21wb25lbnQnLCB0eXBlOiAncmVzb3VyY2UnLCBzdWJ0eXBlOiAnQVdTOjpJQU06OlJvbGUnIH19LFxuICAgICAgY2hhbmdlOiB7IGZpbHRlcjoge2VudGl0eVR5cGU6ICdjaGFuZ2UnIH0sIHdoZXJlOiBbe1xuICAgICAgICBsZWZ0SW5wdXQ6IHtpZGVudGlmaWVyOiAnY2hhbmdlJ30sXG4gICAgICAgIG9wZXJhdG9yOiBSdWxlQ29uZGl0aW9uT3BlcmF0b3IuYXBwbGllc1RvLFxuICAgICAgICByaWdodElucHV0OiB7aWRlbnRpZmllcjogJ3JvbGUnfSxcbiAgICAgIH1dIH0sXG4gICAgfSxcbiAgICBlZmZlY3Q6IHtcbiAgICAgIHRhcmdldDogJ2NoYW5nZScsXG4gICAgICByaXNrOiBSdWxlUmlzay5IaWdoLFxuICAgICAgYWN0aW9uOiBSdWxlQWN0aW9uLlJlamVjdCxcbiAgICB9LFxuICB9XTtcblxuICBjb25zdCByZXN1bHQgPSBuZXcgUnVsZVByb2Nlc3NvcihkaWZmLmdlbmVyYXRlT3V0Z29pbmdHcmFwaCgpKS5wcm9jZXNzUnVsZXMocnVsZXMpO1xuICBleHBlY3QocmVzdWx0LnNpemUpLnRvRXF1YWwoMSk7XG4gIGV4cGVjdChbLi4ucmVzdWx0XVswXVswXSkudG9NYXRjaE9iamVjdCh7IGVudGl0eVR5cGU6ICdjaGFuZ2UnLCB0eXBlOiAnVVBEQVRFJyB9KTtcbiAgZXhwZWN0KFsuLi5yZXN1bHRdWzBdWzFdKS50b0VxdWFsKHtyaXNrOiBSdWxlUmlzay5IaWdoLCBhY3Rpb246IFJ1bGVBY3Rpb24uUmVqZWN0fSk7XG59KTsiXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJ1bGVzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw0Q0FBdUQ7QUFDdkQsMENBSXdCO0FBQ3hCLG1DQUFvRDtBQUNwRCw2RUFBdUU7QUFFdkUsTUFBTSxtQkFBbUIsR0FBZ0IsQ0FBQztRQUN4QyxHQUFHLEVBQUU7WUFDSCxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxFQUFDO1lBQ25FLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxvQkFBb0IsRUFBQztTQUM1QztRQUNELElBQUksRUFBRSxDQUFDO2dCQUNMLEdBQUcsRUFBRTtvQkFDSCxPQUFPLEVBQUUsY0FBYztvQkFDdkIsTUFBTSxFQUFFLGlCQUFpQjtvQkFDekIsV0FBVyxFQUFFLDJCQUEyQjtvQkFDeEMsV0FBVyxFQUFFLGtCQUFrQjtvQkFDL0IsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFO2lCQUN0QztnQkFDRCxNQUFNLEVBQUU7b0JBQ04sTUFBTSxFQUFFLFFBQVE7b0JBQ2hCLElBQUksRUFBRSxpQkFBUSxDQUFDLElBQUk7b0JBQ25CLE1BQU0sRUFBRSxtQkFBVSxDQUFDLE1BQU07aUJBQzFCO2FBQ0YsQ0FBQztLQUNILENBQUMsQ0FBQztBQUVILE1BQU0sa0JBQWtCLEdBQWUsQ0FBQztRQUN0QyxHQUFHLEVBQUU7WUFDSCxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEVBQUM7WUFDekYsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxvQkFB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LEVBQUUsRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFDOzRCQUNqQyxRQUFRLEVBQUUsNkJBQXFCLENBQUMsU0FBUzs0QkFDekMsVUFBVSxFQUFFLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzt5QkFDakMsQ0FBQyxFQUFFO2FBQ0w7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLElBQUksRUFBRSxpQkFBUSxDQUFDLElBQUk7Z0JBQ25CLE1BQU0sRUFBRSxtQkFBVSxDQUFDLE1BQU07YUFDMUI7U0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLE1BQU0sR0FBRyxJQUFJLG1CQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbEYsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLElBQUksRUFBRSxpQkFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsbUJBQVUsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO0FBQ3RGLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVsZUFjdGlvbiwgUnVsZVJpc2sgfSBmcm9tICdAYXdzLWMyYS9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQ1VzZXJSdWxlLCBDVXNlclJ1bGVzLFxuICBSdWxlQ29uZGl0aW9uT3BlcmF0b3IsXG4gIFVzZXJSdWxlLCBVc2VyUnVsZXMsXG59IGZyb20gJ0Bhd3MtYzJhL3J1bGVzJztcbmltcG9ydCB7cGFyc2VSdWxlcywgUnVsZVByb2Nlc3Nvcn0gZnJvbSAnLi4vLi4vbGliJztcbmltcG9ydCB7IGRpZmZUZXN0Q2FzZTEgfSBmcm9tICcuLi9kZWZhdWx0LXRlc3QtY2FzZXMvaW5mcmEtbW9kZWwtZGlmZic7XG5cbmNvbnN0IGRpZmZUZXN0Q2FzZTFDUnVsZXM6IENVc2VyUnVsZVtdID0gW3tcbiAgbGV0OiB7XG4gICAgcm9sZTogeyBjb21wb25lbnQ6IHsgdHlwZTogJ3Jlc291cmNlJywgc3VidHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9fSxcbiAgICBpbnN0YW5jZTogeyByZXNvdXJjZTogJ0FXUzo6RUMyOjpJbnN0YW5jZSd9LFxuICB9LFxuICB0aGVuOiBbe1xuICAgIGxldDoge1xuICAgICAgc29tZUtleTogJ3JvbGUuc29tZUtleScsXG4gICAgICBuZXN0ZWQ6ICdpbnN0YW5jZS5uZXN0ZWQnLFxuICAgICAgcHJvcENvbXAyXzE6ICdpbnN0YW5jZS5uZXN0ZWQucHJvcENvbXAyJyxcbiAgICAgIHByb3BDb21wMl8yOiAnbmVzdGVkLnByb3BDb21wMicsXG4gICAgICBjaGFuZ2U6IHsgY2hhbmdlOiB7dHlwZTogJ1VQREFURScgfSB9LFxuICAgIH0sXG4gICAgZWZmZWN0OiB7XG4gICAgICB0YXJnZXQ6ICdjaGFuZ2UnLFxuICAgICAgcmlzazogUnVsZVJpc2suSGlnaCxcbiAgICAgIGFjdGlvbjogUnVsZUFjdGlvbi5SZWplY3QsXG4gICAgfSxcbiAgfV0sXG59XTtcblxuY29uc3QgZGlmZlRlc3RDYXNlMVJ1bGVzOiBVc2VyUnVsZVtdID0gW3tcbiAgbGV0OiB7XG4gICAgcm9sZTogeyBmaWx0ZXI6IHsgZW50aXR5VHlwZTogJ2NvbXBvbmVudCcsIHR5cGU6ICdyZXNvdXJjZScsIHN1YnR5cGU6ICdBV1M6OklBTTo6Um9sZScgfX0sXG4gICAgaW5zdGFuY2U6IHsgZmlsdGVyOiB7IGVudGl0eVR5cGU6ICdjb21wb25lbnQnLCB0eXBlOiAncmVzb3VyY2UnLCBzdWJ0eXBlOiAnQVdTOjpFQzI6Okluc3RhbmNlJyB9fSxcbiAgfSxcbiAgdGhlbjogW3tcbiAgICBsZXQ6IHtcbiAgICAgIHNvbWVLZXk6IHsgcHJvcGVydHlSZWZlcmVuY2U6IHtpZGVudGlmaWVyOiAncm9sZScsIHByb3BlcnR5UGF0aDogWydzb21lS2V5J10gfSB9LFxuICAgICAgbmVzdGVkOiB7IHByb3BlcnR5UmVmZXJlbmNlOiB7aWRlbnRpZmllcjogJ2luc3RhbmNlJywgcHJvcGVydHlQYXRoOiBbJ25lc3RlZCddIH0gfSxcbiAgICAgIHByb3BDb21wMl8xOiB7IHByb3BlcnR5UmVmZXJlbmNlOiB7aWRlbnRpZmllcjogJ2luc3RhbmNlJywgcHJvcGVydHlQYXRoOiBbJ25lc3RlZCcsICdwcm9wQ29tcDInXSB9IH0sXG4gICAgICBwcm9wQ29tcDJfMjogeyBwcm9wZXJ0eVJlZmVyZW5jZToge2lkZW50aWZpZXI6ICduZXN0ZWQnLCBwcm9wZXJ0eVBhdGg6IFsncHJvcENvbXAyJ10gfSB9LFxuICAgICAgY2hhbmdlOiB7IGZpbHRlcjoge2VudGl0eVR5cGU6ICdjaGFuZ2UnLCB0eXBlOiAnVVBEQVRFJyB9IH0sXG4gICAgfSxcbiAgICBlZmZlY3Q6IHtcbiAgICAgIHRhcmdldDogJ2NoYW5nZScsXG4gICAgICByaXNrOiBSdWxlUmlzay5IaWdoLFxuICAgICAgYWN0aW9uOiBSdWxlQWN0aW9uLlJlamVjdCxcbiAgICB9LFxuICB9XSxcbn1dO1xuXG50ZXN0KCdSdWxlcyBwYXJzZXInLCAoKSA9PiB7XG4gIGV4cGVjdChwYXJzZVJ1bGVzKGRpZmZUZXN0Q2FzZTFDUnVsZXMpKS50b0VxdWFsKGRpZmZUZXN0Q2FzZTFSdWxlcyk7XG59KTtcblxudGVzdCgnUnVsZXMgY29uZGl0aW9ucyBwYXJzaW5nJywgKCkgPT4ge1xuICBjb25zdCBjUnVsZXM6IENVc2VyUnVsZXMgPSBbe1xuICAgIGxldDoge1xuICAgICAgcm9sZTogeyByZXNvdXJjZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY2hhbmdlOiB7IHdoZXJlOiBbJ2NoYW5nZSBhcHBsaWVzVG8gcm9sZSddLCBjaGFuZ2U6IHt9fSxcbiAgICB9LFxuICB9XTtcblxuICBjb25zdCBleHBlY3RlZFJ1bGVzOiBVc2VyUnVsZXMgPSBbe1xuICAgIGxldDoge1xuICAgICAgcm9sZTogeyBmaWx0ZXI6IHsgZW50aXR5VHlwZTogJ2NvbXBvbmVudCcsIHR5cGU6ICdyZXNvdXJjZScsIHN1YnR5cGU6ICdBV1M6OklBTTo6Um9sZScgfX0sXG4gICAgICBjaGFuZ2U6IHtcbiAgICAgICAgZmlsdGVyOiB7ZW50aXR5VHlwZTogJ2NoYW5nZSd9LFxuICAgICAgICB3aGVyZTogW3tcbiAgICAgICAgICBvcGVyYXRvcjogUnVsZUNvbmRpdGlvbk9wZXJhdG9yLmFwcGxpZXNUbyxcbiAgICAgICAgICBsZWZ0SW5wdXQ6IHtpZGVudGlmaWVyOiAnY2hhbmdlJ30sXG4gICAgICAgICAgcmlnaHRJbnB1dDoge2lkZW50aWZpZXI6ICdyb2xlJ30sXG4gICAgICAgIH1dLFxuICAgICAgfSxcbiAgICB9LFxuICB9XTtcblxuICBleHBlY3QocGFyc2VSdWxlcyhjUnVsZXMpKS50b01hdGNoT2JqZWN0KGV4cGVjdGVkUnVsZXMpO1xufSk7XG5cbnRlc3QoJ1J1bGUgcHJvY2Vzc29yIGJhc2ljIGZpbHRlcicsICgpID0+IHtcblxuICBjb25zdCBkaWZmID0gZGlmZlRlc3RDYXNlMSgpO1xuXG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBSdWxlUHJvY2Vzc29yKGRpZmYuZ2VuZXJhdGVPdXRnb2luZ0dyYXBoKCkpLnByb2Nlc3NSdWxlcyhkaWZmVGVzdENhc2UxUnVsZXMpO1xuXG4gIGV4cGVjdChyZXN1bHQuc2l6ZSkudG9FcXVhbCgyKTtcbiAgZXhwZWN0KFsuLi5yZXN1bHRdWzBdWzBdKS50b01hdGNoT2JqZWN0KHsgZW50aXR5VHlwZTogJ2NoYW5nZScsIHR5cGU6ICdVUERBVEUnIH0pO1xuICBleHBlY3QoWy4uLnJlc3VsdF1bMF1bMV0pLnRvRXF1YWwoe3Jpc2s6IFJ1bGVSaXNrLkhpZ2gsIGFjdGlvbjogUnVsZUFjdGlvbi5SZWplY3R9KTtcbiAgZXhwZWN0KFsuLi5yZXN1bHRdWzFdWzBdKS50b01hdGNoT2JqZWN0KHsgZW50aXR5VHlwZTogJ2NoYW5nZScsIHR5cGU6ICdVUERBVEUnIH0pO1xuICBleHBlY3QoWy4uLnJlc3VsdF1bMV1bMV0pLnRvRXF1YWwoe3Jpc2s6IFJ1bGVSaXNrLkhpZ2gsIGFjdGlvbjogUnVsZUFjdGlvbi5SZWplY3R9KTtcbn0pO1xuXG50ZXN0KCdSdWxlIHByb2Nlc3NvciBhcHBsaWVzVG8gY29uZGl0aW9uJywgKCkgPT4ge1xuXG4gIGNvbnN0IGRpZmYgPSBkaWZmVGVzdENhc2UxKCk7XG5cbiAgY29uc3QgcnVsZXMgPSBbe1xuICAgIGxldDoge1xuICAgICAgcm9sZTogeyBmaWx0ZXI6IHsgZW50aXR5VHlwZTogJ2NvbXBvbmVudCcsIHR5cGU6ICdyZXNvdXJjZScsIHN1YnR5cGU6ICdBV1M6OklBTTo6Um9sZScgfX0sXG4gICAgICBjaGFuZ2U6IHsgZmlsdGVyOiB7ZW50aXR5VHlwZTogJ2NoYW5nZScgfSwgd2hlcmU6IFt7XG4gICAgICAgIGxlZnRJbnB1dDoge2lkZW50aWZpZXI6ICdjaGFuZ2UnfSxcbiAgICAgICAgb3BlcmF0b3I6IFJ1bGVDb25kaXRpb25PcGVyYXRvci5hcHBsaWVzVG8sXG4gICAgICAgIHJpZ2h0SW5wdXQ6IHtpZGVudGlmaWVyOiAncm9sZSd9LFxuICAgICAgfV0gfSxcbiAgICB9LFxuICAgIGVmZmVjdDoge1xuICAgICAgdGFyZ2V0OiAnY2hhbmdlJyxcbiAgICAgIHJpc2s6IFJ1bGVSaXNrLkhpZ2gsXG4gICAgICBhY3Rpb246IFJ1bGVBY3Rpb24uUmVqZWN0LFxuICAgIH0sXG4gIH1dO1xuXG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBSdWxlUHJvY2Vzc29yKGRpZmYuZ2VuZXJhdGVPdXRnb2luZ0dyYXBoKCkpLnByb2Nlc3NSdWxlcyhydWxlcyk7XG4gIGV4cGVjdChyZXN1bHQuc2l6ZSkudG9FcXVhbCgxKTtcbiAgZXhwZWN0KFsuLi5yZXN1bHRdWzBdWzBdKS50b01hdGNoT2JqZWN0KHsgZW50aXR5VHlwZTogJ2NoYW5nZScsIHR5cGU6ICdVUERBVEUnIH0pO1xuICBleHBlY3QoWy4uLnJlc3VsdF1bMF1bMV0pLnRvRXF1YWwoe3Jpc2s6IFJ1bGVSaXNrLkhpZ2gsIGFjdGlvbjogUnVsZUFjdGlvbi5SZWplY3R9KTtcbn0pOyJdfQ==

@@ -20,5 +20,5 @@ "use strict";

readSampleInput: (filename) => JSON.parse(fs.readFileSync(`${parserDir}/sample-inputs/${filename}`, 'utf8')),
genGraphOnEnvFlag: (model, filename) => process.env.RENDER_GRAPHS === 'true' && graph_generator_1.generateGraph(model, `${parserDir}/sample-outputs/${filename}`),
genGraphOnEnvFlag: (model, filename) => process.env.RENDER_GRAPHS === 'true' && (0, graph_generator_1.generateGraph)(model, `${parserDir}/sample-outputs/${filename}`),
});
exports.ParserUtilsCreator = ParserUtilsCreator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLWNyZWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwYXJzZXItY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNENBQXdEO0FBQ3hELDZFQUF3RTtBQUVqRSxNQUFNLGtCQUFrQixHQUFHLENBQUMsU0FBaUIsRUFBdUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUYsbUJBQW1CLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEVBQUU7UUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQy9DLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBQUUsT0FBTyxZQUFZLEtBQUssWUFBWSxrQkFBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDekYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsQjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUNELGVBQWUsRUFBRSxDQUFDLFFBQWdCLEVBQU8sRUFBRSxDQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxTQUFTLGtCQUFrQixRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRSxpQkFBaUIsRUFBRSxDQUFDLEtBQWlCLEVBQUUsUUFBZ0IsRUFBRSxFQUFFLENBQ3pELE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxLQUFLLE1BQU0sSUFBSSwrQkFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLFNBQVMsbUJBQW1CLFFBQVEsRUFBRSxDQUFDO0NBQzFHLENBQUMsQ0FBQztBQWZVLFFBQUEsa0JBQWtCLHNCQWU1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5mcmFNb2RlbCB9IGZyb20gJ0Bhd3MtYzJhL21vZGVscyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUdyYXBoIH0gZnJvbSAnLi4vLi4vbGliL3Zpc3VhbGl6YXRpb24vZ3JhcGgtZ2VuZXJhdG9yJztcblxuZXhwb3J0IGNvbnN0IFBhcnNlclV0aWxzQ3JlYXRvciA9IChwYXJzZXJEaXI6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIGFueT4gPT4gT2JqZWN0LmZyZWV6ZSh7XG4gIHN0cmluZ2lmeUNvbXBvbmVudHM6IChtb2RlbDogSW5mcmFNb2RlbCkgPT4ge1xuICAgIGNvbnN0IGNhY2hlID0gbmV3IFNldCgpO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShtb2RlbCwgKGtleSwgdmFsdWUpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIGlmIChjYWNoZS5oYXModmFsdWUpKSByZXR1cm4gYFtkdXAtcmVmXSR7dmFsdWUgaW5zdGFuY2VvZiBDb21wb25lbnQgPyB2YWx1ZS5uYW1lIDoga2V5fWA7XG4gICAgICAgIGNhY2hlLmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSwgNCk7XG4gIH0sXG4gIHJlYWRTYW1wbGVJbnB1dDogKGZpbGVuYW1lOiBzdHJpbmcpOiBhbnkgPT5cbiAgICBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhgJHtwYXJzZXJEaXJ9L3NhbXBsZS1pbnB1dHMvJHtmaWxlbmFtZX1gLCAndXRmOCcpKSxcbiAgZ2VuR3JhcGhPbkVudkZsYWc6IChtb2RlbDogSW5mcmFNb2RlbCwgZmlsZW5hbWU6IHN0cmluZykgPT5cbiAgICBwcm9jZXNzLmVudi5SRU5ERVJfR1JBUEhTID09PSAndHJ1ZScgJiYgZ2VuZXJhdGVHcmFwaChtb2RlbCwgYCR7cGFyc2VyRGlyfS9zYW1wbGUtb3V0cHV0cy8ke2ZpbGVuYW1lfWApLFxufSk7Il19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLWNyZWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwYXJzZXItY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNENBQXdEO0FBQ3hELDZFQUF3RTtBQUVqRSxNQUFNLGtCQUFrQixHQUFHLENBQUMsU0FBaUIsRUFBdUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDMUYsbUJBQW1CLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEVBQUU7UUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7Z0JBQy9DLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7b0JBQUUsT0FBTyxZQUFZLEtBQUssWUFBWSxrQkFBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDekYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsQjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztJQUNELGVBQWUsRUFBRSxDQUFDLFFBQWdCLEVBQU8sRUFBRSxDQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxTQUFTLGtCQUFrQixRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvRSxpQkFBaUIsRUFBRSxDQUFDLEtBQWlCLEVBQUUsUUFBZ0IsRUFBRSxFQUFFLENBQ3pELE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxLQUFLLE1BQU0sSUFBSSxJQUFBLCtCQUFhLEVBQUMsS0FBSyxFQUFFLEdBQUcsU0FBUyxtQkFBbUIsUUFBUSxFQUFFLENBQUM7Q0FDMUcsQ0FBQyxDQUFDO0FBZlUsUUFBQSxrQkFBa0Isc0JBZTVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmZyYU1vZGVsIH0gZnJvbSAnQGF3cy1jMmEvbW9kZWxzJztcbmltcG9ydCB7IGdlbmVyYXRlR3JhcGggfSBmcm9tICcuLi8uLi9saWIvdmlzdWFsaXphdGlvbi9ncmFwaC1nZW5lcmF0b3InO1xuXG5leHBvcnQgY29uc3QgUGFyc2VyVXRpbHNDcmVhdG9yID0gKHBhcnNlckRpcjogc3RyaW5nKTogUmVjb3JkPHN0cmluZywgYW55PiA9PiBPYmplY3QuZnJlZXplKHtcbiAgc3RyaW5naWZ5Q29tcG9uZW50czogKG1vZGVsOiBJbmZyYU1vZGVsKSA9PiB7XG4gICAgY29uc3QgY2FjaGUgPSBuZXcgU2V0KCk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG1vZGVsLCAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgaWYgKGNhY2hlLmhhcyh2YWx1ZSkpIHJldHVybiBgW2R1cC1yZWZdJHt2YWx1ZSBpbnN0YW5jZW9mIENvbXBvbmVudCA/IHZhbHVlLm5hbWUgOiBrZXl9YDtcbiAgICAgICAgY2FjaGUuYWRkKHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9LCA0KTtcbiAgfSxcbiAgcmVhZFNhbXBsZUlucHV0OiAoZmlsZW5hbWU6IHN0cmluZyk6IGFueSA9PlxuICAgIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGAke3BhcnNlckRpcn0vc2FtcGxlLWlucHV0cy8ke2ZpbGVuYW1lfWAsICd1dGY4JykpLFxuICBnZW5HcmFwaE9uRW52RmxhZzogKG1vZGVsOiBJbmZyYU1vZGVsLCBmaWxlbmFtZTogc3RyaW5nKSA9PlxuICAgIHByb2Nlc3MuZW52LlJFTkRFUl9HUkFQSFMgPT09ICd0cnVlJyAmJiBnZW5lcmF0ZUdyYXBoKG1vZGVsLCBgJHtwYXJzZXJEaXJ9L3NhbXBsZS1vdXRwdXRzLyR7ZmlsZW5hbWV9YCksXG59KTsiXX0=
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc