@macedon-technologies/batman 1.19.2 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -1247,6 +1247,6 @@
1247
1247
  "symbolId": "src/WorkflowAutoDiscover:WorkflowAutoDiscover"
1248
1248
  }
1249
1249
  },
1250
- "version": "1.19.2",
1251
- "fingerprint": "9zeuzKlqxaRRnYtwjEbEKmlvUy68TefRLNILcqskTaY="
1250
+ "version": "1.20.0",
1251
+ "fingerprint": "2pTXzMq6nwDmeTLhYeOnNJOH27jPd1DRTcNjf9V1WLg="
1252
1252
  }
@@ -99,6 +99,7 @@ export class Api extends Construct {
99
99
  this.lambdaFunction = new NodejsFunction(this, 'Function', {
100
100
  runtime: Runtime.NODEJS_24_X,
101
101
  timeout: Duration.seconds(30),
102
+ memorySize: 512,
102
103
  entry: join(__dirname, 'handler/Api.Function.ts'),
103
104
  vpc: this.props.vpc,
104
105
  environment: {
@@ -178,4 +179,4 @@ export class Api extends Construct {
178
179
  }
179
180
  }
180
181
  exports.ApiConstructFile = ApiConstructFile;
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpQ29uc3RydWN0RmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9BcGlDb25zdHJ1Y3RGaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFvQztBQUd2QixRQUFBLGlDQUFpQyxHQUFHLGtDQUFrQyxDQUFDO0FBV3BGLE1BQWEsZ0JBQWlCLFNBQVEsbUJBQVU7SUFDOUMsWUFBWSxPQUE0QixFQUFFLFVBQW1DLEVBQUU7UUFDN0UsTUFBTSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsdUJBQXVCLElBQUkseUNBQWlDLENBQUM7UUFDckcsS0FBSyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRTtZQUN0QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzRCQTBFWSx1QkFBdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNEZsRDtTQUNJLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTdLRCw0Q0E2S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYW1wbGVGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0FVVEhPUklaRVJfT0JKRUNUX1ZFUlNJT04gPSAnc2thT290ZnBLOGw4QmJRZ29OeVRZTzNNWjVhQS4zeGwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaUNvbnN0cnVjdEZpbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBTMyBvYmplY3QgdmVyc2lvbiBvZiB0aGUgY2xlcmstYXV0aG9yaXplciBMYW1iZGEgZGVwbG95bWVudCBwYWNrYWdlIHRvIHBpbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3NrYU9vdGZwSzhsOEJiUWdvTnlUWU8zTVo1YUEuM3hsJ1xuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplck9iamVjdFZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBBcGlDb25zdHJ1Y3RGaWxlIGV4dGVuZHMgU2FtcGxlRmlsZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsIG9wdGlvbnM6IEFwaUNvbnN0cnVjdEZpbGVPcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBhdXRob3JpemVyT2JqZWN0VmVyc2lvbiA9IG9wdGlvbnMuYXV0aG9yaXplck9iamVjdFZlcnNpb24gPz8gREVGQVVMVF9BVVRIT1JJWkVSX09CSkVDVF9WRVJTSU9OO1xuICAgIHN1cGVyKHByb2plY3QsICdzcmMvY29uc3RydWN0cy9BcGkudHMnLCB7XG4gICAgICBjb250ZW50czogYGltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IFJ1c3RGdW5jdGlvbiB9IGZyb20gJ0BjZGtsYWJzL2F3cy1sYW1iZGEtcnVzdCc7XG5pbXBvcnQgeyBTZWNyZXQgfSBmcm9tICdAbWF0dGhld2JvbmlnL3NlY3JldCc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBFbmRwb2ludFR5cGUsIExhbWJkYUludGVncmF0aW9uLCBSZXN0QXBpLCBUb2tlbkF1dGhvcml6ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheSc7XG5pbXBvcnQgeyBJVnBjIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBBbnlQcmluY2lwYWwsIEVmZmVjdCwgUG9saWN5RG9jdW1lbnQsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQXJjaGl0ZWN0dXJlLCBTM0NvZGVWMiwgRnVuY3Rpb24gYXMgTGFtYmRhRnVuY3Rpb24sIFJ1bnRpbWUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ub2RlanMnO1xuaW1wb3J0IHsgQnVja2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcblxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBOOE5fRU5EUE9JTlQsIE44Tl9KV1RfS0VZIH0gZnJvbSAnLi9oYW5kbGVyL0FwaS5GdW5jdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpUHJvcHMge1xuICByZWFkb25seSBjbG91ZEZyb250T3JpZ2luUmVxdWVzdFBvbGljeUlkPzogc3RyaW5nO1xuICByZWFkb25seSB2cGM6IElWcGM7XG4gIHJlYWRvbmx5IGNsZXJrSndrc1VybDogc3RyaW5nO1xuICByZWFkb25seSBuOG5FbmRwb2ludDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlc3RBcGk6IFJlc3RBcGk7XG4gIHB1YmxpYyBsYW1iZGFGdW5jdGlvbjogTGFtYmRhRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSBhdXRob3JpemVyRnVuY3Rpb246IFJ1c3RGdW5jdGlvbjtcbiAgcHJpdmF0ZSBuOG5Kd3RLZXlTZWNyZXQ6IFNlY3JldDtcbiAgcHJpdmF0ZSBhdXRob3JpemVyOiBUb2tlbkF1dGhvcml6ZXI7XG4gIHByaXZhdGUgY2xlcmtBdXRoU2VjcmV0OiBTZWNyZXQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJpdmF0ZSBwcm9wczogQXBpUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG5cbiAgICB0aGlzLmNyZWF0ZU44Tkp3dFNlY3JldCgpO1xuICAgIGlmICghdGhpcy5uOG5Kd3RLZXlTZWNyZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBuOG4gSldUIGtleSBzZWNyZXQnKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUNsZXJrQXV0aFNlY3JldCgpO1xuICAgIGlmICghdGhpcy5jbGVya0F1dGhTZWNyZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBDbGVyayBhdXRoIHNlY3JldCcpO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlTGFtYmRhRnVuY3Rpb24oKTtcbiAgICBpZiAoIXRoaXMubGFtYmRhRnVuY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBsYW1iZGEgZnVuY3Rpb24nKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUF1dGhvcml6ZXJGdW5jdGlvbigpO1xuICAgIGlmICghdGhpcy5hdXRob3JpemVyRnVuY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBhdXRob3JpemVyIGZ1bmN0aW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jcmVhdGVSZXN0QXBpKCk7XG4gICAgaWYgKCF0aGlzLnJlc3RBcGkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBSRVNUIEFQSScpO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlQXV0aG9yaXplcigpO1xuICAgIGlmICghdGhpcy5hdXRob3JpemVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgYXV0aG9yaXplcicpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0dXBBcGlJbnRlZ3JhdGlvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUF1dGhvcml6ZXJGdW5jdGlvbigpIHtcbiAgICB0aGlzLmF1dGhvcml6ZXJGdW5jdGlvbiA9IG5ldyBMYW1iZGFGdW5jdGlvbih0aGlzLCAnQ2xlcmtBdXRob3JpemVySGFuZGxlcicsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuUFJPVklERURfQUwyMDIzLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICBjb2RlOiBTM0NvZGVWMi5mcm9tQnVja2V0VjIoXG4gICAgICAgIEJ1Y2tldC5mcm9tQnVja2V0TmFtZSh0aGlzLCAnTWFjZWRvblBsYXRmb3JtQnVja2V0JywgJ21hY2Vkb24tcGxhdGZvcm0tY29tbW9uLTAxNTk1NTgxNzI2MycpLFxuICAgICAgICAnbGFtYmRhL2NsZXJrLWF1dGhvcml6ZXItYXJtNjQtbGF0ZXN0LnppcCcsXG4gICAgICAgIHsgb2JqZWN0VmVyc2lvbjogJyR7YXV0aG9yaXplck9iamVjdFZlcnNpb259JyB9LFxuICAgICAgKSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIENMRVJLX0pXS1NfVVJMOiB0aGlzLnByb3BzLmNsZXJrSndrc1VybCxcbiAgICAgIH0sXG4gICAgICBoYW5kbGVyOiAnaXRzcnVzdGJhYnknLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU44Tkp3dFNlY3JldCgpIHtcbiAgICB0aGlzLm44bkp3dEtleVNlY3JldCA9IG5ldyBTZWNyZXQodGhpcywgJ044bkp3dEtleVNlY3JldCcsIHt9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVMYW1iZGFGdW5jdGlvbigpIHtcbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gbmV3IE5vZGVqc0Z1bmN0aW9uKHRoaXMsICdGdW5jdGlvbicsIHtcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzI0X1gsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGVudHJ5OiBqb2luKF9fZGlybmFtZSwgJ2hhbmRsZXIvQXBpLkZ1bmN0aW9uLnRzJyksXG4gICAgICB2cGM6IHRoaXMucHJvcHMudnBjLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgW044Tl9KV1RfS0VZXTogdGhpcy5uOG5Kd3RLZXlTZWNyZXQuc2VjcmV0TmFtZSxcbiAgICAgICAgW044Tl9FTkRQT0lOVF06IHRoaXMucHJvcHMubjhuRW5kcG9pbnQsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMubjhuSnd0S2V5U2VjcmV0LmdyYW50UmVhZCh0aGlzLmxhbWJkYUZ1bmN0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVSZXN0QXBpKCkge1xuICAgIHRoaXMucmVzdEFwaSA9IG5ldyBSZXN0QXBpKHRoaXMsICdSZXN0QXBpJywge1xuICAgICAgcmVzdEFwaU5hbWU6ICdtdnAtdWktYXBpJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQVBJIGZvciBNVlAgVUkgYXBwbGljYXRpb24nLFxuICAgICAgZW5kcG9pbnRUeXBlczogW0VuZHBvaW50VHlwZS5SRUdJT05BTF0sXG4gICAgICBwb2xpY3k6IG5ldyBQb2xpY3lEb2N1bWVudCh7XG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkRFTlksXG4gICAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IEFueVByaW5jaXBhbCgpXSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnZXhlY3V0ZS1hcGk6SW52b2tlJ10sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICBTdHJpbmdOb3RFcXVhbHM6IHtcbiAgICAgICAgICAgICAgICAnYXdzOnVzZXJhZ2VudCc6ICdBbWF6b24gQ2xvdWRGcm9udCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgICBwcmluY2lwYWxzOiBbbmV3IEFueVByaW5jaXBhbCgpXSxcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnZXhlY3V0ZS1hcGk6SW52b2tlJ10sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICAgICAnYXdzOnVzZXJhZ2VudCc6ICdBbWF6b24gQ2xvdWRGcm9udCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQXV0aG9yaXplcigpIHtcbiAgICB0aGlzLmF1dGhvcml6ZXIgPSBuZXcgVG9rZW5BdXRob3JpemVyKHRoaXMsICdDbGVya0F1dGhvcml6ZXInLCB7XG4gICAgICBoYW5kbGVyOiB0aGlzLmF1dGhvcml6ZXJGdW5jdGlvbixcbiAgICAgIGlkZW50aXR5U291cmNlOiAnbWV0aG9kLnJlcXVlc3QuaGVhZGVyLkF1dGhvcml6YXRpb24nLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwQXBpSW50ZWdyYXRpb24oKSB7XG4gICAgY29uc3QgaW50ZWdyYXRpb24gPSBuZXcgTGFtYmRhSW50ZWdyYXRpb24odGhpcy5sYW1iZGFGdW5jdGlvbik7XG4gICAgdGhpcy5yZXN0QXBpLnJvb3QuYWRkUHJveHkoe1xuICAgICAgZGVmYXVsdEludGVncmF0aW9uOiBpbnRlZ3JhdGlvbixcbiAgICAgIGFueU1ldGhvZDogdHJ1ZSxcbiAgICAgIGRlZmF1bHRNZXRob2RPcHRpb25zOiB7XG4gICAgICAgIGF1dGhvcml6ZXI6IHRoaXMuYXV0aG9yaXplcixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNsZXJrQXV0aFNlY3JldCgpIHtcbiAgICB0aGlzLmNsZXJrQXV0aFNlY3JldCA9IG5ldyBTZWNyZXQodGhpcywgJ0NsZXJrQXV0aFNlY3JldCcsIHtcbiAgICAgIGdlbmVyYXRlU2VjcmV0U3RyaW5nOiB7XG4gICAgICAgIHNlY3JldFN0cmluZ1RlbXBsYXRlOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgY2xlcmtQdWJsaXNoYWJsZUtleTogJycsXG4gICAgICAgICAgY2xlcmtKd2tzVXJsOiAnJyxcbiAgICAgICAgfSksXG4gICAgICAgIGdlbmVyYXRlU3RyaW5nS2V5OiAnY2xlcmtQdWJsaXNoYWJsZUtleScsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5gLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpQ29uc3RydWN0RmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9BcGlDb25zdHJ1Y3RGaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFvQztBQUd2QixRQUFBLGlDQUFpQyxHQUFHLGtDQUFrQyxDQUFDO0FBV3BGLE1BQWEsZ0JBQWlCLFNBQVEsbUJBQVU7SUFDOUMsWUFBWSxPQUE0QixFQUFFLFVBQW1DLEVBQUU7UUFDN0UsTUFBTSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsdUJBQXVCLElBQUkseUNBQWlDLENBQUM7UUFDckcsS0FBSyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRTtZQUN0QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzRCQTBFWSx1QkFBdUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZGbEQ7U0FDSSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE5S0QsNENBOEtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FtcGxlRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BVVRIT1JJWkVSX09CSkVDVF9WRVJTSU9OID0gJ3NrYU9vdGZwSzhsOEJiUWdvTnlUWU8zTVo1YUEuM3hsJztcblxuZXhwb3J0IGludGVyZmFjZSBBcGlDb25zdHJ1Y3RGaWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgUzMgb2JqZWN0IHZlcnNpb24gb2YgdGhlIGNsZXJrLWF1dGhvcml6ZXIgTGFtYmRhIGRlcGxveW1lbnQgcGFja2FnZSB0byBwaW4uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdza2FPb3RmcEs4bDhCYlFnb055VFlPM01aNWFBLjN4bCdcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJPYmplY3RWZXJzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQXBpQ29uc3RydWN0RmlsZSBleHRlbmRzIFNhbXBsZUZpbGUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBBcGlDb25zdHJ1Y3RGaWxlT3B0aW9ucyA9IHt9KSB7XG4gICAgY29uc3QgYXV0aG9yaXplck9iamVjdFZlcnNpb24gPSBvcHRpb25zLmF1dGhvcml6ZXJPYmplY3RWZXJzaW9uID8/IERFRkFVTFRfQVVUSE9SSVpFUl9PQkpFQ1RfVkVSU0lPTjtcbiAgICBzdXBlcihwcm9qZWN0LCAnc3JjL2NvbnN0cnVjdHMvQXBpLnRzJywge1xuICAgICAgY29udGVudHM6IGBpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBSdXN0RnVuY3Rpb24gfSBmcm9tICdAY2RrbGFicy9hd3MtbGFtYmRhLXJ1c3QnO1xuaW1wb3J0IHsgU2VjcmV0IH0gZnJvbSAnQG1hdHRoZXdib25pZy9zZWNyZXQnO1xuaW1wb3J0IHsgRHVyYXRpb24sIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRW5kcG9pbnRUeXBlLCBMYW1iZGFJbnRlZ3JhdGlvbiwgUmVzdEFwaSwgVG9rZW5BdXRob3JpemVyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXknO1xuaW1wb3J0IHsgSVZwYyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHsgQW55UHJpbmNpcGFsLCBFZmZlY3QsIFBvbGljeURvY3VtZW50LCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEFyY2hpdGVjdHVyZSwgUzNDb2RlVjIsIEZ1bmN0aW9uIGFzIExhbWJkYUZ1bmN0aW9uLCBSdW50aW1lIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBOb2RlanNGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzJztcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTjhOX0VORFBPSU5ULCBOOE5fSldUX0tFWSB9IGZyb20gJy4vaGFuZGxlci9BcGkuRnVuY3Rpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVByb3BzIHtcbiAgcmVhZG9ubHkgY2xvdWRGcm9udE9yaWdpblJlcXVlc3RQb2xpY3lJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xuICByZWFkb25seSBjbGVya0p3a3NVcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgbjhuRW5kcG9pbnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFwaSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZXN0QXBpOiBSZXN0QXBpO1xuICBwdWJsaWMgbGFtYmRhRnVuY3Rpb246IExhbWJkYUZ1bmN0aW9uO1xuXG4gIHByaXZhdGUgYXV0aG9yaXplckZ1bmN0aW9uOiBSdXN0RnVuY3Rpb247XG4gIHByaXZhdGUgbjhuSnd0S2V5U2VjcmV0OiBTZWNyZXQ7XG4gIHByaXZhdGUgYXV0aG9yaXplcjogVG9rZW5BdXRob3JpemVyO1xuICBwcml2YXRlIGNsZXJrQXV0aFNlY3JldDogU2VjcmV0O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByaXZhdGUgcHJvcHM6IEFwaVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuXG4gICAgdGhpcy5jcmVhdGVOOE5Kd3RTZWNyZXQoKTtcbiAgICBpZiAoIXRoaXMubjhuSnd0S2V5U2VjcmV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgbjhuIEpXVCBrZXkgc2VjcmV0Jyk7XG4gICAgfVxuXG4gICAgdGhpcy5jcmVhdGVDbGVya0F1dGhTZWNyZXQoKTtcbiAgICBpZiAoIXRoaXMuY2xlcmtBdXRoU2VjcmV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgQ2xlcmsgYXV0aCBzZWNyZXQnKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUxhbWJkYUZ1bmN0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmxhbWJkYUZ1bmN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgbGFtYmRhIGZ1bmN0aW9uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5jcmVhdGVBdXRob3JpemVyRnVuY3Rpb24oKTtcbiAgICBpZiAoIXRoaXMuYXV0aG9yaXplckZ1bmN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgYXV0aG9yaXplciBmdW5jdGlvbicpO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlUmVzdEFwaSgpO1xuICAgIGlmICghdGhpcy5yZXN0QXBpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBjcmVhdGUgUkVTVCBBUEknKTtcbiAgICB9XG5cbiAgICB0aGlzLmNyZWF0ZUF1dGhvcml6ZXIoKTtcbiAgICBpZiAoIXRoaXMuYXV0aG9yaXplcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gY3JlYXRlIGF1dGhvcml6ZXInKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldHVwQXBpSW50ZWdyYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVBdXRob3JpemVyRnVuY3Rpb24oKSB7XG4gICAgdGhpcy5hdXRob3JpemVyRnVuY3Rpb24gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgJ0NsZXJrQXV0aG9yaXplckhhbmRsZXInLCB7XG4gICAgICBydW50aW1lOiBSdW50aW1lLlBST1ZJREVEX0FMMjAyMyxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMTApLFxuICAgICAgY29kZTogUzNDb2RlVjIuZnJvbUJ1Y2tldFYyKFxuICAgICAgICBCdWNrZXQuZnJvbUJ1Y2tldE5hbWUodGhpcywgJ01hY2Vkb25QbGF0Zm9ybUJ1Y2tldCcsICdtYWNlZG9uLXBsYXRmb3JtLWNvbW1vbi0wMTU5NTU4MTcyNjMnKSxcbiAgICAgICAgJ2xhbWJkYS9jbGVyay1hdXRob3JpemVyLWFybTY0LWxhdGVzdC56aXAnLFxuICAgICAgICB7IG9iamVjdFZlcnNpb246ICcke2F1dGhvcml6ZXJPYmplY3RWZXJzaW9ufScgfSxcbiAgICAgICksXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBDTEVSS19KV0tTX1VSTDogdGhpcy5wcm9wcy5jbGVya0p3a3NVcmwsXG4gICAgICB9LFxuICAgICAgaGFuZGxlcjogJ2l0c3J1c3RiYWJ5JyxcbiAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVOOE5Kd3RTZWNyZXQoKSB7XG4gICAgdGhpcy5uOG5Kd3RLZXlTZWNyZXQgPSBuZXcgU2VjcmV0KHRoaXMsICdOOG5Kd3RLZXlTZWNyZXQnLCB7fSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlTGFtYmRhRnVuY3Rpb24oKSB7XG4gICAgdGhpcy5sYW1iZGFGdW5jdGlvbiA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCAnRnVuY3Rpb24nLCB7XG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18yNF9YLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICBtZW1vcnlTaXplOiA1MTIsXG4gICAgICBlbnRyeTogam9pbihfX2Rpcm5hbWUsICdoYW5kbGVyL0FwaS5GdW5jdGlvbi50cycpLFxuICAgICAgdnBjOiB0aGlzLnByb3BzLnZwYyxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIFtOOE5fSldUX0tFWV06IHRoaXMubjhuSnd0S2V5U2VjcmV0LnNlY3JldE5hbWUsXG4gICAgICAgIFtOOE5fRU5EUE9JTlRdOiB0aGlzLnByb3BzLm44bkVuZHBvaW50LFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLm44bkp3dEtleVNlY3JldC5ncmFudFJlYWQodGhpcy5sYW1iZGFGdW5jdGlvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlUmVzdEFwaSgpIHtcbiAgICB0aGlzLnJlc3RBcGkgPSBuZXcgUmVzdEFwaSh0aGlzLCAnUmVzdEFwaScsIHtcbiAgICAgIHJlc3RBcGlOYW1lOiAnbXZwLXVpLWFwaScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0FQSSBmb3IgTVZQIFVJIGFwcGxpY2F0aW9uJyxcbiAgICAgIGVuZHBvaW50VHlwZXM6IFtFbmRwb2ludFR5cGUuUkVHSU9OQUxdLFxuICAgICAgcG9saWN5OiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5ERU5ZLFxuICAgICAgICAgICAgcHJpbmNpcGFsczogW25ldyBBbnlQcmluY2lwYWwoKV0sXG4gICAgICAgICAgICBhY3Rpb25zOiBbJ2V4ZWN1dGUtYXBpOkludm9rZSddLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgU3RyaW5nTm90RXF1YWxzOiB7XG4gICAgICAgICAgICAgICAgJ2F3czp1c2VyYWdlbnQnOiAnQW1hem9uIENsb3VkRnJvbnQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgcHJpbmNpcGFsczogW25ldyBBbnlQcmluY2lwYWwoKV0sXG4gICAgICAgICAgICBhY3Rpb25zOiBbJ2V4ZWN1dGUtYXBpOkludm9rZSddLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICAgJ2F3czp1c2VyYWdlbnQnOiAnQW1hem9uIENsb3VkRnJvbnQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUF1dGhvcml6ZXIoKSB7XG4gICAgdGhpcy5hdXRob3JpemVyID0gbmV3IFRva2VuQXV0aG9yaXplcih0aGlzLCAnQ2xlcmtBdXRob3JpemVyJywge1xuICAgICAgaGFuZGxlcjogdGhpcy5hdXRob3JpemVyRnVuY3Rpb24sXG4gICAgICBpZGVudGl0eVNvdXJjZTogJ21ldGhvZC5yZXF1ZXN0LmhlYWRlci5BdXRob3JpemF0aW9uJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cEFwaUludGVncmF0aW9uKCkge1xuICAgIGNvbnN0IGludGVncmF0aW9uID0gbmV3IExhbWJkYUludGVncmF0aW9uKHRoaXMubGFtYmRhRnVuY3Rpb24pO1xuICAgIHRoaXMucmVzdEFwaS5yb290LmFkZFByb3h5KHtcbiAgICAgIGRlZmF1bHRJbnRlZ3JhdGlvbjogaW50ZWdyYXRpb24sXG4gICAgICBhbnlNZXRob2Q6IHRydWUsXG4gICAgICBkZWZhdWx0TWV0aG9kT3B0aW9uczoge1xuICAgICAgICBhdXRob3JpemVyOiB0aGlzLmF1dGhvcml6ZXIsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVDbGVya0F1dGhTZWNyZXQoKSB7XG4gICAgdGhpcy5jbGVya0F1dGhTZWNyZXQgPSBuZXcgU2VjcmV0KHRoaXMsICdDbGVya0F1dGhTZWNyZXQnLCB7XG4gICAgICBnZW5lcmF0ZVNlY3JldFN0cmluZzoge1xuICAgICAgICBzZWNyZXRTdHJpbmdUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6ICcnLFxuICAgICAgICAgIGNsZXJrSndrc1VybDogJycsXG4gICAgICAgIH0pLFxuICAgICAgICBnZW5lcmF0ZVN0cmluZ0tleTogJ2NsZXJrUHVibGlzaGFibGVLZXknLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuYCxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -24,7 +24,7 @@ class BaseApplicationStackFile extends projen_1.TextFile {
24
24
  ' /**',
25
25
  ' * The version of the Datadog Node.js Lambda layer to use.',
26
26
  ' *',
27
- ' * @default 128',
27
+ ' * @default 132',
28
28
  ' */',
29
29
  ' readonly nodeLayerVersion?: number;',
30
30
  '',
@@ -160,11 +160,11 @@ class BaseApplicationStackFile extends projen_1.TextFile {
160
160
  ' protected createDatadogExtension() {',
161
161
  ' const datadogApiSecret = Secret.fromSecretCompleteArn(this, \'DatadogApiKey\', this.props.datadogSecretArn);',
162
162
  ' this.datadog = new DatadogLambda(this, \'Datadog\', {',
163
- ' apiKey: datadogApiSecret.secretValue.toString(),',
163
+ ' apiKeySecret: datadogApiSecret,',
164
164
  ' service: this.props.datadog?.projectName || this.id,',
165
- ' nodeLayerVersion: this.props.datadog?.nodeLayerVersion || 128,',
165
+ ' nodeLayerVersion: this.props.datadog?.nodeLayerVersion || 132,',
166
166
  ' pythonLayerVersion: this.props.datadog?.pythonLayerVersion || 123,',
167
- ' extensionLayerVersion: 86,',
167
+ ' extensionLayerVersion: 99,',
168
168
  ' });',
169
169
  ' }',
170
170
  '}',
@@ -174,4 +174,4 @@ class BaseApplicationStackFile extends projen_1.TextFile {
174
174
  }
175
175
  }
176
176
  exports.BaseApplicationStackFile = BaseApplicationStackFile;
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFHbEMsTUFBYSx3QkFBeUIsU0FBUSxpQkFBUTtJQUNwRCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUU7WUFDbkQsTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRTtnQkFDTCx3RUFBd0U7Z0JBQ3hFLG9EQUFvRDtnQkFDcEQsc0VBQXNFO2dCQUN0RSw0REFBNEQ7Z0JBQzVELDJDQUEyQztnQkFDM0MsOERBQThEO2dCQUM5RCw2REFBNkQ7Z0JBQzdELDRDQUE0QztnQkFDNUMsZ0VBQWdFO2dCQUNoRSxFQUFFO2dCQUNGLGlFQUFpRTtnQkFDakUsRUFBRTtnQkFDRix3QkFBd0I7Z0JBQ3hCLFNBQVM7Z0JBQ1QsZ0VBQWdFO2dCQUNoRSxRQUFRO2dCQUNSLHFCQUFxQjtnQkFDckIsU0FBUztnQkFDVCx5Q0FBeUM7Z0JBQ3pDLEVBQUU7Z0JBQ0YsU0FBUztnQkFDVCwrREFBK0Q7Z0JBQy9ELFFBQVE7Z0JBQ1IscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULDJDQUEyQztnQkFDM0MsRUFBRTtnQkFDRixTQUFTO2dCQUNULHNFQUFzRTtnQkFDdEUsUUFBUTtnQkFDUixxQ0FBcUM7Z0JBQ3JDLFNBQVM7Z0JBQ1Qsb0NBQW9DO2dCQUNwQyxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsMERBQTBEO2dCQUMxRCxNQUFNO2dCQUNOLCtDQUErQztnQkFDL0MsT0FBTztnQkFDUCwwQ0FBMEM7Z0JBQzFDLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCwrRUFBK0U7Z0JBQy9FLE9BQU87Z0JBQ1AsNkZBQTZGO2dCQUM3RixFQUFFO2dCQUNGLE9BQU87Z0JBQ1Asa0VBQWtFO2dCQUNsRSxPQUFPO2dCQUNQLHFFQUFxRTtnQkFDckUsRUFBRTtnQkFDRixPQUFPO2dCQUNQLGlDQUFpQztnQkFDakMsTUFBTTtnQkFDTix5REFBeUQ7Z0JBQ3pELE9BQU87Z0JBQ1AsaUNBQWlDO2dCQUNqQyxFQUFFO2dCQUNGLE9BQU87Z0JBQ1AscUNBQXFDO2dCQUNyQyxNQUFNO2dCQUNOLDZCQUE2QjtnQkFDN0IsT0FBTztnQkFDUCw4QkFBOEI7Z0JBQzlCLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCxpRkFBaUY7Z0JBQ2pGLE1BQU07Z0JBQ04seUJBQXlCO2dCQUN6Qix1QkFBdUI7Z0JBQ3ZCLE9BQU87Z0JBQ1AsOEJBQThCO2dCQUM5QixHQUFHO2dCQUNILEVBQUU7Z0JBQ0YsNkZBQTZGO2dCQUM3RixxQ0FBcUM7Z0JBQ3JDLHNDQUFzQztnQkFDdEMsd0JBQXdCO2dCQUN4Qix1QkFBdUI7Z0JBQ3ZCLDJDQUEyQztnQkFDM0MsRUFBRTtnQkFDRixnRkFBZ0Y7Z0JBQ2hGLDhCQUE4QjtnQkFDOUIsRUFBRTtnQkFDRixxQ0FBcUM7Z0JBQ3JDLHNEQUFzRDtnQkFDdEQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLG9DQUFvQztnQkFDcEMsMEJBQTBCO2dCQUMxQiwrREFBK0Q7Z0JBQy9ELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRiw4QkFBOEI7Z0JBQzlCLDZCQUE2QjtnQkFDN0Isd0RBQXdEO2dCQUN4RCxPQUFPO2dCQUNQLEVBQUU7Z0JBQ0YsdUJBQXVCO2dCQUN2QixFQUFFO2dCQUNGLHVCQUF1QjtnQkFDdkIsc0JBQXNCO2dCQUN0QixpREFBaUQ7Z0JBQ2pELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRixpQ0FBaUM7Z0JBQ2pDLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5RUFBeUU7Z0JBQ3pFLEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRixxQ0FBcUM7Z0JBQ3JDLHVFQUF1RTtnQkFDdkUsb0NBQW9DO2dCQUNwQyw4QkFBOEI7Z0JBQzlCLHNDQUFzQztnQkFDdEMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5Q0FBeUM7Z0JBQ3pDLHNCQUFzQjtnQkFDdEIsOENBQThDO2dCQUM5Qyw0Q0FBNEM7Z0JBQzVDLFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLDJCQUEyQjtnQkFDM0IseUNBQXlDO2dCQUN6Qyx3REFBd0Q7Z0JBQ3hELGtCQUFrQjtnQkFDbEIsdUJBQXVCO2dCQUN2QixTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRixrQ0FBa0M7Z0JBQ2xDLHFFQUFxRTtnQkFDckUsb0RBQW9EO2dCQUNwRCxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRiwrQkFBK0I7Z0JBQy9CLDJDQUEyQztnQkFDM0Msd0RBQXdEO2dCQUN4RCx1REFBdUQ7Z0JBQ3ZELGtFQUFrRTtnQkFDbEUsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0Ysd0NBQXdDO2dCQUN4QyxrSEFBa0g7Z0JBQ2xILDJEQUEyRDtnQkFDM0Qsd0RBQXdEO2dCQUN4RCw0REFBNEQ7Z0JBQzVELHNFQUFzRTtnQkFDdEUsMEVBQTBFO2dCQUMxRSxrQ0FBa0M7Z0JBQ2xDLFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxHQUFHO2dCQUNILEVBQUU7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFLRCw0REEwS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0RmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuXG5leHBvcnQgY2xhc3MgQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlIGV4dGVuZHMgVGV4dEZpbGUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwKSB7XG4gICAgc3VwZXIocHJvamVjdCwgJ3NyYy9zdGFja3MvQmFzZUFwcGxpY2F0aW9uU3RhY2sudHMnLCB7XG4gICAgICBtYXJrZXI6IHRydWUsXG4gICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgICdpbXBvcnQgeyBBc3BlY3RzLCBDZm5PdXRwdXQsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSBcXCdhd3MtY2RrLWxpYlxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgSVZwYywgVnBjIH0gZnJvbSBcXCdhd3MtY2RrLWxpYi9hd3MtZWMyXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBIb3N0ZWRab25lLCBJSG9zdGVkWm9uZSB9IGZyb20gXFwnYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IFNlY3JldCB9IGZyb20gXFwnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFxcJ2NvbnN0cnVjdHNcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IERhdGFkb2dMYW1iZGEgfSBmcm9tIFxcJ2RhdGFkb2ctY2RrLWNvbnN0cnVjdHMtdjJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IERhdGFEb2dBc3BlY3QgfSBmcm9tIFxcJy4uL2FzcGVjdHMvRGF0YURvZ0FzcGVjdFxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgQXBpIH0gZnJvbSBcXCcuLi9jb25zdHJ1Y3RzL0FwaVxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgU3RhdGljV2Vic2l0ZSB9IGZyb20gXFwnLi4vY29uc3RydWN0cy9TdGF0aWNXZWJzaXRlXFwnOycsXG4gICAgICAgICcnLFxuICAgICAgICAnZXhwb3J0IGludGVyZmFjZSBCYXNlQXBwbGljYXRpb25TdGFja1Byb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHJlYWRvbmx5IGRhdGFkb2c/OiB7JyxcbiAgICAgICAgJyAgICAvKionLFxuICAgICAgICAnICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBEYXRhZG9nIE5vZGUuanMgTGFtYmRhIGxheWVyIHRvIHVzZS4nLFxuICAgICAgICAnICAgICAqJyxcbiAgICAgICAgJyAgICAgKiBAZGVmYXVsdCAxMjgnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgbm9kZUxheWVyVmVyc2lvbj86IG51bWJlcjsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICAvKionLFxuICAgICAgICAnICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBEYXRhZG9nIFB5dGhvbiBMYW1iZGEgbGF5ZXIgdG8gdXNlLicsXG4gICAgICAgICcgICAgIConLFxuICAgICAgICAnICAgICAqIEBkZWZhdWx0IDEyMycsXG4gICAgICAgICcgICAgICovJyxcbiAgICAgICAgJyAgICByZWFkb25seSBweXRob25MYXllclZlcnNpb24/OiBudW1iZXI7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvamVjdC9zZXJ2aWNlIGZvciBEYXRhZG9nIHRhZ2dpbmcgcHVycG9zZXMuJyxcbiAgICAgICAgJyAgICAgKicsXG4gICAgICAgICcgICAgICogQGRlZmF1bHQgLSB1c2VzIHRoZSBzdGFjayBJRCcsXG4gICAgICAgICcgICAgICovJyxcbiAgICAgICAgJyAgICByZWFkb25seSBwcm9qZWN0TmFtZT86IHN0cmluZzsnLFxuICAgICAgICAnICB9OycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBkb21haW4gbmFtZSBvZiB0aGUgUm91dGUgNTMgaG9zdGVkIHpvbmUgdG8gdXNlLicsXG4gICAgICAgICcgICAqJyxcbiAgICAgICAgJyAgICogQGV4YW1wbGUgXFwnbWFjZWRvbi5zYW5kYm94LmRlZmlhbmNlLmFpXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgaG9zdGVkWm9uZURvbWFpbk5hbWU6IHN0cmluZzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIEFSTiBvZiB0aGUgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCB0aGF0IGNvbnRhaW5zIHRoZSBEYXRhZG9nIEFQSSBrZXkuJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgZGF0YWRvZ1NlY3JldEFybjogYGFybjphd3M6c2VjcmV0c21hbmFnZXI6JHtzdHJpbmd9OiR7c3RyaW5nfTpzZWNyZXQ6JHtzdHJpbmd9YDsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIENsZXJrIEpXS1MgVVJMIHVzZWQgdG8gdmVyaWZ5IHNlc3Npb24gdG9rZW4gc2lnbmF0dXJlcy4nLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBjbGVya0p3a3NVcmw6IGBodHRwczovLyR7c3RyaW5nfS8ud2VsbC1rbm93bi9qd2tzLmpzb25gOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgTjhOIGVuZHBvaW50IGJhc2UgVVJMLicsXG4gICAgICAgICcgICAqJyxcbiAgICAgICAgJyAgICogQGV4YW1wbGUgXFwnaHR0cHM6Ly93b3JrZmxvdy5zYW5kYm94LmRlZmlhbmNlLmFpL1xcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IG44bkVuZHBvaW50OiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgdG8gY3JlYXRlLicsXG4gICAgICAgICcgICAqJyxcbiAgICAgICAgJyAgICogQGRlZmF1bHQgXFwnJHtpZH0tdnBjXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgdnBjTmFtZT86IHN0cmluZzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIGhvc3RuYW1lIGZvciB0aGUgc3RhdGljIHdlYnNpdGUuIFRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgaG9zdGVkem9uZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ215Ym9pXFwnJyxcbiAgICAgICAgJyAgICogQGRlZmF1bHQgXFwnbXZwXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgaG9zdG5hbWU6IHN0cmluZzsnLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgICAnZXhwb3J0IGNsYXNzIEJhc2VBcHBsaWNhdGlvblN0YWNrPFRQcm9wcyBleHRlbmRzIEJhc2VBcHBsaWNhdGlvblN0YWNrUHJvcHM+IGV4dGVuZHMgU3RhY2sgeycsXG4gICAgICAgICcgIHByb3RlY3RlZCBkYXRhZG9nOiBEYXRhZG9nTGFtYmRhOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBob3N0ZWRab25lOiBJSG9zdGVkWm9uZTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgdnBjOiBJVnBjOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBhcGk6IEFwaTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgc3RhdGljV2Vic2l0ZTogU3RhdGljV2Vic2l0ZTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgcHJpdmF0ZSBpZDogc3RyaW5nLCBwcm90ZWN0ZWQgcHJvcHM6IFRQcm9wcykgeycsXG4gICAgICAgICcgICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLnByb3BzLmNsZXJrSndrc1VybCkgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnY2xlcmtKd2tzVXJsIGlzIHJlcXVpcmVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZURhdGFkb2dFeHRlbnNpb24oKTsnLFxuICAgICAgICAnICAgIGlmICghdGhpcy5kYXRhZG9nKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdEYXRhZG9nIGV4dGVuc2lvbiBjcmVhdGlvbiBmYWlsZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlSG9zdGVkWm9uZSgpOycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLmhvc3RlZFpvbmUpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ0hvc3RlZFpvbmUgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVZwYygpOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlQXBpKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuYXBpKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdBUEkgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVN0YXRpY1dlYnNpdGUoKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZU91dHB1dHMoKTsnLFxuICAgICAgICAnICAgIEFzcGVjdHMub2YodGhpcykuYWRkKG5ldyBEYXRhRG9nQXNwZWN0KHsgZGF0YWRvZzogdGhpcy5kYXRhZG9nIH0pKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVTdGF0aWNXZWJzaXRlKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5zdGF0aWNXZWJzaXRlID0gbmV3IFN0YXRpY1dlYnNpdGUodGhpcywgXFwnU3RhdGljV2Vic2l0ZVxcJywgeycsXG4gICAgICAgICcgICAgICBob3N0ZWRab25lOiB0aGlzLmhvc3RlZFpvbmUsJyxcbiAgICAgICAgJyAgICAgIGFwaTogdGhpcy5hcGkucmVzdEFwaSwnLFxuICAgICAgICAnICAgICAgaG9zdG5hbWU6IHRoaXMucHJvcHMuaG9zdG5hbWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVBcGkoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLmFwaSA9IG5ldyBBcGkodGhpcywgXFwnQXBpXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIHZwYzogdGhpcy52cGMsJyxcbiAgICAgICAgJyAgICAgIGNsZXJrSndrc1VybDogdGhpcy5wcm9wcy5jbGVya0p3a3NVcmwsJyxcbiAgICAgICAgJyAgICAgIG44bkVuZHBvaW50OiB0aGlzLnByb3BzLm44bkVuZHBvaW50LCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlVnBjKCkgeycsXG4gICAgICAgICcgICAgdGhpcy52cGMgPSBuZXcgVnBjKHRoaXMsIFxcJ1ZQQ1xcJywgeycsXG4gICAgICAgICcgICAgICB2cGNOYW1lOiB0aGlzLnByb3BzLnZwY05hbWUgfHwgYCR7dGhpcy5pZH0tdnBjYCwnLFxuICAgICAgICAnICAgICAgbWF4QXpzOiAzLCcsXG4gICAgICAgICcgICAgICBuYXRHYXRld2F5czogMSwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZUhvc3RlZFpvbmUoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLmhvc3RlZFpvbmUgPSBIb3N0ZWRab25lLmZyb21Mb29rdXAodGhpcywgXFwnSG9zdGVkWm9uZVxcJywgeycsXG4gICAgICAgICcgICAgICBkb21haW5OYW1lOiB0aGlzLnByb3BzLmhvc3RlZFpvbmVEb21haW5OYW1lLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0cygpIHsnLFxuICAgICAgICAnICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXFwnV2Vic2l0ZVVybFxcJywgeycsXG4gICAgICAgICcgICAgICB2YWx1ZTogYGh0dHBzOi8vJHt0aGlzLnN0YXRpY1dlYnNpdGUuaG9zdG5hbWV9YCwnLFxuICAgICAgICAnICAgICAgZGVzY3JpcHRpb246IFxcJ1RoZSBVUkwgb2YgdGhlIHN0YXRpYyB3ZWJzaXRlXFwnLCcsXG4gICAgICAgICcgICAgICBleHBvcnROYW1lOiBgJHt0aGlzLmlkLnJlcGxhY2UoL1xcXFwvLywgXFwnLVxcJyl9LVdlYnNpdGVVcmxgLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWRvZ0V4dGVuc2lvbigpIHsnLFxuICAgICAgICAnICAgIGNvbnN0IGRhdGFkb2dBcGlTZWNyZXQgPSBTZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKHRoaXMsIFxcJ0RhdGFkb2dBcGlLZXlcXCcsIHRoaXMucHJvcHMuZGF0YWRvZ1NlY3JldEFybik7JyxcbiAgICAgICAgJyAgICB0aGlzLmRhdGFkb2cgPSBuZXcgRGF0YWRvZ0xhbWJkYSh0aGlzLCBcXCdEYXRhZG9nXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIGFwaUtleTogZGF0YWRvZ0FwaVNlY3JldC5zZWNyZXRWYWx1ZS50b1N0cmluZygpLCcsXG4gICAgICAgICcgICAgICBzZXJ2aWNlOiB0aGlzLnByb3BzLmRhdGFkb2c/LnByb2plY3ROYW1lIHx8IHRoaXMuaWQsJyxcbiAgICAgICAgJyAgICAgIG5vZGVMYXllclZlcnNpb246IHRoaXMucHJvcHMuZGF0YWRvZz8ubm9kZUxheWVyVmVyc2lvbiB8fCAxMjgsJyxcbiAgICAgICAgJyAgICAgIHB5dGhvbkxheWVyVmVyc2lvbjogdGhpcy5wcm9wcy5kYXRhZG9nPy5weXRob25MYXllclZlcnNpb24gfHwgMTIzLCcsXG4gICAgICAgICcgICAgICBleHRlbnNpb25MYXllclZlcnNpb246IDg2LCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICd9JyxcbiAgICAgICAgJycsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFHbEMsTUFBYSx3QkFBeUIsU0FBUSxpQkFBUTtJQUNwRCxZQUFZLE9BQTRCO1FBQ3RDLEtBQUssQ0FBQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUU7WUFDbkQsTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRTtnQkFDTCx3RUFBd0U7Z0JBQ3hFLG9EQUFvRDtnQkFDcEQsc0VBQXNFO2dCQUN0RSw0REFBNEQ7Z0JBQzVELDJDQUEyQztnQkFDM0MsOERBQThEO2dCQUM5RCw2REFBNkQ7Z0JBQzdELDRDQUE0QztnQkFDNUMsZ0VBQWdFO2dCQUNoRSxFQUFFO2dCQUNGLGlFQUFpRTtnQkFDakUsRUFBRTtnQkFDRix3QkFBd0I7Z0JBQ3hCLFNBQVM7Z0JBQ1QsZ0VBQWdFO2dCQUNoRSxRQUFRO2dCQUNSLHFCQUFxQjtnQkFDckIsU0FBUztnQkFDVCx5Q0FBeUM7Z0JBQ3pDLEVBQUU7Z0JBQ0YsU0FBUztnQkFDVCwrREFBK0Q7Z0JBQy9ELFFBQVE7Z0JBQ1IscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULDJDQUEyQztnQkFDM0MsRUFBRTtnQkFDRixTQUFTO2dCQUNULHNFQUFzRTtnQkFDdEUsUUFBUTtnQkFDUixxQ0FBcUM7Z0JBQ3JDLFNBQVM7Z0JBQ1Qsb0NBQW9DO2dCQUNwQyxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsMERBQTBEO2dCQUMxRCxNQUFNO2dCQUNOLCtDQUErQztnQkFDL0MsT0FBTztnQkFDUCwwQ0FBMEM7Z0JBQzFDLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCwrRUFBK0U7Z0JBQy9FLE9BQU87Z0JBQ1AsNkZBQTZGO2dCQUM3RixFQUFFO2dCQUNGLE9BQU87Z0JBQ1Asa0VBQWtFO2dCQUNsRSxPQUFPO2dCQUNQLHFFQUFxRTtnQkFDckUsRUFBRTtnQkFDRixPQUFPO2dCQUNQLGlDQUFpQztnQkFDakMsTUFBTTtnQkFDTix5REFBeUQ7Z0JBQ3pELE9BQU87Z0JBQ1AsaUNBQWlDO2dCQUNqQyxFQUFFO2dCQUNGLE9BQU87Z0JBQ1AscUNBQXFDO2dCQUNyQyxNQUFNO2dCQUNOLDZCQUE2QjtnQkFDN0IsT0FBTztnQkFDUCw4QkFBOEI7Z0JBQzlCLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCxpRkFBaUY7Z0JBQ2pGLE1BQU07Z0JBQ04seUJBQXlCO2dCQUN6Qix1QkFBdUI7Z0JBQ3ZCLE9BQU87Z0JBQ1AsOEJBQThCO2dCQUM5QixHQUFHO2dCQUNILEVBQUU7Z0JBQ0YsNkZBQTZGO2dCQUM3RixxQ0FBcUM7Z0JBQ3JDLHNDQUFzQztnQkFDdEMsd0JBQXdCO2dCQUN4Qix1QkFBdUI7Z0JBQ3ZCLDJDQUEyQztnQkFDM0MsRUFBRTtnQkFDRixnRkFBZ0Y7Z0JBQ2hGLDhCQUE4QjtnQkFDOUIsRUFBRTtnQkFDRixxQ0FBcUM7Z0JBQ3JDLHNEQUFzRDtnQkFDdEQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLG9DQUFvQztnQkFDcEMsMEJBQTBCO2dCQUMxQiwrREFBK0Q7Z0JBQy9ELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRiw4QkFBOEI7Z0JBQzlCLDZCQUE2QjtnQkFDN0Isd0RBQXdEO2dCQUN4RCxPQUFPO2dCQUNQLEVBQUU7Z0JBQ0YsdUJBQXVCO2dCQUN2QixFQUFFO2dCQUNGLHVCQUF1QjtnQkFDdkIsc0JBQXNCO2dCQUN0QixpREFBaUQ7Z0JBQ2pELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRixpQ0FBaUM7Z0JBQ2pDLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5RUFBeUU7Z0JBQ3pFLEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRixxQ0FBcUM7Z0JBQ3JDLHVFQUF1RTtnQkFDdkUsb0NBQW9DO2dCQUNwQyw4QkFBOEI7Z0JBQzlCLHNDQUFzQztnQkFDdEMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5Q0FBeUM7Z0JBQ3pDLHNCQUFzQjtnQkFDdEIsOENBQThDO2dCQUM5Qyw0Q0FBNEM7Z0JBQzVDLFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLDJCQUEyQjtnQkFDM0IseUNBQXlDO2dCQUN6Qyx3REFBd0Q7Z0JBQ3hELGtCQUFrQjtnQkFDbEIsdUJBQXVCO2dCQUN2QixTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRixrQ0FBa0M7Z0JBQ2xDLHFFQUFxRTtnQkFDckUsb0RBQW9EO2dCQUNwRCxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRiwrQkFBK0I7Z0JBQy9CLDJDQUEyQztnQkFDM0Msd0RBQXdEO2dCQUN4RCx1REFBdUQ7Z0JBQ3ZELGtFQUFrRTtnQkFDbEUsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0Ysd0NBQXdDO2dCQUN4QyxrSEFBa0g7Z0JBQ2xILDJEQUEyRDtnQkFDM0QsdUNBQXVDO2dCQUN2Qyw0REFBNEQ7Z0JBQzVELHNFQUFzRTtnQkFDdEUsMEVBQTBFO2dCQUMxRSxrQ0FBa0M7Z0JBQ2xDLFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxHQUFHO2dCQUNILEVBQUU7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFLRCw0REEwS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0RmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuXG5leHBvcnQgY2xhc3MgQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlIGV4dGVuZHMgVGV4dEZpbGUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwKSB7XG4gICAgc3VwZXIocHJvamVjdCwgJ3NyYy9zdGFja3MvQmFzZUFwcGxpY2F0aW9uU3RhY2sudHMnLCB7XG4gICAgICBtYXJrZXI6IHRydWUsXG4gICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgIGxpbmVzOiBbXG4gICAgICAgICdpbXBvcnQgeyBBc3BlY3RzLCBDZm5PdXRwdXQsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSBcXCdhd3MtY2RrLWxpYlxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgSVZwYywgVnBjIH0gZnJvbSBcXCdhd3MtY2RrLWxpYi9hd3MtZWMyXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBIb3N0ZWRab25lLCBJSG9zdGVkWm9uZSB9IGZyb20gXFwnYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IFNlY3JldCB9IGZyb20gXFwnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFxcJ2NvbnN0cnVjdHNcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IERhdGFkb2dMYW1iZGEgfSBmcm9tIFxcJ2RhdGFkb2ctY2RrLWNvbnN0cnVjdHMtdjJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IERhdGFEb2dBc3BlY3QgfSBmcm9tIFxcJy4uL2FzcGVjdHMvRGF0YURvZ0FzcGVjdFxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgQXBpIH0gZnJvbSBcXCcuLi9jb25zdHJ1Y3RzL0FwaVxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgU3RhdGljV2Vic2l0ZSB9IGZyb20gXFwnLi4vY29uc3RydWN0cy9TdGF0aWNXZWJzaXRlXFwnOycsXG4gICAgICAgICcnLFxuICAgICAgICAnZXhwb3J0IGludGVyZmFjZSBCYXNlQXBwbGljYXRpb25TdGFja1Byb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHJlYWRvbmx5IGRhdGFkb2c/OiB7JyxcbiAgICAgICAgJyAgICAvKionLFxuICAgICAgICAnICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBEYXRhZG9nIE5vZGUuanMgTGFtYmRhIGxheWVyIHRvIHVzZS4nLFxuICAgICAgICAnICAgICAqJyxcbiAgICAgICAgJyAgICAgKiBAZGVmYXVsdCAxMzInLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgbm9kZUxheWVyVmVyc2lvbj86IG51bWJlcjsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICAvKionLFxuICAgICAgICAnICAgICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBEYXRhZG9nIFB5dGhvbiBMYW1iZGEgbGF5ZXIgdG8gdXNlLicsXG4gICAgICAgICcgICAgIConLFxuICAgICAgICAnICAgICAqIEBkZWZhdWx0IDEyMycsXG4gICAgICAgICcgICAgICovJyxcbiAgICAgICAgJyAgICByZWFkb25seSBweXRob25MYXllclZlcnNpb24/OiBudW1iZXI7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcHJvamVjdC9zZXJ2aWNlIGZvciBEYXRhZG9nIHRhZ2dpbmcgcHVycG9zZXMuJyxcbiAgICAgICAgJyAgICAgKicsXG4gICAgICAgICcgICAgICogQGRlZmF1bHQgLSB1c2VzIHRoZSBzdGFjayBJRCcsXG4gICAgICAgICcgICAgICovJyxcbiAgICAgICAgJyAgICByZWFkb25seSBwcm9qZWN0TmFtZT86IHN0cmluZzsnLFxuICAgICAgICAnICB9OycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBkb21haW4gbmFtZSBvZiB0aGUgUm91dGUgNTMgaG9zdGVkIHpvbmUgdG8gdXNlLicsXG4gICAgICAgICcgICAqJyxcbiAgICAgICAgJyAgICogQGV4YW1wbGUgXFwnbWFjZWRvbi5zYW5kYm94LmRlZmlhbmNlLmFpXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgaG9zdGVkWm9uZURvbWFpbk5hbWU6IHN0cmluZzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIEFSTiBvZiB0aGUgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCB0aGF0IGNvbnRhaW5zIHRoZSBEYXRhZG9nIEFQSSBrZXkuJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgZGF0YWRvZ1NlY3JldEFybjogYGFybjphd3M6c2VjcmV0c21hbmFnZXI6JHtzdHJpbmd9OiR7c3RyaW5nfTpzZWNyZXQ6JHtzdHJpbmd9YDsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIENsZXJrIEpXS1MgVVJMIHVzZWQgdG8gdmVyaWZ5IHNlc3Npb24gdG9rZW4gc2lnbmF0dXJlcy4nLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBjbGVya0p3a3NVcmw6IGBodHRwczovLyR7c3RyaW5nfS8ud2VsbC1rbm93bi9qd2tzLmpzb25gOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgTjhOIGVuZHBvaW50IGJhc2UgVVJMLicsXG4gICAgICAgICcgICAqJyxcbiAgICAgICAgJyAgICogQGV4YW1wbGUgXFwnaHR0cHM6Ly93b3JrZmxvdy5zYW5kYm94LmRlZmlhbmNlLmFpL1xcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IG44bkVuZHBvaW50OiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgdG8gY3JlYXRlLicsXG4gICAgICAgICcgICAqJyxcbiAgICAgICAgJyAgICogQGRlZmF1bHQgXFwnJHtpZH0tdnBjXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgdnBjTmFtZT86IHN0cmluZzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIGhvc3RuYW1lIGZvciB0aGUgc3RhdGljIHdlYnNpdGUuIFRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgaG9zdGVkem9uZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ215Ym9pXFwnJyxcbiAgICAgICAgJyAgICogQGRlZmF1bHQgXFwnbXZwXFwnJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgaG9zdG5hbWU6IHN0cmluZzsnLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgICAnZXhwb3J0IGNsYXNzIEJhc2VBcHBsaWNhdGlvblN0YWNrPFRQcm9wcyBleHRlbmRzIEJhc2VBcHBsaWNhdGlvblN0YWNrUHJvcHM+IGV4dGVuZHMgU3RhY2sgeycsXG4gICAgICAgICcgIHByb3RlY3RlZCBkYXRhZG9nOiBEYXRhZG9nTGFtYmRhOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBob3N0ZWRab25lOiBJSG9zdGVkWm9uZTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgdnBjOiBJVnBjOycsXG4gICAgICAgICcgIHByb3RlY3RlZCBhcGk6IEFwaTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgc3RhdGljV2Vic2l0ZTogU3RhdGljV2Vic2l0ZTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgcHJpdmF0ZSBpZDogc3RyaW5nLCBwcm90ZWN0ZWQgcHJvcHM6IFRQcm9wcykgeycsXG4gICAgICAgICcgICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLnByb3BzLmNsZXJrSndrc1VybCkgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnY2xlcmtKd2tzVXJsIGlzIHJlcXVpcmVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZURhdGFkb2dFeHRlbnNpb24oKTsnLFxuICAgICAgICAnICAgIGlmICghdGhpcy5kYXRhZG9nKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdEYXRhZG9nIGV4dGVuc2lvbiBjcmVhdGlvbiBmYWlsZWRcXCcpOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlSG9zdGVkWm9uZSgpOycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLmhvc3RlZFpvbmUpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ0hvc3RlZFpvbmUgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVZwYygpOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIHRoaXMuY3JlYXRlQXBpKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuYXBpKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdBUEkgY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZVN0YXRpY1dlYnNpdGUoKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZU91dHB1dHMoKTsnLFxuICAgICAgICAnICAgIEFzcGVjdHMub2YodGhpcykuYWRkKG5ldyBEYXRhRG9nQXNwZWN0KHsgZGF0YWRvZzogdGhpcy5kYXRhZG9nIH0pKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVTdGF0aWNXZWJzaXRlKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5zdGF0aWNXZWJzaXRlID0gbmV3IFN0YXRpY1dlYnNpdGUodGhpcywgXFwnU3RhdGljV2Vic2l0ZVxcJywgeycsXG4gICAgICAgICcgICAgICBob3N0ZWRab25lOiB0aGlzLmhvc3RlZFpvbmUsJyxcbiAgICAgICAgJyAgICAgIGFwaTogdGhpcy5hcGkucmVzdEFwaSwnLFxuICAgICAgICAnICAgICAgaG9zdG5hbWU6IHRoaXMucHJvcHMuaG9zdG5hbWUsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVBcGkoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLmFwaSA9IG5ldyBBcGkodGhpcywgXFwnQXBpXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIHZwYzogdGhpcy52cGMsJyxcbiAgICAgICAgJyAgICAgIGNsZXJrSndrc1VybDogdGhpcy5wcm9wcy5jbGVya0p3a3NVcmwsJyxcbiAgICAgICAgJyAgICAgIG44bkVuZHBvaW50OiB0aGlzLnByb3BzLm44bkVuZHBvaW50LCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlVnBjKCkgeycsXG4gICAgICAgICcgICAgdGhpcy52cGMgPSBuZXcgVnBjKHRoaXMsIFxcJ1ZQQ1xcJywgeycsXG4gICAgICAgICcgICAgICB2cGNOYW1lOiB0aGlzLnByb3BzLnZwY05hbWUgfHwgYCR7dGhpcy5pZH0tdnBjYCwnLFxuICAgICAgICAnICAgICAgbWF4QXpzOiAzLCcsXG4gICAgICAgICcgICAgICBuYXRHYXRld2F5czogMSwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZUhvc3RlZFpvbmUoKSB7JyxcbiAgICAgICAgJyAgICB0aGlzLmhvc3RlZFpvbmUgPSBIb3N0ZWRab25lLmZyb21Mb29rdXAodGhpcywgXFwnSG9zdGVkWm9uZVxcJywgeycsXG4gICAgICAgICcgICAgICBkb21haW5OYW1lOiB0aGlzLnByb3BzLmhvc3RlZFpvbmVEb21haW5OYW1lLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlT3V0cHV0cygpIHsnLFxuICAgICAgICAnICAgIG5ldyBDZm5PdXRwdXQodGhpcywgXFwnV2Vic2l0ZVVybFxcJywgeycsXG4gICAgICAgICcgICAgICB2YWx1ZTogYGh0dHBzOi8vJHt0aGlzLnN0YXRpY1dlYnNpdGUuaG9zdG5hbWV9YCwnLFxuICAgICAgICAnICAgICAgZGVzY3JpcHRpb246IFxcJ1RoZSBVUkwgb2YgdGhlIHN0YXRpYyB3ZWJzaXRlXFwnLCcsXG4gICAgICAgICcgICAgICBleHBvcnROYW1lOiBgJHt0aGlzLmlkLnJlcGxhY2UoL1xcXFwvLywgXFwnLVxcJyl9LVdlYnNpdGVVcmxgLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlRGF0YWRvZ0V4dGVuc2lvbigpIHsnLFxuICAgICAgICAnICAgIGNvbnN0IGRhdGFkb2dBcGlTZWNyZXQgPSBTZWNyZXQuZnJvbVNlY3JldENvbXBsZXRlQXJuKHRoaXMsIFxcJ0RhdGFkb2dBcGlLZXlcXCcsIHRoaXMucHJvcHMuZGF0YWRvZ1NlY3JldEFybik7JyxcbiAgICAgICAgJyAgICB0aGlzLmRhdGFkb2cgPSBuZXcgRGF0YWRvZ0xhbWJkYSh0aGlzLCBcXCdEYXRhZG9nXFwnLCB7JyxcbiAgICAgICAgJyAgICAgIGFwaUtleVNlY3JldDogZGF0YWRvZ0FwaVNlY3JldCwnLFxuICAgICAgICAnICAgICAgc2VydmljZTogdGhpcy5wcm9wcy5kYXRhZG9nPy5wcm9qZWN0TmFtZSB8fCB0aGlzLmlkLCcsXG4gICAgICAgICcgICAgICBub2RlTGF5ZXJWZXJzaW9uOiB0aGlzLnByb3BzLmRhdGFkb2c/Lm5vZGVMYXllclZlcnNpb24gfHwgMTMyLCcsXG4gICAgICAgICcgICAgICBweXRob25MYXllclZlcnNpb246IHRoaXMucHJvcHMuZGF0YWRvZz8ucHl0aG9uTGF5ZXJWZXJzaW9uIHx8IDEyMywnLFxuICAgICAgICAnICAgICAgZXh0ZW5zaW9uTGF5ZXJWZXJzaW9uOiA5OSwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnfScsXG4gICAgICAgICcnLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -12,7 +12,7 @@ const SoftwareFactoryFiles_1 = require("./SoftwareFactoryFiles");
12
12
  const utils_1 = require("./utils");
13
13
  const ViteReactProject_1 = require("./ViteReactProject");
14
14
  class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.19.2" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.20.0" };
16
16
  constructor(options) {
17
17
  super({
18
18
  ...options,
@@ -26,7 +26,7 @@ class BootcampBaseApplicationStackFile extends projen_1.TextFile {
26
26
  ' /**',
27
27
  ' * The version of the Datadog Node.js Lambda layer to use.',
28
28
  ' *',
29
- ' * @default 128',
29
+ ' * @default 132',
30
30
  ' */',
31
31
  ' readonly nodeLayerVersion?: number;',
32
32
  '',
@@ -162,11 +162,11 @@ class BootcampBaseApplicationStackFile extends projen_1.TextFile {
162
162
  ' protected createDatadogExtension() {',
163
163
  ' const datadogApiSecret = Secret.fromSecretCompleteArn(this, \'DatadogApiKey\', this.props.datadogSecretArn);',
164
164
  ' this.datadog = new DatadogLambda(this, \'Datadog\', {',
165
- ' apiKey: datadogApiSecret.secretValue.toString(),',
165
+ ' apiKeySecret: datadogApiSecret,',
166
166
  ' service: this.props.datadog?.projectName || this.id,',
167
- ' nodeLayerVersion: this.props.datadog?.nodeLayerVersion || 128,',
167
+ ' nodeLayerVersion: this.props.datadog?.nodeLayerVersion || 132,',
168
168
  ' pythonLayerVersion: this.props.datadog?.pythonLayerVersion || 123,',
169
- ' extensionLayerVersion: 86,',
169
+ ' extensionLayerVersion: 99,',
170
170
  ' });',
171
171
  ' }',
172
172
  '',
@@ -206,4 +206,4 @@ class BootcampBaseApplicationStackFile extends projen_1.TextFile {
206
206
  }
207
207
  }
208
208
  exports.BootcampBaseApplicationStackFile = BootcampBaseApplicationStackFile;
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWtDO0FBR2xDLE1BQWEsZ0NBQWlDLFNBQVEsaUJBQVE7SUFDNUQsWUFBWSxPQUE0QjtRQUN0QyxLQUFLLENBQUMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFO1lBQ25ELE1BQU0sRUFBRSxJQUFJO1lBQ1osUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUU7Z0JBQ0wsd0JBQXdCO2dCQUN4Qiw0QkFBNEI7Z0JBQzVCLHdFQUF3RTtnQkFDeEUsb0RBQW9EO2dCQUNwRCxzRUFBc0U7Z0JBQ3RFLDREQUE0RDtnQkFDNUQsMkNBQTJDO2dCQUMzQyw4REFBOEQ7Z0JBQzlELDZEQUE2RDtnQkFDN0QsNENBQTRDO2dCQUM1QyxnRUFBZ0U7Z0JBQ2hFLEVBQUU7Z0JBQ0YsaUVBQWlFO2dCQUNqRSxFQUFFO2dCQUNGLHdCQUF3QjtnQkFDeEIsU0FBUztnQkFDVCxnRUFBZ0U7Z0JBQ2hFLFFBQVE7Z0JBQ1IscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULHlDQUF5QztnQkFDekMsRUFBRTtnQkFDRixTQUFTO2dCQUNULCtEQUErRDtnQkFDL0QsUUFBUTtnQkFDUixxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsMkNBQTJDO2dCQUMzQyxFQUFFO2dCQUNGLFNBQVM7Z0JBQ1Qsc0VBQXNFO2dCQUN0RSxRQUFRO2dCQUNSLHFDQUFxQztnQkFDckMsU0FBUztnQkFDVCxvQ0FBb0M7Z0JBQ3BDLE1BQU07Z0JBQ04sT0FBTztnQkFDUCwwREFBMEQ7Z0JBQzFELE1BQU07Z0JBQ04sK0NBQStDO2dCQUMvQyxPQUFPO2dCQUNQLDBDQUEwQztnQkFDMUMsRUFBRTtnQkFDRixPQUFPO2dCQUNQLCtFQUErRTtnQkFDL0UsT0FBTztnQkFDUCw2RkFBNkY7Z0JBQzdGLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCxrRUFBa0U7Z0JBQ2xFLE9BQU87Z0JBQ1AscUVBQXFFO2dCQUNyRSxFQUFFO2dCQUNGLE9BQU87Z0JBQ1AsaUNBQWlDO2dCQUNqQyxNQUFNO2dCQUNOLHlEQUF5RDtnQkFDekQsT0FBTztnQkFDUCxpQ0FBaUM7Z0JBQ2pDLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCxxQ0FBcUM7Z0JBQ3JDLE1BQU07Z0JBQ04sNkJBQTZCO2dCQUM3QixPQUFPO2dCQUNQLDhCQUE4QjtnQkFDOUIsRUFBRTtnQkFDRixPQUFPO2dCQUNQLGlGQUFpRjtnQkFDakYsTUFBTTtnQkFDTix5QkFBeUI7Z0JBQ3pCLHVCQUF1QjtnQkFDdkIsT0FBTztnQkFDUCw4QkFBOEI7Z0JBQzlCLEdBQUc7Z0JBQ0gsRUFBRTtnQkFDRiw2RkFBNkY7Z0JBQzdGLHFDQUFxQztnQkFDckMsc0NBQXNDO2dCQUN0Qyx3QkFBd0I7Z0JBQ3hCLHVCQUF1QjtnQkFDdkIsMkNBQTJDO2dCQUMzQyxFQUFFO2dCQUNGLGdGQUFnRjtnQkFDaEYsOEJBQThCO2dCQUM5QixFQUFFO2dCQUNGLHFDQUFxQztnQkFDckMsc0RBQXNEO2dCQUN0RCxPQUFPO2dCQUNQLEVBQUU7Z0JBQ0Ysb0NBQW9DO2dCQUNwQywwQkFBMEI7Z0JBQzFCLCtEQUErRDtnQkFDL0QsT0FBTztnQkFDUCxFQUFFO2dCQUNGLDhCQUE4QjtnQkFDOUIsNkJBQTZCO2dCQUM3Qix3REFBd0Q7Z0JBQ3hELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRix1QkFBdUI7Z0JBQ3ZCLEVBQUU7Z0JBQ0YsdUJBQXVCO2dCQUN2QixzQkFBc0I7Z0JBQ3RCLGlEQUFpRDtnQkFDakQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLGlDQUFpQztnQkFDakMsRUFBRTtnQkFDRiwyQkFBMkI7Z0JBQzNCLHlFQUF5RTtnQkFDekUsS0FBSztnQkFDTCxFQUFFO2dCQUNGLHFDQUFxQztnQkFDckMsdUVBQXVFO2dCQUN2RSxvQ0FBb0M7Z0JBQ3BDLDhCQUE4QjtnQkFDOUIsc0NBQXNDO2dCQUN0QyxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRiwyQkFBMkI7Z0JBQzNCLHlDQUF5QztnQkFDekMsc0JBQXNCO2dCQUN0Qiw4Q0FBOEM7Z0JBQzlDLDRDQUE0QztnQkFDNUMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5Q0FBeUM7Z0JBQ3pDLHdEQUF3RDtnQkFDeEQsa0JBQWtCO2dCQUNsQix1QkFBdUI7Z0JBQ3ZCLFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLGtDQUFrQztnQkFDbEMscUVBQXFFO2dCQUNyRSxvREFBb0Q7Z0JBQ3BELFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLCtCQUErQjtnQkFDL0IsMkNBQTJDO2dCQUMzQyx3REFBd0Q7Z0JBQ3hELHVEQUF1RDtnQkFDdkQsa0VBQWtFO2dCQUNsRSxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRix3Q0FBd0M7Z0JBQ3hDLGtIQUFrSDtnQkFDbEgsMkRBQTJEO2dCQUMzRCx3REFBd0Q7Z0JBQ3hELDREQUE0RDtnQkFDNUQsc0VBQXNFO2dCQUN0RSwwRUFBMEU7Z0JBQzFFLGtDQUFrQztnQkFDbEMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCwyRkFBMkY7Z0JBQzNGLG9CQUFvQjtnQkFDcEIsZUFBZTtnQkFDZixNQUFNO2dCQUNOLDJDQUEyQztnQkFDM0MsaURBQWlEO2dCQUNqRCx1QkFBdUI7Z0JBQ3ZCLHlDQUF5QztnQkFDekMsT0FBTztnQkFDUCxJQUFJO2dCQUNKLGtHQUFrRztnQkFDbEcsaUlBQWlJO2dCQUNqSSxJQUFJO2dCQUNKLGdDQUFnQztnQkFDaEMsMENBQTBDO2dCQUMxQywrREFBK0Q7Z0JBQy9ELDhDQUE4QztnQkFDOUMsT0FBTztnQkFDUCxJQUFJO2dCQUNKLG9CQUFvQjtnQkFDcEIsS0FBSztnQkFDTCxJQUFJO2dCQUNKLHFEQUFxRDtnQkFDckQsOENBQThDO2dCQUM5QyxLQUFLO2dCQUNMLElBQUk7Z0JBQ0osNkNBQTZDO2dCQUM3QywwQ0FBMEM7Z0JBQzFDLEtBQUs7Z0JBQ0wsR0FBRzthQUNKO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBMU1ELDRFQTBNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5cbmV4cG9ydCBjbGFzcyBCb290Y2FtcEJhc2VBcHBsaWNhdGlvblN0YWNrRmlsZSBleHRlbmRzIFRleHRGaWxlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCkge1xuICAgIHN1cGVyKHByb2plY3QsICdzcmMvc3RhY2tzL0Jhc2VBcHBsaWNhdGlvblN0YWNrLnRzJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICBsaW5lczogW1xuICAgICAgICAnaW1wb3J0IGZzIGZyb20gXFwnZnNcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCBwYXRoIGZyb20gXFwncGF0aFxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgQXNwZWN0cywgQ2ZuT3V0cHV0LCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXFwnYXdzLWNkay1saWJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IElWcGMsIFZwYyB9IGZyb20gXFwnYXdzLWNkay1saWIvYXdzLWVjMlxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdjb25zdHJ1Y3RzXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBEYXRhZG9nTGFtYmRhIH0gZnJvbSBcXCdkYXRhZG9nLWNkay1jb25zdHJ1Y3RzLXYyXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBEYXRhRG9nQXNwZWN0IH0gZnJvbSBcXCcuLi9hc3BlY3RzL0RhdGFEb2dBc3BlY3RcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IEFwaSB9IGZyb20gXFwnLi4vY29uc3RydWN0cy9BcGlcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IFN0YXRpY1dlYnNpdGUgfSBmcm9tIFxcJy4uL2NvbnN0cnVjdHMvU3RhdGljV2Vic2l0ZVxcJzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2V4cG9ydCBpbnRlcmZhY2UgQmFzZUFwcGxpY2F0aW9uU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMgeycsXG4gICAgICAgICcnLFxuICAgICAgICAnICByZWFkb25seSBkYXRhZG9nPzogeycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgRGF0YWRvZyBOb2RlLmpzIExhbWJkYSBsYXllciB0byB1c2UuJyxcbiAgICAgICAgJyAgICAgKicsXG4gICAgICAgICcgICAgICogQGRlZmF1bHQgMTI4JyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IG5vZGVMYXllclZlcnNpb24/OiBudW1iZXI7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgRGF0YWRvZyBQeXRob24gTGFtYmRhIGxheWVyIHRvIHVzZS4nLFxuICAgICAgICAnICAgICAqJyxcbiAgICAgICAgJyAgICAgKiBAZGVmYXVsdCAxMjMnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgcHl0aG9uTGF5ZXJWZXJzaW9uPzogbnVtYmVyOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIG5hbWUgb2YgdGhlIHByb2plY3Qvc2VydmljZSBmb3IgRGF0YWRvZyB0YWdnaW5nIHB1cnBvc2VzLicsXG4gICAgICAgICcgICAgIConLFxuICAgICAgICAnICAgICAqIEBkZWZhdWx0IC0gdXNlcyB0aGUgc3RhY2sgSUQnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgcHJvamVjdE5hbWU/OiBzdHJpbmc7JyxcbiAgICAgICAgJyAgfTsnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgZG9tYWluIG5hbWUgb2YgdGhlIFJvdXRlIDUzIGhvc3RlZCB6b25lIHRvIHVzZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ21hY2Vkb24uc2FuZGJveC5kZWZpYW5jZS5haVxcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGhvc3RlZFpvbmVEb21haW5OYW1lOiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBBUk4gb2YgdGhlIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgdGhhdCBjb250YWlucyB0aGUgRGF0YWRvZyBBUEkga2V5LicsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGRhdGFkb2dTZWNyZXRBcm46IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7c3RyaW5nfToke3N0cmluZ306c2VjcmV0OiR7c3RyaW5nfWA7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBDbGVyayBKV0tTIFVSTCB1c2VkIHRvIHZlcmlmeSBzZXNzaW9uIHRva2VuIHNpZ25hdHVyZXMuJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgY2xlcmtKd2tzVXJsOiBgaHR0cHM6Ly8ke3N0cmluZ30vLndlbGwta25vd24vandrcy5qc29uYDsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIE44TiBlbmRwb2ludCBiYXNlIFVSTC4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ2h0dHBzOi8vd29ya2Zsb3cuc2FuZGJveC5kZWZpYW5jZS5haS9cXCcnLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBuOG5FbmRwb2ludDogc3RyaW5nOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgbmFtZSBvZiB0aGUgVlBDIHRvIGNyZWF0ZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBkZWZhdWx0IFxcJyR7aWR9LXZwY1xcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IHZwY05hbWU/OiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBob3N0bmFtZSBmb3IgdGhlIHN0YXRpYyB3ZWJzaXRlLiBUaGlzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGhvc3RlZHpvbmUuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZXhhbXBsZSBcXCdteWJvaVxcJycsXG4gICAgICAgICcgICAqIEBkZWZhdWx0IFxcJ212cFxcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2V4cG9ydCBjbGFzcyBCYXNlQXBwbGljYXRpb25TdGFjazxUUHJvcHMgZXh0ZW5kcyBCYXNlQXBwbGljYXRpb25TdGFja1Byb3BzPiBleHRlbmRzIFN0YWNrIHsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgZGF0YWRvZzogRGF0YWRvZ0xhbWJkYTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmU7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIHZwYzogSVZwYzsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgYXBpOiBBcGk7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIHN0YXRpY1dlYnNpdGU6IFN0YXRpY1dlYnNpdGU7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIHByaXZhdGUgaWQ6IHN0cmluZywgcHJvdGVjdGVkIHByb3BzOiBUUHJvcHMpIHsnLFxuICAgICAgICAnICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIGlmICghdGhpcy5wcm9wcy5jbGVya0p3a3NVcmwpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ2NsZXJrSndrc1VybCBpcyByZXF1aXJlZFxcJyk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVEYXRhZG9nRXh0ZW5zaW9uKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuZGF0YWRvZykgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnRGF0YWRvZyBleHRlbnNpb24gY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZUhvc3RlZFpvbmUoKTsnLFxuICAgICAgICAnICAgIGlmICghdGhpcy5ob3N0ZWRab25lKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdIb3N0ZWRab25lIGNyZWF0aW9uIGZhaWxlZFxcJyk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVWcGMoKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZUFwaSgpOycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLmFwaSkgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnQVBJIGNyZWF0aW9uIGZhaWxlZFxcJyk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVTdGF0aWNXZWJzaXRlKCk7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVPdXRwdXRzKCk7JyxcbiAgICAgICAgJyAgICBBc3BlY3RzLm9mKHRoaXMpLmFkZChuZXcgRGF0YURvZ0FzcGVjdCh7IGRhdGFkb2c6IHRoaXMuZGF0YWRvZyB9KSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlU3RhdGljV2Vic2l0ZSgpIHsnLFxuICAgICAgICAnICAgIHRoaXMuc3RhdGljV2Vic2l0ZSA9IG5ldyBTdGF0aWNXZWJzaXRlKHRoaXMsIFxcJ1N0YXRpY1dlYnNpdGVcXCcsIHsnLFxuICAgICAgICAnICAgICAgaG9zdGVkWm9uZTogdGhpcy5ob3N0ZWRab25lLCcsXG4gICAgICAgICcgICAgICBhcGk6IHRoaXMuYXBpLnJlc3RBcGksJyxcbiAgICAgICAgJyAgICAgIGhvc3RuYW1lOiB0aGlzLnByb3BzLmhvc3RuYW1lLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlQXBpKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5hcGkgPSBuZXcgQXBpKHRoaXMsIFxcJ0FwaVxcJywgeycsXG4gICAgICAgICcgICAgICB2cGM6IHRoaXMudnBjLCcsXG4gICAgICAgICcgICAgICBjbGVya0p3a3NVcmw6IHRoaXMucHJvcHMuY2xlcmtKd2tzVXJsLCcsXG4gICAgICAgICcgICAgICBuOG5FbmRwb2ludDogdGhpcy5wcm9wcy5uOG5FbmRwb2ludCwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZVZwYygpIHsnLFxuICAgICAgICAnICAgIHRoaXMudnBjID0gbmV3IFZwYyh0aGlzLCBcXCdWUENcXCcsIHsnLFxuICAgICAgICAnICAgICAgdnBjTmFtZTogdGhpcy5wcm9wcy52cGNOYW1lIHx8IGAke3RoaXMuaWR9LXZwY2AsJyxcbiAgICAgICAgJyAgICAgIG1heEF6czogMywnLFxuICAgICAgICAnICAgICAgbmF0R2F0ZXdheXM6IDEsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVIb3N0ZWRab25lKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5ob3N0ZWRab25lID0gSG9zdGVkWm9uZS5mcm9tTG9va3VwKHRoaXMsIFxcJ0hvc3RlZFpvbmVcXCcsIHsnLFxuICAgICAgICAnICAgICAgZG9tYWluTmFtZTogdGhpcy5wcm9wcy5ob3N0ZWRab25lRG9tYWluTmFtZSwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZU91dHB1dHMoKSB7JyxcbiAgICAgICAgJyAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFxcJ1dlYnNpdGVVcmxcXCcsIHsnLFxuICAgICAgICAnICAgICAgdmFsdWU6IGBodHRwczovLyR7dGhpcy5zdGF0aWNXZWJzaXRlLmhvc3RuYW1lfWAsJyxcbiAgICAgICAgJyAgICAgIGRlc2NyaXB0aW9uOiBcXCdUaGUgVVJMIG9mIHRoZSBzdGF0aWMgd2Vic2l0ZVxcJywnLFxuICAgICAgICAnICAgICAgZXhwb3J0TmFtZTogYCR7dGhpcy5pZC5yZXBsYWNlKC9cXFxcLy8sIFxcJy1cXCcpfS1XZWJzaXRlVXJsYCwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZURhdGFkb2dFeHRlbnNpb24oKSB7JyxcbiAgICAgICAgJyAgICBjb25zdCBkYXRhZG9nQXBpU2VjcmV0ID0gU2VjcmV0LmZyb21TZWNyZXRDb21wbGV0ZUFybih0aGlzLCBcXCdEYXRhZG9nQXBpS2V5XFwnLCB0aGlzLnByb3BzLmRhdGFkb2dTZWNyZXRBcm4pOycsXG4gICAgICAgICcgICAgdGhpcy5kYXRhZG9nID0gbmV3IERhdGFkb2dMYW1iZGEodGhpcywgXFwnRGF0YWRvZ1xcJywgeycsXG4gICAgICAgICcgICAgICBhcGlLZXk6IGRhdGFkb2dBcGlTZWNyZXQuc2VjcmV0VmFsdWUudG9TdHJpbmcoKSwnLFxuICAgICAgICAnICAgICAgc2VydmljZTogdGhpcy5wcm9wcy5kYXRhZG9nPy5wcm9qZWN0TmFtZSB8fCB0aGlzLmlkLCcsXG4gICAgICAgICcgICAgICBub2RlTGF5ZXJWZXJzaW9uOiB0aGlzLnByb3BzLmRhdGFkb2c/Lm5vZGVMYXllclZlcnNpb24gfHwgMTI4LCcsXG4gICAgICAgICcgICAgICBweXRob25MYXllclZlcnNpb246IHRoaXMucHJvcHMuZGF0YWRvZz8ucHl0aG9uTGF5ZXJWZXJzaW9uIHx8IDEyMywnLFxuICAgICAgICAnICAgICAgZXh0ZW5zaW9uTGF5ZXJWZXJzaW9uOiA4NiwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogQWRkcyB0aGUgY3VycmVudCBicmFuY2ggbmFtZSAoY2xlYW5lZCB3aXRoIFxcJy9cXCcgLT4gXFwnLVxcJykgaWYgbm90IG9uIHRoZSBtYWluIGJyYW5jaCcsXG4gICAgICAgICcgICAqIEBwYXJhbSBwcmVmaXgnLFxuICAgICAgICAnICAgKiBAcHJpdmF0ZScsXG4gICAgICAgICcgICovJyxcbiAgICAgICAgJyAgcHJpdmF0ZSBhZGRCcmFuY2hOYW1lKHByZWZpeDogc3RyaW5nKSB7JyxcbiAgICAgICAgJyAgICBjb25zdCBkYk92ZXJyaWRlID0gcHJvY2Vzcy5lbnYuREJfT1ZFUlJJREU7JyxcbiAgICAgICAgJyAgICBpZiAoZGJPdmVycmlkZSkgeycsXG4gICAgICAgICcgICAgICByZXR1cm4gYCR7cHJlZml4fS0ke2RiT3ZlcnJpZGV9YDsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnICAnLFxuICAgICAgICAnICAgIGNvbnN0IGhlYWQgPSBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFxcJy5naXRcXCcsIFxcJ0hFQURcXCcpLCBcXCd1dGY4XFwnKS50cmltKCk7JyxcbiAgICAgICAgJyAgICBjb25zdCBicmFuY2ggPSBoZWFkLnN0YXJ0c1dpdGgoXFwncmVmOiBcXCcpID8gaGVhZC5yZXBsYWNlKFxcJ3JlZjogcmVmcy9oZWFkcy9cXCcsIFxcJ1xcJykgOiBoZWFkOyAvLyBkZXRhY2hlZCBIRUFEIHJldHVybnMgYSBTSEEnLFxuICAgICAgICAnICAnLFxuICAgICAgICAnICAgIGlmIChicmFuY2ggIT09IFxcJ21haW5cXCcpIHsnLFxuICAgICAgICAnICAgICAgY29uc29sZS5sb2coXFwnYnJhbmNoOiBcXCcsIGJyYW5jaCk7JyxcbiAgICAgICAgJyAgICAgIGNvbnN0IGNsZWFuQnJhbmNoTmFtZSA9IGJyYW5jaC5yZXBsYWNlKC9cXFxcLy9naSwgXFwnLVxcJyk7JyxcbiAgICAgICAgJyAgICAgIHJldHVybiBgJHtwcmVmaXh9LSR7Y2xlYW5CcmFuY2hOYW1lfWA7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJyAgJyxcbiAgICAgICAgJyAgICByZXR1cm4gcHJlZml4OycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnICAnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgZ2V0RGF0YWJhc2VOYW1lKGRhdGFiYXNlTmFtZTogc3RyaW5nKSB7JyxcbiAgICAgICAgJyAgICByZXR1cm4gdGhpcy5hZGRCcmFuY2hOYW1lKGRhdGFiYXNlTmFtZSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcgICcsXG4gICAgICAgICcgIHByb3RlY3RlZCBnZXRVc2VybmFtZSh1c2VybmFtZTogc3RyaW5nKSB7JyxcbiAgICAgICAgJyAgICByZXR1cm4gdGhpcy5hZGRCcmFuY2hOYW1lKHVzZXJuYW1lKTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJ30nLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWtDO0FBR2xDLE1BQWEsZ0NBQWlDLFNBQVEsaUJBQVE7SUFDNUQsWUFBWSxPQUE0QjtRQUN0QyxLQUFLLENBQUMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFO1lBQ25ELE1BQU0sRUFBRSxJQUFJO1lBQ1osUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUU7Z0JBQ0wsd0JBQXdCO2dCQUN4Qiw0QkFBNEI7Z0JBQzVCLHdFQUF3RTtnQkFDeEUsb0RBQW9EO2dCQUNwRCxzRUFBc0U7Z0JBQ3RFLDREQUE0RDtnQkFDNUQsMkNBQTJDO2dCQUMzQyw4REFBOEQ7Z0JBQzlELDZEQUE2RDtnQkFDN0QsNENBQTRDO2dCQUM1QyxnRUFBZ0U7Z0JBQ2hFLEVBQUU7Z0JBQ0YsaUVBQWlFO2dCQUNqRSxFQUFFO2dCQUNGLHdCQUF3QjtnQkFDeEIsU0FBUztnQkFDVCxnRUFBZ0U7Z0JBQ2hFLFFBQVE7Z0JBQ1IscUJBQXFCO2dCQUNyQixTQUFTO2dCQUNULHlDQUF5QztnQkFDekMsRUFBRTtnQkFDRixTQUFTO2dCQUNULCtEQUErRDtnQkFDL0QsUUFBUTtnQkFDUixxQkFBcUI7Z0JBQ3JCLFNBQVM7Z0JBQ1QsMkNBQTJDO2dCQUMzQyxFQUFFO2dCQUNGLFNBQVM7Z0JBQ1Qsc0VBQXNFO2dCQUN0RSxRQUFRO2dCQUNSLHFDQUFxQztnQkFDckMsU0FBUztnQkFDVCxvQ0FBb0M7Z0JBQ3BDLE1BQU07Z0JBQ04sT0FBTztnQkFDUCwwREFBMEQ7Z0JBQzFELE1BQU07Z0JBQ04sK0NBQStDO2dCQUMvQyxPQUFPO2dCQUNQLDBDQUEwQztnQkFDMUMsRUFBRTtnQkFDRixPQUFPO2dCQUNQLCtFQUErRTtnQkFDL0UsT0FBTztnQkFDUCw2RkFBNkY7Z0JBQzdGLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCxrRUFBa0U7Z0JBQ2xFLE9BQU87Z0JBQ1AscUVBQXFFO2dCQUNyRSxFQUFFO2dCQUNGLE9BQU87Z0JBQ1AsaUNBQWlDO2dCQUNqQyxNQUFNO2dCQUNOLHlEQUF5RDtnQkFDekQsT0FBTztnQkFDUCxpQ0FBaUM7Z0JBQ2pDLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCxxQ0FBcUM7Z0JBQ3JDLE1BQU07Z0JBQ04sNkJBQTZCO2dCQUM3QixPQUFPO2dCQUNQLDhCQUE4QjtnQkFDOUIsRUFBRTtnQkFDRixPQUFPO2dCQUNQLGlGQUFpRjtnQkFDakYsTUFBTTtnQkFDTix5QkFBeUI7Z0JBQ3pCLHVCQUF1QjtnQkFDdkIsT0FBTztnQkFDUCw4QkFBOEI7Z0JBQzlCLEdBQUc7Z0JBQ0gsRUFBRTtnQkFDRiw2RkFBNkY7Z0JBQzdGLHFDQUFxQztnQkFDckMsc0NBQXNDO2dCQUN0Qyx3QkFBd0I7Z0JBQ3hCLHVCQUF1QjtnQkFDdkIsMkNBQTJDO2dCQUMzQyxFQUFFO2dCQUNGLGdGQUFnRjtnQkFDaEYsOEJBQThCO2dCQUM5QixFQUFFO2dCQUNGLHFDQUFxQztnQkFDckMsc0RBQXNEO2dCQUN0RCxPQUFPO2dCQUNQLEVBQUU7Z0JBQ0Ysb0NBQW9DO2dCQUNwQywwQkFBMEI7Z0JBQzFCLCtEQUErRDtnQkFDL0QsT0FBTztnQkFDUCxFQUFFO2dCQUNGLDhCQUE4QjtnQkFDOUIsNkJBQTZCO2dCQUM3Qix3REFBd0Q7Z0JBQ3hELE9BQU87Z0JBQ1AsRUFBRTtnQkFDRix1QkFBdUI7Z0JBQ3ZCLEVBQUU7Z0JBQ0YsdUJBQXVCO2dCQUN2QixzQkFBc0I7Z0JBQ3RCLGlEQUFpRDtnQkFDakQsT0FBTztnQkFDUCxFQUFFO2dCQUNGLGlDQUFpQztnQkFDakMsRUFBRTtnQkFDRiwyQkFBMkI7Z0JBQzNCLHlFQUF5RTtnQkFDekUsS0FBSztnQkFDTCxFQUFFO2dCQUNGLHFDQUFxQztnQkFDckMsdUVBQXVFO2dCQUN2RSxvQ0FBb0M7Z0JBQ3BDLDhCQUE4QjtnQkFDOUIsc0NBQXNDO2dCQUN0QyxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRiwyQkFBMkI7Z0JBQzNCLHlDQUF5QztnQkFDekMsc0JBQXNCO2dCQUN0Qiw4Q0FBOEM7Z0JBQzlDLDRDQUE0QztnQkFDNUMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsMkJBQTJCO2dCQUMzQix5Q0FBeUM7Z0JBQ3pDLHdEQUF3RDtnQkFDeEQsa0JBQWtCO2dCQUNsQix1QkFBdUI7Z0JBQ3ZCLFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLGtDQUFrQztnQkFDbEMscUVBQXFFO2dCQUNyRSxvREFBb0Q7Z0JBQ3BELFNBQVM7Z0JBQ1QsS0FBSztnQkFDTCxFQUFFO2dCQUNGLCtCQUErQjtnQkFDL0IsMkNBQTJDO2dCQUMzQyx3REFBd0Q7Z0JBQ3hELHVEQUF1RDtnQkFDdkQsa0VBQWtFO2dCQUNsRSxTQUFTO2dCQUNULEtBQUs7Z0JBQ0wsRUFBRTtnQkFDRix3Q0FBd0M7Z0JBQ3hDLGtIQUFrSDtnQkFDbEgsMkRBQTJEO2dCQUMzRCx1Q0FBdUM7Z0JBQ3ZDLDREQUE0RDtnQkFDNUQsc0VBQXNFO2dCQUN0RSwwRUFBMEU7Z0JBQzFFLGtDQUFrQztnQkFDbEMsU0FBUztnQkFDVCxLQUFLO2dCQUNMLEVBQUU7Z0JBQ0YsT0FBTztnQkFDUCwyRkFBMkY7Z0JBQzNGLG9CQUFvQjtnQkFDcEIsZUFBZTtnQkFDZixNQUFNO2dCQUNOLDJDQUEyQztnQkFDM0MsaURBQWlEO2dCQUNqRCx1QkFBdUI7Z0JBQ3ZCLHlDQUF5QztnQkFDekMsT0FBTztnQkFDUCxJQUFJO2dCQUNKLGtHQUFrRztnQkFDbEcsaUlBQWlJO2dCQUNqSSxJQUFJO2dCQUNKLGdDQUFnQztnQkFDaEMsMENBQTBDO2dCQUMxQywrREFBK0Q7Z0JBQy9ELDhDQUE4QztnQkFDOUMsT0FBTztnQkFDUCxJQUFJO2dCQUNKLG9CQUFvQjtnQkFDcEIsS0FBSztnQkFDTCxJQUFJO2dCQUNKLHFEQUFxRDtnQkFDckQsOENBQThDO2dCQUM5QyxLQUFLO2dCQUNMLElBQUk7Z0JBQ0osNkNBQTZDO2dCQUM3QywwQ0FBMEM7Z0JBQzFDLEtBQUs7Z0JBQ0wsR0FBRzthQUNKO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBMU1ELDRFQTBNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRleHRGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAgfSBmcm9tICdwcm9qZW4vbGliL2F3c2Nkayc7XG5cbmV4cG9ydCBjbGFzcyBCb290Y2FtcEJhc2VBcHBsaWNhdGlvblN0YWNrRmlsZSBleHRlbmRzIFRleHRGaWxlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCkge1xuICAgIHN1cGVyKHByb2plY3QsICdzcmMvc3RhY2tzL0Jhc2VBcHBsaWNhdGlvblN0YWNrLnRzJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICBsaW5lczogW1xuICAgICAgICAnaW1wb3J0IGZzIGZyb20gXFwnZnNcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCBwYXRoIGZyb20gXFwncGF0aFxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgQXNwZWN0cywgQ2ZuT3V0cHV0LCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gXFwnYXdzLWNkay1saWJcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IElWcGMsIFZwYyB9IGZyb20gXFwnYXdzLWNkay1saWIvYXdzLWVjMlxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgSG9zdGVkWm9uZSwgSUhvc3RlZFpvbmUgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFxcJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclxcJzsnLFxuICAgICAgICAnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdjb25zdHJ1Y3RzXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBEYXRhZG9nTGFtYmRhIH0gZnJvbSBcXCdkYXRhZG9nLWNkay1jb25zdHJ1Y3RzLXYyXFwnOycsXG4gICAgICAgICdpbXBvcnQgeyBEYXRhRG9nQXNwZWN0IH0gZnJvbSBcXCcuLi9hc3BlY3RzL0RhdGFEb2dBc3BlY3RcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IEFwaSB9IGZyb20gXFwnLi4vY29uc3RydWN0cy9BcGlcXCc7JyxcbiAgICAgICAgJ2ltcG9ydCB7IFN0YXRpY1dlYnNpdGUgfSBmcm9tIFxcJy4uL2NvbnN0cnVjdHMvU3RhdGljV2Vic2l0ZVxcJzsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2V4cG9ydCBpbnRlcmZhY2UgQmFzZUFwcGxpY2F0aW9uU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMgeycsXG4gICAgICAgICcnLFxuICAgICAgICAnICByZWFkb25seSBkYXRhZG9nPzogeycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgRGF0YWRvZyBOb2RlLmpzIExhbWJkYSBsYXllciB0byB1c2UuJyxcbiAgICAgICAgJyAgICAgKicsXG4gICAgICAgICcgICAgICogQGRlZmF1bHQgMTMyJyxcbiAgICAgICAgJyAgICAgKi8nLFxuICAgICAgICAnICAgIHJlYWRvbmx5IG5vZGVMYXllclZlcnNpb24/OiBudW1iZXI7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgLyoqJyxcbiAgICAgICAgJyAgICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgRGF0YWRvZyBQeXRob24gTGFtYmRhIGxheWVyIHRvIHVzZS4nLFxuICAgICAgICAnICAgICAqJyxcbiAgICAgICAgJyAgICAgKiBAZGVmYXVsdCAxMjMnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgcHl0aG9uTGF5ZXJWZXJzaW9uPzogbnVtYmVyOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8qKicsXG4gICAgICAgICcgICAgICogVGhlIG5hbWUgb2YgdGhlIHByb2plY3Qvc2VydmljZSBmb3IgRGF0YWRvZyB0YWdnaW5nIHB1cnBvc2VzLicsXG4gICAgICAgICcgICAgIConLFxuICAgICAgICAnICAgICAqIEBkZWZhdWx0IC0gdXNlcyB0aGUgc3RhY2sgSUQnLFxuICAgICAgICAnICAgICAqLycsXG4gICAgICAgICcgICAgcmVhZG9ubHkgcHJvamVjdE5hbWU/OiBzdHJpbmc7JyxcbiAgICAgICAgJyAgfTsnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgZG9tYWluIG5hbWUgb2YgdGhlIFJvdXRlIDUzIGhvc3RlZCB6b25lIHRvIHVzZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ21hY2Vkb24uc2FuZGJveC5kZWZpYW5jZS5haVxcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGhvc3RlZFpvbmVEb21haW5OYW1lOiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBBUk4gb2YgdGhlIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgdGhhdCBjb250YWlucyB0aGUgRGF0YWRvZyBBUEkga2V5LicsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGRhdGFkb2dTZWNyZXRBcm46IGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOiR7c3RyaW5nfToke3N0cmluZ306c2VjcmV0OiR7c3RyaW5nfWA7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBDbGVyayBKV0tTIFVSTCB1c2VkIHRvIHZlcmlmeSBzZXNzaW9uIHRva2VuIHNpZ25hdHVyZXMuJyxcbiAgICAgICAgJyAgICovJyxcbiAgICAgICAgJyAgcmVhZG9ubHkgY2xlcmtKd2tzVXJsOiBgaHR0cHM6Ly8ke3N0cmluZ30vLndlbGwta25vd24vandrcy5qc29uYDsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgLyoqJyxcbiAgICAgICAgJyAgICogVGhlIE44TiBlbmRwb2ludCBiYXNlIFVSTC4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBleGFtcGxlIFxcJ2h0dHBzOi8vd29ya2Zsb3cuc2FuZGJveC5kZWZpYW5jZS5haS9cXCcnLFxuICAgICAgICAnICAgKi8nLFxuICAgICAgICAnICByZWFkb25seSBuOG5FbmRwb2ludDogc3RyaW5nOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAvKionLFxuICAgICAgICAnICAgKiBUaGUgbmFtZSBvZiB0aGUgVlBDIHRvIGNyZWF0ZS4nLFxuICAgICAgICAnICAgKicsXG4gICAgICAgICcgICAqIEBkZWZhdWx0IFxcJyR7aWR9LXZwY1xcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IHZwY05hbWU/OiBzdHJpbmc7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIFRoZSBob3N0bmFtZSBmb3IgdGhlIHN0YXRpYyB3ZWJzaXRlLiBUaGlzIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGhvc3RlZHpvbmUuJyxcbiAgICAgICAgJyAgIConLFxuICAgICAgICAnICAgKiBAZXhhbXBsZSBcXCdteWJvaVxcJycsXG4gICAgICAgICcgICAqIEBkZWZhdWx0IFxcJ212cFxcJycsXG4gICAgICAgICcgICAqLycsXG4gICAgICAgICcgIHJlYWRvbmx5IGhvc3RuYW1lOiBzdHJpbmc7JyxcbiAgICAgICAgJ30nLFxuICAgICAgICAnJyxcbiAgICAgICAgJ2V4cG9ydCBjbGFzcyBCYXNlQXBwbGljYXRpb25TdGFjazxUUHJvcHMgZXh0ZW5kcyBCYXNlQXBwbGljYXRpb25TdGFja1Byb3BzPiBleHRlbmRzIFN0YWNrIHsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgZGF0YWRvZzogRGF0YWRvZ0xhbWJkYTsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmU7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIHZwYzogSVZwYzsnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgYXBpOiBBcGk7JyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIHN0YXRpY1dlYnNpdGU6IFN0YXRpY1dlYnNpdGU7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIHByaXZhdGUgaWQ6IHN0cmluZywgcHJvdGVjdGVkIHByb3BzOiBUUHJvcHMpIHsnLFxuICAgICAgICAnICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIGlmICghdGhpcy5wcm9wcy5jbGVya0p3a3NVcmwpIHsnLFxuICAgICAgICAnICAgICAgdGhyb3cgbmV3IEVycm9yKFxcJ2NsZXJrSndrc1VybCBpcyByZXF1aXJlZFxcJyk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVEYXRhZG9nRXh0ZW5zaW9uKCk7JyxcbiAgICAgICAgJyAgICBpZiAoIXRoaXMuZGF0YWRvZykgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnRGF0YWRvZyBleHRlbnNpb24gY3JlYXRpb24gZmFpbGVkXFwnKTsnLFxuICAgICAgICAnICAgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZUhvc3RlZFpvbmUoKTsnLFxuICAgICAgICAnICAgIGlmICghdGhpcy5ob3N0ZWRab25lKSB7JyxcbiAgICAgICAgJyAgICAgIHRocm93IG5ldyBFcnJvcihcXCdIb3N0ZWRab25lIGNyZWF0aW9uIGZhaWxlZFxcJyk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVWcGMoKTsnLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgICB0aGlzLmNyZWF0ZUFwaSgpOycsXG4gICAgICAgICcgICAgaWYgKCF0aGlzLmFwaSkgeycsXG4gICAgICAgICcgICAgICB0aHJvdyBuZXcgRXJyb3IoXFwnQVBJIGNyZWF0aW9uIGZhaWxlZFxcJyk7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVTdGF0aWNXZWJzaXRlKCk7JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgICAgdGhpcy5jcmVhdGVPdXRwdXRzKCk7JyxcbiAgICAgICAgJyAgICBBc3BlY3RzLm9mKHRoaXMpLmFkZChuZXcgRGF0YURvZ0FzcGVjdCh7IGRhdGFkb2c6IHRoaXMuZGF0YWRvZyB9KSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlU3RhdGljV2Vic2l0ZSgpIHsnLFxuICAgICAgICAnICAgIHRoaXMuc3RhdGljV2Vic2l0ZSA9IG5ldyBTdGF0aWNXZWJzaXRlKHRoaXMsIFxcJ1N0YXRpY1dlYnNpdGVcXCcsIHsnLFxuICAgICAgICAnICAgICAgaG9zdGVkWm9uZTogdGhpcy5ob3N0ZWRab25lLCcsXG4gICAgICAgICcgICAgICBhcGk6IHRoaXMuYXBpLnJlc3RBcGksJyxcbiAgICAgICAgJyAgICAgIGhvc3RuYW1lOiB0aGlzLnByb3BzLmhvc3RuYW1lLCcsXG4gICAgICAgICcgICAgfSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICcnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgY3JlYXRlQXBpKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5hcGkgPSBuZXcgQXBpKHRoaXMsIFxcJ0FwaVxcJywgeycsXG4gICAgICAgICcgICAgICB2cGM6IHRoaXMudnBjLCcsXG4gICAgICAgICcgICAgICBjbGVya0p3a3NVcmw6IHRoaXMucHJvcHMuY2xlcmtKd2tzVXJsLCcsXG4gICAgICAgICcgICAgICBuOG5FbmRwb2ludDogdGhpcy5wcm9wcy5uOG5FbmRwb2ludCwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZVZwYygpIHsnLFxuICAgICAgICAnICAgIHRoaXMudnBjID0gbmV3IFZwYyh0aGlzLCBcXCdWUENcXCcsIHsnLFxuICAgICAgICAnICAgICAgdnBjTmFtZTogdGhpcy5wcm9wcy52cGNOYW1lIHx8IGAke3RoaXMuaWR9LXZwY2AsJyxcbiAgICAgICAgJyAgICAgIG1heEF6czogMywnLFxuICAgICAgICAnICAgICAgbmF0R2F0ZXdheXM6IDEsJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIHByb3RlY3RlZCBjcmVhdGVIb3N0ZWRab25lKCkgeycsXG4gICAgICAgICcgICAgdGhpcy5ob3N0ZWRab25lID0gSG9zdGVkWm9uZS5mcm9tTG9va3VwKHRoaXMsIFxcJ0hvc3RlZFpvbmVcXCcsIHsnLFxuICAgICAgICAnICAgICAgZG9tYWluTmFtZTogdGhpcy5wcm9wcy5ob3N0ZWRab25lRG9tYWluTmFtZSwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZU91dHB1dHMoKSB7JyxcbiAgICAgICAgJyAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFxcJ1dlYnNpdGVVcmxcXCcsIHsnLFxuICAgICAgICAnICAgICAgdmFsdWU6IGBodHRwczovLyR7dGhpcy5zdGF0aWNXZWJzaXRlLmhvc3RuYW1lfWAsJyxcbiAgICAgICAgJyAgICAgIGRlc2NyaXB0aW9uOiBcXCdUaGUgVVJMIG9mIHRoZSBzdGF0aWMgd2Vic2l0ZVxcJywnLFxuICAgICAgICAnICAgICAgZXhwb3J0TmFtZTogYCR7dGhpcy5pZC5yZXBsYWNlKC9cXFxcLy8sIFxcJy1cXCcpfS1XZWJzaXRlVXJsYCwnLFxuICAgICAgICAnICAgIH0pOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGNyZWF0ZURhdGFkb2dFeHRlbnNpb24oKSB7JyxcbiAgICAgICAgJyAgICBjb25zdCBkYXRhZG9nQXBpU2VjcmV0ID0gU2VjcmV0LmZyb21TZWNyZXRDb21wbGV0ZUFybih0aGlzLCBcXCdEYXRhZG9nQXBpS2V5XFwnLCB0aGlzLnByb3BzLmRhdGFkb2dTZWNyZXRBcm4pOycsXG4gICAgICAgICcgICAgdGhpcy5kYXRhZG9nID0gbmV3IERhdGFkb2dMYW1iZGEodGhpcywgXFwnRGF0YWRvZ1xcJywgeycsXG4gICAgICAgICcgICAgICBhcGlLZXlTZWNyZXQ6IGRhdGFkb2dBcGlTZWNyZXQsJyxcbiAgICAgICAgJyAgICAgIHNlcnZpY2U6IHRoaXMucHJvcHMuZGF0YWRvZz8ucHJvamVjdE5hbWUgfHwgdGhpcy5pZCwnLFxuICAgICAgICAnICAgICAgbm9kZUxheWVyVmVyc2lvbjogdGhpcy5wcm9wcy5kYXRhZG9nPy5ub2RlTGF5ZXJWZXJzaW9uIHx8IDEzMiwnLFxuICAgICAgICAnICAgICAgcHl0aG9uTGF5ZXJWZXJzaW9uOiB0aGlzLnByb3BzLmRhdGFkb2c/LnB5dGhvbkxheWVyVmVyc2lvbiB8fCAxMjMsJyxcbiAgICAgICAgJyAgICAgIGV4dGVuc2lvbkxheWVyVmVyc2lvbjogOTksJyxcbiAgICAgICAgJyAgICB9KTsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJycsXG4gICAgICAgICcgIC8qKicsXG4gICAgICAgICcgICAqIEFkZHMgdGhlIGN1cnJlbnQgYnJhbmNoIG5hbWUgKGNsZWFuZWQgd2l0aCBcXCcvXFwnIC0+IFxcJy1cXCcpIGlmIG5vdCBvbiB0aGUgbWFpbiBicmFuY2gnLFxuICAgICAgICAnICAgKiBAcGFyYW0gcHJlZml4JyxcbiAgICAgICAgJyAgICogQHByaXZhdGUnLFxuICAgICAgICAnICAqLycsXG4gICAgICAgICcgIHByaXZhdGUgYWRkQnJhbmNoTmFtZShwcmVmaXg6IHN0cmluZykgeycsXG4gICAgICAgICcgICAgY29uc3QgZGJPdmVycmlkZSA9IHByb2Nlc3MuZW52LkRCX09WRVJSSURFOycsXG4gICAgICAgICcgICAgaWYgKGRiT3ZlcnJpZGUpIHsnLFxuICAgICAgICAnICAgICAgcmV0dXJuIGAke3ByZWZpeH0tJHtkYk92ZXJyaWRlfWA7JyxcbiAgICAgICAgJyAgICB9JyxcbiAgICAgICAgJyAgJyxcbiAgICAgICAgJyAgICBjb25zdCBoZWFkID0gZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcXCcuZ2l0XFwnLCBcXCdIRUFEXFwnKSwgXFwndXRmOFxcJykudHJpbSgpOycsXG4gICAgICAgICcgICAgY29uc3QgYnJhbmNoID0gaGVhZC5zdGFydHNXaXRoKFxcJ3JlZjogXFwnKSA/IGhlYWQucmVwbGFjZShcXCdyZWY6IHJlZnMvaGVhZHMvXFwnLCBcXCdcXCcpIDogaGVhZDsgLy8gZGV0YWNoZWQgSEVBRCByZXR1cm5zIGEgU0hBJyxcbiAgICAgICAgJyAgJyxcbiAgICAgICAgJyAgICBpZiAoYnJhbmNoICE9PSBcXCdtYWluXFwnKSB7JyxcbiAgICAgICAgJyAgICAgIGNvbnNvbGUubG9nKFxcJ2JyYW5jaDogXFwnLCBicmFuY2gpOycsXG4gICAgICAgICcgICAgICBjb25zdCBjbGVhbkJyYW5jaE5hbWUgPSBicmFuY2gucmVwbGFjZSgvXFxcXC8vZ2ksIFxcJy1cXCcpOycsXG4gICAgICAgICcgICAgICByZXR1cm4gYCR7cHJlZml4fS0ke2NsZWFuQnJhbmNoTmFtZX1gOycsXG4gICAgICAgICcgICAgfScsXG4gICAgICAgICcgICcsXG4gICAgICAgICcgICAgcmV0dXJuIHByZWZpeDsnLFxuICAgICAgICAnICB9JyxcbiAgICAgICAgJyAgJyxcbiAgICAgICAgJyAgcHJvdGVjdGVkIGdldERhdGFiYXNlTmFtZShkYXRhYmFzZU5hbWU6IHN0cmluZykgeycsXG4gICAgICAgICcgICAgcmV0dXJuIHRoaXMuYWRkQnJhbmNoTmFtZShkYXRhYmFzZU5hbWUpOycsXG4gICAgICAgICcgIH0nLFxuICAgICAgICAnICAnLFxuICAgICAgICAnICBwcm90ZWN0ZWQgZ2V0VXNlcm5hbWUodXNlcm5hbWU6IHN0cmluZykgeycsXG4gICAgICAgICcgICAgcmV0dXJuIHRoaXMuYWRkQnJhbmNoTmFtZSh1c2VybmFtZSk7JyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICd9JyxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -12,7 +12,7 @@ const SoftwareFactoryFiles_1 = require("./SoftwareFactoryFiles");
12
12
  const utils_1 = require("./utils");
13
13
  const ViteReactProject_1 = require("./ViteReactProject");
14
14
  class BootcampProject extends awscdk_1.AwsCdkTypeScriptApp {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BootcampProject", version: "1.19.2" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BootcampProject", version: "1.20.0" };
16
16
  constructor(options) {
17
17
  super({
18
18
  ...options,
@@ -4,7 +4,7 @@ exports.CodeOwnersFile = void 0;
4
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const projen_1 = require("projen");
6
6
  class CodeOwnersFile extends projen_1.TextFile {
7
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.CodeOwnersFile", version: "1.19.2" };
7
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.CodeOwnersFile", version: "1.20.0" };
8
8
  constructor(project, options = {}) {
9
9
  const defaultOwners = ['* @macedon-technologies/platform', '* @macedon-technologies/ai-development-team'];
10
10
  const allOwners = [...defaultOwners, ...(options.additionalOwners || [])];
@@ -7,7 +7,7 @@ const javascript_1 = require("projen/lib/javascript");
7
7
  const utils_1 = require("./utils");
8
8
  const WorkflowActionVersions_1 = require("./WorkflowActionVersions");
9
9
  class ProductionDeployWorkflow extends projen_1.YamlFile {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.ProductionDeployWorkflow", version: "1.19.2" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.ProductionDeployWorkflow", version: "1.20.0" };
11
11
  constructor(project, options) {
12
12
  const packageManager = project.package.packageManager;
13
13
  const actionVersions = (0, WorkflowActionVersions_1.resolveActionVersions)(options.actionVersions);
@@ -31,7 +31,7 @@ const GITHUB_OWNER = 'macedon-technologies';
31
31
  * workflows that wire them together) is templated.
32
32
  */
33
33
  class SoftwareFactoryFiles {
34
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.SoftwareFactoryFiles", version: "1.19.2" };
34
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.SoftwareFactoryFiles", version: "1.20.0" };
35
35
  constructor(project, options) {
36
36
  const { repoName, actionVersions } = options;
37
37
  const baseBranch = options.baseBranch || 'main';
@@ -132,7 +132,11 @@ globalArguments:
132
132
  - id: openspec-plan-verify
133
133
  description: >-
134
134
  Verify the OpenSpec change is real and well-formed (not just an
135
- artifact claiming one exists) before implementation starts.
135
+ artifact claiming one exists) before implementation starts. Requires
136
+ a human to approve the 'implementation-approval' gate before
137
+ advancing to implementing. A reject on that gate doesn't dead-end
138
+ the run — take the ungated 'rework' transition back to planning to
139
+ produce a revised plan and ask again.
136
140
  work:
137
141
  mode: workflow
138
142
  workflow:
@@ -146,11 +150,16 @@ globalArguments:
146
150
  gates:
147
151
  - type: workflow-succeeded
148
152
  config: { workflow: openspec-plan-verify }
153
+ - type: human-approval
154
+ config: { id: implementation-approval }
149
155
  - name: fail
150
156
  to: planning
151
157
  gates:
152
158
  - type: evidence-recorded
153
159
  config: { name: plan-verify-run, requireField: { status: failed } }
160
+ - name: rework
161
+ to: planning
162
+ gates: []
154
163
 
155
164
  - id: implementing
156
165
  description: Implement the OpenSpec change's tasks on a branch.
@@ -313,4 +322,4 @@ methods: {}
313
322
  }
314
323
  }
315
324
  exports.SoftwareFactoryModels = SoftwareFactoryModels;
316
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5TW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NvZnR3YXJlRmFjdG9yeU1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbUNBQW9DO0FBcUJwQzs7Ozs7R0FLRztBQUNILE1BQWEscUJBQXFCO0lBQ2hDLFlBQVksT0FBb0IsRUFBRSxPQUFxQztRQUNyRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxXQUFXLElBQUksUUFBUSxFQUFFLENBQUM7UUFDMUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxRQUFRLFNBQVMsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxHQUFHLFFBQVEsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLEdBQUcsUUFBUSxRQUFRLENBQUM7UUFDdkMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLFFBQVEscUJBQXFCLENBQUM7UUFDaEUsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLFFBQVEsaUJBQWlCLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsR0FBRyxRQUFRLFVBQVUsQ0FBQztRQUMzQyxNQUFNLFlBQVksR0FBRyxHQUFHLFFBQVEsVUFBVSxDQUFDO1FBRTNDLElBQUksbUJBQVUsQ0FBQyxPQUFPLEVBQUUsNEJBQTRCLE9BQU8sT0FBTyxFQUFFO1lBQ2xFLFFBQVEsRUFBRTs7TUFFVixJQUFBLG1CQUFVLEdBQUU7UUFDVixPQUFPOzs7OzJCQUlZLFlBQVk7V0FDNUIsV0FBVzs7Q0FFckI7U0FDSSxDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDJCQUEyQixXQUFXLE9BQU8sRUFBRTtZQUNyRSxRQUFRLEVBQUU7O01BRVYsSUFBQSxtQkFBVSxHQUFFO1FBQ1YsV0FBVzs7Ozs7Q0FLbEI7U0FDSSxDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUM1RSxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLHdCQUF3QixJQUFJLE9BQU8sRUFBRTtnQkFDM0QsUUFBUSxFQUFFOztNQUVaLElBQUEsbUJBQVUsR0FBRTtRQUNWLElBQUk7Ozs7O0NBS1g7YUFDTSxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxtQkFBVSxDQUFDLE9BQU8sRUFBRSxrQ0FBa0MsWUFBWSxPQUFPLEVBQUU7WUFDN0UsUUFBUSxFQUFFOztNQUVWLElBQUEsbUJBQVUsR0FBRTtRQUNWLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQWtCUixJQUFJLGNBQWMsV0FBVzs7WUFFN0IsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NEQXdLK0Isa0JBQWtCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0JBd0JsRCxPQUFPO2tCQUNYLElBQUk7MkNBQ3FCLFVBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWlDcEQ7U0FDSSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsVEQsc0RBa1RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBTYW1wbGVGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcblxuZXhwb3J0IGludGVyZmFjZSBTb2Z0d2FyZUZhY3RvcnlNb2RlbHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBiYXJlIHJlcG8gbmFtZSAoZS5nLiBgZXhwZW5zZS10cmFja2VyYCksIHVzZWQgdG8gZGVyaXZlIG1vZGVsIG5hbWVzXG4gICAqIGxpa2UgYDxyZXBvTmFtZT4tZmFjdG9yeWAsIGA8cmVwb05hbWU+LXNoZWxsYCwgYDxyZXBvTmFtZT4tc2VjcmV0c2AuXG4gICAqL1xuICByZWFkb25seSByZXBvTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIG9yZyB0aGUgcmVwbyBsaXZlcyBpbi5cbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1Yk93bmVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBicmFuY2ggdGhlIGZhY3Rvcnkgb3BlbnMgcHVsbCByZXF1ZXN0cyBhZ2FpbnN0LlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZUJyYW5jaDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNlZWQgc3dhbXAgbW9kZWwgaW5zdGFuY2VzIHdpcmluZyB0aGUgYEBzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5YCBzdGF0ZVxuICogbWFjaGluZSB0byB0aGlzIHJlcG8ncyBHaXRIdWIgaXNzdWVzL1BScyBhbmQgc2hlbGwgc3RlcHMuIFRoZXNlIGFyZVxuICogYFNhbXBsZUZpbGVgcyAod3JpdHRlbiBvbmNlLCB0aGVuIG93bmVkIGJ5IHRoZSB0ZWFtKSBzaW5jZSB0aGUgZmFjdG9yeSdzXG4gKiBzdGFnZXMvZ2F0ZXMgYXJlIHRoZSBraW5kIG9mIHRoaW5nIGEgdGVhbSB0dW5lcyBmb3IgaXRzIG93biB3b3JrZmxvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNvZnR3YXJlRmFjdG9yeU1vZGVscyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBTb2Z0d2FyZUZhY3RvcnlNb2RlbHNPcHRpb25zKSB7XG4gICAgY29uc3QgeyByZXBvTmFtZSwgZ2l0aHViT3duZXIsIGJhc2VCcmFuY2ggfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgcmVwbyA9IGAke2dpdGh1Yk93bmVyfS8ke3JlcG9OYW1lfWA7XG4gICAgY29uc3QgaXNzdWVzTW9kZWwgPSBgJHtyZXBvTmFtZX0taXNzdWVzYDtcbiAgICBjb25zdCBwck1vZGVsID0gYCR7cmVwb05hbWV9LXByYDtcbiAgICBjb25zdCBzaGVsbE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsYDtcbiAgICBjb25zdCBzaGVsbEFyY2hpdGVjdHVyZU1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLWFyY2hpdGVjdHVyZWA7XG4gICAgY29uc3Qgc2hlbGxNYW5pZmVzdE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLW1hbmlmZXN0YDtcbiAgICBjb25zdCBzZWNyZXRzVmF1bHQgPSBgJHtyZXBvTmFtZX0tc2VjcmV0c2A7XG4gICAgY29uc3QgZmFjdG9yeU1vZGVsID0gYCR7cmVwb05hbWV9LWZhY3RvcnlgO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgYG1vZGVscy9AZ29vZGNyYWZ0L2dpdGh1Yi8ke3ByTW9kZWx9LnlhbWxgLCB7XG4gICAgICBjb250ZW50czogYHR5cGU6ICdAZ29vZGNyYWZ0L2dpdGh1YidcbnR5cGVWZXJzaW9uOiAyMDI2LjA2LjE0LjFcbmlkOiAke3JhbmRvbVVVSUQoKX1cbm5hbWU6ICR7cHJNb2RlbH1cbnZlcnNpb246IDFcbnRhZ3M6IHt9XG5nbG9iYWxBcmd1bWVudHM6XG4gIHRva2VuOiAnXFwke3sgdmF1bHQuZ2V0KCR7c2VjcmV0c1ZhdWx0fSwgR0lUSFVCX1RPS0VOKSB9fSdcbiAgb3duZXI6ICR7Z2l0aHViT3duZXJ9XG5tZXRob2RzOiB7fVxuYCxcbiAgICB9KTtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsIGBtb2RlbHMvQHdlYmZyYW1wL2dpdGh1Yi8ke2lzc3Vlc01vZGVsfS55YW1sYCwge1xuICAgICAgY29udGVudHM6IGB0eXBlOiAnQHdlYmZyYW1wL2dpdGh1YidcbnR5cGVWZXJzaW9uOiAyMDI2LjA4LjI4LjFcbmlkOiAke3JhbmRvbVVVSUQoKX1cbm5hbWU6ICR7aXNzdWVzTW9kZWx9XG52ZXJzaW9uOiAxXG50YWdzOiB7fVxuZ2xvYmFsQXJndW1lbnRzOiB7fVxubWV0aG9kczoge31cbmAsXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgW3NoZWxsTW9kZWwsIHNoZWxsQXJjaGl0ZWN0dXJlTW9kZWwsIHNoZWxsTWFuaWZlc3RNb2RlbF0pIHtcbiAgICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsIGBtb2RlbHMvY29tbWFuZC9zaGVsbC8ke25hbWV9LnlhbWxgLCB7XG4gICAgICAgIGNvbnRlbnRzOiBgdHlwZTogY29tbWFuZC9zaGVsbFxudHlwZVZlcnNpb246IDIwMjYuMDIuMDkuMVxuaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogJHtuYW1lfVxudmVyc2lvbjogMVxudGFnczoge31cbmdsb2JhbEFyZ3VtZW50czoge31cbm1ldGhvZHM6IHt9XG5gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgYG1vZGVscy9Ac3dhbXAvc29mdHdhcmUtZmFjdG9yeS8ke2ZhY3RvcnlNb2RlbH0ueWFtbGAsIHtcbiAgICAgIGNvbnRlbnRzOiBgdHlwZTogJ0Bzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5J1xudHlwZVZlcnNpb246IDIwMjYuMDYuMjQuMVxuaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogJHtmYWN0b3J5TW9kZWx9XG52ZXJzaW9uOiAxXG50YWdzOiB7fVxucmVwb3J0czpcbiAgcmVxdWlyZTpcbiAgICAtIG5hbWU6IFwiQHN3YW1wL3NvZnR3YXJlLWZhY3Rvcnkvd29yay1pdGVtLXN1bW1hcnlcIlxuICAgICAgbWV0aG9kczogW3N1bW1hcnldXG5nbG9iYWxBcmd1bWVudHM6XG4gIHN0YWdlczpcbiAgICAtIGlkOiBpbnRha2VcbiAgICAgIGluaXRpYWw6IHRydWVcbiAgICAgIGRlc2NyaXB0aW9uOiA+LVxuICAgICAgICBGZXRjaCB0aGUgR2l0SHViIGlzc3VlIGZvciB0aGlzIHdvcmsgaXRlbSAod29ya0l0ZW0gaXMgdGhlIGJhcmVcbiAgICAgICAgaXNzdWUgbnVtYmVyKSBhbmQgcmVjb3JkIGl0cyBjb250ZXh0LlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogaW50ZXJhY3RpdmVcbiAgICAgICAgc3lzdGVtUHJvbXB0OiA+LVxuICAgICAgICAgIEZldGNoIHRoZSBHaXRIdWIgaXNzdWUgbnVtYmVyZWQgXFwke3sgc2VsZi53b3JrSXRlbSB9fSBmb3JcbiAgICAgICAgICAke3JlcG99IHVzaW5nIHRoZSAke2lzc3Vlc01vZGVsfSBtb2RlbFxuICAgICAgICAgIChsaXN0X2lzc3VlcywgdGhlbiBzd2FtcCBkYXRhIHF1ZXJ5IGZpbHRlcmVkIGJ5IG51bWJlciDigJQgc2VlIHRoZVxuICAgICAgICAgICR7aXNzdWVzTW9kZWx9IGRhdGEpLCBhbmQgcmVjb3JkIHRoZSBpc3N1ZS1jb250ZXh0IGFydGlmYWN0LlxuICAgICAgYXJ0aWZhY3RzOlxuICAgICAgICAtIG5hbWU6IGlzc3VlLWNvbnRleHRcbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbbnVtYmVyLCB0aXRsZSwgdXJsXVxuICAgICAgICAgICAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgbnVtYmVyOiB7IHR5cGU6IGludGVnZXIgfVxuICAgICAgICAgICAgICB0aXRsZTogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogMSB9XG4gICAgICAgICAgICAgIGJvZHk6IHsgdHlwZTogc3RyaW5nIH1cbiAgICAgICAgICAgICAgdXJsOiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiAxIH1cbiAgICAgICAgICAgICAgbGFiZWxzOiB7IHR5cGU6IGFycmF5LCBpdGVtczogeyB0eXBlOiBzdHJpbmcgfSB9XG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBzdWJtaXRcbiAgICAgICAgICB0bzogcGxhbm5pbmdcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogYXJ0aWZhY3QtZXhpc3RzXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBhcnRpZmFjdDogaXNzdWUtY29udGV4dCB9XG5cbiAgICAtIGlkOiBwbGFubmluZ1xuICAgICAgZGVzY3JpcHRpb246ID4tXG4gICAgICAgIFR1cm4gdGhlIGlzc3VlIGludG8gYSByZWFsIE9wZW5TcGVjIGNoYW5nZSAocHJvcG9zYWwsIGRlc2lnbixcbiAgICAgICAgc3BlY3MsIHRhc2tzKSDigJQgT3BlblNwZWMncyB0YXNrIGxpc3QgaXMgdGhlIHBsYW4sIG5vdCBhXG4gICAgICAgIGZyZWVmb3JtIGFydGlmYWN0LlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogaW50ZXJhY3RpdmVcbiAgICAgICAgc3lzdGVtUHJvbXB0OiA+LVxuICAgICAgICAgIFVzaW5nIHRoZSByZWNvcmRlZCBpc3N1ZS1jb250ZXh0IGFydGlmYWN0LCB1c2UgdGhlXG4gICAgICAgICAgb3BlbnNwZWMtcHJvcG9zZSBza2lsbCB0byBjcmVhdGUgYSBjb21wbGV0ZSBPcGVuU3BlYyBjaGFuZ2VcbiAgICAgICAgICAocHJvcG9zYWwubWQsIGRlc2lnbi5tZCwgc3BlY3Mgd2l0aCBkZWx0YXMsIHRhc2tzLm1kKSBmb3IgdGhpc1xuICAgICAgICAgIHdvcmsgaXRlbSB1bmRlciBvcGVuc3BlYy9jaGFuZ2VzLzxjaGFuZ2VTbHVnPi8g4oCUIGRvIG5vdCB3cml0ZSBhXG4gICAgICAgICAgZnJlZWZvcm0gcGxhbiBpbnN0ZWFkIG9mIHRoaXMuIFRoZW4gcmVjb3JkIHRoZSBwbGFuIGFydGlmYWN0XG4gICAgICAgICAgd2l0aCB0aGUgY2hhbmdlJ3Mgc2x1ZyBhbmQgYSBvbmUtbGluZSBzdW1tYXJ5LlxuICAgICAgYXJ0aWZhY3RzOlxuICAgICAgICAtIG5hbWU6IHBsYW5cbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbY2hhbmdlU2x1Zywgc3VtbWFyeV1cbiAgICAgICAgICAgIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgIGNoYW5nZVNsdWc6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDEgfVxuICAgICAgICAgICAgICBzdW1tYXJ5OiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiAxIH1cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHN1Ym1pdFxuICAgICAgICAgIHRvOiBvcGVuc3BlYy1wbGFuLXZlcmlmeVxuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiBhcnRpZmFjdC1leGlzdHNcbiAgICAgICAgICAgICAgY29uZmlnOiB7IGFydGlmYWN0OiBwbGFuIH1cblxuICAgIC0gaWQ6IG9wZW5zcGVjLXBsYW4tdmVyaWZ5XG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgVmVyaWZ5IHRoZSBPcGVuU3BlYyBjaGFuZ2UgaXMgcmVhbCBhbmQgd2VsbC1mb3JtZWQgKG5vdCBqdXN0IGFuXG4gICAgICAgIGFydGlmYWN0IGNsYWltaW5nIG9uZSBleGlzdHMpIGJlZm9yZSBpbXBsZW1lbnRhdGlvbiBzdGFydHMuXG4gICAgICB3b3JrOlxuICAgICAgICBtb2RlOiB3b3JrZmxvd1xuICAgICAgICB3b3JrZmxvdzpcbiAgICAgICAgICBuYW1lOiBvcGVuc3BlYy1wbGFuLXZlcmlmeVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIGNoYW5nZVNsdWc6ICdcXCR7eyBkYXRhLmxhdGVzdChzZWxmLm5hbWUsIFwiYXJ0aWZhY3QtcGxhblwiKS5wYXlsb2FkLmNoYW5nZVNsdWcgfX0nXG4gICAgICAgIHJlc3VsdEV2aWRlbmNlOiBwbGFuLXZlcmlmeS1ydW5cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHBhc3NcbiAgICAgICAgICB0bzogaW1wbGVtZW50aW5nXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IHdvcmtmbG93LXN1Y2NlZWRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgd29ya2Zsb3c6IG9wZW5zcGVjLXBsYW4tdmVyaWZ5IH1cbiAgICAgICAgLSBuYW1lOiBmYWlsXG4gICAgICAgICAgdG86IHBsYW5uaW5nXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IGV2aWRlbmNlLXJlY29yZGVkXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBuYW1lOiBwbGFuLXZlcmlmeS1ydW4sIHJlcXVpcmVGaWVsZDogeyBzdGF0dXM6IGZhaWxlZCB9IH1cblxuICAgIC0gaWQ6IGltcGxlbWVudGluZ1xuICAgICAgZGVzY3JpcHRpb246IEltcGxlbWVudCB0aGUgT3BlblNwZWMgY2hhbmdlJ3MgdGFza3Mgb24gYSBicmFuY2guXG4gICAgICB3b3JrOlxuICAgICAgICBtb2RlOiBpbnRlcmFjdGl2ZVxuICAgICAgICBzeXN0ZW1Qcm9tcHQ6ID4tXG4gICAgICAgICAgVXNlIHRoZSBvcGVuc3BlYy1hcHBseS1jaGFuZ2Ugc2tpbGwgYWdhaW5zdCB0aGUgY2hhbmdlIHJlY29yZGVkXG4gICAgICAgICAgaW4gdGhlIHBsYW4gYXJ0aWZhY3QncyBjaGFuZ2VTbHVnIOKAlCB3b3JrIHRocm91Z2ggaXRzIHRhc2tzLm1kXG4gICAgICAgICAgb25lIHRhc2sgYXQgYSB0aW1lLCBjaGVja2luZyBlYWNoIG9mZiAoXFxgLSBbIF1cXGAgLT4gXFxgLSBbeF1cXGApIGFzXG4gICAgICAgICAgeW91IGNvbXBsZXRlIGl0LCB1bnRpbCBldmVyeSB0YXNrIGlzIGRvbmUuIENvbW1pdCB0aGUgd29yayBvbiBhXG4gICAgICAgICAgZmVhdHVyZSBicmFuY2guIFJlY29yZCB0aGUgY2hhbmdlLXN1bW1hcnkgYXJ0aWZhY3QgYW5kIHRoZVxuICAgICAgICAgIGNoYW5nZS1yZXF1ZXN0IGV2aWRlbmNlIChicmFuY2ggbmFtZSBhbmQgaGVhZCBjb21taXQgc2hhIOKAlCBub1xuICAgICAgICAgIFBSIHlldCwgdGhhdCBoYXBwZW5zIGFmdGVyIHByZS1QUiB2ZXJpZmljYXRpb24gcGFzc2VzKS5cbiAgICAgIGFydGlmYWN0czpcbiAgICAgICAgLSBuYW1lOiBjaGFuZ2Utc3VtbWFyeVxuICAgICAgICAgIHNjaGVtYTpcbiAgICAgICAgICAgIHR5cGU6IG9iamVjdFxuICAgICAgICAgICAgcmVxdWlyZWQ6IFtzdW1tYXJ5LCBoZWFkU2hhXVxuICAgICAgICAgICAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgc3VtbWFyeTogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogMSB9XG4gICAgICAgICAgICAgIGhlYWRTaGE6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDcgfVxuICAgICAgZXZpZGVuY2U6XG4gICAgICAgIC0gbmFtZTogY2hhbmdlLXJlcXVlc3RcbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbYnJhbmNoLCBoZWFkU2hhXVxuICAgICAgICAgICAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgYnJhbmNoOiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiAxIH1cbiAgICAgICAgICAgICAgaGVhZFNoYTogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogNyB9XG4gICAgICAgICAgICAgIHVybDogeyB0eXBlOiBzdHJpbmcgfVxuICAgICAgdHJhbnNpdGlvbnM6XG4gICAgICAgIC0gbmFtZTogc3VibWl0XG4gICAgICAgICAgdG86IG9wZW5zcGVjLXRhc2tzLXZlcmlmeVxuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiBhcnRpZmFjdC1leGlzdHNcbiAgICAgICAgICAgICAgY29uZmlnOiB7IGFydGlmYWN0OiBjaGFuZ2Utc3VtbWFyeSB9XG4gICAgICAgICAgICAtIHR5cGU6IGV2aWRlbmNlLXJlY29yZGVkXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBuYW1lOiBjaGFuZ2UtcmVxdWVzdCB9XG5cbiAgICAtIGlkOiBvcGVuc3BlYy10YXNrcy12ZXJpZnlcbiAgICAgIGRlc2NyaXB0aW9uOiA+LVxuICAgICAgICBWZXJpZnkgZXZlcnkgdGFzayBpbiB0aGUgT3BlblNwZWMgY2hhbmdlIGlzIGFjdHVhbGx5IGNoZWNrZWQgb2ZmXG4gICAgICAgIGJlZm9yZSBwcmUtUFIgdmVyaWZpY2F0aW9uIHJ1bnMuXG4gICAgICB3b3JrOlxuICAgICAgICBtb2RlOiB3b3JrZmxvd1xuICAgICAgICB3b3JrZmxvdzpcbiAgICAgICAgICBuYW1lOiBvcGVuc3BlYy10YXNrcy12ZXJpZnlcbiAgICAgICAgICBpbnB1dHM6XG4gICAgICAgICAgICBjaGFuZ2VTbHVnOiAnXFwke3sgZGF0YS5sYXRlc3Qoc2VsZi5uYW1lLCBcImFydGlmYWN0LXBsYW5cIikucGF5bG9hZC5jaGFuZ2VTbHVnIH19J1xuICAgICAgICByZXN1bHRFdmlkZW5jZTogdGFza3MtdmVyaWZ5LXJ1blxuICAgICAgdHJhbnNpdGlvbnM6XG4gICAgICAgIC0gbmFtZTogcGFzc1xuICAgICAgICAgIHRvOiBwcmUtcHItdmVyaWZ5XG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IHdvcmtmbG93LXN1Y2NlZWRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgd29ya2Zsb3c6IG9wZW5zcGVjLXRhc2tzLXZlcmlmeSB9XG4gICAgICAgIC0gbmFtZTogZmFpbFxuICAgICAgICAgIHRvOiBpbXBsZW1lbnRpbmdcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogZXZpZGVuY2UtcmVjb3JkZWRcbiAgICAgICAgICAgICAgY29uZmlnOiB7IG5hbWU6IHRhc2tzLXZlcmlmeS1ydW4sIHJlcXVpcmVGaWVsZDogeyBzdGF0dXM6IGZhaWxlZCB9IH1cblxuICAgIC0gaWQ6IHByZS1wci12ZXJpZnlcbiAgICAgIGRlc2NyaXB0aW9uOiA+LVxuICAgICAgICBQcmUtUFIgdmVyaWZpY2F0aW9uOiBidWlsZC9zeW50aC90ZXN0L2xpbnQgcGx1cyB0aGUgYXJjaGl0ZWN0dXJlXG4gICAgICAgIHJ1bGUgcmVnaXN0cnksIHJ1biBiZWZvcmUgdGhlIFBSIGlzIG9wZW5lZCByYXRoZXIgdGhhbiByZWx5aW5nIG9uXG4gICAgICAgIENJIGFmdGVyIHRoZSBmYWN0LlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogd29ya2Zsb3dcbiAgICAgICAgd29ya2Zsb3c6XG4gICAgICAgICAgbmFtZTogcHJlLXByLXZlcmlmeVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIGNvbW1pdDogJ1xcJHt7IGRhdGEubGF0ZXN0KHNlbGYubmFtZSwgXCJldmlkZW5jZS1jaGFuZ2UtcmVxdWVzdFwiKS5wYXlsb2FkLmhlYWRTaGEgfX0nXG4gICAgICAgICAgICBicmFuY2g6ICdcXCR7eyBkYXRhLmxhdGVzdChzZWxmLm5hbWUsIFwiZXZpZGVuY2UtY2hhbmdlLXJlcXVlc3RcIikucGF5bG9hZC5icmFuY2ggfX0nXG4gICAgICAgIHJlc3VsdEV2aWRlbmNlOiB2ZXJpZnktcnVuXG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBwYXNzXG4gICAgICAgICAgdG86IG9wZW4tcHJcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogd29ya2Zsb3ctc3VjY2VlZGVkXG4gICAgICAgICAgICAgIGNvbmZpZzogeyB3b3JrZmxvdzogcHJlLXByLXZlcmlmeSB9XG4gICAgICAgIC0gbmFtZTogZmFpbFxuICAgICAgICAgIHRvOiBpbXBsZW1lbnRpbmdcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogZXZpZGVuY2UtcmVjb3JkZWRcbiAgICAgICAgICAgICAgY29uZmlnOiB7IG5hbWU6IHZlcmlmeS1ydW4sIHJlcXVpcmVGaWVsZDogeyBzdGF0dXM6IGZhaWxlZCB9IH1cblxuICAgIC0gaWQ6IG9wZW4tcHJcbiAgICAgIGRlc2NyaXB0aW9uOiBPcGVuIHRoZSBwdWxsIHJlcXVlc3Qgbm93IHRoYXQgcHJlLVBSIHZlcmlmaWNhdGlvbiBoYXMgcGFzc2VkLlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogaW50ZXJhY3RpdmVcbiAgICAgICAgc3lzdGVtUHJvbXB0OiA+LVxuICAgICAgICAgIEJlZm9yZSBvcGVuaW5nIHRoZSBQUiwgZmV0Y2ggdGhlIHJlYWwgcHJlLXByLXZlcmlmeSBhdHRlc3RhdGlvblxuICAgICAgICAgIHdpdGggXFxgc3dhbXAgZGF0YSBnZXQgLS13b3JrZmxvdyBwcmUtcHItdmVyaWZ5XG4gICAgICAgICAgcmVwb3J0LXN3YW1wLXZlcmlmaWNhdGlvbi1hdHRlc3RhdGlvbiAtLWpzb25cXGAgYW5kIGluY2x1ZGUgaXRzXG4gICAgICAgICAgXFxgY29udGVudFxcYCB2ZXJiYXRpbSAoYXMgYSBtYXJrZG93biBibG9jaywgZS5nLiB1bmRlciBhIFwiUHJlLVBSXG4gICAgICAgICAgdmVyaWZpY2F0aW9uXCIgaGVhZGluZykgaW4gdGhlIFBSIGJvZHkg4oCUIG5ldmVyIGp1c3QgYXNzZXJ0IGluXG4gICAgICAgICAgcHJvc2UgdGhhdCBjaGVja3MgcGFzc2VkLiBBbHNvIGZldGNoIHRoaXMgc2FtZSBydW4ncyBtYW5pZmVzdCBzdGVwXG4gICAgICAgICAgb3V0cHV0IChcXGBzd2FtcCBkYXRhIHF1ZXJ5ICdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTWFuaWZlc3RNb2RlbH1cIiAmJlxuICAgICAgICAgIG5hbWUgPT0gXCJyZXN1bHRcIicgLS1zZWxlY3QgYXR0cmlidXRlcy5zdGRvdXQgLS1qc29uXFxgLCB0YWtlIHRoZVxuICAgICAgICAgIGxhdGVzdCkgYW5kIGFwcGVuZCBpdCB0byB0aGUgUFIgYm9keSBhc1xuICAgICAgICAgIFxcYDwhLS0gYXR0ZXN0YXRpb24tbWFuaWZlc3Qge1wiY29tbWl0XCI6IFwiPGhlYWRTaGE+XCIsIFwic3RhdHVzXCI6XG4gICAgICAgICAgXCJzdWNjZWVkZWRcIiwgLi4udGhlIG1hbmlmZXN0IHN0ZXAncyBKU09OLCBzcHJlYWQgaW4uLi59IC0tPlxcYCDigJQgYW5cbiAgICAgICAgICBIVE1MIGNvbW1lbnQgc28gaXQncyBpbnZpc2libGUgd2hlbiByZW5kZXJlZCBidXQgc3RpbGwgcHJlc2VudCBpblxuICAgICAgICAgIHRoZSByYXcgYm9keSB0ZXh0IHZlcmlmeS1hdHRlc3RhdGlvbi55bWwgcmVhZHMgdmlhIHRoZSBHaXRIdWIgQVBJLlxuICAgICAgICAgIEFsc28gZmV0Y2ggdGhlIHBsYW4gYXJ0aWZhY3QncyBjaGFuZ2VTbHVnIGFuZCBpbmNsdWRlIGFuIGV4cGxpY2l0XG4gICAgICAgICAgXCJPcGVuU3BlYyBjaGFuZ2VcIiBsaW5lIGluIHRoZSBQUiBib2R5IG5hbWluZyBpdCBhbmQgaXRzIHBhdGhcbiAgICAgICAgICAoXFxgb3BlbnNwZWMvY2hhbmdlcy88Y2hhbmdlU2x1Zz4vXFxgKSDigJQgZXZlcnkgUFIgdGhlIGZhY3Rvcnkgb3BlbnNcbiAgICAgICAgICBtdXN0IGNhbGwgb3V0IHdoaWNoIE9wZW5TcGVjIGNoYW5nZShzKSBkcm92ZSB0aGUgc2Vzc2lvbiwgbm90XG4gICAgICAgICAganVzdCBpbXBseSBpdC4gSWYgcGxhbm5pbmcgY3ljbGVkIHRocm91Z2ggbW9yZSB0aGFuIG9uZSBjaGFuZ2VcbiAgICAgICAgICAoYSByZXdvcmsgbG9vcCBwcm9kdWNlZCBhIG5ldyBjaGFuZ2VTbHVnKSwgbGlzdCBldmVyeSBkaXN0aW5jdFxuICAgICAgICAgIGNoYW5nZVNsdWcgcmVjb3JkZWQgYWNyb3NzIHRoZSBydW4ncyBwbGFuIGFydGlmYWN0IHZlcnNpb25zLCBub3RcbiAgICAgICAgICBvbmx5IHRoZSBsYXRlc3QuIFRoZSBQUiB0aXRsZSBNVVNUIHN0YXJ0IHdpdGggYSBDb252ZW50aW9uYWxcbiAgICAgICAgICBDb21taXRzIHByZWZpeCBpbiB0aGUgZm9ybSBcXGB0eXBlKHNjb3BlKTogc3VtbWFyeVxcYCDigJQgXFxgdHlwZVxcYCBpc1xuICAgICAgICAgIFxcYGZlYXRcXGAgZm9yIG5ldyBjYXBhYmlsaXRpZXMsIFxcYGZpeFxcYCBmb3IgYnVnIGZpeGVzLCBvciBcXGBjaG9yZVxcYFxuICAgICAgICAgIGZvciB0b29saW5nL21haW50ZW5hbmNlIHdpdGggbm8gYmVoYXZpb3IgY2hhbmdlIChmYWxsIGJhY2sgdG9cbiAgICAgICAgICBcXGByZWZhY3RvclxcYC9cXGBkb2NzXFxgL1xcYHRlc3RcXGAgb25seSBpZiBub25lIG9mIHRob3NlIGZpdCksIGNob3NlblxuICAgICAgICAgIGZyb20gdGhlIGludGFrZSBpc3N1ZSBhbmQgT3BlblNwZWMgY2hhbmdlKHMpOyBcXGBzY29wZVxcYCBuYW1lcyB0aGVcbiAgICAgICAgICBhZmZlY3RlZCBwYWNrYWdlIChlLmcuIFxcYHByb2plblxcYCwgXFxgY2xlcmstYXV0aG9yaXplclxcYCkuIFRoaXNcbiAgICAgICAgICByZXBvJ3MgUFItZGVwbG95IGFuZCBQUi1jbGVhbnVwIGF1dG9tYXRpb24gb25seSB0cmlnZ2VyIGZvclxuICAgICAgICAgIHRpdGxlcyBzdGFydGluZyB3aXRoIFxcYGZpeFxcYCBvciBcXGBmZWF0XFxgLCBhbmQgZXZlcnkgbWVyZ2VkIFBSIGluXG4gICAgICAgICAgdGhpcyByZXBvIGZvbGxvd3MgdGhpcyBjb252ZW50aW9uIOKAlCBhbiB1bnR5cGVkIHRpdGxlIGJyZWFrcyBib3RoLlxuICAgICAgICAgIFRoZW4gY2FsbCAke3ByTW9kZWx9J3Mgb3BlblByIG1ldGhvZFxuICAgICAgICAgIChyZXBvPSR7cmVwb30sIGhlYWQ9PHRoZSBicmFuY2ggcmVjb3JkZWQgaW5cbiAgICAgICAgICBjaGFuZ2UtcmVxdWVzdCBldmlkZW5jZT4sIGJhc2U9JHtiYXNlQnJhbmNofSwgZHJ5UnVuPWZhbHNlKSwgd2l0aFxuICAgICAgICAgIHRpdGxlL2JvZHkgcmVmZXJlbmNpbmcgdGhlIGludGFrZSBzdGFnZSdzIGlzc3VlIG51bWJlciwgdGhlXG4gICAgICAgICAgT3BlblNwZWMgY2hhbmdlKHMpLCB0aGUgYXR0ZXN0YXRpb24gYmxvY2ssIGFuZCB0aGUgbWFuaWZlc3RcbiAgICAgICAgICBjb21tZW50LCB0aGVuIHJlY29yZCB0aGUgcHItb3BlbmVkIGV2aWRlbmNlIHdpdGggdGhlIHJldHVybmVkIFBSXG4gICAgICAgICAgdXJsIGFuZCBudW1iZXIuXG4gICAgICBldmlkZW5jZTpcbiAgICAgICAgLSBuYW1lOiBwci1vcGVuZWRcbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbdXJsLCBudW1iZXJdXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAgICB1cmw6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDEgfVxuICAgICAgICAgICAgICBudW1iZXI6IHsgdHlwZTogaW50ZWdlciB9XG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBzdWJtaXRcbiAgICAgICAgICB0bzogZG9uZVxuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiBldmlkZW5jZS1yZWNvcmRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgbmFtZTogcHItb3BlbmVkIH1cblxuICAgIC0gaWQ6IGRvbmVcbiAgICAgIHRlcm1pbmFsOiB0cnVlXG5cbiAgICAtIGlkOiBhYm9ydGVkXG4gICAgICB0ZXJtaW5hbDogdHJ1ZVxuXG4gIGdsb2JhbFRyYW5zaXRpb25zOlxuICAgIC0gbmFtZTogYWJvcnRcbiAgICAgIHRvOiBhYm9ydGVkXG4gICAgICBnYXRlczpcbiAgICAgICAgLSB0eXBlOiBodW1hbi1hcHByb3ZhbFxuICAgICAgICAgIGNvbmZpZzogeyBpZDogYWJvcnQtY29uZmlybWF0aW9uIH1cbm1ldGhvZHM6IHt9XG5gLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5TW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NvZnR3YXJlRmFjdG9yeU1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbUNBQW9DO0FBcUJwQzs7Ozs7R0FLRztBQUNILE1BQWEscUJBQXFCO0lBQ2hDLFlBQVksT0FBb0IsRUFBRSxPQUFxQztRQUNyRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxXQUFXLElBQUksUUFBUSxFQUFFLENBQUM7UUFDMUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxRQUFRLFNBQVMsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxHQUFHLFFBQVEsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLEdBQUcsUUFBUSxRQUFRLENBQUM7UUFDdkMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLFFBQVEscUJBQXFCLENBQUM7UUFDaEUsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLFFBQVEsaUJBQWlCLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsR0FBRyxRQUFRLFVBQVUsQ0FBQztRQUMzQyxNQUFNLFlBQVksR0FBRyxHQUFHLFFBQVEsVUFBVSxDQUFDO1FBRTNDLElBQUksbUJBQVUsQ0FBQyxPQUFPLEVBQUUsNEJBQTRCLE9BQU8sT0FBTyxFQUFFO1lBQ2xFLFFBQVEsRUFBRTs7TUFFVixJQUFBLG1CQUFVLEdBQUU7UUFDVixPQUFPOzs7OzJCQUlZLFlBQVk7V0FDNUIsV0FBVzs7Q0FFckI7U0FDSSxDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDJCQUEyQixXQUFXLE9BQU8sRUFBRTtZQUNyRSxRQUFRLEVBQUU7O01BRVYsSUFBQSxtQkFBVSxHQUFFO1FBQ1YsV0FBVzs7Ozs7Q0FLbEI7U0FDSSxDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUM1RSxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLHdCQUF3QixJQUFJLE9BQU8sRUFBRTtnQkFDM0QsUUFBUSxFQUFFOztNQUVaLElBQUEsbUJBQVUsR0FBRTtRQUNWLElBQUk7Ozs7O0NBS1g7YUFDTSxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxtQkFBVSxDQUFDLE9BQU8sRUFBRSxrQ0FBa0MsWUFBWSxPQUFPLEVBQUU7WUFDN0UsUUFBUSxFQUFFOztNQUVWLElBQUEsbUJBQVUsR0FBRTtRQUNWLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQWtCUixJQUFJLGNBQWMsV0FBVzs7WUFFN0IsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NEQWlMK0Isa0JBQWtCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0JBd0JsRCxPQUFPO2tCQUNYLElBQUk7MkNBQ3FCLFVBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWlDcEQ7U0FDSSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzVEQsc0RBMlRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBTYW1wbGVGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcblxuZXhwb3J0IGludGVyZmFjZSBTb2Z0d2FyZUZhY3RvcnlNb2RlbHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBiYXJlIHJlcG8gbmFtZSAoZS5nLiBgZXhwZW5zZS10cmFja2VyYCksIHVzZWQgdG8gZGVyaXZlIG1vZGVsIG5hbWVzXG4gICAqIGxpa2UgYDxyZXBvTmFtZT4tZmFjdG9yeWAsIGA8cmVwb05hbWU+LXNoZWxsYCwgYDxyZXBvTmFtZT4tc2VjcmV0c2AuXG4gICAqL1xuICByZWFkb25seSByZXBvTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIG9yZyB0aGUgcmVwbyBsaXZlcyBpbi5cbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1Yk93bmVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBicmFuY2ggdGhlIGZhY3Rvcnkgb3BlbnMgcHVsbCByZXF1ZXN0cyBhZ2FpbnN0LlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZUJyYW5jaDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNlZWQgc3dhbXAgbW9kZWwgaW5zdGFuY2VzIHdpcmluZyB0aGUgYEBzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5YCBzdGF0ZVxuICogbWFjaGluZSB0byB0aGlzIHJlcG8ncyBHaXRIdWIgaXNzdWVzL1BScyBhbmQgc2hlbGwgc3RlcHMuIFRoZXNlIGFyZVxuICogYFNhbXBsZUZpbGVgcyAod3JpdHRlbiBvbmNlLCB0aGVuIG93bmVkIGJ5IHRoZSB0ZWFtKSBzaW5jZSB0aGUgZmFjdG9yeSdzXG4gKiBzdGFnZXMvZ2F0ZXMgYXJlIHRoZSBraW5kIG9mIHRoaW5nIGEgdGVhbSB0dW5lcyBmb3IgaXRzIG93biB3b3JrZmxvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNvZnR3YXJlRmFjdG9yeU1vZGVscyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBTb2Z0d2FyZUZhY3RvcnlNb2RlbHNPcHRpb25zKSB7XG4gICAgY29uc3QgeyByZXBvTmFtZSwgZ2l0aHViT3duZXIsIGJhc2VCcmFuY2ggfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgcmVwbyA9IGAke2dpdGh1Yk93bmVyfS8ke3JlcG9OYW1lfWA7XG4gICAgY29uc3QgaXNzdWVzTW9kZWwgPSBgJHtyZXBvTmFtZX0taXNzdWVzYDtcbiAgICBjb25zdCBwck1vZGVsID0gYCR7cmVwb05hbWV9LXByYDtcbiAgICBjb25zdCBzaGVsbE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsYDtcbiAgICBjb25zdCBzaGVsbEFyY2hpdGVjdHVyZU1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLWFyY2hpdGVjdHVyZWA7XG4gICAgY29uc3Qgc2hlbGxNYW5pZmVzdE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLW1hbmlmZXN0YDtcbiAgICBjb25zdCBzZWNyZXRzVmF1bHQgPSBgJHtyZXBvTmFtZX0tc2VjcmV0c2A7XG4gICAgY29uc3QgZmFjdG9yeU1vZGVsID0gYCR7cmVwb05hbWV9LWZhY3RvcnlgO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgYG1vZGVscy9AZ29vZGNyYWZ0L2dpdGh1Yi8ke3ByTW9kZWx9LnlhbWxgLCB7XG4gICAgICBjb250ZW50czogYHR5cGU6ICdAZ29vZGNyYWZ0L2dpdGh1YidcbnR5cGVWZXJzaW9uOiAyMDI2LjA2LjE0LjFcbmlkOiAke3JhbmRvbVVVSUQoKX1cbm5hbWU6ICR7cHJNb2RlbH1cbnZlcnNpb246IDFcbnRhZ3M6IHt9XG5nbG9iYWxBcmd1bWVudHM6XG4gIHRva2VuOiAnXFwke3sgdmF1bHQuZ2V0KCR7c2VjcmV0c1ZhdWx0fSwgR0lUSFVCX1RPS0VOKSB9fSdcbiAgb3duZXI6ICR7Z2l0aHViT3duZXJ9XG5tZXRob2RzOiB7fVxuYCxcbiAgICB9KTtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsIGBtb2RlbHMvQHdlYmZyYW1wL2dpdGh1Yi8ke2lzc3Vlc01vZGVsfS55YW1sYCwge1xuICAgICAgY29udGVudHM6IGB0eXBlOiAnQHdlYmZyYW1wL2dpdGh1YidcbnR5cGVWZXJzaW9uOiAyMDI2LjA4LjI4LjFcbmlkOiAke3JhbmRvbVVVSUQoKX1cbm5hbWU6ICR7aXNzdWVzTW9kZWx9XG52ZXJzaW9uOiAxXG50YWdzOiB7fVxuZ2xvYmFsQXJndW1lbnRzOiB7fVxubWV0aG9kczoge31cbmAsXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgW3NoZWxsTW9kZWwsIHNoZWxsQXJjaGl0ZWN0dXJlTW9kZWwsIHNoZWxsTWFuaWZlc3RNb2RlbF0pIHtcbiAgICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsIGBtb2RlbHMvY29tbWFuZC9zaGVsbC8ke25hbWV9LnlhbWxgLCB7XG4gICAgICAgIGNvbnRlbnRzOiBgdHlwZTogY29tbWFuZC9zaGVsbFxudHlwZVZlcnNpb246IDIwMjYuMDIuMDkuMVxuaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogJHtuYW1lfVxudmVyc2lvbjogMVxudGFnczoge31cbmdsb2JhbEFyZ3VtZW50czoge31cbm1ldGhvZHM6IHt9XG5gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgYG1vZGVscy9Ac3dhbXAvc29mdHdhcmUtZmFjdG9yeS8ke2ZhY3RvcnlNb2RlbH0ueWFtbGAsIHtcbiAgICAgIGNvbnRlbnRzOiBgdHlwZTogJ0Bzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5J1xudHlwZVZlcnNpb246IDIwMjYuMDYuMjQuMVxuaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogJHtmYWN0b3J5TW9kZWx9XG52ZXJzaW9uOiAxXG50YWdzOiB7fVxucmVwb3J0czpcbiAgcmVxdWlyZTpcbiAgICAtIG5hbWU6IFwiQHN3YW1wL3NvZnR3YXJlLWZhY3Rvcnkvd29yay1pdGVtLXN1bW1hcnlcIlxuICAgICAgbWV0aG9kczogW3N1bW1hcnldXG5nbG9iYWxBcmd1bWVudHM6XG4gIHN0YWdlczpcbiAgICAtIGlkOiBpbnRha2VcbiAgICAgIGluaXRpYWw6IHRydWVcbiAgICAgIGRlc2NyaXB0aW9uOiA+LVxuICAgICAgICBGZXRjaCB0aGUgR2l0SHViIGlzc3VlIGZvciB0aGlzIHdvcmsgaXRlbSAod29ya0l0ZW0gaXMgdGhlIGJhcmVcbiAgICAgICAgaXNzdWUgbnVtYmVyKSBhbmQgcmVjb3JkIGl0cyBjb250ZXh0LlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogaW50ZXJhY3RpdmVcbiAgICAgICAgc3lzdGVtUHJvbXB0OiA+LVxuICAgICAgICAgIEZldGNoIHRoZSBHaXRIdWIgaXNzdWUgbnVtYmVyZWQgXFwke3sgc2VsZi53b3JrSXRlbSB9fSBmb3JcbiAgICAgICAgICAke3JlcG99IHVzaW5nIHRoZSAke2lzc3Vlc01vZGVsfSBtb2RlbFxuICAgICAgICAgIChsaXN0X2lzc3VlcywgdGhlbiBzd2FtcCBkYXRhIHF1ZXJ5IGZpbHRlcmVkIGJ5IG51bWJlciDigJQgc2VlIHRoZVxuICAgICAgICAgICR7aXNzdWVzTW9kZWx9IGRhdGEpLCBhbmQgcmVjb3JkIHRoZSBpc3N1ZS1jb250ZXh0IGFydGlmYWN0LlxuICAgICAgYXJ0aWZhY3RzOlxuICAgICAgICAtIG5hbWU6IGlzc3VlLWNvbnRleHRcbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbbnVtYmVyLCB0aXRsZSwgdXJsXVxuICAgICAgICAgICAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgbnVtYmVyOiB7IHR5cGU6IGludGVnZXIgfVxuICAgICAgICAgICAgICB0aXRsZTogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogMSB9XG4gICAgICAgICAgICAgIGJvZHk6IHsgdHlwZTogc3RyaW5nIH1cbiAgICAgICAgICAgICAgdXJsOiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiAxIH1cbiAgICAgICAgICAgICAgbGFiZWxzOiB7IHR5cGU6IGFycmF5LCBpdGVtczogeyB0eXBlOiBzdHJpbmcgfSB9XG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBzdWJtaXRcbiAgICAgICAgICB0bzogcGxhbm5pbmdcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogYXJ0aWZhY3QtZXhpc3RzXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBhcnRpZmFjdDogaXNzdWUtY29udGV4dCB9XG5cbiAgICAtIGlkOiBwbGFubmluZ1xuICAgICAgZGVzY3JpcHRpb246ID4tXG4gICAgICAgIFR1cm4gdGhlIGlzc3VlIGludG8gYSByZWFsIE9wZW5TcGVjIGNoYW5nZSAocHJvcG9zYWwsIGRlc2lnbixcbiAgICAgICAgc3BlY3MsIHRhc2tzKSDigJQgT3BlblNwZWMncyB0YXNrIGxpc3QgaXMgdGhlIHBsYW4sIG5vdCBhXG4gICAgICAgIGZyZWVmb3JtIGFydGlmYWN0LlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogaW50ZXJhY3RpdmVcbiAgICAgICAgc3lzdGVtUHJvbXB0OiA+LVxuICAgICAgICAgIFVzaW5nIHRoZSByZWNvcmRlZCBpc3N1ZS1jb250ZXh0IGFydGlmYWN0LCB1c2UgdGhlXG4gICAgICAgICAgb3BlbnNwZWMtcHJvcG9zZSBza2lsbCB0byBjcmVhdGUgYSBjb21wbGV0ZSBPcGVuU3BlYyBjaGFuZ2VcbiAgICAgICAgICAocHJvcG9zYWwubWQsIGRlc2lnbi5tZCwgc3BlY3Mgd2l0aCBkZWx0YXMsIHRhc2tzLm1kKSBmb3IgdGhpc1xuICAgICAgICAgIHdvcmsgaXRlbSB1bmRlciBvcGVuc3BlYy9jaGFuZ2VzLzxjaGFuZ2VTbHVnPi8g4oCUIGRvIG5vdCB3cml0ZSBhXG4gICAgICAgICAgZnJlZWZvcm0gcGxhbiBpbnN0ZWFkIG9mIHRoaXMuIFRoZW4gcmVjb3JkIHRoZSBwbGFuIGFydGlmYWN0XG4gICAgICAgICAgd2l0aCB0aGUgY2hhbmdlJ3Mgc2x1ZyBhbmQgYSBvbmUtbGluZSBzdW1tYXJ5LlxuICAgICAgYXJ0aWZhY3RzOlxuICAgICAgICAtIG5hbWU6IHBsYW5cbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbY2hhbmdlU2x1Zywgc3VtbWFyeV1cbiAgICAgICAgICAgIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgIGNoYW5nZVNsdWc6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDEgfVxuICAgICAgICAgICAgICBzdW1tYXJ5OiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiAxIH1cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHN1Ym1pdFxuICAgICAgICAgIHRvOiBvcGVuc3BlYy1wbGFuLXZlcmlmeVxuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiBhcnRpZmFjdC1leGlzdHNcbiAgICAgICAgICAgICAgY29uZmlnOiB7IGFydGlmYWN0OiBwbGFuIH1cblxuICAgIC0gaWQ6IG9wZW5zcGVjLXBsYW4tdmVyaWZ5XG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgVmVyaWZ5IHRoZSBPcGVuU3BlYyBjaGFuZ2UgaXMgcmVhbCBhbmQgd2VsbC1mb3JtZWQgKG5vdCBqdXN0IGFuXG4gICAgICAgIGFydGlmYWN0IGNsYWltaW5nIG9uZSBleGlzdHMpIGJlZm9yZSBpbXBsZW1lbnRhdGlvbiBzdGFydHMuIFJlcXVpcmVzXG4gICAgICAgIGEgaHVtYW4gdG8gYXBwcm92ZSB0aGUgJ2ltcGxlbWVudGF0aW9uLWFwcHJvdmFsJyBnYXRlIGJlZm9yZVxuICAgICAgICBhZHZhbmNpbmcgdG8gaW1wbGVtZW50aW5nLiBBIHJlamVjdCBvbiB0aGF0IGdhdGUgZG9lc24ndCBkZWFkLWVuZFxuICAgICAgICB0aGUgcnVuIOKAlCB0YWtlIHRoZSB1bmdhdGVkICdyZXdvcmsnIHRyYW5zaXRpb24gYmFjayB0byBwbGFubmluZyB0b1xuICAgICAgICBwcm9kdWNlIGEgcmV2aXNlZCBwbGFuIGFuZCBhc2sgYWdhaW4uXG4gICAgICB3b3JrOlxuICAgICAgICBtb2RlOiB3b3JrZmxvd1xuICAgICAgICB3b3JrZmxvdzpcbiAgICAgICAgICBuYW1lOiBvcGVuc3BlYy1wbGFuLXZlcmlmeVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIGNoYW5nZVNsdWc6ICdcXCR7eyBkYXRhLmxhdGVzdChzZWxmLm5hbWUsIFwiYXJ0aWZhY3QtcGxhblwiKS5wYXlsb2FkLmNoYW5nZVNsdWcgfX0nXG4gICAgICAgIHJlc3VsdEV2aWRlbmNlOiBwbGFuLXZlcmlmeS1ydW5cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHBhc3NcbiAgICAgICAgICB0bzogaW1wbGVtZW50aW5nXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IHdvcmtmbG93LXN1Y2NlZWRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgd29ya2Zsb3c6IG9wZW5zcGVjLXBsYW4tdmVyaWZ5IH1cbiAgICAgICAgICAgIC0gdHlwZTogaHVtYW4tYXBwcm92YWxcbiAgICAgICAgICAgICAgY29uZmlnOiB7IGlkOiBpbXBsZW1lbnRhdGlvbi1hcHByb3ZhbCB9XG4gICAgICAgIC0gbmFtZTogZmFpbFxuICAgICAgICAgIHRvOiBwbGFubmluZ1xuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiBldmlkZW5jZS1yZWNvcmRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgbmFtZTogcGxhbi12ZXJpZnktcnVuLCByZXF1aXJlRmllbGQ6IHsgc3RhdHVzOiBmYWlsZWQgfSB9XG4gICAgICAgIC0gbmFtZTogcmV3b3JrXG4gICAgICAgICAgdG86IHBsYW5uaW5nXG4gICAgICAgICAgZ2F0ZXM6IFtdXG5cbiAgICAtIGlkOiBpbXBsZW1lbnRpbmdcbiAgICAgIGRlc2NyaXB0aW9uOiBJbXBsZW1lbnQgdGhlIE9wZW5TcGVjIGNoYW5nZSdzIHRhc2tzIG9uIGEgYnJhbmNoLlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogaW50ZXJhY3RpdmVcbiAgICAgICAgc3lzdGVtUHJvbXB0OiA+LVxuICAgICAgICAgIFVzZSB0aGUgb3BlbnNwZWMtYXBwbHktY2hhbmdlIHNraWxsIGFnYWluc3QgdGhlIGNoYW5nZSByZWNvcmRlZFxuICAgICAgICAgIGluIHRoZSBwbGFuIGFydGlmYWN0J3MgY2hhbmdlU2x1ZyDigJQgd29yayB0aHJvdWdoIGl0cyB0YXNrcy5tZFxuICAgICAgICAgIG9uZSB0YXNrIGF0IGEgdGltZSwgY2hlY2tpbmcgZWFjaCBvZmYgKFxcYC0gWyBdXFxgIC0+IFxcYC0gW3hdXFxgKSBhc1xuICAgICAgICAgIHlvdSBjb21wbGV0ZSBpdCwgdW50aWwgZXZlcnkgdGFzayBpcyBkb25lLiBDb21taXQgdGhlIHdvcmsgb24gYVxuICAgICAgICAgIGZlYXR1cmUgYnJhbmNoLiBSZWNvcmQgdGhlIGNoYW5nZS1zdW1tYXJ5IGFydGlmYWN0IGFuZCB0aGVcbiAgICAgICAgICBjaGFuZ2UtcmVxdWVzdCBldmlkZW5jZSAoYnJhbmNoIG5hbWUgYW5kIGhlYWQgY29tbWl0IHNoYSDigJQgbm9cbiAgICAgICAgICBQUiB5ZXQsIHRoYXQgaGFwcGVucyBhZnRlciBwcmUtUFIgdmVyaWZpY2F0aW9uIHBhc3NlcykuXG4gICAgICBhcnRpZmFjdHM6XG4gICAgICAgIC0gbmFtZTogY2hhbmdlLXN1bW1hcnlcbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbc3VtbWFyeSwgaGVhZFNoYV1cbiAgICAgICAgICAgIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgIHN1bW1hcnk6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDEgfVxuICAgICAgICAgICAgICBoZWFkU2hhOiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiA3IH1cbiAgICAgIGV2aWRlbmNlOlxuICAgICAgICAtIG5hbWU6IGNoYW5nZS1yZXF1ZXN0XG4gICAgICAgICAgc2NoZW1hOlxuICAgICAgICAgICAgdHlwZTogb2JqZWN0XG4gICAgICAgICAgICByZXF1aXJlZDogW2JyYW5jaCwgaGVhZFNoYV1cbiAgICAgICAgICAgIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgIGJyYW5jaDogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogMSB9XG4gICAgICAgICAgICAgIGhlYWRTaGE6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDcgfVxuICAgICAgICAgICAgICB1cmw6IHsgdHlwZTogc3RyaW5nIH1cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHN1Ym1pdFxuICAgICAgICAgIHRvOiBvcGVuc3BlYy10YXNrcy12ZXJpZnlcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogYXJ0aWZhY3QtZXhpc3RzXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBhcnRpZmFjdDogY2hhbmdlLXN1bW1hcnkgfVxuICAgICAgICAgICAgLSB0eXBlOiBldmlkZW5jZS1yZWNvcmRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgbmFtZTogY2hhbmdlLXJlcXVlc3QgfVxuXG4gICAgLSBpZDogb3BlbnNwZWMtdGFza3MtdmVyaWZ5XG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgVmVyaWZ5IGV2ZXJ5IHRhc2sgaW4gdGhlIE9wZW5TcGVjIGNoYW5nZSBpcyBhY3R1YWxseSBjaGVja2VkIG9mZlxuICAgICAgICBiZWZvcmUgcHJlLVBSIHZlcmlmaWNhdGlvbiBydW5zLlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogd29ya2Zsb3dcbiAgICAgICAgd29ya2Zsb3c6XG4gICAgICAgICAgbmFtZTogb3BlbnNwZWMtdGFza3MtdmVyaWZ5XG4gICAgICAgICAgaW5wdXRzOlxuICAgICAgICAgICAgY2hhbmdlU2x1ZzogJ1xcJHt7IGRhdGEubGF0ZXN0KHNlbGYubmFtZSwgXCJhcnRpZmFjdC1wbGFuXCIpLnBheWxvYWQuY2hhbmdlU2x1ZyB9fSdcbiAgICAgICAgcmVzdWx0RXZpZGVuY2U6IHRhc2tzLXZlcmlmeS1ydW5cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHBhc3NcbiAgICAgICAgICB0bzogcHJlLXByLXZlcmlmeVxuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiB3b3JrZmxvdy1zdWNjZWVkZWRcbiAgICAgICAgICAgICAgY29uZmlnOiB7IHdvcmtmbG93OiBvcGVuc3BlYy10YXNrcy12ZXJpZnkgfVxuICAgICAgICAtIG5hbWU6IGZhaWxcbiAgICAgICAgICB0bzogaW1wbGVtZW50aW5nXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IGV2aWRlbmNlLXJlY29yZGVkXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBuYW1lOiB0YXNrcy12ZXJpZnktcnVuLCByZXF1aXJlRmllbGQ6IHsgc3RhdHVzOiBmYWlsZWQgfSB9XG5cbiAgICAtIGlkOiBwcmUtcHItdmVyaWZ5XG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgUHJlLVBSIHZlcmlmaWNhdGlvbjogYnVpbGQvc3ludGgvdGVzdC9saW50IHBsdXMgdGhlIGFyY2hpdGVjdHVyZVxuICAgICAgICBydWxlIHJlZ2lzdHJ5LCBydW4gYmVmb3JlIHRoZSBQUiBpcyBvcGVuZWQgcmF0aGVyIHRoYW4gcmVseWluZyBvblxuICAgICAgICBDSSBhZnRlciB0aGUgZmFjdC5cbiAgICAgIHdvcms6XG4gICAgICAgIG1vZGU6IHdvcmtmbG93XG4gICAgICAgIHdvcmtmbG93OlxuICAgICAgICAgIG5hbWU6IHByZS1wci12ZXJpZnlcbiAgICAgICAgICBpbnB1dHM6XG4gICAgICAgICAgICBjb21taXQ6ICdcXCR7eyBkYXRhLmxhdGVzdChzZWxmLm5hbWUsIFwiZXZpZGVuY2UtY2hhbmdlLXJlcXVlc3RcIikucGF5bG9hZC5oZWFkU2hhIH19J1xuICAgICAgICAgICAgYnJhbmNoOiAnXFwke3sgZGF0YS5sYXRlc3Qoc2VsZi5uYW1lLCBcImV2aWRlbmNlLWNoYW5nZS1yZXF1ZXN0XCIpLnBheWxvYWQuYnJhbmNoIH19J1xuICAgICAgICByZXN1bHRFdmlkZW5jZTogdmVyaWZ5LXJ1blxuICAgICAgdHJhbnNpdGlvbnM6XG4gICAgICAgIC0gbmFtZTogcGFzc1xuICAgICAgICAgIHRvOiBvcGVuLXByXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IHdvcmtmbG93LXN1Y2NlZWRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgd29ya2Zsb3c6IHByZS1wci12ZXJpZnkgfVxuICAgICAgICAtIG5hbWU6IGZhaWxcbiAgICAgICAgICB0bzogaW1wbGVtZW50aW5nXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IGV2aWRlbmNlLXJlY29yZGVkXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBuYW1lOiB2ZXJpZnktcnVuLCByZXF1aXJlRmllbGQ6IHsgc3RhdHVzOiBmYWlsZWQgfSB9XG5cbiAgICAtIGlkOiBvcGVuLXByXG4gICAgICBkZXNjcmlwdGlvbjogT3BlbiB0aGUgcHVsbCByZXF1ZXN0IG5vdyB0aGF0IHByZS1QUiB2ZXJpZmljYXRpb24gaGFzIHBhc3NlZC5cbiAgICAgIHdvcms6XG4gICAgICAgIG1vZGU6IGludGVyYWN0aXZlXG4gICAgICAgIHN5c3RlbVByb21wdDogPi1cbiAgICAgICAgICBCZWZvcmUgb3BlbmluZyB0aGUgUFIsIGZldGNoIHRoZSByZWFsIHByZS1wci12ZXJpZnkgYXR0ZXN0YXRpb25cbiAgICAgICAgICB3aXRoIFxcYHN3YW1wIGRhdGEgZ2V0IC0td29ya2Zsb3cgcHJlLXByLXZlcmlmeVxuICAgICAgICAgIHJlcG9ydC1zd2FtcC12ZXJpZmljYXRpb24tYXR0ZXN0YXRpb24gLS1qc29uXFxgIGFuZCBpbmNsdWRlIGl0c1xuICAgICAgICAgIFxcYGNvbnRlbnRcXGAgdmVyYmF0aW0gKGFzIGEgbWFya2Rvd24gYmxvY2ssIGUuZy4gdW5kZXIgYSBcIlByZS1QUlxuICAgICAgICAgIHZlcmlmaWNhdGlvblwiIGhlYWRpbmcpIGluIHRoZSBQUiBib2R5IOKAlCBuZXZlciBqdXN0IGFzc2VydCBpblxuICAgICAgICAgIHByb3NlIHRoYXQgY2hlY2tzIHBhc3NlZC4gQWxzbyBmZXRjaCB0aGlzIHNhbWUgcnVuJ3MgbWFuaWZlc3Qgc3RlcFxuICAgICAgICAgIG91dHB1dCAoXFxgc3dhbXAgZGF0YSBxdWVyeSAnbW9kZWxOYW1lID09IFwiJHtzaGVsbE1hbmlmZXN0TW9kZWx9XCIgJiZcbiAgICAgICAgICBuYW1lID09IFwicmVzdWx0XCInIC0tc2VsZWN0IGF0dHJpYnV0ZXMuc3Rkb3V0IC0tanNvblxcYCwgdGFrZSB0aGVcbiAgICAgICAgICBsYXRlc3QpIGFuZCBhcHBlbmQgaXQgdG8gdGhlIFBSIGJvZHkgYXNcbiAgICAgICAgICBcXGA8IS0tIGF0dGVzdGF0aW9uLW1hbmlmZXN0IHtcImNvbW1pdFwiOiBcIjxoZWFkU2hhPlwiLCBcInN0YXR1c1wiOlxuICAgICAgICAgIFwic3VjY2VlZGVkXCIsIC4uLnRoZSBtYW5pZmVzdCBzdGVwJ3MgSlNPTiwgc3ByZWFkIGluLi4ufSAtLT5cXGAg4oCUIGFuXG4gICAgICAgICAgSFRNTCBjb21tZW50IHNvIGl0J3MgaW52aXNpYmxlIHdoZW4gcmVuZGVyZWQgYnV0IHN0aWxsIHByZXNlbnQgaW5cbiAgICAgICAgICB0aGUgcmF3IGJvZHkgdGV4dCB2ZXJpZnktYXR0ZXN0YXRpb24ueW1sIHJlYWRzIHZpYSB0aGUgR2l0SHViIEFQSS5cbiAgICAgICAgICBBbHNvIGZldGNoIHRoZSBwbGFuIGFydGlmYWN0J3MgY2hhbmdlU2x1ZyBhbmQgaW5jbHVkZSBhbiBleHBsaWNpdFxuICAgICAgICAgIFwiT3BlblNwZWMgY2hhbmdlXCIgbGluZSBpbiB0aGUgUFIgYm9keSBuYW1pbmcgaXQgYW5kIGl0cyBwYXRoXG4gICAgICAgICAgKFxcYG9wZW5zcGVjL2NoYW5nZXMvPGNoYW5nZVNsdWc+L1xcYCkg4oCUIGV2ZXJ5IFBSIHRoZSBmYWN0b3J5IG9wZW5zXG4gICAgICAgICAgbXVzdCBjYWxsIG91dCB3aGljaCBPcGVuU3BlYyBjaGFuZ2UocykgZHJvdmUgdGhlIHNlc3Npb24sIG5vdFxuICAgICAgICAgIGp1c3QgaW1wbHkgaXQuIElmIHBsYW5uaW5nIGN5Y2xlZCB0aHJvdWdoIG1vcmUgdGhhbiBvbmUgY2hhbmdlXG4gICAgICAgICAgKGEgcmV3b3JrIGxvb3AgcHJvZHVjZWQgYSBuZXcgY2hhbmdlU2x1ZyksIGxpc3QgZXZlcnkgZGlzdGluY3RcbiAgICAgICAgICBjaGFuZ2VTbHVnIHJlY29yZGVkIGFjcm9zcyB0aGUgcnVuJ3MgcGxhbiBhcnRpZmFjdCB2ZXJzaW9ucywgbm90XG4gICAgICAgICAgb25seSB0aGUgbGF0ZXN0LiBUaGUgUFIgdGl0bGUgTVVTVCBzdGFydCB3aXRoIGEgQ29udmVudGlvbmFsXG4gICAgICAgICAgQ29tbWl0cyBwcmVmaXggaW4gdGhlIGZvcm0gXFxgdHlwZShzY29wZSk6IHN1bW1hcnlcXGAg4oCUIFxcYHR5cGVcXGAgaXNcbiAgICAgICAgICBcXGBmZWF0XFxgIGZvciBuZXcgY2FwYWJpbGl0aWVzLCBcXGBmaXhcXGAgZm9yIGJ1ZyBmaXhlcywgb3IgXFxgY2hvcmVcXGBcbiAgICAgICAgICBmb3IgdG9vbGluZy9tYWludGVuYW5jZSB3aXRoIG5vIGJlaGF2aW9yIGNoYW5nZSAoZmFsbCBiYWNrIHRvXG4gICAgICAgICAgXFxgcmVmYWN0b3JcXGAvXFxgZG9jc1xcYC9cXGB0ZXN0XFxgIG9ubHkgaWYgbm9uZSBvZiB0aG9zZSBmaXQpLCBjaG9zZW5cbiAgICAgICAgICBmcm9tIHRoZSBpbnRha2UgaXNzdWUgYW5kIE9wZW5TcGVjIGNoYW5nZShzKTsgXFxgc2NvcGVcXGAgbmFtZXMgdGhlXG4gICAgICAgICAgYWZmZWN0ZWQgcGFja2FnZSAoZS5nLiBcXGBwcm9qZW5cXGAsIFxcYGNsZXJrLWF1dGhvcml6ZXJcXGApLiBUaGlzXG4gICAgICAgICAgcmVwbydzIFBSLWRlcGxveSBhbmQgUFItY2xlYW51cCBhdXRvbWF0aW9uIG9ubHkgdHJpZ2dlciBmb3JcbiAgICAgICAgICB0aXRsZXMgc3RhcnRpbmcgd2l0aCBcXGBmaXhcXGAgb3IgXFxgZmVhdFxcYCwgYW5kIGV2ZXJ5IG1lcmdlZCBQUiBpblxuICAgICAgICAgIHRoaXMgcmVwbyBmb2xsb3dzIHRoaXMgY29udmVudGlvbiDigJQgYW4gdW50eXBlZCB0aXRsZSBicmVha3MgYm90aC5cbiAgICAgICAgICBUaGVuIGNhbGwgJHtwck1vZGVsfSdzIG9wZW5QciBtZXRob2RcbiAgICAgICAgICAocmVwbz0ke3JlcG99LCBoZWFkPTx0aGUgYnJhbmNoIHJlY29yZGVkIGluXG4gICAgICAgICAgY2hhbmdlLXJlcXVlc3QgZXZpZGVuY2U+LCBiYXNlPSR7YmFzZUJyYW5jaH0sIGRyeVJ1bj1mYWxzZSksIHdpdGhcbiAgICAgICAgICB0aXRsZS9ib2R5IHJlZmVyZW5jaW5nIHRoZSBpbnRha2Ugc3RhZ2UncyBpc3N1ZSBudW1iZXIsIHRoZVxuICAgICAgICAgIE9wZW5TcGVjIGNoYW5nZShzKSwgdGhlIGF0dGVzdGF0aW9uIGJsb2NrLCBhbmQgdGhlIG1hbmlmZXN0XG4gICAgICAgICAgY29tbWVudCwgdGhlbiByZWNvcmQgdGhlIHByLW9wZW5lZCBldmlkZW5jZSB3aXRoIHRoZSByZXR1cm5lZCBQUlxuICAgICAgICAgIHVybCBhbmQgbnVtYmVyLlxuICAgICAgZXZpZGVuY2U6XG4gICAgICAgIC0gbmFtZTogcHItb3BlbmVkXG4gICAgICAgICAgc2NoZW1hOlxuICAgICAgICAgICAgdHlwZTogb2JqZWN0XG4gICAgICAgICAgICByZXF1aXJlZDogW3VybCwgbnVtYmVyXVxuICAgICAgICAgICAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgdXJsOiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiAxIH1cbiAgICAgICAgICAgICAgbnVtYmVyOiB7IHR5cGU6IGludGVnZXIgfVxuICAgICAgdHJhbnNpdGlvbnM6XG4gICAgICAgIC0gbmFtZTogc3VibWl0XG4gICAgICAgICAgdG86IGRvbmVcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogZXZpZGVuY2UtcmVjb3JkZWRcbiAgICAgICAgICAgICAgY29uZmlnOiB7IG5hbWU6IHByLW9wZW5lZCB9XG5cbiAgICAtIGlkOiBkb25lXG4gICAgICB0ZXJtaW5hbDogdHJ1ZVxuXG4gICAgLSBpZDogYWJvcnRlZFxuICAgICAgdGVybWluYWw6IHRydWVcblxuICBnbG9iYWxUcmFuc2l0aW9uczpcbiAgICAtIG5hbWU6IGFib3J0XG4gICAgICB0bzogYWJvcnRlZFxuICAgICAgZ2F0ZXM6XG4gICAgICAgIC0gdHlwZTogaHVtYW4tYXBwcm92YWxcbiAgICAgICAgICBjb25maWc6IHsgaWQ6IGFib3J0LWNvbmZpcm1hdGlvbiB9XG5tZXRob2RzOiB7fVxuYCxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -7,7 +7,7 @@ const javascript_1 = require("projen/lib/javascript");
7
7
  const utils_1 = require("./utils");
8
8
  const WorkflowActionVersions_1 = require("./WorkflowActionVersions");
9
9
  class StagingDeployWorkflow extends projen_1.YamlFile {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.StagingDeployWorkflow", version: "1.19.2" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.StagingDeployWorkflow", version: "1.20.0" };
11
11
  constructor(project, options) {
12
12
  const packageManager = project.package.packageManager;
13
13
  const actionVersions = (0, WorkflowActionVersions_1.resolveActionVersions)(options.actionVersions);
@@ -39,7 +39,7 @@ const fs = __importStar(require("fs"));
39
39
  const path = __importStar(require("path"));
40
40
  const projen_1 = require("projen");
41
41
  class WorkflowAutoDiscover extends projen_1.Component {
42
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.WorkflowAutoDiscover", version: "1.19.2" };
42
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.WorkflowAutoDiscover", version: "1.20.0" };
43
43
  constructor(project) {
44
44
  super(project);
45
45
  }
@@ -72,7 +72,11 @@ globalArguments:
72
72
  - id: openspec-plan-verify
73
73
  description: >-
74
74
  Verify the OpenSpec change is real and well-formed (not just an
75
- artifact claiming one exists) before implementation starts.
75
+ artifact claiming one exists) before implementation starts. Requires
76
+ a human to approve the 'implementation-approval' gate before
77
+ advancing to implementing. A reject on that gate doesn't dead-end
78
+ the run — take the ungated 'rework' transition back to planning to
79
+ produce a revised plan and ask again.
76
80
  work:
77
81
  mode: workflow
78
82
  workflow:
@@ -86,11 +90,16 @@ globalArguments:
86
90
  gates:
87
91
  - type: workflow-succeeded
88
92
  config: { workflow: openspec-plan-verify }
93
+ - type: human-approval
94
+ config: { id: implementation-approval }
89
95
  - name: fail
90
96
  to: planning
91
97
  gates:
92
98
  - type: evidence-recorded
93
99
  config: { name: plan-verify-run, requireField: { status: failed } }
100
+ - name: rework
101
+ to: planning
102
+ gates: []
94
103
 
95
104
  - id: implementing
96
105
  description: Implement the OpenSpec change's tasks on a branch.
package/package.json CHANGED
@@ -49,7 +49,7 @@
49
49
  "main": "lib/index.js",
50
50
  "license": "Apache-2.0",
51
51
  "stability": "stable",
52
- "version": "1.19.2",
52
+ "version": "1.20.0",
53
53
  "jest": {
54
54
  "coverageProvider": "v8",
55
55
  "testMatch": [