@sylvesterllc/aws-constructs 1.1.26 → 1.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -64,13 +64,19 @@ const resolvePath = (inputPath, projectRoot) => {
64
64
  if (path.isAbsolute(inputPath)) {
65
65
  return path.resolve(inputPath);
66
66
  }
67
+ const candidates = [];
67
68
  if (projectRoot) {
68
- const candidateFromProjectRoot = path.resolve(projectRoot, inputPath);
69
- if (isSubPath(projectRoot, candidateFromProjectRoot)) {
70
- return candidateFromProjectRoot;
69
+ candidates.push(path.resolve(projectRoot, inputPath));
70
+ }
71
+ candidates.push(path.resolve(process.cwd(), inputPath));
72
+ if (projectRoot) {
73
+ for (const candidate of candidates) {
74
+ if (isSubPath(projectRoot, candidate)) {
75
+ return candidate;
76
+ }
71
77
  }
72
78
  }
73
- return path.resolve(process.cwd(), inputPath);
79
+ return candidates[candidates.length - 1];
74
80
  };
75
81
  const createBasicLambda = (scope, props) => {
76
82
  const lambdaProps = createBasicLambdaProps(props);
@@ -164,4 +170,4 @@ const addLambdaLayers = (scope, lambda, layerArns) => {
164
170
  });
165
171
  }
166
172
  };
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJhc2ljLWxhbWJkYS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2xhbWJkYS9jcmVhdGUtYmFzaWMtbGFtYmRhLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBdUM7QUFFdkMsdURBQStEO0FBQy9ELHFFQUl1QztBQUN2QyxtREFBcUQ7QUFDckQseUJBQTBCO0FBQzFCLDZCQUE4QjtBQUc5QiwyREFBaUQ7QUFFakQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsTUFBYyxFQUFXLEVBQUU7SUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RSxPQUFPLFFBQVEsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUU3RSxNQUFNLGtCQUFrQixHQUFHLENBQUMsV0FBb0IsRUFBc0IsRUFBRTtJQUN0RSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsUUFBZ0IsRUFBc0IsRUFBRTtJQUNuRSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXJDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDWixLQUFLLE1BQU0sU0FBUyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3hDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEQsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7Z0JBQ2hGLE9BQU8saUJBQWlCLENBQUM7WUFDM0IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNyQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFlLEVBQXNCLEVBQUU7SUFDakUsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXRDLEtBQUssTUFBTSxXQUFXLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFL0MsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3RGLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDekIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxJQUFJLFNBQVMsS0FBSyxZQUFZLEVBQUUsQ0FBQztnQkFDL0IsU0FBUyxHQUFHLFlBQVksQ0FBQztnQkFDekIsTUFBTTtZQUNSLENBQUM7WUFDRCxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsUUFBUSxHQUFHLFNBQVMsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxTQUFpQixFQUFFLFdBQW9CLEVBQVUsRUFBRTtJQUN0RSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEIsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RSxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsd0JBQXdCLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sd0JBQXdCLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQztBQUVLLE1BQU0saUJBQWlCLEdBQUcsQ0FDL0IsS0FBZ0IsRUFDaEIsS0FBa0IsRUFDRixFQUFFO0lBQ2xCLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWxELElBQUksY0FBYyxHQUFHLElBQUksa0NBQWMsQ0FDckMsS0FBSyxFQUNMLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxFQUMvQyxXQUFXLENBQ1osQ0FBQztJQUVGLHlCQUF5QixDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFekUsZUFBZSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRTdELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQWpCVyxRQUFBLGlCQUFpQixxQkFpQjVCO0FBRUYsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWtCLEVBQXVCLEVBQUU7SUFDekUsTUFBTSxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUNwQyxXQUFXLEVBQ1gsU0FBUyxFQUNULEtBQUssQ0FBQyxZQUFZLEVBQ2xCLFVBQVUsQ0FDWCxDQUFDO0lBQ0YsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQztJQUN6RCxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFFbEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRTdDLElBQUksb0JBQW9CLEdBQUcsbUJBQW1CLElBQUksR0FBRyxDQUFDO0lBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUNwRCxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FDYix3REFBd0Qsb0JBQW9CLFFBQVEsYUFBYSxHQUFHLENBQ3JHLENBQUM7UUFDSixDQUFDO1FBQ0Qsb0JBQW9CLEdBQUcsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUM7UUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FDYix5QkFBeUIsYUFBYSx1Q0FBdUMsb0JBQW9CLEdBQUcsQ0FDckcsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLHdCQUF3QixHQUFHLEtBQUssQ0FBQyxnQkFBZ0I7UUFDbkQsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7UUFDMUQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUVkLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQzlCLE1BQU0sa0JBQWtCLEdBQUc7WUFDekIsbUJBQW1CLENBQUMsUUFBUSxDQUFDO1lBQzdCLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztZQUN4QixvQkFBb0IsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDckYsQ0FBQztRQUVGLEtBQUssTUFBTSxRQUFRLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUMxQyxJQUFJLFFBQVEsSUFBSSxTQUFTLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDMUQsd0JBQXdCLEdBQUcsUUFBUSxDQUFDO2dCQUNwQyxNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFDRSx3QkFBd0I7UUFDeEIsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLEVBQUUsd0JBQXdCLENBQUMsRUFDMUQsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsNkJBQTZCLHdCQUF3Qix1Q0FBdUMsb0JBQW9CLEdBQUcsQ0FDcEgsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUV6QyxNQUFNLFVBQVUsR0FBd0I7UUFDdEMsS0FBSyxFQUFFLGFBQWE7UUFDcEIsWUFBWSxFQUFFLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FDM0QsS0FBSyxDQUFDLFlBQ1IsRUFBRTtRQUNGLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFlBQVksRUFBRSx3QkFBYSxDQUFDLFNBQVM7UUFDckMsT0FBTyxFQUFFLG9CQUFPLENBQUMsYUFBYTtRQUM5QixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQ3ZCLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3BEO1FBQ0QsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNO1FBQ3hCLFdBQVcsRUFBRTtZQUNYLEdBQUcsZUFBZTtTQUNuQjtRQUNELFFBQVEsRUFBRTtZQUNSLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLFFBQVE7WUFDaEIsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsaUNBQWEsQ0FBQyxRQUFRO1lBQ3JDLFdBQVcsRUFBRTtnQkFDWCxHQUFHLGVBQWU7YUFDbkI7U0FDRjtRQUNELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixNQUFNLEVBQUUsU0FBUztRQUNqQixHQUFHLENBQUMsb0JBQW9CLElBQUksRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztRQUNsRSxHQUFHLENBQUMsd0JBQXdCLElBQUk7WUFDOUIsZ0JBQWdCLEVBQUUsd0JBQXdCO1NBQzNDLENBQUM7S0FDSCxDQUFDO0lBRUYsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSx5QkFBeUIsR0FBRyxDQUNoQyxLQUFnQixFQUNoQixNQUFzQixFQUN0QixVQUFxQixFQUNyQixFQUFFO0lBQ0YsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxLQUFLLEdBQUcsb0JBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsU0FBUyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFMUUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLENBQ3RCLEtBQWdCLEVBQ2hCLE1BQXNCLEVBQ3RCLFNBQW9CLEVBQ3BCLEVBQUU7SUFDRixJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsR0FBVyxFQUFFLEVBQUU7WUFDN0MsTUFBTSxLQUFLLEdBQUcseUJBQVksQ0FBQyxtQkFBbUIsQ0FDNUMsS0FBSyxFQUNMLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsR0FBRyxDQUNKLENBQUM7WUFFRixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XHJcbmltcG9ydCB7IFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xyXG5pbXBvcnQgeyBMYXllclZlcnNpb24sIFJ1bnRpbWUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xyXG5pbXBvcnQge1xyXG4gIE5vZGVqc0Z1bmN0aW9uLFxyXG4gIE5vZGVqc0Z1bmN0aW9uUHJvcHMsXHJcbiAgU291cmNlTWFwTW9kZSxcclxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanNcIjtcclxuaW1wb3J0IHsgUmV0ZW50aW9uRGF5cyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xyXG5pbXBvcnQgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbmltcG9ydCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmltcG9ydCB7IExhbWJkYVByb3BzIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvbGFtYmRhXCI7XHJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XHJcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xyXG5cclxuY29uc3QgaXNTdWJQYXRoID0gKHJvb3Q6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpOiBib29sZWFuID0+IHtcclxuICBjb25zdCByZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUocGF0aC5yZXNvbHZlKHJvb3QpLCBwYXRoLnJlc29sdmUodGFyZ2V0KSk7XHJcbiAgcmV0dXJuIHJlbGF0aXZlID09PSBcIlwiIHx8ICghcmVsYXRpdmUuc3RhcnRzV2l0aChcIi4uXCIpICYmICFwYXRoLmlzQWJzb2x1dGUocmVsYXRpdmUpKTtcclxufTtcclxuXHJcbmNvbnN0IExPQ0tfRklMRV9OQU1FUyA9IFtcInBucG0tbG9jay55YW1sXCIsIFwieWFybi5sb2NrXCIsIFwicGFja2FnZS1sb2NrLmpzb25cIl07XHJcblxyXG5jb25zdCByZXNvbHZlUHJvamVjdFJvb3QgPSAocHJvamVjdFJvb3Q/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xyXG4gIGlmICghcHJvamVjdFJvb3QpIHtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcGF0aC5pc0Fic29sdXRlKHByb2plY3RSb290KVxyXG4gICAgPyBwYXRoLnJlc29sdmUocHJvamVjdFJvb3QpXHJcbiAgICA6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBwcm9qZWN0Um9vdCk7XHJcbn07XHJcblxyXG5jb25zdCBmaW5kTmVhcmVzdExvY2tGaWxlID0gKHN0YXJ0RGlyOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xyXG4gIGxldCBjdXJyZW50ID0gcGF0aC5yZXNvbHZlKHN0YXJ0RGlyKTtcclxuICBjb25zdCB7IHJvb3QgfSA9IHBhdGgucGFyc2UoY3VycmVudCk7XHJcblxyXG4gIHdoaWxlICh0cnVlKSB7XHJcbiAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBMT0NLX0ZJTEVfTkFNRVMpIHtcclxuICAgICAgY29uc3QgcmVzb2x2ZWRDYW5kaWRhdGUgPSBwYXRoLmpvaW4oY3VycmVudCwgY2FuZGlkYXRlKTtcclxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocmVzb2x2ZWRDYW5kaWRhdGUpICYmIGZzLnN0YXRTeW5jKHJlc29sdmVkQ2FuZGlkYXRlKS5pc0ZpbGUoKSkge1xyXG4gICAgICAgIHJldHVybiByZXNvbHZlZENhbmRpZGF0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChjdXJyZW50ID09PSByb290KSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY3VycmVudCA9IHBhdGguZGlybmFtZShjdXJyZW50KTtcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBmaW5kQ29tbW9uQW5jZXN0b3IgPSAocGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcclxuICBpZiAocGF0aHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgbGV0IGFuY2VzdG9yID0gcGF0aC5yZXNvbHZlKHBhdGhzWzBdKTtcclxuXHJcbiAgZm9yIChjb25zdCBjdXJyZW50UGF0aCBvZiBwYXRocy5zbGljZSgxKSkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gcGF0aC5yZXNvbHZlKGN1cnJlbnRQYXRoKTtcclxuICAgIGNvbnN0IGFuY2VzdG9yUm9vdCA9IHBhdGgucGFyc2UoYW5jZXN0b3IpLnJvb3Q7XHJcblxyXG4gICAgaWYgKHBhdGgucGFyc2UoYW5jZXN0b3IpLnJvb3QudG9Mb3dlckNhc2UoKSAhPT0gcGF0aC5wYXJzZSh0YXJnZXQpLnJvb3QudG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjYW5kaWRhdGUgPSBhbmNlc3RvcjtcclxuICAgIHdoaWxlICghaXNTdWJQYXRoKGNhbmRpZGF0ZSwgdGFyZ2V0KSkge1xyXG4gICAgICBpZiAoY2FuZGlkYXRlID09PSBhbmNlc3RvclJvb3QpIHtcclxuICAgICAgICBjYW5kaWRhdGUgPSBhbmNlc3RvclJvb3Q7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FuZGlkYXRlID0gcGF0aC5kaXJuYW1lKGNhbmRpZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYW5jZXN0b3IgPSBjYW5kaWRhdGU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gYW5jZXN0b3I7XHJcbn07XHJcblxyXG5jb25zdCByZXNvbHZlUGF0aCA9IChpbnB1dFBhdGg6IHN0cmluZywgcHJvamVjdFJvb3Q/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gIGlmIChwYXRoLmlzQWJzb2x1dGUoaW5wdXRQYXRoKSkge1xyXG4gICAgcmV0dXJuIHBhdGgucmVzb2x2ZShpbnB1dFBhdGgpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHByb2plY3RSb290KSB7XHJcbiAgICBjb25zdCBjYW5kaWRhdGVGcm9tUHJvamVjdFJvb3QgPSBwYXRoLnJlc29sdmUocHJvamVjdFJvb3QsIGlucHV0UGF0aCk7XHJcbiAgICBpZiAoaXNTdWJQYXRoKHByb2plY3RSb290LCBjYW5kaWRhdGVGcm9tUHJvamVjdFJvb3QpKSB7XHJcbiAgICAgIHJldHVybiBjYW5kaWRhdGVGcm9tUHJvamVjdFJvb3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGlucHV0UGF0aCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlQmFzaWNMYW1iZGEgPSAoXHJcbiAgc2NvcGU6IENvbnN0cnVjdCxcclxuICBwcm9wczogTGFtYmRhUHJvcHNcclxuKTogTm9kZWpzRnVuY3Rpb24gPT4ge1xyXG4gIGNvbnN0IGxhbWJkYVByb3BzID0gY3JlYXRlQmFzaWNMYW1iZGFQcm9wcyhwcm9wcyk7XHJcblxyXG4gIGxldCBsYW1iZGFGdW5jdGlvbiA9IG5ldyBOb2RlanNGdW5jdGlvbihcclxuICAgIHNjb3BlLFxyXG4gICAgYCR7cHJvcHMuYXBwUHJlZml4IHx8IFwiXCJ9JHtwcm9wcy5mdW5jdGlvbk5hbWV9YCxcclxuICAgIGxhbWJkYVByb3BzXHJcbiAgKTtcclxuXHJcbiAgZ3JhbnRBY2Nlc3NUb0R5bmFtb1RhYmxlcyhzY29wZSwgbGFtYmRhRnVuY3Rpb24sIHByb3BzLmR5bmFtb1RhYmxlTmFtZXMpO1xyXG5cclxuICBhZGRMYW1iZGFMYXllcnMoc2NvcGUsIGxhbWJkYUZ1bmN0aW9uLCBwcm9wcy5sYW1iZGFMYXllckFybik7XHJcblxyXG4gIHJldHVybiBsYW1iZGFGdW5jdGlvbjtcclxufTtcclxuXHJcbmNvbnN0IGNyZWF0ZUJhc2ljTGFtYmRhUHJvcHMgPSAocHJvcHM6IExhbWJkYVByb3BzKTogTm9kZWpzRnVuY3Rpb25Qcm9wcyA9PiB7XHJcbiAgY29uc3QgcmVzb2x2ZWRQcm9qZWN0Um9vdCA9IHJlc29sdmVQcm9qZWN0Um9vdChwcm9wcy5wcm9qZWN0Um9vdCk7XHJcbiAgY29uc3QgZGVmYXVsdFJlbGF0aXZlRW50cnkgPSBwYXRoLmpvaW4oXHJcbiAgICBcInJlc291cmNlc1wiLFxyXG4gICAgXCJsYW1iZGFzXCIsXHJcbiAgICBwcm9wcy5mdW5jdGlvbk5hbWUsXHJcbiAgICBcIm1haW4ubXRzXCJcclxuICApO1xyXG4gIGNvbnN0IGVudHJ5UGF0aCA9IHByb3BzLmNvZGVQYXRoID8/IGRlZmF1bHRSZWxhdGl2ZUVudHJ5O1xyXG4gIGNvbnN0IHJlc29sdmVkRW50cnkgPSByZXNvbHZlUGF0aChlbnRyeVBhdGgsIHJlc29sdmVkUHJvamVjdFJvb3QpO1xyXG5cclxuICBjb25zdCBjd2QgPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSk7XHJcbiAgY29uc3QgZW50cnlEaXIgPSBwYXRoLmRpcm5hbWUocmVzb2x2ZWRFbnRyeSk7XHJcblxyXG4gIGxldCBlZmZlY3RpdmVQcm9qZWN0Um9vdCA9IHJlc29sdmVkUHJvamVjdFJvb3QgPz8gY3dkO1xyXG4gIGlmICghaXNTdWJQYXRoKGVmZmVjdGl2ZVByb2plY3RSb290LCByZXNvbHZlZEVudHJ5KSkge1xyXG4gICAgY29uc3QgYW5jZXN0b3IgPSBmaW5kQ29tbW9uQW5jZXN0b3IoW2VmZmVjdGl2ZVByb2plY3RSb290LCBlbnRyeURpcl0pO1xyXG4gICAgaWYgKCFhbmNlc3Rvcikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYFVuYWJsZSB0byBkZXRlcm1pbmUgYSBwcm9qZWN0Um9vdCB0aGF0IGNvbnRhaW5zIGJvdGggJHtlZmZlY3RpdmVQcm9qZWN0Um9vdH0gYW5kICR7cmVzb2x2ZWRFbnRyeX0uYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgZWZmZWN0aXZlUHJvamVjdFJvb3QgPSBhbmNlc3RvcjtcclxuICB9XHJcblxyXG4gIGlmICghaXNTdWJQYXRoKGVmZmVjdGl2ZVByb2plY3RSb290LCByZXNvbHZlZEVudHJ5KSkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICBgUmVzb2x2ZWQgbGFtYmRhIGVudHJ5ICR7cmVzb2x2ZWRFbnRyeX0gbXVzdCBiZSBsb2NhdGVkIHdpdGhpbiBwcm9qZWN0Um9vdCAke2VmZmVjdGl2ZVByb2plY3RSb290fS5gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbGV0IHJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aCA9IHByb3BzLmRlcHNMb2NrRmlsZVBhdGhcclxuICAgID8gcmVzb2x2ZVBhdGgocHJvcHMuZGVwc0xvY2tGaWxlUGF0aCwgcmVzb2x2ZWRQcm9qZWN0Um9vdClcclxuICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICBpZiAoIXJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aCkge1xyXG4gICAgY29uc3QgcG90ZW50aWFsTG9ja0ZpbGVzID0gW1xyXG4gICAgICBmaW5kTmVhcmVzdExvY2tGaWxlKGVudHJ5RGlyKSxcclxuICAgICAgZmluZE5lYXJlc3RMb2NrRmlsZShjd2QpLFxyXG4gICAgICBlZmZlY3RpdmVQcm9qZWN0Um9vdCAhPT0gY3dkID8gZmluZE5lYXJlc3RMb2NrRmlsZShlZmZlY3RpdmVQcm9qZWN0Um9vdCkgOiB1bmRlZmluZWQsXHJcbiAgICBdO1xyXG5cclxuICAgIGZvciAoY29uc3QgbG9ja0ZpbGUgb2YgcG90ZW50aWFsTG9ja0ZpbGVzKSB7XHJcbiAgICAgIGlmIChsb2NrRmlsZSAmJiBpc1N1YlBhdGgoZWZmZWN0aXZlUHJvamVjdFJvb3QsIGxvY2tGaWxlKSkge1xyXG4gICAgICAgIHJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aCA9IGxvY2tGaWxlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAoXHJcbiAgICByZXNvbHZlZERlcHNMb2NrRmlsZVBhdGggJiZcclxuICAgICFpc1N1YlBhdGgoZWZmZWN0aXZlUHJvamVjdFJvb3QsIHJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aClcclxuICApIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgYFJlc29sdmVkIGRlcHNMb2NrRmlsZVBhdGggJHtyZXNvbHZlZERlcHNMb2NrRmlsZVBhdGh9IG11c3QgYmUgbG9jYXRlZCB3aXRoaW4gcHJvamVjdFJvb3QgJHtlZmZlY3RpdmVQcm9qZWN0Um9vdH0uYFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGVudmlyb25tZW50VmFycyA9IHByb3BzLmVudnMgPz8ge307XHJcblxyXG4gIGNvbnN0IGxhbWJkYVByb3A6IE5vZGVqc0Z1bmN0aW9uUHJvcHMgPSB7XHJcbiAgICBlbnRyeTogcmVzb2x2ZWRFbnRyeSxcclxuICAgIGZ1bmN0aW9uTmFtZTogYCR7cHJvcHMuYXBwUHJlZml4ID8gYCR7cHJvcHMuYXBwUHJlZml4fS1gIDogXCJcIn0ke1xyXG4gICAgICBwcm9wcy5mdW5jdGlvbk5hbWVcclxuICAgIH1gLFxyXG4gICAgaGFuZGxlcjogXCJtYWluLnRzXCIsXHJcbiAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuVFdPX1dFRUtTLFxyXG4gICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfTEFURVNULFxyXG4gICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcyhcclxuICAgICAgcHJvcHMudGltZW91dEluTWludXRlcyA/IHByb3BzLnRpbWVvdXRJbk1pbnV0ZXMgOiAxXHJcbiAgICApLFxyXG4gICAgbWVtb3J5U2l6ZTogcHJvcHMubWVtb3J5LFxyXG4gICAgZW52aXJvbm1lbnQ6IHtcclxuICAgICAgLi4uZW52aXJvbm1lbnRWYXJzLFxyXG4gICAgfSxcclxuICAgIGJ1bmRsaW5nOiB7XHJcbiAgICAgIG1pbmlmeTogdHJ1ZSxcclxuICAgICAgdGFyZ2V0OiBgZXNuZXh0YCxcclxuICAgICAgc291cmNlTWFwOiB0cnVlLFxyXG4gICAgICBzb3VyY2VNYXBNb2RlOiBTb3VyY2VNYXBNb2RlLkVYVEVSTkFMLFxyXG4gICAgICBlbnZpcm9ubWVudDoge1xyXG4gICAgICAgIC4uLmVudmlyb25tZW50VmFycyxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICByb2xlOiBwcm9wcy5yb2xlLFxyXG4gICAgbGF5ZXJzOiB1bmRlZmluZWQsXHJcbiAgICAuLi4oZWZmZWN0aXZlUHJvamVjdFJvb3QgJiYgeyBwcm9qZWN0Um9vdDogZWZmZWN0aXZlUHJvamVjdFJvb3QgfSksXHJcbiAgICAuLi4ocmVzb2x2ZWREZXBzTG9ja0ZpbGVQYXRoICYmIHtcclxuICAgICAgZGVwc0xvY2tGaWxlUGF0aDogcmVzb2x2ZWREZXBzTG9ja0ZpbGVQYXRoLFxyXG4gICAgfSksXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGxhbWJkYVByb3A7XHJcbn07XHJcblxyXG5jb25zdCBncmFudEFjY2Vzc1RvRHluYW1vVGFibGVzID0gKFxyXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXHJcbiAgbGFtYmRhOiBOb2RlanNGdW5jdGlvbixcclxuICB0YWJsZU5hbWVzPzogc3RyaW5nW11cclxuKSA9PiB7XHJcbiAgaWYgKHRhYmxlTmFtZXMgJiYgdGFibGVOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICB0YWJsZU5hbWVzLmZvckVhY2goKHRhYmxlTmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCB0YWJsZSA9IFRhYmxlLmZyb21UYWJsZU5hbWUoc2NvcGUsIGAke3RhYmxlTmFtZX0tdGFibGVgLCB0YWJsZU5hbWUpO1xyXG5cclxuICAgICAgdGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKGxhbWJkYSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBhZGRMYW1iZGFMYXllcnMgPSAoXHJcbiAgc2NvcGU6IENvbnN0cnVjdCxcclxuICBsYW1iZGE6IE5vZGVqc0Z1bmN0aW9uLFxyXG4gIGxheWVyQXJucz86IHN0cmluZ1tdXHJcbikgPT4ge1xyXG4gIGlmIChsYXllckFybnMgJiYgbGF5ZXJBcm5zLmxlbmd0aCA+IDApIHtcclxuICAgIGxheWVyQXJucy5mb3JFYWNoKChhcm46IHN0cmluZywgaWR4OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgbGF5ZXIgPSBMYXllclZlcnNpb24uZnJvbUxheWVyVmVyc2lvbkFybihcclxuICAgICAgICBzY29wZSxcclxuICAgICAgICBgY29tbW9uLWxheWVyLSR7aWR4fWAsXHJcbiAgICAgICAgYXJuXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBsYW1iZGEuYWRkTGF5ZXJzKGxheWVyKTtcclxuICAgIH0pO1xyXG4gIH1cclxufTtcclxuIl19
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJhc2ljLWxhbWJkYS1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzb3VyY2VzL2xhbWJkYS9jcmVhdGUtYmFzaWMtbGFtYmRhLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBdUM7QUFFdkMsdURBQStEO0FBQy9ELHFFQUl1QztBQUN2QyxtREFBcUQ7QUFDckQseUJBQTBCO0FBQzFCLDZCQUE4QjtBQUc5QiwyREFBaUQ7QUFFakQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFZLEVBQUUsTUFBYyxFQUFXLEVBQUU7SUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RSxPQUFPLFFBQVEsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDdkYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUU3RSxNQUFNLGtCQUFrQixHQUFHLENBQUMsV0FBb0IsRUFBc0IsRUFBRTtJQUN0RSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7UUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMv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LENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQzdDLE1BQU0sS0FBSyxHQUFHLHlCQUFZLENBQUMsbUJBQW1CLENBQzVDLEtBQUssRUFDTCxnQkFBZ0IsR0FBRyxFQUFFLEVBQ3JCLEdBQUcsQ0FDSixDQUFDO1lBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xyXG5pbXBvcnQgeyBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcclxuaW1wb3J0IHsgTGF5ZXJWZXJzaW9uLCBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcclxuaW1wb3J0IHtcclxuICBOb2RlanNGdW5jdGlvbixcclxuICBOb2RlanNGdW5jdGlvblByb3BzLFxyXG4gIFNvdXJjZU1hcE1vZGUsXHJcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XHJcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcclxuaW1wb3J0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xyXG5pbXBvcnQgeyBMYW1iZGFQcm9wcyB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2xhbWJkYVwiO1xyXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xyXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcclxuXHJcbmNvbnN0IGlzU3ViUGF0aCA9IChyb290OiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XHJcbiAgY29uc3QgcmVsYXRpdmUgPSBwYXRoLnJlbGF0aXZlKHBhdGgucmVzb2x2ZShyb290KSwgcGF0aC5yZXNvbHZlKHRhcmdldCkpO1xyXG4gIHJldHVybiByZWxhdGl2ZSA9PT0gXCJcIiB8fCAoIXJlbGF0aXZlLnN0YXJ0c1dpdGgoXCIuLlwiKSAmJiAhcGF0aC5pc0Fic29sdXRlKHJlbGF0aXZlKSk7XHJcbn07XHJcblxyXG5jb25zdCBMT0NLX0ZJTEVfTkFNRVMgPSBbXCJwbnBtLWxvY2sueWFtbFwiLCBcInlhcm4ubG9ja1wiLCBcInBhY2thZ2UtbG9jay5qc29uXCJdO1xyXG5cclxuY29uc3QgcmVzb2x2ZVByb2plY3RSb290ID0gKHByb2plY3RSb290Pzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcclxuICBpZiAoIXByb2plY3RSb290KSB7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHBhdGguaXNBYnNvbHV0ZShwcm9qZWN0Um9vdClcclxuICAgID8gcGF0aC5yZXNvbHZlKHByb2plY3RSb290KVxyXG4gICAgOiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcHJvamVjdFJvb3QpO1xyXG59O1xyXG5cclxuY29uc3QgZmluZE5lYXJlc3RMb2NrRmlsZSA9IChzdGFydERpcjogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcclxuICBsZXQgY3VycmVudCA9IHBhdGgucmVzb2x2ZShzdGFydERpcik7XHJcbiAgY29uc3QgeyByb290IH0gPSBwYXRoLnBhcnNlKGN1cnJlbnQpO1xyXG5cclxuICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgTE9DS19GSUxFX05BTUVTKSB7XHJcbiAgICAgIGNvbnN0IHJlc29sdmVkQ2FuZGlkYXRlID0gcGF0aC5qb2luKGN1cnJlbnQsIGNhbmRpZGF0ZSk7XHJcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHJlc29sdmVkQ2FuZGlkYXRlKSAmJiBmcy5zdGF0U3luYyhyZXNvbHZlZENhbmRpZGF0ZSkuaXNGaWxlKCkpIHtcclxuICAgICAgICByZXR1cm4gcmVzb2x2ZWRDYW5kaWRhdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoY3VycmVudCA9PT0gcm9vdCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGN1cnJlbnQgPSBwYXRoLmRpcm5hbWUoY3VycmVudCk7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgZmluZENvbW1vbkFuY2VzdG9yID0gKHBhdGhzOiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XHJcbiAgaWYgKHBhdGhzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGxldCBhbmNlc3RvciA9IHBhdGgucmVzb2x2ZShwYXRoc1swXSk7XHJcblxyXG4gIGZvciAoY29uc3QgY3VycmVudFBhdGggb2YgcGF0aHMuc2xpY2UoMSkpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IHBhdGgucmVzb2x2ZShjdXJyZW50UGF0aCk7XHJcbiAgICBjb25zdCBhbmNlc3RvclJvb3QgPSBwYXRoLnBhcnNlKGFuY2VzdG9yKS5yb290O1xyXG5cclxuICAgIGlmIChwYXRoLnBhcnNlKGFuY2VzdG9yKS5yb290LnRvTG93ZXJDYXNlKCkgIT09IHBhdGgucGFyc2UodGFyZ2V0KS5yb290LnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY2FuZGlkYXRlID0gYW5jZXN0b3I7XHJcbiAgICB3aGlsZSAoIWlzU3ViUGF0aChjYW5kaWRhdGUsIHRhcmdldCkpIHtcclxuICAgICAgaWYgKGNhbmRpZGF0ZSA9PT0gYW5jZXN0b3JSb290KSB7XHJcbiAgICAgICAgY2FuZGlkYXRlID0gYW5jZXN0b3JSb290O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhbmRpZGF0ZSA9IHBhdGguZGlybmFtZShjYW5kaWRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFuY2VzdG9yID0gY2FuZGlkYXRlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGFuY2VzdG9yO1xyXG59O1xyXG5cclxuY29uc3QgcmVzb2x2ZVBhdGggPSAoaW5wdXRQYXRoOiBzdHJpbmcsIHByb2plY3RSb290Pzogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICBpZiAocGF0aC5pc0Fic29sdXRlKGlucHV0UGF0aCkpIHtcclxuICAgIHJldHVybiBwYXRoLnJlc29sdmUoaW5wdXRQYXRoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGNhbmRpZGF0ZXM6IHN0cmluZ1tdID0gW107XHJcbiAgaWYgKHByb2plY3RSb290KSB7XHJcbiAgICBjYW5kaWRhdGVzLnB1c2gocGF0aC5yZXNvbHZlKHByb2plY3RSb290LCBpbnB1dFBhdGgpKTtcclxuICB9XHJcbiAgY2FuZGlkYXRlcy5wdXNoKHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBpbnB1dFBhdGgpKTtcclxuXHJcbiAgaWYgKHByb2plY3RSb290KSB7XHJcbiAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7XHJcbiAgICAgIGlmIChpc1N1YlBhdGgocHJvamVjdFJvb3QsIGNhbmRpZGF0ZSkpIHtcclxuICAgICAgICByZXR1cm4gY2FuZGlkYXRlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gY2FuZGlkYXRlc1tjYW5kaWRhdGVzLmxlbmd0aCAtIDFdO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUJhc2ljTGFtYmRhID0gKFxyXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXHJcbiAgcHJvcHM6IExhbWJkYVByb3BzXHJcbik6IE5vZGVqc0Z1bmN0aW9uID0+IHtcclxuICBjb25zdCBsYW1iZGFQcm9wcyA9IGNyZWF0ZUJhc2ljTGFtYmRhUHJvcHMocHJvcHMpO1xyXG5cclxuICBsZXQgbGFtYmRhRnVuY3Rpb24gPSBuZXcgTm9kZWpzRnVuY3Rpb24oXHJcbiAgICBzY29wZSxcclxuICAgIGAke3Byb3BzLmFwcFByZWZpeCB8fCBcIlwifSR7cHJvcHMuZnVuY3Rpb25OYW1lfWAsXHJcbiAgICBsYW1iZGFQcm9wc1xyXG4gICk7XHJcblxyXG4gIGdyYW50QWNjZXNzVG9EeW5hbW9UYWJsZXMoc2NvcGUsIGxhbWJkYUZ1bmN0aW9uLCBwcm9wcy5keW5hbW9UYWJsZU5hbWVzKTtcclxuXHJcbiAgYWRkTGFtYmRhTGF5ZXJzKHNjb3BlLCBsYW1iZGFGdW5jdGlvbiwgcHJvcHMubGFtYmRhTGF5ZXJBcm4pO1xyXG5cclxuICByZXR1cm4gbGFtYmRhRnVuY3Rpb247XHJcbn07XHJcblxyXG5jb25zdCBjcmVhdGVCYXNpY0xhbWJkYVByb3BzID0gKHByb3BzOiBMYW1iZGFQcm9wcyk6IE5vZGVqc0Z1bmN0aW9uUHJvcHMgPT4ge1xyXG4gIGNvbnN0IHJlc29sdmVkUHJvamVjdFJvb3QgPSByZXNvbHZlUHJvamVjdFJvb3QocHJvcHMucHJvamVjdFJvb3QpO1xyXG4gIGNvbnN0IGRlZmF1bHRSZWxhdGl2ZUVudHJ5ID0gcGF0aC5qb2luKFxyXG4gICAgXCJyZXNvdXJjZXNcIixcclxuICAgIFwibGFtYmRhc1wiLFxyXG4gICAgcHJvcHMuZnVuY3Rpb25OYW1lLFxyXG4gICAgXCJtYWluLm10c1wiXHJcbiAgKTtcclxuICBjb25zdCBlbnRyeVBhdGggPSBwcm9wcy5jb2RlUGF0aCA/PyBkZWZhdWx0UmVsYXRpdmVFbnRyeTtcclxuICBjb25zdCByZXNvbHZlZEVudHJ5ID0gcmVzb2x2ZVBhdGgoZW50cnlQYXRoLCByZXNvbHZlZFByb2plY3RSb290KTtcclxuXHJcbiAgY29uc3QgY3dkID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCkpO1xyXG4gIGNvbnN0IGVudHJ5RGlyID0gcGF0aC5kaXJuYW1lKHJlc29sdmVkRW50cnkpO1xyXG5cclxuICBsZXQgZWZmZWN0aXZlUHJvamVjdFJvb3QgPSByZXNvbHZlZFByb2plY3RSb290ID8/IGN3ZDtcclxuICBpZiAoIWlzU3ViUGF0aChlZmZlY3RpdmVQcm9qZWN0Um9vdCwgcmVzb2x2ZWRFbnRyeSkpIHtcclxuICAgIGNvbnN0IGFuY2VzdG9yID0gZmluZENvbW1vbkFuY2VzdG9yKFtlZmZlY3RpdmVQcm9qZWN0Um9vdCwgZW50cnlEaXJdKTtcclxuICAgIGlmICghYW5jZXN0b3IpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBVbmFibGUgdG8gZGV0ZXJtaW5lIGEgcHJvamVjdFJvb3QgdGhhdCBjb250YWlucyBib3RoICR7ZWZmZWN0aXZlUHJvamVjdFJvb3R9IGFuZCAke3Jlc29sdmVkRW50cnl9LmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGVmZmVjdGl2ZVByb2plY3RSb290ID0gYW5jZXN0b3I7XHJcbiAgfVxyXG5cclxuICBpZiAoIWlzU3ViUGF0aChlZmZlY3RpdmVQcm9qZWN0Um9vdCwgcmVzb2x2ZWRFbnRyeSkpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgYFJlc29sdmVkIGxhbWJkYSBlbnRyeSAke3Jlc29sdmVkRW50cnl9IG11c3QgYmUgbG9jYXRlZCB3aXRoaW4gcHJvamVjdFJvb3QgJHtlZmZlY3RpdmVQcm9qZWN0Um9vdH0uYFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxldCByZXNvbHZlZERlcHNMb2NrRmlsZVBhdGggPSBwcm9wcy5kZXBzTG9ja0ZpbGVQYXRoXHJcbiAgICA/IHJlc29sdmVQYXRoKHByb3BzLmRlcHNMb2NrRmlsZVBhdGgsIHJlc29sdmVkUHJvamVjdFJvb3QpXHJcbiAgICA6IHVuZGVmaW5lZDtcclxuXHJcbiAgaWYgKCFyZXNvbHZlZERlcHNMb2NrRmlsZVBhdGgpIHtcclxuICAgIGNvbnN0IHBvdGVudGlhbExvY2tGaWxlcyA9IFtcclxuICAgICAgZmluZE5lYXJlc3RMb2NrRmlsZShlbnRyeURpciksXHJcbiAgICAgIGZpbmROZWFyZXN0TG9ja0ZpbGUoY3dkKSxcclxuICAgICAgZWZmZWN0aXZlUHJvamVjdFJvb3QgIT09IGN3ZCA/IGZpbmROZWFyZXN0TG9ja0ZpbGUoZWZmZWN0aXZlUHJvamVjdFJvb3QpIDogdW5kZWZpbmVkLFxyXG4gICAgXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGxvY2tGaWxlIG9mIHBvdGVudGlhbExvY2tGaWxlcykge1xyXG4gICAgICBpZiAobG9ja0ZpbGUgJiYgaXNTdWJQYXRoKGVmZmVjdGl2ZVByb2plY3RSb290LCBsb2NrRmlsZSkpIHtcclxuICAgICAgICByZXNvbHZlZERlcHNMb2NrRmlsZVBhdGggPSBsb2NrRmlsZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaWYgKFxyXG4gICAgcmVzb2x2ZWREZXBzTG9ja0ZpbGVQYXRoICYmXHJcbiAgICAhaXNTdWJQYXRoKGVmZmVjdGl2ZVByb2plY3RSb290LCByZXNvbHZlZERlcHNMb2NrRmlsZVBhdGgpXHJcbiAgKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgIGBSZXNvbHZlZCBkZXBzTG9ja0ZpbGVQYXRoICR7cmVzb2x2ZWREZXBzTG9ja0ZpbGVQYXRofSBtdXN0IGJlIGxvY2F0ZWQgd2l0aGluIHByb2plY3RSb290ICR7ZWZmZWN0aXZlUHJvamVjdFJvb3R9LmBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBlbnZpcm9ubWVudFZhcnMgPSBwcm9wcy5lbnZzID8/IHt9O1xyXG5cclxuICBjb25zdCBsYW1iZGFQcm9wOiBOb2RlanNGdW5jdGlvblByb3BzID0ge1xyXG4gICAgZW50cnk6IHJlc29sdmVkRW50cnksXHJcbiAgICBmdW5jdGlvbk5hbWU6IGAke3Byb3BzLmFwcFByZWZpeCA/IGAke3Byb3BzLmFwcFByZWZpeH0tYCA6IFwiXCJ9JHtcclxuICAgICAgcHJvcHMuZnVuY3Rpb25OYW1lXHJcbiAgICB9YCxcclxuICAgIGhhbmRsZXI6IFwibWFpbi50c1wiLFxyXG4gICAgbG9nUmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLlRXT19XRUVLUyxcclxuICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTX0xBVEVTVCxcclxuICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoXHJcbiAgICAgIHByb3BzLnRpbWVvdXRJbk1pbnV0ZXMgPyBwcm9wcy50aW1lb3V0SW5NaW51dGVzIDogMVxyXG4gICAgKSxcclxuICAgIG1lbW9yeVNpemU6IHByb3BzLm1lbW9yeSxcclxuICAgIGVudmlyb25tZW50OiB7XHJcbiAgICAgIC4uLmVudmlyb25tZW50VmFycyxcclxuICAgIH0sXHJcbiAgICBidW5kbGluZzoge1xyXG4gICAgICBtaW5pZnk6IHRydWUsXHJcbiAgICAgIHRhcmdldDogYGVzbmV4dGAsXHJcbiAgICAgIHNvdXJjZU1hcDogdHJ1ZSxcclxuICAgICAgc291cmNlTWFwTW9kZTogU291cmNlTWFwTW9kZS5FWFRFUk5BTCxcclxuICAgICAgZW52aXJvbm1lbnQ6IHtcclxuICAgICAgICAuLi5lbnZpcm9ubWVudFZhcnMsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgcm9sZTogcHJvcHMucm9sZSxcclxuICAgIGxheWVyczogdW5kZWZpbmVkLFxyXG4gICAgLi4uKGVmZmVjdGl2ZVByb2plY3RSb290ICYmIHsgcHJvamVjdFJvb3Q6IGVmZmVjdGl2ZVByb2plY3RSb290IH0pLFxyXG4gICAgLi4uKHJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aCAmJiB7XHJcbiAgICAgIGRlcHNMb2NrRmlsZVBhdGg6IHJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aCxcclxuICAgIH0pLFxyXG4gIH07XHJcblxyXG4gIHJldHVybiBsYW1iZGFQcm9wO1xyXG59O1xyXG5cclxuY29uc3QgZ3JhbnRBY2Nlc3NUb0R5bmFtb1RhYmxlcyA9IChcclxuICBzY29wZTogQ29uc3RydWN0LFxyXG4gIGxhbWJkYTogTm9kZWpzRnVuY3Rpb24sXHJcbiAgdGFibGVOYW1lcz86IHN0cmluZ1tdXHJcbikgPT4ge1xyXG4gIGlmICh0YWJsZU5hbWVzICYmIHRhYmxlTmFtZXMubGVuZ3RoID4gMCkge1xyXG4gICAgdGFibGVOYW1lcy5mb3JFYWNoKCh0YWJsZU5hbWUpID0+IHtcclxuICAgICAgY29uc3QgdGFibGUgPSBUYWJsZS5mcm9tVGFibGVOYW1lKHNjb3BlLCBgJHt0YWJsZU5hbWV9LXRhYmxlYCwgdGFibGVOYW1lKTtcclxuXHJcbiAgICAgIHRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YShsYW1iZGEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgYWRkTGFtYmRhTGF5ZXJzID0gKFxyXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXHJcbiAgbGFtYmRhOiBOb2RlanNGdW5jdGlvbixcclxuICBsYXllckFybnM/OiBzdHJpbmdbXVxyXG4pID0+IHtcclxuICBpZiAobGF5ZXJBcm5zICYmIGxheWVyQXJucy5sZW5ndGggPiAwKSB7XHJcbiAgICBsYXllckFybnMuZm9yRWFjaCgoYXJuOiBzdHJpbmcsIGlkeDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IGxheWVyID0gTGF5ZXJWZXJzaW9uLmZyb21MYXllclZlcnNpb25Bcm4oXHJcbiAgICAgICAgc2NvcGUsXHJcbiAgICAgICAgYGNvbW1vbi1sYXllci0ke2lkeH1gLFxyXG4gICAgICAgIGFyblxyXG4gICAgICApO1xyXG5cclxuICAgICAgbGFtYmRhLmFkZExheWVycyhsYXllcik7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcbiJdfQ==
@@ -68,13 +68,19 @@ const resolvePath = (inputPath, projectRoot) => {
68
68
  if (path.isAbsolute(inputPath)) {
69
69
  return path.resolve(inputPath);
70
70
  }
71
+ const candidates = [];
71
72
  if (projectRoot) {
72
- const candidateFromProjectRoot = path.resolve(projectRoot, inputPath);
73
- if (isSubPath(projectRoot, candidateFromProjectRoot)) {
74
- return candidateFromProjectRoot;
73
+ candidates.push(path.resolve(projectRoot, inputPath));
74
+ }
75
+ candidates.push(path.resolve(process.cwd(), inputPath));
76
+ if (projectRoot) {
77
+ for (const candidate of candidates) {
78
+ if (isSubPath(projectRoot, candidate)) {
79
+ return candidate;
80
+ }
75
81
  }
76
82
  }
77
- return path.resolve(process.cwd(), inputPath);
83
+ return candidates[candidates.length - 1];
78
84
  };
79
85
  const createBasicLambdaTimerJob = (scope, props) => {
80
86
  const lambdaProps = createBasicLambdaProps(props);
@@ -182,4 +188,4 @@ const addLambdaLayers = (scope, lambda, layerArns) => {
182
188
  });
183
189
  }
184
190
  };
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJhc2ljLWxhbWJkYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvbGFtYmRhL2NyZWF0ZS1iYXNpYy1sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBQ3ZDLGlEQUF1RDtBQUN2RCx1REFBK0Q7QUFDL0QscUVBSXVDO0FBQ3ZDLG1EQUFxRDtBQUNyRCx5QkFBMEI7QUFDMUIsNkJBQThCO0FBRzlCLHFHQUFvRjtBQUNwRix1REFBcUU7QUFDckUsdUVBQWdFO0FBQ2hFLDJEQUFpRDtBQUVqRCxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxNQUFjLEVBQVcsRUFBRTtJQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sUUFBUSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUN2RixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBRTdFLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxXQUFvQixFQUFzQixFQUFFO0lBQ3RFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxD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QyxLQUFnQixFQUNoQixNQUFzQixFQUN0QixVQUFxQixFQUNyQixFQUFFO0lBQ0YsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxLQUFLLEdBQUcsb0JBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsU0FBUyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFMUUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLENBQ3RCLEtBQWdCLEVBQ2hCLE1BQXNCLEVBQ3RCLFNBQW9CLEVBQ3BCLEVBQUU7SUFDRixJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsR0FBVyxFQUFFLEVBQUU7WUFDN0MsTUFBTSxLQUFLLEdBQUcseUJBQVksQ0FBQyxtQkFBbUIsQ0FDNUMsS0FBSyxFQUNMLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsR0FBRyxDQUNKLENBQUM7WUFFRixNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XHJcbmltcG9ydCB7IFNlcnZpY2VQcmluY2lwYWwgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xyXG5pbXBvcnQgeyBMYXllclZlcnNpb24sIFJ1bnRpbWUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xyXG5pbXBvcnQge1xyXG4gIE5vZGVqc0Z1bmN0aW9uLFxyXG4gIE5vZGVqc0Z1bmN0aW9uUHJvcHMsXHJcbiAgU291cmNlTWFwTW9kZSxcclxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanNcIjtcclxuaW1wb3J0IHsgUmV0ZW50aW9uRGF5cyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xyXG5pbXBvcnQgZnMgPSByZXF1aXJlKFwiZnNcIik7XHJcbmltcG9ydCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmltcG9ydCB7IFRpbWVySm9iUHJvcHMgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy90aW1lci1qb2JcIjtcclxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcclxuaW1wb3J0IHsgU0VSVklDRV9QUklOQ0lQQUwgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzL2F3cy1zZXJ2aWNlLXByaW5jaXBhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgQ3Jvbk9wdGlvbnMsIFJ1bGUsIFNjaGVkdWxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHNcIjtcclxuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzXCI7XHJcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiO1xyXG5cclxuY29uc3QgaXNTdWJQYXRoID0gKHJvb3Q6IHN0cmluZywgdGFyZ2V0OiBzdHJpbmcpOiBib29sZWFuID0+IHtcclxuICBjb25zdCByZWxhdGl2ZSA9IHBhdGgucmVsYXRpdmUocGF0aC5yZXNvbHZlKHJvb3QpLCBwYXRoLnJlc29sdmUodGFyZ2V0KSk7XHJcbiAgcmV0dXJuIHJlbGF0aXZlID09PSBcIlwiIHx8ICghcmVsYXRpdmUuc3RhcnRzV2l0aChcIi4uXCIpICYmICFwYXRoLmlzQWJzb2x1dGUocmVsYXRpdmUpKTtcclxufTtcclxuXHJcbmNvbnN0IExPQ0tfRklMRV9OQU1FUyA9IFtcInBucG0tbG9jay55YW1sXCIsIFwieWFybi5sb2NrXCIsIFwicGFja2FnZS1sb2NrLmpzb25cIl07XHJcblxyXG5jb25zdCByZXNvbHZlUHJvamVjdFJvb3QgPSAocHJvamVjdFJvb3Q/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xyXG4gIGlmICghcHJvamVjdFJvb3QpIHtcclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcGF0aC5pc0Fic29sdXRlKHByb2plY3RSb290KVxyXG4gICAgPyBwYXRoLnJlc29sdmUocHJvamVjdFJvb3QpXHJcbiAgICA6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBwcm9qZWN0Um9vdCk7XHJcbn07XHJcblxyXG5jb25zdCBmaW5kTmVhcmVzdExvY2tGaWxlID0gKHN0YXJ0RGlyOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xyXG4gIGxldCBjdXJyZW50ID0gcGF0aC5yZXNvbHZlKHN0YXJ0RGlyKTtcclxuICBjb25zdCB7IHJvb3QgfSA9IHBhdGgucGFyc2UoY3VycmVudCk7XHJcblxyXG4gIHdoaWxlICh0cnVlKSB7XHJcbiAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBMT0NLX0ZJTEVfTkFNRVMpIHtcclxuICAgICAgY29uc3QgcmVzb2x2ZWRDYW5kaWRhdGUgPSBwYXRoLmpvaW4oY3VycmVudCwgY2FuZGlkYXRlKTtcclxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocmVzb2x2ZWRDYW5kaWRhdGUpICYmIGZzLnN0YXRTeW5jKHJlc29sdmVkQ2FuZGlkYXRlKS5pc0ZpbGUoKSkge1xyXG4gICAgICAgIHJldHVybiByZXNvbHZlZENhbmRpZGF0ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChjdXJyZW50ID09PSByb290KSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgY3VycmVudCA9IHBhdGguZGlybmFtZShjdXJyZW50KTtcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBmaW5kQ29tbW9uQW5jZXN0b3IgPSAocGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcclxuICBpZiAocGF0aHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgbGV0IGFuY2VzdG9yID0gcGF0aC5yZXNvbHZlKHBhdGhzWzBdKTtcclxuXHJcbiAgZm9yIChjb25zdCBjdXJyZW50UGF0aCBvZiBwYXRocy5zbGljZSgxKSkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gcGF0aC5yZXNvbHZlKGN1cnJlbnRQYXRoKTtcclxuICAgIGNvbnN0IGFuY2VzdG9yUm9vdCA9IHBhdGgucGFyc2UoYW5jZXN0b3IpLnJvb3Q7XHJcblxyXG4gICAgaWYgKHBhdGgucGFyc2UoYW5jZXN0b3IpLnJvb3QudG9Mb3dlckNhc2UoKSAhPT0gcGF0aC5wYXJzZSh0YXJnZXQpLnJvb3QudG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjYW5kaWRhdGUgPSBhbmNlc3RvcjtcclxuICAgIHdoaWxlICghaXNTdWJQYXRoKGNhbmRpZGF0ZSwgdGFyZ2V0KSkge1xyXG4gICAgICBpZiAoY2FuZGlkYXRlID09PSBhbmNlc3RvclJvb3QpIHtcclxuICAgICAgICBjYW5kaWRhdGUgPSBhbmNlc3RvclJvb3Q7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FuZGlkYXRlID0gcGF0aC5kaXJuYW1lKGNhbmRpZGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYW5jZXN0b3IgPSBjYW5kaWRhdGU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gYW5jZXN0b3I7XHJcbn07XHJcblxyXG5jb25zdCByZXNvbHZlUGF0aCA9IChpbnB1dFBhdGg6IHN0cmluZywgcHJvamVjdFJvb3Q/OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG4gIGlmIChwYXRoLmlzQWJzb2x1dGUoaW5wdXRQYXRoKSkge1xyXG4gICAgcmV0dXJuIHBhdGgucmVzb2x2ZShpbnB1dFBhdGgpO1xyXG4gIH1cclxuXHJcbiAgaWYgKHByb2plY3RSb290KSB7XHJcbiAgICBjb25zdCBjYW5kaWRhdGVGcm9tUHJvamVjdFJvb3QgPSBwYXRoLnJlc29sdmUocHJvamVjdFJvb3QsIGlucHV0UGF0aCk7XHJcbiAgICBpZiAoaXNTdWJQYXRoKHByb2plY3RSb290LCBjYW5kaWRhdGVGcm9tUHJvamVjdFJvb3QpKSB7XHJcbiAgICAgIHJldHVybiBjYW5kaWRhdGVGcm9tUHJvamVjdFJvb3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGlucHV0UGF0aCk7XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlQmFzaWNMYW1iZGFUaW1lckpvYiA9IChcclxuICBzY29wZTogQ29uc3RydWN0LFxyXG4gIHByb3BzOiBUaW1lckpvYlByb3BzXHJcbik6IE5vZGVqc0Z1bmN0aW9uID0+IHtcclxuICBjb25zdCBsYW1iZGFQcm9wcyA9IGNyZWF0ZUJhc2ljTGFtYmRhUHJvcHMocHJvcHMpO1xyXG5cclxuICBsZXQgbGFtYmRhRnVuY3Rpb24gPSBuZXcgTm9kZWpzRnVuY3Rpb24oXHJcbiAgICBzY29wZSxcclxuICAgIGAke3Byb3BzLmFwcFByZWZpeH0ke3Byb3BzLmZ1bmN0aW9uTmFtZX1gLFxyXG4gICAgbGFtYmRhUHJvcHNcclxuICApO1xyXG5cclxuICBhZGRJbnZva2VQZXJtaXNzaW9uVG9MYW1iZGFGb3JFdmVudHMobGFtYmRhRnVuY3Rpb24pO1xyXG5cclxuICBjb25zdCBldmVudFJ1bGUgPSBjcmVhdGVFdmVudFJ1bGVGb3JMYW1iZGEoXHJcbiAgICBzY29wZSxcclxuICAgIGxhbWJkYUZ1bmN0aW9uLFxyXG4gICAgcHJvcHMuY3Jvbk9wdGlvbnNcclxuICApO1xyXG5cclxuICBldmVudFJ1bGUuYWRkVGFyZ2V0KG5ldyBMYW1iZGFGdW5jdGlvbihsYW1iZGFGdW5jdGlvbikpO1xyXG5cclxuICBncmFudEFjY2Vzc1RvRHluYW1vVGFibGVzKHNjb3BlLCBsYW1iZGFGdW5jdGlvbiwgcHJvcHMuZHluYW1vVGFibGVOYW1lcyk7XHJcblxyXG4gIGFkZExhbWJkYUxheWVycyhzY29wZSwgbGFtYmRhRnVuY3Rpb24sIHByb3BzLmxhbWJkYUxheWVyQXJuKTtcclxuXHJcbiAgcmV0dXJuIGxhbWJkYUZ1bmN0aW9uO1xyXG59O1xyXG5cclxuY29uc3QgY3JlYXRlQmFzaWNMYW1iZGFQcm9wcyA9IChwcm9wczogVGltZXJKb2JQcm9wcyk6IE5vZGVqc0Z1bmN0aW9uUHJvcHMgPT4ge1xyXG4gIGNvbnN0IHJlc29sdmVkUHJvamVjdFJvb3QgPSByZXNvbHZlUHJvamVjdFJvb3QocHJvcHMucHJvamVjdFJvb3QpO1xyXG4gIGNvbnN0IGRlZmF1bHRSZWxhdGl2ZUVudHJ5ID0gcGF0aC5qb2luKFxyXG4gICAgXCJyZXNvdXJjZXNcIixcclxuICAgIFwibGFtYmRhc1wiLFxyXG4gICAgXCJ0aW1lci1qb2JzXCIsXHJcbiAgICBwcm9wcy5mdW5jdGlvbk5hbWUsXHJcbiAgICBcIm1haW4ubXRzXCJcclxuICApO1xyXG4gIGNvbnN0IGVudHJ5UGF0aCA9IHByb3BzLmNvZGVQYXRoID8/IGRlZmF1bHRSZWxhdGl2ZUVudHJ5O1xyXG4gIGNvbnN0IHJlc29sdmVkRW50cnkgPSByZXNvbHZlUGF0aChlbnRyeVBhdGgsIHJlc29sdmVkUHJvamVjdFJvb3QpO1xyXG5cclxuICBjb25zdCBjd2QgPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSk7XHJcbiAgY29uc3QgZW50cnlEaXIgPSBwYXRoLmRpcm5hbWUocmVzb2x2ZWRFbnRyeSk7XHJcblxyXG4gIGxldCBlZmZlY3RpdmVQcm9qZWN0Um9vdCA9IHJlc29sdmVkUHJvamVjdFJvb3QgPz8gY3dkO1xyXG4gIGlmICghaXNTdWJQYXRoKGVmZmVjdGl2ZVByb2plY3RSb290LCByZXNvbHZlZEVudHJ5KSkge1xyXG4gICAgY29uc3QgYW5jZXN0b3IgPSBmaW5kQ29tbW9uQW5jZXN0b3IoW2VmZmVjdGl2ZVByb2plY3RSb290LCBlbnRyeURpcl0pO1xyXG4gICAgaWYgKCFhbmNlc3Rvcikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgYFVuYWJsZSB0byBkZXRlcm1pbmUgYSBwcm9qZWN0Um9vdCB0aGF0IGNvbnRhaW5zIGJvdGggJHtlZmZlY3RpdmVQcm9qZWN0Um9vdH0gYW5kICR7cmVzb2x2ZWRFbnRyeX0uYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgZWZmZWN0aXZlUHJvamVjdFJvb3QgPSBhbmNlc3RvcjtcclxuICB9XHJcblxyXG4gIGlmICghaXNTdWJQYXRoKGVmZmVjdGl2ZVByb2plY3RSb290LCByZXNvbHZlZEVudHJ5KSkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICBgUmVzb2x2ZWQgbGFtYmRhIGVudHJ5ICR7cmVzb2x2ZWRFbnRyeX0gbXVzdCBiZSBsb2NhdGVkIHdpdGhpbiBwcm9qZWN0Um9vdCAke2VmZmVjdGl2ZVByb2plY3RSb290fS5gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbGV0IHJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aCA9IHByb3BzLmRlcHNMb2NrRmlsZVBhdGhcclxuICAgID8gcmVzb2x2ZVBhdGgocHJvcHMuZGVwc0xvY2tGaWxlUGF0aCwgcmVzb2x2ZWRQcm9qZWN0Um9vdClcclxuICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICBpZiAoIXJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aCkge1xyXG4gICAgY29uc3QgcG90ZW50aWFsTG9ja0ZpbGVzID0gW1xyXG4gICAgICBmaW5kTmVhcmVzdExvY2tGaWxlKGVudHJ5RGlyKSxcclxuICAgICAgZmluZE5lYXJlc3RMb2NrRmlsZShjd2QpLFxyXG4gICAgICBlZmZlY3RpdmVQcm9qZWN0Um9vdCAhPT0gY3dkID8gZmluZE5lYXJlc3RMb2NrRmlsZShlZmZlY3RpdmVQcm9qZWN0Um9vdCkgOiB1bmRlZmluZWQsXHJcbiAgICBdO1xyXG5cclxuICAgIGZvciAoY29uc3QgbG9ja0ZpbGUgb2YgcG90ZW50aWFsTG9ja0ZpbGVzKSB7XHJcbiAgICAgIGlmIChsb2NrRmlsZSAmJiBpc1N1YlBhdGgoZWZmZWN0aXZlUHJvamVjdFJvb3QsIGxvY2tGaWxlKSkge1xyXG4gICAgICAgIHJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aCA9IGxvY2tGaWxlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAoXHJcbiAgICByZXNvbHZlZERlcHNMb2NrRmlsZVBhdGggJiZcclxuICAgICFpc1N1YlBhdGgoZWZmZWN0aXZlUHJvamVjdFJvb3QsIHJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aClcclxuICApIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgYFJlc29sdmVkIGRlcHNMb2NrRmlsZVBhdGggJHtyZXNvbHZlZERlcHNMb2NrRmlsZVBhdGh9IG11c3QgYmUgbG9jYXRlZCB3aXRoaW4gcHJvamVjdFJvb3QgJHtlZmZlY3RpdmVQcm9qZWN0Um9vdH0uYFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGVudmlyb25tZW50VmFycyA9IHByb3BzLmVudnMgPz8ge307XHJcblxyXG4gIGNvbnN0IGxhbWJkYVByb3A6IE5vZGVqc0Z1bmN0aW9uUHJvcHMgPSB7XHJcbiAgICBlbnRyeTogcmVzb2x2ZWRFbnRyeSxcclxuICAgIGZ1bmN0aW9uTmFtZTogYCR7cHJvcHMuYXBwUHJlZml4ID8gYCR7cHJvcHMuYXBwUHJlZml4fS1gIDogXCJcIn0ke1xyXG4gICAgICBwcm9wcy5mdW5jdGlvbk5hbWVcclxuICAgIH1gLFxyXG4gICAgaGFuZGxlcjogXCJtYWluLnRzXCIsXHJcbiAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuVFdPX1dFRUtTLFxyXG4gICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfTEFURVNULFxyXG4gICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcyhcclxuICAgICAgcHJvcHMudGltZW91dEluTWludXRlcyA/IHByb3BzLnRpbWVvdXRJbk1pbnV0ZXMgOiAxXHJcbiAgICApLFxyXG4gICAgbWVtb3J5U2l6ZTogcHJvcHMubWVtb3J5LFxyXG4gICAgZW52aXJvbm1lbnQ6IHtcclxuICAgICAgLi4uZW52aXJvbm1lbnRWYXJzLFxyXG4gICAgfSxcclxuICAgIGJ1bmRsaW5nOiB7XHJcbiAgICAgIG1pbmlmeTogdHJ1ZSxcclxuICAgICAgdGFyZ2V0OiBgZXNuZXh0YCxcclxuICAgICAgc291cmNlTWFwOiB0cnVlLFxyXG4gICAgICBzb3VyY2VNYXBNb2RlOiBTb3VyY2VNYXBNb2RlLkVYVEVSTkFMLFxyXG4gICAgICBlbnZpcm9ubWVudDoge1xyXG4gICAgICAgIC4uLmVudmlyb25tZW50VmFycyxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICByb2xlOiBwcm9wcy5yb2xlLFxyXG4gICAgbGF5ZXJzOiB1bmRlZmluZWQsXHJcbiAgICAuLi4oZWZmZWN0aXZlUHJvamVjdFJvb3QgJiYgeyBwcm9qZWN0Um9vdDogZWZmZWN0aXZlUHJvamVjdFJvb3QgfSksXHJcbiAgICAuLi4ocmVzb2x2ZWREZXBzTG9ja0ZpbGVQYXRoICYmIHtcclxuICAgICAgZGVwc0xvY2tGaWxlUGF0aDogcmVzb2x2ZWREZXBzTG9ja0ZpbGVQYXRoLFxyXG4gICAgfSksXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGxhbWJkYVByb3A7XHJcbn07XHJcblxyXG5jb25zdCBhZGRJbnZva2VQZXJtaXNzaW9uVG9MYW1iZGFGb3JFdmVudHMgPSAobGFtYmRhOiBOb2RlanNGdW5jdGlvbikgPT4ge1xyXG4gIGxhbWJkYS5hZGRQZXJtaXNzaW9uKGBJbnZva2VQZXJtaXNzaW9uLSR7bGFtYmRhLmZ1bmN0aW9uTmFtZX1gLCB7XHJcbiAgICBwcmluY2lwYWw6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKFNFUlZJQ0VfUFJJTkNJUEFMLkVWRU5UUyksXHJcbiAgfSk7XHJcbn07XHJcblxyXG5jb25zdCBjcmVhdGVFdmVudFJ1bGVGb3JMYW1iZGEgPSAoXHJcbiAgc2NvcGU6IENvbnN0cnVjdCxcclxuICBsYW1iZGE6IE5vZGVqc0Z1bmN0aW9uLFxyXG4gIG9wdGlvbnM6IENyb25PcHRpb25zXHJcbikgPT4ge1xyXG4gIGNvbnN0IGV2ZW50UnVsZSA9IG5ldyBSdWxlKFxyXG4gICAgc2NvcGUsXHJcbiAgICBgc2NoZWR1bGVSdWxlLSR7bGFtYmRhPy5ub2RlLmlkIHx8IFwiMDEwXCJ9YCxcclxuICAgIHtcclxuICAgICAgc2NoZWR1bGU6IFNjaGVkdWxlLmNyb24ob3B0aW9ucyksXHJcbiAgICB9XHJcbiAgKTtcclxuXHJcbiAgcmV0dXJuIGV2ZW50UnVsZTtcclxufTtcclxuXHJcbmNvbnN0IGdyYW50QWNjZXNzVG9EeW5hbW9UYWJsZXMgPSAoXHJcbiAgc2NvcGU6IENvbnN0cnVjdCxcclxuICBsYW1iZGE6IE5vZGVqc0Z1bmN0aW9uLFxyXG4gIHRhYmxlTmFtZXM/OiBzdHJpbmdbXVxyXG4pID0+IHtcclxuICBpZiAodGFibGVOYW1lcyAmJiB0YWJsZU5hbWVzLmxlbmd0aCA+IDApIHtcclxuICAgIHRhYmxlTmFtZXMuZm9yRWFjaCgodGFibGVOYW1lKSA9PiB7XHJcbiAgICAgIGNvbnN0IHRhYmxlID0gVGFibGUuZnJvbVRhYmxlTmFtZShzY29wZSwgYCR7dGFibGVOYW1lfS10YWJsZWAsIHRhYmxlTmFtZSk7XHJcblxyXG4gICAgICB0YWJsZS5ncmFudFJlYWRXcml0ZURhdGEobGFtYmRhKTtcclxuICAgIH0pO1xyXG4gIH1cclxufTtcclxuXHJcbmNvbnN0IGFkZExhbWJkYUxheWVycyA9IChcclxuICBzY29wZTogQ29uc3RydWN0LFxyXG4gIGxhbWJkYTogTm9kZWpzRnVuY3Rpb24sXHJcbiAgbGF5ZXJBcm5zPzogc3RyaW5nW11cclxuKSA9PiB7XHJcbiAgaWYgKGxheWVyQXJucyAmJiBsYXllckFybnMubGVuZ3RoID4gMCkge1xyXG4gICAgbGF5ZXJBcm5zLmZvckVhY2goKGFybjogc3RyaW5nLCBpZHg6IG51bWJlcikgPT4ge1xyXG4gICAgICBjb25zdCBsYXllciA9IExheWVyVmVyc2lvbi5mcm9tTGF5ZXJWZXJzaW9uQXJuKFxyXG4gICAgICAgIHNjb3BlLFxyXG4gICAgICAgIGBjb21tb24tbGF5ZXItJHtpZHh9YCxcclxuICAgICAgICBhcm5cclxuICAgICAgKTtcclxuXHJcbiAgICAgIGxhbWJkYS5hZGRMYXllcnMobGF5ZXIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59O1xyXG4iXX0=
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJhc2ljLWxhbWJkYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNvdXJjZXMvbGFtYmRhL2NyZWF0ZS1iYXNpYy1sYW1iZGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBQ3ZDLGlEQUF1RDtBQUN2RCx1REFBK0Q7QUFDL0QscUVBSXVDO0FBQ3ZDLG1EQUFxRDtBQUNyRCx5QkFBMEI7QUFDMUIsNkJBQThCO0FBRzlCLHFHQUFvRjtBQUNwRix1REFBcUU7QUFDckUsdUVBQWdFO0FBQ2hFLDJEQUFpRDtBQUVqRCxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVksRUFBRSxNQUFjLEVBQVcsRUFBRTtJQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLE9BQU8sUUFBUSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUN2RixDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBRTdFLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxXQUFvQixFQUFzQixFQUFFO0lBQ3RFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxD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cnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xyXG5pbXBvcnQgeyBTZXJ2aWNlUHJpbmNpcGFsIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcclxuaW1wb3J0IHsgTGF5ZXJWZXJzaW9uLCBSdW50aW1lIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcclxuaW1wb3J0IHtcclxuICBOb2RlanNGdW5jdGlvbixcclxuICBOb2RlanNGdW5jdGlvblByb3BzLFxyXG4gIFNvdXJjZU1hcE1vZGUsXHJcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XHJcbmltcG9ydCB7IFJldGVudGlvbkRheXMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIjtcclxuaW1wb3J0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5pbXBvcnQgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xyXG5pbXBvcnQgeyBUaW1lckpvYlByb3BzIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvdGltZXItam9iXCI7XHJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XHJcbmltcG9ydCB7IFNFUlZJQ0VfUFJJTkNJUEFMIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9hd3Mtc2VydmljZS1wcmluY2lwYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IENyb25PcHRpb25zLCBSdWxlLCBTY2hlZHVsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCI7XHJcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0c1wiO1xyXG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGJcIjtcclxuXHJcbmNvbnN0IGlzU3ViUGF0aCA9IChyb290OiBzdHJpbmcsIHRhcmdldDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XHJcbiAgY29uc3QgcmVsYXRpdmUgPSBwYXRoLnJlbGF0aXZlKHBhdGgucmVzb2x2ZShyb290KSwgcGF0aC5yZXNvbHZlKHRhcmdldCkpO1xyXG4gIHJldHVybiByZWxhdGl2ZSA9PT0gXCJcIiB8fCAoIXJlbGF0aXZlLnN0YXJ0c1dpdGgoXCIuLlwiKSAmJiAhcGF0aC5pc0Fic29sdXRlKHJlbGF0aXZlKSk7XHJcbn07XHJcblxyXG5jb25zdCBMT0NLX0ZJTEVfTkFNRVMgPSBbXCJwbnBtLWxvY2sueWFtbFwiLCBcInlhcm4ubG9ja1wiLCBcInBhY2thZ2UtbG9jay5qc29uXCJdO1xyXG5cclxuY29uc3QgcmVzb2x2ZVByb2plY3RSb290ID0gKHByb2plY3RSb290Pzogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcclxuICBpZiAoIXByb2plY3RSb290KSB7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHBhdGguaXNBYnNvbHV0ZShwcm9qZWN0Um9vdClcclxuICAgID8gcGF0aC5yZXNvbHZlKHByb2plY3RSb290KVxyXG4gICAgOiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcHJvamVjdFJvb3QpO1xyXG59O1xyXG5cclxuY29uc3QgZmluZE5lYXJlc3RMb2NrRmlsZSA9IChzdGFydERpcjogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcclxuICBsZXQgY3VycmVudCA9IHBhdGgucmVzb2x2ZShzdGFydERpcik7XHJcbiAgY29uc3QgeyByb290IH0gPSBwYXRoLnBhcnNlKGN1cnJlbnQpO1xyXG5cclxuICB3aGlsZSAodHJ1ZSkge1xyXG4gICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgTE9DS19GSUxFX05BTUVTKSB7XHJcbiAgICAgIGNvbnN0IHJlc29sdmVkQ2FuZGlkYXRlID0gcGF0aC5qb2luKGN1cnJlbnQsIGNhbmRpZGF0ZSk7XHJcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKHJlc29sdmVkQ2FuZGlkYXRlKSAmJiBmcy5zdGF0U3luYyhyZXNvbHZlZENhbmRpZGF0ZSkuaXNGaWxlKCkpIHtcclxuICAgICAgICByZXR1cm4gcmVzb2x2ZWRDYW5kaWRhdGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoY3VycmVudCA9PT0gcm9vdCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGN1cnJlbnQgPSBwYXRoLmRpcm5hbWUoY3VycmVudCk7XHJcbiAgfVxyXG59O1xyXG5cclxuY29uc3QgZmluZENvbW1vbkFuY2VzdG9yID0gKHBhdGhzOiBzdHJpbmdbXSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XHJcbiAgaWYgKHBhdGhzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGxldCBhbmNlc3RvciA9IHBhdGgucmVzb2x2ZShwYXRoc1swXSk7XHJcblxyXG4gIGZvciAoY29uc3QgY3VycmVudFBhdGggb2YgcGF0aHMuc2xpY2UoMSkpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IHBhdGgucmVzb2x2ZShjdXJyZW50UGF0aCk7XHJcbiAgICBjb25zdCBhbmNlc3RvclJvb3QgPSBwYXRoLnBhcnNlKGFuY2VzdG9yKS5yb290O1xyXG5cclxuICAgIGlmIChwYXRoLnBhcnNlKGFuY2VzdG9yKS5yb290LnRvTG93ZXJDYXNlKCkgIT09IHBhdGgucGFyc2UodGFyZ2V0KS5yb290LnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY2FuZGlkYXRlID0gYW5jZXN0b3I7XHJcbiAgICB3aGlsZSAoIWlzU3ViUGF0aChjYW5kaWRhdGUsIHRhcmdldCkpIHtcclxuICAgICAgaWYgKGNhbmRpZGF0ZSA9PT0gYW5jZXN0b3JSb290KSB7XHJcbiAgICAgICAgY2FuZGlkYXRlID0gYW5jZXN0b3JSb290O1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhbmRpZGF0ZSA9IHBhdGguZGlybmFtZShjYW5kaWRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGFuY2VzdG9yID0gY2FuZGlkYXRlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGFuY2VzdG9yO1xyXG59O1xyXG5cclxuY29uc3QgcmVzb2x2ZVBhdGggPSAoaW5wdXRQYXRoOiBzdHJpbmcsIHByb2plY3RSb290Pzogc3RyaW5nKTogc3RyaW5nID0+IHtcclxuICBpZiAocGF0aC5pc0Fic29sdXRlKGlucHV0UGF0aCkpIHtcclxuICAgIHJldHVybiBwYXRoLnJlc29sdmUoaW5wdXRQYXRoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGNhbmRpZGF0ZXM6IHN0cmluZ1tdID0gW107XHJcbiAgaWYgKHByb2plY3RSb290KSB7XHJcbiAgICBjYW5kaWRhdGVzLnB1c2gocGF0aC5yZXNvbHZlKHByb2plY3RSb290LCBpbnB1dFBhdGgpKTtcclxuICB9XHJcbiAgY2FuZGlkYXRlcy5wdXNoKHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBpbnB1dFBhdGgpKTtcclxuXHJcbiAgaWYgKHByb2plY3RSb290KSB7XHJcbiAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzKSB7XHJcbiAgICAgIGlmIChpc1N1YlBhdGgocHJvamVjdFJvb3QsIGNhbmRpZGF0ZSkpIHtcclxuICAgICAgICByZXR1cm4gY2FuZGlkYXRlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gY2FuZGlkYXRlc1tjYW5kaWRhdGVzLmxlbmd0aCAtIDFdO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUJhc2ljTGFtYmRhVGltZXJKb2IgPSAoXHJcbiAgc2NvcGU6IENvbnN0cnVjdCxcclxuICBwcm9wczogVGltZXJKb2JQcm9wc1xyXG4pOiBOb2RlanNGdW5jdGlvbiA9PiB7XHJcbiAgY29uc3QgbGFtYmRhUHJvcHMgPSBjcmVhdGVCYXNpY0xhbWJkYVByb3BzKHByb3BzKTtcclxuXHJcbiAgbGV0IGxhbWJkYUZ1bmN0aW9uID0gbmV3IE5vZGVqc0Z1bmN0aW9uKFxyXG4gICAgc2NvcGUsXHJcbiAgICBgJHtwcm9wcy5hcHBQcmVmaXh9JHtwcm9wcy5mdW5jdGlvbk5hbWV9YCxcclxuICAgIGxhbWJkYVByb3BzXHJcbiAgKTtcclxuXHJcbiAgYWRkSW52b2tlUGVybWlzc2lvblRvTGFtYmRhRm9yRXZlbnRzKGxhbWJkYUZ1bmN0aW9uKTtcclxuXHJcbiAgY29uc3QgZXZlbnRSdWxlID0gY3JlYXRlRXZlbnRSdWxlRm9yTGFtYmRhKFxyXG4gICAgc2NvcGUsXHJcbiAgICBsYW1iZGFGdW5jdGlvbixcclxuICAgIHByb3BzLmNyb25PcHRpb25zXHJcbiAgKTtcclxuXHJcbiAgZXZlbnRSdWxlLmFkZFRhcmdldChuZXcgTGFtYmRhRnVuY3Rpb24obGFtYmRhRnVuY3Rpb24pKTtcclxuXHJcbiAgZ3JhbnRBY2Nlc3NUb0R5bmFtb1RhYmxlcyhzY29wZSwgbGFtYmRhRnVuY3Rpb24sIHByb3BzLmR5bmFtb1RhYmxlTmFtZXMpO1xyXG5cclxuICBhZGRMYW1iZGFMYXllcnMoc2NvcGUsIGxhbWJkYUZ1bmN0aW9uLCBwcm9wcy5sYW1iZGFMYXllckFybik7XHJcblxyXG4gIHJldHVybiBsYW1iZGFGdW5jdGlvbjtcclxufTtcclxuXHJcbmNvbnN0IGNyZWF0ZUJhc2ljTGFtYmRhUHJvcHMgPSAocHJvcHM6IFRpbWVySm9iUHJvcHMpOiBOb2RlanNGdW5jdGlvblByb3BzID0+IHtcclxuICBjb25zdCByZXNvbHZlZFByb2plY3RSb290ID0gcmVzb2x2ZVByb2plY3RSb290KHByb3BzLnByb2plY3RSb290KTtcclxuICBjb25zdCBkZWZhdWx0UmVsYXRpdmVFbnRyeSA9IHBhdGguam9pbihcclxuICAgIFwicmVzb3VyY2VzXCIsXHJcbiAgICBcImxhbWJkYXNcIixcclxuICAgIFwidGltZXItam9ic1wiLFxyXG4gICAgcHJvcHMuZnVuY3Rpb25OYW1lLFxyXG4gICAgXCJtYWluLm10c1wiXHJcbiAgKTtcclxuICBjb25zdCBlbnRyeVBhdGggPSBwcm9wcy5jb2RlUGF0aCA/PyBkZWZhdWx0UmVsYXRpdmVFbnRyeTtcclxuICBjb25zdCByZXNvbHZlZEVudHJ5ID0gcmVzb2x2ZVBhdGgoZW50cnlQYXRoLCByZXNvbHZlZFByb2plY3RSb290KTtcclxuXHJcbiAgY29uc3QgY3dkID0gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCkpO1xyXG4gIGNvbnN0IGVudHJ5RGlyID0gcGF0aC5kaXJuYW1lKHJlc29sdmVkRW50cnkpO1xyXG5cclxuICBsZXQgZWZmZWN0aXZlUHJvamVjdFJvb3QgPSByZXNvbHZlZFByb2plY3RSb290ID8/IGN3ZDtcclxuICBpZiAoIWlzU3ViUGF0aChlZmZlY3RpdmVQcm9qZWN0Um9vdCwgcmVzb2x2ZWRFbnRyeSkpIHtcclxuICAgIGNvbnN0IGFuY2VzdG9yID0gZmluZENvbW1vbkFuY2VzdG9yKFtlZmZlY3RpdmVQcm9qZWN0Um9vdCwgZW50cnlEaXJdKTtcclxuICAgIGlmICghYW5jZXN0b3IpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBVbmFibGUgdG8gZGV0ZXJtaW5lIGEgcHJvamVjdFJvb3QgdGhhdCBjb250YWlucyBib3RoICR7ZWZmZWN0aXZlUHJvamVjdFJvb3R9IGFuZCAke3Jlc29sdmVkRW50cnl9LmBcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGVmZmVjdGl2ZVByb2plY3RSb290ID0gYW5jZXN0b3I7XHJcbiAgfVxyXG5cclxuICBpZiAoIWlzU3ViUGF0aChlZmZlY3RpdmVQcm9qZWN0Um9vdCwgcmVzb2x2ZWRFbnRyeSkpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgYFJlc29sdmVkIGxhbWJkYSBlbnRyeSAke3Jlc29sdmVkRW50cnl9IG11c3QgYmUgbG9jYXRlZCB3aXRoaW4gcHJvamVjdFJvb3QgJHtlZmZlY3RpdmVQcm9qZWN0Um9vdH0uYFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxldCByZXNvbHZlZERlcHNMb2NrRmlsZVBhdGggPSBwcm9wcy5kZXBzTG9ja0ZpbGVQYXRoXHJcbiAgICA/IHJlc29sdmVQYXRoKHByb3BzLmRlcHNMb2NrRmlsZVBhdGgsIHJlc29sdmVkUHJvamVjdFJvb3QpXHJcbiAgICA6IHVuZGVmaW5lZDtcclxuXHJcbiAgaWYgKCFyZXNvbHZlZERlcHNMb2NrRmlsZVBhdGgpIHtcclxuICAgIGNvbnN0IHBvdGVudGlhbExvY2tGaWxlcyA9IFtcclxuICAgICAgZmluZE5lYXJlc3RMb2NrRmlsZShlbnRyeURpciksXHJcbiAgICAgIGZpbmROZWFyZXN0TG9ja0ZpbGUoY3dkKSxcclxuICAgICAgZWZmZWN0aXZlUHJvamVjdFJvb3QgIT09IGN3ZCA/IGZpbmROZWFyZXN0TG9ja0ZpbGUoZWZmZWN0aXZlUHJvamVjdFJvb3QpIDogdW5kZWZpbmVkLFxyXG4gICAgXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGxvY2tGaWxlIG9mIHBvdGVudGlhbExvY2tGaWxlcykge1xyXG4gICAgICBpZiAobG9ja0ZpbGUgJiYgaXNTdWJQYXRoKGVmZmVjdGl2ZVByb2plY3RSb290LCBsb2NrRmlsZSkpIHtcclxuICAgICAgICByZXNvbHZlZERlcHNMb2NrRmlsZVBhdGggPSBsb2NrRmlsZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaWYgKFxyXG4gICAgcmVzb2x2ZWREZXBzTG9ja0ZpbGVQYXRoICYmXHJcbiAgICAhaXNTdWJQYXRoKGVmZmVjdGl2ZVByb2plY3RSb290LCByZXNvbHZlZERlcHNMb2NrRmlsZVBhdGgpXHJcbiAgKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgIGBSZXNvbHZlZCBkZXBzTG9ja0ZpbGVQYXRoICR7cmVzb2x2ZWREZXBzTG9ja0ZpbGVQYXRofSBtdXN0IGJlIGxvY2F0ZWQgd2l0aGluIHByb2plY3RSb290ICR7ZWZmZWN0aXZlUHJvamVjdFJvb3R9LmBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBlbnZpcm9ubWVudFZhcnMgPSBwcm9wcy5lbnZzID8/IHt9O1xyXG5cclxuICBjb25zdCBsYW1iZGFQcm9wOiBOb2RlanNGdW5jdGlvblByb3BzID0ge1xyXG4gICAgZW50cnk6IHJlc29sdmVkRW50cnksXHJcbiAgICBmdW5jdGlvbk5hbWU6IGAke3Byb3BzLmFwcFByZWZpeCA/IGAke3Byb3BzLmFwcFByZWZpeH0tYCA6IFwiXCJ9JHtcclxuICAgICAgcHJvcHMuZnVuY3Rpb25OYW1lXHJcbiAgICB9YCxcclxuICAgIGhhbmRsZXI6IFwibWFpbi50c1wiLFxyXG4gICAgbG9nUmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLlRXT19XRUVLUyxcclxuICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTX0xBVEVTVCxcclxuICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoXHJcbiAgICAgIHByb3BzLnRpbWVvdXRJbk1pbnV0ZXMgPyBwcm9wcy50aW1lb3V0SW5NaW51dGVzIDogMVxyXG4gICAgKSxcclxuICAgIG1lbW9yeVNpemU6IHByb3BzLm1lbW9yeSxcclxuICAgIGVudmlyb25tZW50OiB7XHJcbiAgICAgIC4uLmVudmlyb25tZW50VmFycyxcclxuICAgIH0sXHJcbiAgICBidW5kbGluZzoge1xyXG4gICAgICBtaW5pZnk6IHRydWUsXHJcbiAgICAgIHRhcmdldDogYGVzbmV4dGAsXHJcbiAgICAgIHNvdXJjZU1hcDogdHJ1ZSxcclxuICAgICAgc291cmNlTWFwTW9kZTogU291cmNlTWFwTW9kZS5FWFRFUk5BTCxcclxuICAgICAgZW52aXJvbm1lbnQ6IHtcclxuICAgICAgICAuLi5lbnZpcm9ubWVudFZhcnMsXHJcbiAgICAgIH0sXHJcbiAgICB9LFxyXG4gICAgcm9sZTogcHJvcHMucm9sZSxcclxuICAgIGxheWVyczogdW5kZWZpbmVkLFxyXG4gICAgLi4uKGVmZmVjdGl2ZVByb2plY3RSb290ICYmIHsgcHJvamVjdFJvb3Q6IGVmZmVjdGl2ZVByb2plY3RSb290IH0pLFxyXG4gICAgLi4uKHJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aCAmJiB7XHJcbiAgICAgIGRlcHNMb2NrRmlsZVBhdGg6IHJlc29sdmVkRGVwc0xvY2tGaWxlUGF0aCxcclxuICAgIH0pLFxyXG4gIH07XHJcblxyXG4gIHJldHVybiBsYW1iZGFQcm9wO1xyXG59O1xyXG5cclxuY29uc3QgYWRkSW52b2tlUGVybWlzc2lvblRvTGFtYmRhRm9yRXZlbnRzID0gKGxhbWJkYTogTm9kZWpzRnVuY3Rpb24pID0+IHtcclxuICBsYW1iZGEuYWRkUGVybWlzc2lvbihgSW52b2tlUGVybWlzc2lvbi0ke2xhbWJkYS5mdW5jdGlvbk5hbWV9YCwge1xyXG4gICAgcHJpbmNpcGFsOiBuZXcgU2VydmljZVByaW5jaXBhbChTRVJWSUNFX1BSSU5DSVBBTC5FVkVOVFMpLFxyXG4gIH0pO1xyXG59O1xyXG5cclxuY29uc3QgY3JlYXRlRXZlbnRSdWxlRm9yTGFtYmRhID0gKFxyXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXHJcbiAgbGFtYmRhOiBOb2RlanNGdW5jdGlvbixcclxuICBvcHRpb25zOiBDcm9uT3B0aW9uc1xyXG4pID0+IHtcclxuICBjb25zdCBldmVudFJ1bGUgPSBuZXcgUnVsZShcclxuICAgIHNjb3BlLFxyXG4gICAgYHNjaGVkdWxlUnVsZS0ke2xhbWJkYT8ubm9kZS5pZCB8fCBcIjAxMFwifWAsXHJcbiAgICB7XHJcbiAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5jcm9uKG9wdGlvbnMpLFxyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIHJldHVybiBldmVudFJ1bGU7XHJcbn07XHJcblxyXG5jb25zdCBncmFudEFjY2Vzc1RvRHluYW1vVGFibGVzID0gKFxyXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXHJcbiAgbGFtYmRhOiBOb2RlanNGdW5jdGlvbixcclxuICB0YWJsZU5hbWVzPzogc3RyaW5nW11cclxuKSA9PiB7XHJcbiAgaWYgKHRhYmxlTmFtZXMgJiYgdGFibGVOYW1lcy5sZW5ndGggPiAwKSB7XHJcbiAgICB0YWJsZU5hbWVzLmZvckVhY2goKHRhYmxlTmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCB0YWJsZSA9IFRhYmxlLmZyb21UYWJsZU5hbWUoc2NvcGUsIGAke3RhYmxlTmFtZX0tdGFibGVgLCB0YWJsZU5hbWUpO1xyXG5cclxuICAgICAgdGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKGxhbWJkYSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn07XHJcblxyXG5jb25zdCBhZGRMYW1iZGFMYXllcnMgPSAoXHJcbiAgc2NvcGU6IENvbnN0cnVjdCxcclxuICBsYW1iZGE6IE5vZGVqc0Z1bmN0aW9uLFxyXG4gIGxheWVyQXJucz86IHN0cmluZ1tdXHJcbikgPT4ge1xyXG4gIGlmIChsYXllckFybnMgJiYgbGF5ZXJBcm5zLmxlbmd0aCA+IDApIHtcclxuICAgIGxheWVyQXJucy5mb3JFYWNoKChhcm46IHN0cmluZywgaWR4OiBudW1iZXIpID0+IHtcclxuICAgICAgY29uc3QgbGF5ZXIgPSBMYXllclZlcnNpb24uZnJvbUxheWVyVmVyc2lvbkFybihcclxuICAgICAgICBzY29wZSxcclxuICAgICAgICBgY29tbW9uLWxheWVyLSR7aWR4fWAsXHJcbiAgICAgICAgYXJuXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBsYW1iZGEuYWRkTGF5ZXJzKGxheWVyKTtcclxuICAgIH0pO1xyXG4gIH1cclxufTtcclxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sylvesterllc/aws-constructs",
3
- "version": "1.1.26",
3
+ "version": "1.1.27",
4
4
  "description": "AWS Constructs",
5
5
  "main": "dist/index.js",
6
6
  "keywords": [
@@ -85,14 +85,21 @@ const resolvePath = (inputPath: string, projectRoot?: string): string => {
85
85
  return path.resolve(inputPath);
86
86
  }
87
87
 
88
+ const candidates: string[] = [];
88
89
  if (projectRoot) {
89
- const candidateFromProjectRoot = path.resolve(projectRoot, inputPath);
90
- if (isSubPath(projectRoot, candidateFromProjectRoot)) {
91
- return candidateFromProjectRoot;
90
+ candidates.push(path.resolve(projectRoot, inputPath));
91
+ }
92
+ candidates.push(path.resolve(process.cwd(), inputPath));
93
+
94
+ if (projectRoot) {
95
+ for (const candidate of candidates) {
96
+ if (isSubPath(projectRoot, candidate)) {
97
+ return candidate;
98
+ }
92
99
  }
93
100
  }
94
101
 
95
- return path.resolve(process.cwd(), inputPath);
102
+ return candidates[candidates.length - 1];
96
103
  };
97
104
 
98
105
  export const createBasicLambda = (
@@ -88,14 +88,21 @@ const resolvePath = (inputPath: string, projectRoot?: string): string => {
88
88
  return path.resolve(inputPath);
89
89
  }
90
90
 
91
+ const candidates: string[] = [];
91
92
  if (projectRoot) {
92
- const candidateFromProjectRoot = path.resolve(projectRoot, inputPath);
93
- if (isSubPath(projectRoot, candidateFromProjectRoot)) {
94
- return candidateFromProjectRoot;
93
+ candidates.push(path.resolve(projectRoot, inputPath));
94
+ }
95
+ candidates.push(path.resolve(process.cwd(), inputPath));
96
+
97
+ if (projectRoot) {
98
+ for (const candidate of candidates) {
99
+ if (isSubPath(projectRoot, candidate)) {
100
+ return candidate;
101
+ }
95
102
  }
96
103
  }
97
104
 
98
- return path.resolve(process.cwd(), inputPath);
105
+ return candidates[candidates.length - 1];
99
106
  };
100
107
 
101
108
  export const createBasicLambdaTimerJob = (