@odigos/aws-cdk 0.0.15 → 0.0.17
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 +39 -22
- package/lib/fargate.js +1 -1
- package/lib/generated/distributions.d.ts +65 -0
- package/lib/generated/distributions.js +79 -0
- package/lib/generated/fargate.d.ts +2 -2
- package/lib/generated/fargate.js +4 -6
- package/lib/generated/layers.d.ts +3 -3
- package/lib/generated/layers.js +152 -149
- package/lib/instrumentation.d.ts +7 -3
- package/lib/instrumentation.js +6 -5
- package/lib/runtime.d.ts +4 -2
- package/lib/runtime.js +27 -4
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/lib/instrumentation.js
CHANGED
|
@@ -168,7 +168,7 @@ class OdigosLambdaInstrumentation extends constructs_1.Construct {
|
|
|
168
168
|
* `OTEL_*_EXPORTER` stays unset because `otlp` is already the SDK default.
|
|
169
169
|
*/
|
|
170
170
|
environmentFor(fn, language, layerArn) {
|
|
171
|
-
const { destination, mode, debug, serviceName, javaHandlerDistro, existingLoaderValue } = this.options;
|
|
171
|
+
const { destination, mode, debug, serviceName, javaHandlerDistro, distro, existingLoaderValue } = this.options;
|
|
172
172
|
const webServer = mode === types_1.OdigosInstrumentationMode.WEB_SERVER;
|
|
173
173
|
const env = {
|
|
174
174
|
[ENV_SERVICE_NAME]: serviceName ?? defaultServiceName(fn),
|
|
@@ -180,12 +180,13 @@ class OdigosLambdaInstrumentation extends constructs_1.Construct {
|
|
|
180
180
|
layer: layerArn,
|
|
181
181
|
}),
|
|
182
182
|
};
|
|
183
|
+
const selectedWrapper = (0, runtime_1.distributionWrapper)(language, distro, javaHandlerDistro, webServer);
|
|
183
184
|
if (webServer) {
|
|
184
185
|
// No exec wrapper: the Lambda Web Adapter owns it, and overwriting it stops the function serving.
|
|
185
186
|
Object.assign(env, (0, runtime_1.webServerEnv)(language, existingLoaderValue));
|
|
186
187
|
}
|
|
187
188
|
else {
|
|
188
|
-
env[ENV_EXEC_WRAPPER] =
|
|
189
|
+
env[ENV_EXEC_WRAPPER] = selectedWrapper;
|
|
189
190
|
if (debug) {
|
|
190
191
|
env[ENV_OTEL_LOG_LEVEL] = 'debug';
|
|
191
192
|
}
|
|
@@ -209,7 +210,7 @@ class OdigosLambdaInstrumentation extends constructs_1.Construct {
|
|
|
209
210
|
}
|
|
210
211
|
exports.OdigosLambdaInstrumentation = OdigosLambdaInstrumentation;
|
|
211
212
|
_a = JSII_RTTI_SYMBOL_1;
|
|
212
|
-
OdigosLambdaInstrumentation[_a] = { fqn: "@odigos/aws-cdk.OdigosLambdaInstrumentation", version: "0.0.
|
|
213
|
+
OdigosLambdaInstrumentation[_a] = { fqn: "@odigos/aws-cdk.OdigosLambdaInstrumentation", version: "0.0.17" };
|
|
213
214
|
/**
|
|
214
215
|
* Applies Odigos instrumentation to every `lambda.Function` in a scope.
|
|
215
216
|
*
|
|
@@ -247,5 +248,5 @@ class OdigosInstrumentationAspect {
|
|
|
247
248
|
}
|
|
248
249
|
exports.OdigosInstrumentationAspect = OdigosInstrumentationAspect;
|
|
249
250
|
_b = JSII_RTTI_SYMBOL_1;
|
|
250
|
-
OdigosInstrumentationAspect[_b] = { fqn: "@odigos/aws-cdk.OdigosInstrumentationAspect", version: "0.0.
|
|
251
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFpRTtBQUNqRSxpREFBaUQ7QUFDakQsMkNBQW1EO0FBQ25ELHlEQVE0QjtBQUM1QiwrQ0FBb0Q7QUFDcEQscURBQXVEO0FBQ3ZELHVDQUE4RTtBQUM5RSxtQ0FLaUI7QUFFakIsMkVBQTJFO0FBQzNFLE1BQU0sZ0JBQWdCLEdBQUcseUJBQXlCLENBQUM7QUFDbkQsa0VBQWtFO0FBQ2xFLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUM7QUFDN0MsMkZBQTJGO0FBQzNGLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUM7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBRXpCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBRXBDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILFNBQVMsa0JBQWtCLENBQUMsRUFBbUI7SUFDN0MsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUE4QyxDQUFDO0lBQ25FLE1BQU0sUUFBUSxHQUFHLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsbUJBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4RixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNyRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUNw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Ozs7OztHQWdCRztBQUNILE1BQWEsMkJBQTJCO0lBR3RDOzs7O09BSUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsS0FBdUM7UUFDbkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLDJCQUEyQixDQUFDLEtBQUssRUFBRSw2QkFBNkIsRUFBRTtZQUMzRix1QkFBdUIsRUFBRSxJQUFJO1lBQzdCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxLQUFLLENBQUMsSUFBZ0I7UUFDM0IsSUFBSSxJQUFJLFlBQVksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDOztBQW5CSCxrRUFvQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbm5vdGF0aW9ucywgSUFzcGVjdCwgU3RhY2ssIFRva2VuIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBFTlZfQ09MTEVDVE9SX0NPTkZJR19VUkksXG4gIEVOVl9MT0dTX0VYUE9SVEVSLFxuICBFTlZfTUVUUklDU19FWFBPUlRFUixcbiAgRU5WX1RSQUNFU19FWFBPUlRFUixcbiAgZXhwb3J0ZXJPdmVycmlkZUZvcixcbiAgcmVuZGVyQ29sbGVjdG9yQ29uZmlnLFxuICByZXNvbHZlZFNpZ25hbHMsXG59IGZyb20gJy4vY29sbGVjdG9yLWNvbmZpZyc7XG5pbXBvcnQgeyBPRElHT1NfVkVSU0lPTiB9IGZyb20gJy4vZ2VuZXJhdGVkL2xheWVycyc7XG5pbXBvcnQgeyBPZGlnb3NMYXllclJlc29sdmVyIH0gZnJvbSAnLi9sYXllci1yZXNvbHZlcic7XG5pbXBvcnQgeyBleGVjV3JhcHBlckZvciwgbGFuZ3VhZ2VGcm9tUnVudGltZSwgd2ViU2VydmVyRW52IH0gZnJvbSAnLi9ydW50aW1lJztcbmltcG9ydCB7XG4gIE9kaWdvc0Rlc3RpbmF0aW9uLFxuICBPZGlnb3NJbnN0cnVtZW50YXRpb25Nb2RlLFxuICBPZGlnb3NKYXZhSGFuZGxlckRpc3RybyxcbiAgT2RpZ29zTGF5ZXJTb3VyY2UsXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vKiogYEFXU19MQU1CREFfRVhFQ19XUkFQUEVSYCDigJQgdGhlIGxheWVyJ3MgZW50cnkgcG9pbnQgaW4gaGFuZGxlciBtb2RlLiAqL1xuY29uc3QgRU5WX0VYRUNfV1JBUFBFUiA9ICdBV1NfTEFNQkRBX0VYRUNfV1JBUFBFUic7XG4vKiogU2VydmljZSBuYW1lIHJlcG9ydGVkIG9uIGV2ZXJ5IHNwYW4sIG1ldHJpYyBhbmQgbG9nIHJlY29yZC4gKi9cbmNvbnN0IEVOVl9TRVJWSUNFX05BTUUgPSAnT1RFTF9TRVJWSUNFX05BTUUnO1xuLyoqIFJhaXNlcyBpbi1mdW5jdGlvbiBPcGVuVGVsZW1ldHJ5IHZlcmJvc2l0eSBpbnRvIHRoZSBmdW5jdGlvbidzIENsb3VkV2F0Y2ggbG9nIGdyb3VwLiAqL1xuY29uc3QgRU5WX09URUxfTE9HX0xFVkVMID0gJ09URUxfTE9HX0xFVkVMJztcblxuLyoqXG4gKiBTY2hlbWEgdmVyc2lvbiBvZiB0aGUgbWFya2VyIHBheWxvYWQuIE11c3QgbWF0Y2ggYGFwaS5JYUNNYXJrZXJWZXJzaW9uYCBpbiB0aGUgY29ubmVjdG9yIOKAlCBpdCBpcyB3aGF0IHRlbGxzXG4gKiB0aGUgY29ubmVjdG9yIGhvdyB0byByZWFkIHRoZSByZXN0IG9mIHRoZSBvYmplY3QsIHNvIGEgYnVtcGVkIHZlcnNpb24gdGhlcmUgaXMgYSBjaGFuZ2UgaGVyZS5cbiAqL1xuY29uc3QgTUFSS0VSX1ZFUlNJT04gPSAxO1xuXG4vKipcbiAqIGBPRElHT1NfSUFDYCDigJQgdGhlIG1hcmtlciByZWNvcmRpbmcgdGhhdCB0aGlzIGZ1bmN0aW9uIHdhcyBpbnN0cnVtZW50ZWQgYnkgT2RpZ29zIElhQyB0b29saW5nLCBieSB3aGljaFxuICogcGFja2FnZSB2ZXJzaW9uLCBhbmQgY2Fycnlpbmcgd2hpY2ggbGF5ZXIuIFRoaXMgY29uc3RydWN0IGFsd2F5cyB3cml0ZXMgaXQsIGFuZCBpdCBpcyB3aGF0IG1ha2VzIE9kaWdvc1xuICogcmVwb3J0IHRoZSBmdW5jdGlvbiBhcyBpbnN0cnVtZW50ZWQgcmF0aGVyIHRoYW4gYEFic2VudGAg4oCUIFwiYXdhaXRpbmcgeW91ciBkZXBsb3ltZW50XCIuXG4gKlxuICogSXQgaXMgTk9UIGBPRElHT1NfTUFOQUdFRGAsIGFuZCB0aGUgZGlmZmVyZW5jZSBpcyB0aGUgd2hvbGUgcmVhc29uIHRoZXJlIGFyZSB0d28gdmFyaWFibGVzLiBUaGF0IG9uZSBpcyB0aGVcbiAqIGNvbm5lY3RvcidzIHJlY29yZCBvZiBhIG11dGF0aW9uIElUIHBlcmZvcm1lZCwgd2hvc2UgcGF5bG9hZCBpcyB0aGUgc25hcHNob3QgaXQgcmVzdG9yZXMgZnJvbSBvbiByb2xsYmFjaztcbiAqIGEgQ0RLIHN0YWNrIGhhcyBubyBzdWNoIHNuYXBzaG90IHRvIG9mZmVyLCBiZWNhdXNlIG5vdGhpbmcgd2FzIG11dGF0ZWQg4oCUIHRoZSBlbnZpcm9ubWVudCBiZWxvdyBJUyB0aGVcbiAqIGZ1bmN0aW9uJ3MgZGVmaW5pdGlvbi4gU28gdGhlIGNvbm5lY3RvciBhY2NlcHRzIGVpdGhlciBtYXJrZXIgZm9yIFwiaXMgdGhpcyBpbnN0cnVtZW50ZWQgYnkgT2RpZ29zXCIsIGFuZFxuICogb25seSBpdHMgb3duIGZvciBcIm1heSBJIHJvbGwgdGhpcyBiYWNrXCIuIFRoaXMgY29uc3RydWN0IHdyaXRlcyB0aGUgZmlyc3QgYW5kIG5ldmVyIHRoZSBzZWNvbmQ6IHRoZSBwYWNrYWdlXG4gKiB3aWxsIG5vdCBjbGFpbSBvd25lcnNoaXAgb2YgYSBmdW5jdGlvbiBvbiB5b3VyIGJlaGFsZi5cbiAqXG4gKiBUaGUgYGxheWVyYCBmaWVsZCBpcyB0aGUgbG9hZC1iZWFyaW5nIG9uZS4gVGhlIGNvbm5lY3RvciByZWFkcyBpdCBiYWNrIHRvIGRlY2lkZSB3aGljaCBsYXllciB2ZXJzaW9uIHRoZVxuICogZnVuY3Rpb24gaXMgU1VQUE9TRUQgdG8gY2FycnksIHNvIGEgdmVyc2lvbiB5b3UgcGlubmVkIGlzIHJlc3BlY3RlZCBpbnN0ZWFkIG9mIGJlaW5nIHJlcG9ydGVkIGFzIGRyaWZ0IHRoZVxuICogZGF5IE9kaWdvcyBwdWJsaXNoZXMgYSBuZXdlciBvbmUuIEl0IHdvcmtzIGluIGBJTl9BQ0NPVU5UYCBtb2RlIHRvbywgd2hlcmUgdGhlIEFSTiBpcyBhIGRlcGxveS10aW1lXG4gKiByZWZlcmVuY2UgeW91ciBvd24gY29kZSBoYXMgbm8gd2F5IHRvIG9idGFpbi5cbiAqL1xuY29uc3QgRU5WX0lBQ19NQVJLRVIgPSAnT0RJR09TX0lBQyc7XG5cbi8qKlxuICogVGhlIHNlcnZpY2UgYSBmdW5jdGlvbiByZXBvcnRzIGFzLCB3aGVuIHRoZSBjYWxsZXIgaGFzIG5vdCBuYW1lZCBvbmUuXG4gKlxuICogUkVBRCBGUk9NIFRIRSBMMSwgTk9UIEZST00gYGZuLmZ1bmN0aW9uTmFtZWAuIFRoZSBMMiBwcm9wZXJ0eSBpcyBhIGNyb3NzLWVudmlyb25tZW50LWF3YXJlIHRva2VuIHRoYXRcbiAqIHJlc29sdmVzIHRvIGEgYFJlZmAgdG8gdGhlIGZ1bmN0aW9uIGl0c2VsZiBldmVuIHdoZW4gdGhlIHN0YWNrIHNldCBgZnVuY3Rpb25OYW1lYCBleHBsaWNpdGx5IOKAlCBzbyB0aGVcbiAqIG9idmlvdXMgYFN0YWNrLm9mKGZuKS5yZXNvbHZlKGZuLmZ1bmN0aW9uTmFtZSlgIG5ldmVyIHlpZWxkcyBhIGxpdGVyYWwsIGFuZCBldmVyeSBmdW5jdGlvbiBzaWxlbnRseSBmZWxsXG4gKiBiYWNrIHRvIGl0cyBjb25zdHJ1Y3QgaWQuIGBDZm5GdW5jdGlvbi5mdW5jdGlvbk5hbWVgIGlzIHRoZSByYXcgdGVtcGxhdGUgdmFsdWU6IHRoZSBsaXRlcmFsIHRoZSBzdGFja1xuICogcGFzc2VkLCBvciB1bmRlZmluZWQgd2hlbiBDbG91ZEZvcm1hdGlvbiBnZW5lcmF0ZXMgdGhlIG5hbWUuXG4gKlxuICogV2h5IHRoZSBmYWxsYmFjayBpcyB0aGUgY29uc3RydWN0IGlkIHJhdGhlciB0aGFuIHRoZSBnZW5lcmF0ZWQgbmFtZTogYSBnZW5lcmF0ZWQgbmFtZSBpcyBhIGBSZWZgIHRvIHRoZVxuICogZnVuY3Rpb24sIGFuZCBwdXR0aW5nIHRoYXQgaW4gdGhlIGZ1bmN0aW9uJ3Mgb3duIGVudmlyb25tZW50IG1ha2VzIHRoZSByZXNvdXJjZSBkZXBlbmQgb24gaXRzIG93blxuICogY3JlYXRpb24g4oCUIENsb3VkRm9ybWF0aW9uIHJlamVjdHMgdGhlIHRlbXBsYXRlIHdpdGggYSBkZXBlbmRlbmN5IGN5Y2xlLCBhdCBkZXBsb3kgdGltZS5cbiAqXG4gKiBUaGlzIG1hdHRlcnMgYmV5b25kIGNvc21ldGljcy4gVGhlIGNvbm5lY3RvciBjb21wYXJlcyBgT1RFTF9TRVJWSUNFX05BTUVgIGFnYWluc3QgdGhlIHdvcmtsb2FkJ3MgbmFtZSBpblxuICogT2RpZ29zLCB3aGljaCBpcyB0aGUgcmVhbCBBV1MgZnVuY3Rpb24gbmFtZSwgc28gYSBmdW5jdGlvbiByZXBvcnRpbmcgaXRzIGNvbnN0cnVjdCBpZCBpcyByZXBvcnRlZCBhc1xuICogZHJpZnRlZCBvbiB0aGUgc2VydmljZS1uYW1lIGNvbXBvbmVudC4gTmFtaW5nIHRoZSBmdW5jdGlvbiBpbiB5b3VyIHN0YWNrIGlzIG5vdyBlbm91Z2ggdG8gbGluZSB0aGUgdHdvXG4gKiB1cDsgYSBmdW5jdGlvbiB3aG9zZSBuYW1lIENsb3VkRm9ybWF0aW9uIGdlbmVyYXRlcyBzdGlsbCBuZWVkcyBgc2VydmljZU5hbWVgIHBhc3NlZCBleHBsaWNpdGx5LlxuICovXG5mdW5jdGlvbiBkZWZhdWx0U2VydmljZU5hbWUoZm46IGxhbWJkYS5GdW5jdGlvbik6IHN0cmluZyB7XG4gIGNvbnN0IGNmbiA9IGZuLm5vZGUuZGVmYXVsdENoaWxkIGFzIGxhbWJkYS5DZm5GdW5jdGlvbiB8IHVuZGVmaW5lZDtcbiAgY29uc3QgcmVzb2x2ZWQgPSBjZm4gPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IFN0YWNrLm9mKGZuKS5yZXNvbHZlKGNmbi5mdW5jdGlvbk5hbWUpO1xuICBpZiAodHlwZW9mIHJlc29sdmVkID09PSAnc3RyaW5nJyAmJiByZXNvbHZlZCAhPT0gJycgJiYgIVRva2VuLmlzVW5yZXNvbHZlZChyZXNvbHZlZCkpIHtcbiAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gIH1cbiAgcmV0dXJuIGZuLm5vZGUuaWQ7XG59XG5cbi8qKlxuICogT3B0aW9ucyBzaGFyZWQgYnkgdGhlIGNvbnN0cnVjdCBhbmQgdGhlIGFzcGVjdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGlnb3NJbnN0cnVtZW50YXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXJlIHRoZSBpbi1MYW1iZGEgY29sbGVjdG9yIGV4cG9ydHMgdG8uXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvbjogT2RpZ29zRGVzdGluYXRpb247XG5cbiAgLyoqXG4gICAqIFdoZXJlIHRoZSBPZGlnb3MgbGF5ZXIgY29tZXMgZnJvbS5cbiAgICpcbiAgICogQGRlZmF1bHQgT2RpZ29zTGF5ZXJTb3VyY2UuT0RJR09TX1BVQkxJQ1xuICAgKi9cbiAgcmVhZG9ubHkgbGF5ZXJTb3VyY2U/OiBPZGlnb3NMYXllclNvdXJjZTtcblxuICAvKipcbiAgICogSGFuZGxlciBtb2RlIG9yIHdlYi1zZXJ2ZXIgKExhbWJkYSBXZWIgQWRhcHRlcikgbW9kZS5cbiAgICpcbiAgICogVGhlcmUgaXMgbm8gYXV0by1kZXRlY3Rpb24sIGFuZCB0aGF0IGlzIGRlbGliZXJhdGUgcmF0aGVyIHRoYW4gYW4gb21pc3Npb246IGRldGVjdGluZyB0aGUgd2ViIGFkYXB0ZXJcbiAgICogbWVhbnMgaW5zcGVjdGluZyB0aGUgZnVuY3Rpb24ncyBvdGhlciBsYXllcnMsIHdoaWNoIGF0IHN5bnRoIHRpbWUgYXJlIGZyZXF1ZW50bHkgdW5yZXNvbHZlZCB0b2tlbnMuXG4gICAqIEEgZGV0ZWN0b3IgdGhhdCBpcyByaWdodCBtb3N0IG9mIHRoZSB0aW1lIHdvdWxkIHNpbGVudGx5IGJyZWFrIHRoZSBmdW5jdGlvbnMgaXQgZ290IHdyb25nLlxuICAgKlxuICAgKiBAZGVmYXVsdCBPZGlnb3NJbnN0cnVtZW50YXRpb25Nb2RlLkhBTkRMRVJcbiAgICovXG4gIHJlYWRvbmx5IG1vZGU/OiBPZGlnb3NJbnN0cnVtZW50YXRpb25Nb2RlO1xuXG4gIC8qKlxuICAgKiBXaGljaCBvZiB0aGUgSmF2YSBsYXllcidzIGZvdXIgd3JhcHBlciBzY3JpcHRzIHRvIHVzZS4gSWdub3JlZCBmb3Igb3RoZXIgbGFuZ3VhZ2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBPZGlnb3NKYXZhSGFuZGxlckRpc3Ryby5PVEVMX0hBTkRMRVJcbiAgICovXG4gIHJlYWRvbmx5IGphdmFIYW5kbGVyRGlzdHJvPzogT2RpZ29zSmF2YUhhbmRsZXJEaXN0cm87XG5cbiAgLyoqXG4gICAqIGBPVEVMX1NFUlZJQ0VfTkFNRWAgZm9yIGV2ZXJ5IGZ1bmN0aW9uIHRoaXMgaW5zdHJ1bWVudHMuXG4gICAqXG4gICAqIFVzdWFsbHkgd3JvbmcgdG8gc2V0IHdoZW4gaW5zdHJ1bWVudGluZyBtb3JlIHRoYW4gb25lIGZ1bmN0aW9uIOKAlCB0aGV5IHdvdWxkIGFsbCByZXBvcnQgYXMgdGhlIHNhbWVcbiAgICogc2VydmljZS5cbiAgICpcbiAgICogTGVmdCB1bnNldCwgYSBmdW5jdGlvbiByZXBvcnRzIGFzIGl0cyBleHBsaWNpdGx5LXNldCBwaHlzaWNhbCBuYW1lIGlmIGl0IGhhcyBvbmUsIGFuZCBvdGhlcndpc2UgYXNcbiAgICogaXRzIGNvbnN0cnVjdCBpZC4gSXQgZGVsaWJlcmF0ZWx5IGRvZXMgbm90IGRlZmF1bHQgdG8gdGhlIGdlbmVyYXRlZCBwaHlzaWNhbCBuYW1lOiB0aGF0IHZhbHVlIGlzIGFcbiAgICogYFJlZmAgdG8gdGhlIGZ1bmN0aW9uIGl0c2VsZiwgYW5kIGEgZnVuY3Rpb24gcmVmZXJlbmNpbmcgaXRzZWxmIGluIGl0cyBvd24gZW52aXJvbm1lbnQgaXMgYVxuICAgKiBDbG91ZEZvcm1hdGlvbiBkZXBlbmRlbmN5IGN5Y2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBmdW5jdGlvbidzIHBoeXNpY2FsIG5hbWUgaWYgZXhwbGljaXRseSBzZXQsIG90aGVyd2lzZSBpdHMgY29uc3RydWN0IGlkXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogUmFpc2UgaW4tZnVuY3Rpb24gT3BlblRlbGVtZXRyeSB2ZXJib3NpdHkgKGBPVEVMX0xPR19MRVZFTD1kZWJ1Z2ApLlxuICAgKlxuICAgKiBUaGUgbGF5ZXIsIFNESyBhbmQgY29sbGVjdG9yIHRoZW4gZW1pdCBzcGFuIGFuZCBPVExQLWV4cG9ydCBkaWFnbm9zdGljcyBpbnRvIHRoZSBmdW5jdGlvbidzIENsb3VkV2F0Y2hcbiAgICogbG9nIGdyb3VwLiBVc2VmdWwgd2hpbGUgd2lyaW5nIHVwIGEgZGVzdGluYXRpb24sIGV4cGVuc2l2ZSB0byBsZWF2ZSBvbi5cbiAgICpcbiAgICogSGFzIG5vIGVmZmVjdCBpbiB3ZWItc2VydmVyIG1vZGUsIG1hdGNoaW5nIHRoZSBjb25uZWN0b3IsIHdoaWNoIG5ldmVyIHNldHMgYSBsb2cgbGV2ZWwgdGhlcmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkZWJ1Zz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF0dGFjaCB0aGlzIGxheWVyIGluc3RlYWQgb2YgcmVzb2x2aW5nIG9uZS4gT3ZlcnJpZGVzIGBsYXllclNvdXJjZWAgZW50aXJlbHkuXG4gICAqXG4gICAqIFRoZSBlc2NhcGUgaGF0Y2ggZm9yIGEgbGF5ZXIgbWlycm9yZWQgaW50byBhIHByaXZhdGUgcmVnaXN0cnkgb3IgYW4gaW50ZXJuYWwgYWNjb3VudC4gVGhlIGxheWVyIG11c3RcbiAgICogaGF2ZSB0aGUgc2FtZSBjb250ZW50cyBhcyB0aGUgT2RpZ29zIG9uZSDigJQgdGhlIGVudmlyb25tZW50IHNldCBoZXJlIGFzc3VtZXMgaXRzIGV4YWN0IHNjcmlwdCBsYXlvdXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcmVzb2x2ZWQgZnJvbSBsYXllclNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgbGF5ZXJWZXJzaW9uPzogbGFtYmRhLklMYXllclZlcnNpb247XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSB0aGUgZnVuY3Rpb24gYWxyZWFkeSBuZWVkcyBpbiBpdHMgbGFuZ3VhZ2UgbG9hZGVyIHZhcmlhYmxlIChgTk9ERV9PUFRJT05TYCxcbiAgICogYEpBVkFfVE9PTF9PUFRJT05TYCBvciBgUFlUSE9OUEFUSGApLCB3aGljaCB0aGUgT2RpZ29zIGxvYWRlciBpcyBqb2luZWQgdG8gcmF0aGVyIHRoYW4gcmVwbGFjaW5nLlxuICAgKlxuICAgKiBPbmx5IHVzZWQgaW4gd2ViLXNlcnZlciBtb2RlLiBJdCBoYXMgdG8gYmUgcGFzc2VkIGV4cGxpY2l0bHkgYmVjYXVzZSBDREsncyBgbGFtYmRhLkZ1bmN0aW9uYCBleHBvc2VzXG4gICAqIG5vIHdheSB0byByZWFkIGJhY2sgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgc2V0IGVsc2V3aGVyZSBpbiB0aGUgYXBwIOKAlCBhbiBvbWl0dGVkIHZhbHVlIGhlcmUgaXNcbiAgICogc2lsZW50bHkgb3ZlcndyaXR0ZW4sIHdoaWNoIGZvciBgTk9ERV9PUFRJT05TYCBjYW4gbWVhbiBsb3NpbmcgYSBmbGFnIHRoZSBhcHAgbmVlZHMgdG8gYm9vdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgbG9hZGVyIHZhcmlhYmxlIGlzIHNldCB0byB0aGUgT2RpZ29zIHZhbHVlIGFsb25lXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ0xvYWRlclZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTa2lwIGZ1bmN0aW9ucyB3aG9zZSBydW50aW1lIGhhcyBubyBPcGVuVGVsZW1ldHJ5IExhbWJkYSBsYXllciBpbnN0ZWFkIG9mIHRocm93aW5nLlxuICAgKlxuICAgKiBgZG90bmV0KmAgYW5kIGBwcm92aWRlZC4qYCAoR28sIGN1c3RvbSBydW50aW1lcykgaGF2ZSBubyBsYW5ndWFnZSBsYXllciB1cHN0cmVhbS4gRXhwbGljaXRseVxuICAgKiBpbnN0cnVtZW50aW5nIG9uZSBpcyBhIG1pc3Rha2Ugd29ydGggZmFpbGluZyBvbjsgc3dlZXBpbmcgYSB3aG9sZSBzdGFjayB3aXRoIHRoZSBhc3BlY3QgYW5kIGhpdHRpbmdcbiAgICogb25lIGlzIG5vdCwgd2hpY2ggaXMgd2h5IHRoZSBhc3BlY3QgZGVmYXVsdHMgdGhpcyB0byBgdHJ1ZWAgYW5kIHRoZSBjb25zdHJ1Y3QgdG8gYGZhbHNlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHNraXBVbnN1cHBvcnRlZFJ1bnRpbWVzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wcyBmb3Ige0BsaW5rIE9kaWdvc0xhbWJkYUluc3RydW1lbnRhdGlvbn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RpZ29zTGFtYmRhSW5zdHJ1bWVudGF0aW9uUHJvcHMgZXh0ZW5kcyBPZGlnb3NJbnN0cnVtZW50YXRpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIEZ1bmN0aW9ucyB0byBpbnN0cnVtZW50IG9uIGNvbnN0cnVjdGlvbi4gTW9yZSBjYW4gYmUgYWRkZWQgd2l0aCBgaW5zdHJ1bWVudCgpYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbnM/OiBsYW1iZGEuRnVuY3Rpb25bXTtcbn1cblxuLyoqXG4gKiBJbnN0cnVtZW50cyBBV1MgTGFtYmRhIGZ1bmN0aW9ucyB3aXRoIHRoZSBPZGlnb3MgT3BlblRlbGVtZXRyeSBsYXllci5cbiAqXG4gKiBgYGB0c1xuICogY29uc3Qgb2RpZ29zID0gbmV3IE9kaWdvc0xhbWJkYUluc3RydW1lbnRhdGlvbih0aGlzLCAnT2RpZ29zJywge1xuICogICBkZXN0aW5hdGlvbjogeyBlbmRwb2ludDogJ290bHAuZXhhbXBsZS5jb206NDMxNycgfSxcbiAqICAgZnVuY3Rpb25zOiBbYXBpRm4sIHdvcmtlckZuXSxcbiAqIH0pO1xuICogb2RpZ29zLmluc3RydW1lbnQoYW5vdGhlckZuKTtcbiAqIGBgYFxuICpcbiAqIFdoYXQgaXQgZG9lcyB0byBlYWNoIGZ1bmN0aW9uOiBhdHRhY2hlcyB0aGUgbGF5ZXIgZm9yIHRoZSBmdW5jdGlvbidzIGxhbmd1YWdlIGFuZCBhcmNoaXRlY3R1cmUsIHNldHNcbiAqIGBBV1NfTEFNQkRBX0VYRUNfV1JBUFBFUmAgc28gdGhlIGxheWVyIGxvYWRzIHRoZSBTREssIHNldHMgYE9URUxfU0VSVklDRV9OQU1FYCwgYW5kIGhhbmRzIHRoZSBpbi1MYW1iZGFcbiAqIGNvbGxlY3RvciBpdHMgZW50aXJlIGNvbmZpZ3VyYXRpb24gaW5saW5lIHRocm91Z2ggYE9QRU5URUxFTUVUUllfQ09MTEVDVE9SX0NPTkZJR19VUklgLlxuICpcbiAqIFRoZSBmdW5jdGlvbidzIFNESyBleHBvcnRzIHRvIHRoZSBjb2xsZWN0b3Igb24gbG9jYWxob3N0LCBub3QgdG8geW91ciBkZXN0aW5hdGlvbi4gVGhlIGNvbGxlY3RvclxuICogZm9yd2FyZHMgYWZ0ZXIgdGhlIGhhbmRsZXIgaGFzIGFscmVhZHkgcmV0dXJuZWQsIHNvIGEgc2xvdyBkZXN0aW5hdGlvbiBjb3N0cyBiaWxsZWQgZHVyYXRpb24gcmF0aGVyXG4gKiB0aGFuIGNhbGxlciBsYXRlbmN5LlxuICpcbiAqICMjIERvIG5vdCBhbHNvIGluc3RydW1lbnQgdGhlc2UgZnVuY3Rpb25zIHdpdGggdGhlIGNvbm5lY3RvclxuICpcbiAqIFRoZSBPZGlnb3MgQVdTIGNvbm5lY3RvciBpbnN0cnVtZW50cyBsaXZlIGZ1bmN0aW9ucyBieSBtdXRhdGluZyB0aGVtLCBhbmQgcmVjb25jaWxlcyB0aGVtIGJhY2sgdG8gaXRzXG4gKiBvd24gZGVzaXJlZCBzdGF0ZSBvbiBldmVyeSBwYXNzLiBBIGZ1bmN0aW9uIGluc3RydW1lbnRlZCBoZXJlIGFuZCBhbHNvIGVuYWJsZWQgYXMgYSBjb25uZWN0b3Igc291cmNlXG4gKiBlbmRzIHVwIG93bmVkIGJ5IGJvdGg6IGVhY2ggYGNkayBkZXBsb3lgIHJlYXNzZXJ0cyB0aGUgQ0RLJ3MgZW52aXJvbm1lbnQsIGVhY2ggcmVjb25jaWxlIHJlYXNzZXJ0cyB0aGVcbiAqIGNvbm5lY3RvcidzLCBhbmQgZXZlcnkgcm91bmQgdHJpcCBwdWJsaXNoZXMgYSBuZXcgZnVuY3Rpb24gdmVyc2lvbi5cbiAqXG4gKiBDaG9vc2Ugb25lIHBlciBmdW5jdGlvbi4gVGhpcyBjb25zdHJ1Y3Qgd3JpdGVzIGBPRElHT1NfSUFDYCBhbmQgbmV2ZXIgdGhlIGNvbm5lY3RvcidzIGBPRElHT1NfTUFOQUdFRGBcbiAqIG93bmVyc2hpcCBtYXJrZXIsIHNvIGFuIElhQy1pbnN0cnVtZW50ZWQgZnVuY3Rpb24gcmVwb3J0cyBhcyBpbnN0cnVtZW50ZWQgYnV0IGlzIG5vdCBvbmUgdGhlIGNvbm5lY3RvclxuICogd2lsbCByb2xsIGJhY2sg4oCUIHRob3VnaCBpdCB3aWxsIGhhcHBpbHkgdGFrZSBpdCBvdmVyIGlmIHlvdSBlbmFibGUgaXQgYXMgYSBzb3VyY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBPZGlnb3NMYW1iZGFJbnN0cnVtZW50YXRpb24gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IE9kaWdvc0luc3RydW1lbnRhdGlvbk9wdGlvbnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZXI6IE9kaWdvc0xheWVyUmVzb2x2ZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29sbGVjdG9yQ29uZmlnOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5zdHJ1bWVudGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE9kaWdvc0xhbWJkYUluc3RydW1lbnRhdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMub3B0aW9ucyA9IHByb3BzO1xuICAgIHRoaXMucmVzb2x2ZXIgPSBuZXcgT2RpZ29zTGF5ZXJSZXNvbHZlcih0aGlzLCBwcm9wcy5sYXllclNvdXJjZSA/PyBPZGlnb3NMYXllclNvdXJjZS5PRElHT1NfUFVCTElDKTtcblxuICAgIC8vIFJlbmRlcmVkIG9uY2UuIEl0IGRlcGVuZHMgb25seSBvbiB0aGUgZGVzdGluYXRpb24sIGFuZCByZW5kZXJpbmcgaXQgcGVyIGZ1bmN0aW9uIHdvdWxkIG1ha2UgYW5cbiAgICAvLyBhY2NpZGVudGFsIGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gZnVuY3Rpb25zIHBvc3NpYmxlLlxuICAgIHRoaXMuY29sbGVjdG9yQ29uZmlnID0gcmVuZGVyQ29sbGVjdG9yQ29uZmlnKHByb3BzLmRlc3RpbmF0aW9uKTtcblxuICAgIC8vIEEgd2FybmluZyByYXRoZXIgdGhhbiBhbiBlcnJvciwgYmVjYXVzZSBhIGNvbGxlY3RvciBDQU4gYmUgcmVhY2hlZCBvdmVyIGdSUEMgb24gYSBub24tc3RhbmRhcmQgcG9ydCDigJRcbiAgICAvLyBidXQgdGhlIG92ZXJ3aGVsbWluZ2x5IGxpa2VsaWVyIHJlYWRpbmcgb2YgYGVuZHBvaW50OiBcImhvc3Q6NDMxOFwiYCBpcyBhbiBPVExQL0hUVFAgZW5kcG9pbnQgcGFzc2VkIHRvXG4gICAgLy8gdGhlIGdSUEMgZXhwb3J0ZXIsIHdoaWNoIGJ1aWxkcywgc3RhcnRzLCBhbmQgdGhlbiBuZXZlciBkZWxpdmVycyBhIGJhdGNoLiBTaWxlbnQgZm9yIHRoZSBjYWxsZXIgd2hvXG4gICAgLy8gbWVhbnQgaXQ7IGxvdWQgZm9yIHRoZSBvbmUgd2hvIGRpZCBub3QuXG4gICAgaWYgKHByb3BzLmRlc3RpbmF0aW9uLmVuZHBvaW50Py5lbmRzV2l0aCgnOjQzMTgnKSkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZ1YyKFxuICAgICAgICAnQG9kaWdvcy9hd3MtY2RrOnByb2JhYmxlSHR0cEVuZHBvaW50JyxcbiAgICAgICAgYE9kaWdvczogZGVzdGluYXRpb24gZW5kcG9pbnQgXCIke3Byb3BzLmRlc3RpbmF0aW9uLmVuZHBvaW50fVwiIGlzIG9uIDQzMTgsIHRoZSBPVExQL0hUVFAgcG9ydCwgYnV0IGAgK1xuICAgICAgICAgICdgZW5kcG9pbnRgIGNvbmZpZ3VyZXMgdGhlIGdSUEMgZXhwb3J0ZXIgKGNvbnZlbnRpb25hbGx5IDQzMTcpLiBJZiB0aGF0IGlzIGFuIE9UTFAvSFRUUCBjb2xsZWN0b3IsICcgK1xuICAgICAgICAgICdwYXNzIGl0IGFzIGBodHRwRW5kcG9pbnQ6IFwiaHR0cDovL2hvc3Q6NDMxOFwiYCBpbnN0ZWFkIOKAlCB0aGUgZ1JQQyBleHBvcnRlciB3aWxsIGV4cG9ydCBub3RoaW5nIHRvIGl0LicsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAocHJvcHMuZGVzdGluYXRpb24uaHR0cEVuZHBvaW50Py5lbmRzV2l0aCgnOjQzMTcnKSkge1xuICAgICAgQW5ub3RhdGlvbnMub2YodGhpcykuYWRkV2FybmluZ1YyKFxuICAgICAgICAnQG9kaWdvcy9hd3MtY2RrOnByb2JhYmxlR3JwY0VuZHBvaW50JyxcbiAgICAgICAgYE9kaWdvczogZGVzdGluYXRpb24gaHR0cEVuZHBvaW50IFwiJHtwcm9wcy5kZXN0aW5hdGlvbi5odHRwRW5kcG9pbnR9XCIgaXMgb24gNDMxNywgdGhlIE9UTFAvZ1JQQyBwb3J0LCBgICtcbiAgICAgICAgICAnYnV0IGBodHRwRW5kcG9pbnRgIGNvbmZpZ3VyZXMgdGhlIEhUVFAgZXhwb3J0ZXIgKGNvbnZlbnRpb25hbGx5IDQzMTgpLiBJZiB0aGF0IGlzIGEgZ1JQQyBjb2xsZWN0b3IsICcgK1xuICAgICAgICAgICdwYXNzIGl0IGFzIGBlbmRwb2ludDogXCJob3N0OjQzMTdcImAgaW5zdGVhZC4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGZuIG9mIHByb3BzLmZ1bmN0aW9ucyA/PyBbXSkge1xuICAgICAgdGhpcy5pbnN0cnVtZW50KGZuKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5zdHJ1bWVudHMgb25lIGZ1bmN0aW9uLiBJZGVtcG90ZW50IOKAlCBpbnN0cnVtZW50aW5nIHRoZSBzYW1lIGZ1bmN0aW9uIHR3aWNlIGlzIGEgbm8tb3AgcmF0aGVyIHRoYW4gYVxuICAgKiBkb3VibGVkIGxvYWRlciB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBpbnN0cnVtZW50KGZuOiBsYW1iZGEuRnVuY3Rpb24pOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSBmbi5ub2RlLnBhdGg7XG4gICAgaWYgKHRoaXMuaW5zdHJ1bWVudGVkLmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcnVudGltZU5hbWUgPSBmbi5ydW50aW1lLm5hbWU7XG4gICAgY29uc3QgbGFuZ3VhZ2UgPSBsYW5ndWFnZUZyb21SdW50aW1lKHJ1bnRpbWVOYW1lKTtcbiAgICBpZiAoIWxhbmd1YWdlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID1cbiAgICAgICAgYE9kaWdvczogcnVudGltZSBcIiR7cnVudGltZU5hbWV9XCIgaGFzIG5vIE9wZW5UZWxlbWV0cnkgTGFtYmRhIGxheWVyIGAgK1xuICAgICAgICAnKHVwc3RyZWFtIHB1Ymxpc2hlcyBsYXllcnMgZm9yIHB5dGhvbiwgbm9kZWpzLCBqYXZhIGFuZCBydWJ5IG9ubHkpLCBzbyB0aGlzIGZ1bmN0aW9uIGNhbm5vdCBiZSBpbnN0cnVtZW50ZWQuJztcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuc2tpcFVuc3VwcG9ydGVkUnVudGltZXMpIHtcbiAgICAgICAgQW5ub3RhdGlvbnMub2YoZm4pLmFkZFdhcm5pbmdWMignQG9kaWdvcy9hd3MtY2RrOnVuc3VwcG9ydGVkUnVudGltZScsIGAke21lc3NhZ2V9IFNraXBwaW5nLmApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7bWVzc2FnZX0gU2V0IHNraXBVbnN1cHBvcnRlZFJ1bnRpbWVzOiB0cnVlIHRvIHNraXAgaXQgaW5zdGVhZC5gKTtcbiAgICB9XG5cbiAgICB0aGlzLmluc3RydW1lbnRlZC5hZGQoa2V5KTtcblxuICAgIGNvbnN0IGFyY2hpdGVjdHVyZSA9IGZuLmFyY2hpdGVjdHVyZS5uYW1lO1xuICAgIGNvbnN0IGxheWVyID0gdGhpcy5vcHRpb25zLmxheWVyVmVyc2lvbiA/PyB0aGlzLnJlc29sdmVyLnJlc29sdmUobGFuZ3VhZ2UsIGFyY2hpdGVjdHVyZSk7XG4gICAgZm4uYWRkTGF5ZXJzKGxheWVyKTtcblxuICAgIC8vIFRoZSBBUk4sIG5vdCB0aGUgY29uc3RydWN0OiB0aGUgbWFya2VyIGhhcyB0byBuYW1lIHRoZSBleGFjdCBsYXllciB2ZXJzaW9uIHRoZSBmdW5jdGlvbiBjYXJyaWVzLCBhbmRcbiAgICAvLyBpbiBJTl9BQ0NPVU5UIG1vZGUgdGhhdCBpcyBhIG5lc3RlZC1zdGFjayBvdXRwdXQgcmVmZXJlbmNlIHJlc29sdmVkIGF0IGRlcGxveSB0aW1lLlxuICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmVudmlyb25tZW50Rm9yKGZuLCBsYW5ndWFnZSwgbGF5ZXIubGF5ZXJWZXJzaW9uQXJuKSkpIHtcbiAgICAgIGZuLmFkZEVudmlyb25tZW50KG5hbWUsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKiogSW5zdHJ1bWVudHMgZXZlcnkgZnVuY3Rpb24gaW4gdGhlIGxpc3QuICovXG4gIHB1YmxpYyBpbnN0cnVtZW50QWxsKGZ1bmN0aW9uczogbGFtYmRhLkZ1bmN0aW9uW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGZuIG9mIGZ1bmN0aW9ucykge1xuICAgICAgdGhpcy5pbnN0cnVtZW50KGZuKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IGFwcGxpZWQgdG8gb25lIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBNaXJyb3JzIGBhcHBseUhhbmRsZXJFbnZgIC8gYGFwcGx5V2ViU2VydmVyRW52YCBpbiB0aGUgY29ubmVjdG9yLCBpbmNsdWRpbmcgd2hhdCBpcyBkZWxpYmVyYXRlbHkgTk9UXG4gICAqIHNldDogYE9URUxfRVhQT1JURVJfT1RMUF9FTkRQT0lOVGAgc3RheXMgdW5zZXQgc28gdGhlIFNESyBrZWVwcyBleHBvcnRpbmcgdG8gdGhlIGluLUxhbWJkYSBjb2xsZWN0b3JcbiAgICogb24gbG9jYWxob3N0IHJhdGhlciB0aGFuIGJsb2NraW5nIHRoZSBpbnZvY2F0aW9uIG9uIHRoZSByZW1vdGUgZGVzdGluYXRpb24sIGFuZCBhbiBlbmFibGVkIHNpZ25hbCdzXG4gICAqIGBPVEVMXypfRVhQT1JURVJgIHN0YXlzIHVuc2V0IGJlY2F1c2UgYG90bHBgIGlzIGFscmVhZHkgdGhlIFNESyBkZWZhdWx0LlxuICAgKi9cbiAgcHJpdmF0ZSBlbnZpcm9ubWVudEZvcihmbjogbGFtYmRhLkZ1bmN0aW9uLCBsYW5ndWFnZTogc3RyaW5nLCBsYXllckFybjogc3RyaW5nKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgeyBkZXN0aW5hdGlvbiwgbW9kZSwgZGVidWcsIHNlcnZpY2VOYW1lLCBqYXZhSGFuZGxlckRpc3RybywgZXhpc3RpbmdMb2FkZXJWYWx1ZSB9ID0gdGhpcy5vcHRpb25zO1xuICAgIGNvbnN0IHdlYlNlcnZlciA9IG1vZGUgPT09IE9kaWdvc0luc3RydW1lbnRhdGlvbk1vZGUuV0VCX1NFUlZFUjtcblxuICAgIGNvbnN0IGVudjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICAgIFtFTlZfU0VSVklDRV9OQU1FXTogc2VydmljZU5hbWUgPz8gZGVmYXVsdFNlcnZpY2VOYW1lKGZuKSxcbiAgICAgIFtFTlZfQ09MTEVDVE9SX0NPTkZJR19VUkldOiB0aGlzLmNvbGxlY3RvckNvbmZpZyxcbiAgICAgIFtFTlZfSUFDX01BUktFUl06IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdjogTUFSS0VSX1ZFUlNJT04sXG4gICAgICAgIHNvdXJjZTogJ2NkaycsXG4gICAgICAgIHZlcnNpb246IE9ESUdPU19WRVJTSU9OIHx8ICd1bnJlbGVhc2VkJyxcbiAgICAgICAgbGF5ZXI6IGxheWVyQXJuLFxuICAgICAgfSksXG4gICAgfTtcblxuICAgIGlmICh3ZWJTZXJ2ZXIpIHtcbiAgICAgIC8vIE5vIGV4ZWMgd3JhcHBlcjogdGhlIExhbWJkYSBXZWIgQWRhcHRlciBvd25zIGl0LCBhbmQgb3ZlcndyaXRpbmcgaXQgc3RvcHMgdGhlIGZ1bmN0aW9uIHNlcnZpbmcuXG4gICAgICBPYmplY3QuYXNzaWduKGVudiwgd2ViU2VydmVyRW52KGxhbmd1YWdlLCBleGlzdGluZ0xvYWRlclZhbHVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVudltFTlZfRVhFQ19XUkFQUEVSXSA9IGV4ZWNXcmFwcGVyRm9yKGxhbmd1YWdlLCBqYXZhSGFuZGxlckRpc3Rybyk7XG4gICAgICBpZiAoZGVidWcpIHtcbiAgICAgICAgZW52W0VOVl9PVEVMX0xPR19MRVZFTF0gPSAnZGVidWcnO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFN1cHByZXNzIHRoZSBzaWduYWxzIHRoZSBkZXN0aW5hdGlvbiBkb2VzIG5vdCBhY2NlcHQuIEEgc2lnbmFsIHdpdGggbm8gY29sbGVjdG9yIHBpcGVsaW5lIGlzIHJlZnVzZWRcbiAgICAvLyBhdCB0aGUgcmVjZWl2ZXIgb24gZXZlcnkgYmF0Y2gsIHNvIHRlbGxpbmcgdGhlIFNESyBub3QgdG8gcHJvZHVjZSBpdCBpcyB0aGUgaGFsZiB0aGF0IHN0b3BzIHRoZVxuICAgIC8vIGVycm9yIGxvb3A7IHRoZSBwaXBlbGluZSBiZWluZyBhYnNlbnQgaXMgdGhlIGhhbGYgdGhhdCBzdG9wcyB0aGUgZXhwb3J0LlxuICAgIGNvbnN0IGVuYWJsZWQgPSByZXNvbHZlZFNpZ25hbHMoZGVzdGluYXRpb24pO1xuICAgIGNvbnN0IG92ZXJyaWRlczogQXJyYXk8W3N0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkXT4gPSBbXG4gICAgICBbRU5WX1RSQUNFU19FWFBPUlRFUiwgZXhwb3J0ZXJPdmVycmlkZUZvcihlbmFibGVkLnRyYWNlcyldLFxuICAgICAgW0VOVl9NRVRSSUNTX0VYUE9SVEVSLCBleHBvcnRlck92ZXJyaWRlRm9yKGVuYWJsZWQubWV0cmljcyldLFxuICAgICAgW0VOVl9MT0dTX0VYUE9SVEVSLCBleHBvcnRlck92ZXJyaWRlRm9yKGVuYWJsZWQubG9ncyldLFxuICAgIF07XG4gICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIG92ZXJyaWRlcykge1xuICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZW52W25hbWVdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudjtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BzIGZvciB7QGxpbmsgT2RpZ29zSW5zdHJ1bWVudGF0aW9uQXNwZWN0fS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGlnb3NJbnN0cnVtZW50YXRpb25Bc3BlY3RQcm9wcyBleHRlbmRzIE9kaWdvc0luc3RydW1lbnRhdGlvbk9wdGlvbnMge31cblxuLyoqXG4gKiBBcHBsaWVzIE9kaWdvcyBpbnN0cnVtZW50YXRpb24gdG8gZXZlcnkgYGxhbWJkYS5GdW5jdGlvbmAgaW4gYSBzY29wZS5cbiAqXG4gKiBgYGB0c1xuICogQXNwZWN0cy5vZihzdGFjaykuYWRkKG5ldyBPZGlnb3NJbnN0cnVtZW50YXRpb25Bc3BlY3Qoc3RhY2ssIHtcbiAqICAgZGVzdGluYXRpb246IHsgZW5kcG9pbnQ6ICdvdGxwLmV4YW1wbGUuY29tOjQzMTcnIH0sXG4gKiB9KSk7XG4gKiBgYGBcbiAqXG4gKiBgc2tpcFVuc3VwcG9ydGVkUnVudGltZXNgIGRlZmF1bHRzIHRvIGB0cnVlYCBoZXJlLCB1bmxpa2UgdGhlIGNvbnN0cnVjdDogYW4gYXNwZWN0IHZpc2l0cyBldmVyeSBmdW5jdGlvblxuICogaW4gdGhlIHNjb3BlLCBpbmNsdWRpbmcgb25lcyB3aG9zZSBydW50aW1lIGhhcyBubyBPcGVuVGVsZW1ldHJ5IGxheWVyLCBhbmQgZmFpbGluZyB0aGUgd2hvbGUgc3ludGhcbiAqIGJlY2F1c2UgYSBzdGFjayBoYXBwZW5zIHRvIGNvbnRhaW4gb25lIEdvIGZ1bmN0aW9uIGlzIG5vdCB1c2VmdWwuIEVhY2ggc2tpcCBpcyByZXBvcnRlZCBhcyBhIHN5bnRoXG4gKiB3YXJuaW5nLCBzbyBpdCBpcyB2aXNpYmxlIHJhdGhlciB0aGFuIHNpbGVudC5cbiAqXG4gKiBUaGUgYXNwZWN0IGluc3RydW1lbnRzIHdoYXQgZXhpc3RzIGluIHRoZSB0cmVlIHdoZW4gaXQgcnVucy4gQSBmdW5jdGlvbiBhZGRlZCBieSBhIGxhdGVyIGFzcGVjdCBpcyBub3RcbiAqIHZpc2l0ZWQ7IHVzZSB0aGUgY29uc3RydWN0IGRpcmVjdGx5IGZvciB0aG9zZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE9kaWdvc0luc3RydW1lbnRhdGlvbkFzcGVjdCBpbXBsZW1lbnRzIElBc3BlY3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IGluc3RydW1lbnRhdGlvbjogT2RpZ29zTGFtYmRhSW5zdHJ1bWVudGF0aW9uO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gc2NvcGUgd2hlcmUgdGhlIHNoYXJlZCBsYXllciBjb25zdHJ1Y3RzIGFyZSBjcmVhdGVkLiBVc3VhbGx5IHRoZSBzYW1lIHNjb3BlIHRoZSBhc3BlY3QgaXNcbiAgICogYXBwbGllZCB0by4gSXQgaXMgYSBzZXBhcmF0ZSBhcmd1bWVudCBmcm9tIHRoZSB2aXNpdGVkIG5vZGVzIGJlY2F1c2UgdGhlIGxheWVyIChhbmQsIGluIGBJTl9BQ0NPVU5UYFxuICAgKiBtb2RlLCB0aGUgbmVzdGVkIFNBUiBhcHBsaWNhdGlvbikgaXMgY3JlYXRlZCBvbmNlIGFuZCBzaGFyZWQgYnkgZXZlcnkgZnVuY3Rpb24gdGhlIGFzcGVjdCB2aXNpdHMuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBwcm9wczogT2RpZ29zSW5zdHJ1bWVudGF0aW9uQXNwZWN0UHJvcHMpIHtcbiAgICB0aGlzLmluc3RydW1lbnRhdGlvbiA9IG5ldyBPZGlnb3NMYW1iZGFJbnN0cnVtZW50YXRpb24oc2NvcGUsICdPZGlnb3NJbnN0cnVtZW50YXRpb25Bc3BlY3QnLCB7XG4gICAgICBza2lwVW5zdXBwb3J0ZWRSdW50aW1lczogdHJ1ZSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHZpc2l0KG5vZGU6IElDb25zdHJ1Y3QpOiB2b2lkIHtcbiAgICBpZiAobm9kZSBpbnN0YW5jZW9mIGxhbWJkYS5GdW5jdGlvbikge1xuICAgICAgdGhpcy5pbnN0cnVtZW50YXRpb24uaW5zdHJ1bWVudChub2RlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
251
|
+
OdigosInstrumentationAspect[_b] = { fqn: "@odigos/aws-cdk.OdigosInstrumentationAspect", version: "0.0.17" };
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2luc3RydW1lbnRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFpRTtBQUNqRSxpREFBaUQ7QUFDakQsMkNBQW1EO0FBQ25ELHlEQVE0QjtBQUM1QiwrQ0FBb0Q7QUFDcEQscURBQXVEO0FBQ3ZELHVDQUFtRjtBQUNuRixtQ0FLaUI7QUFFakIsMkVBQTJFO0FBQzNFLE1BQU0sZ0JBQWdCLEdBQUcseUJBQXlCLENBQUM7QUFDbkQsa0VBQWtFO0FBQ2xFLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUM7QUFDN0MsMkZBQTJGO0FBQzNGLE1BQU0sa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUM7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDO0FBRXpCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBRXBDOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILFNBQVMsa0JBQWtCLENBQUMsRUFBbUI7SUFDN0MsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUE4QyxDQUFDO0lBQ25FLE1BQU0sUUFBUSxHQUFHLEdBQUcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsbUJBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4RixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssRUFBRSxJQUFJLENBQUMsbUJBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNyRixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUNw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O1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOztBQXZJSCxrRUF3SUM7OztBQU9EOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBYSwyQkFBMkI7SUFHdEM7Ozs7T0FJRztJQUNILFlBQVksS0FBZ0IsRUFBRSxLQUF1QztRQUNuRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksMkJBQTJCLENBQUMsS0FBSyxFQUFFLDZCQUE2QixFQUFFO1lBQzNGLHVCQUF1QixFQUFFLElBQUk7WUFDN0IsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFnQjtRQUMzQixJQUFJLElBQUksWUFBWSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7O0FBbkJILGtFQW9CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFubm90YXRpb25zLCBJQXNwZWN0LCBTdGFjaywgVG9rZW4gfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7XG4gIEVOVl9DT0xMRUNUT1JfQ09ORklHX1VSSSxcbiAgRU5WX0xPR1NfRVhQT1JURVIsXG4gIEVOVl9NRVRSSUNTX0VYUE9SVEVSLFxuICBFTlZfVFJBQ0VTX0VYUE9SVEVSLFxuICBleHBvcnRlck92ZXJyaWRlRm9yLFxuICByZW5kZXJDb2xsZWN0b3JDb25maWcsXG4gIHJlc29sdmVkU2lnbmFscyxcbn0gZnJvbSAnLi9jb2xsZWN0b3ItY29uZmlnJztcbmltcG9ydCB7IE9ESUdPU19WRVJTSU9OIH0gZnJvbSAnLi9nZW5lcmF0ZWQvbGF5ZXJzJztcbmltcG9ydCB7IE9kaWdvc0xheWVyUmVzb2x2ZXIgfSBmcm9tICcuL2xheWVyLXJlc29sdmVyJztcbmltcG9ydCB7IGRpc3RyaWJ1dGlvbldyYXBwZXIsIGxhbmd1YWdlRnJvbVJ1bnRpbWUsIHdlYlNlcnZlckVudiB9IGZyb20gJy4vcnVudGltZSc7XG5pbXBvcnQge1xuICBPZGlnb3NEZXN0aW5hdGlvbixcbiAgT2RpZ29zSW5zdHJ1bWVudGF0aW9uTW9kZSxcbiAgT2RpZ29zSmF2YUhhbmRsZXJEaXN0cm8sXG4gIE9kaWdvc0xheWVyU291cmNlLFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqIGBBV1NfTEFNQkRBX0VYRUNfV1JBUFBFUmAg4oCUIHRoZSBsYXllcidzIGVudHJ5IHBvaW50IGluIGhhbmRsZXIgbW9kZS4gKi9cbmNvbnN0IEVOVl9FWEVDX1dSQVBQRVIgPSAnQVdTX0xBTUJEQV9FWEVDX1dSQVBQRVInO1xuLyoqIFNlcnZpY2UgbmFtZSByZXBvcnRlZCBvbiBldmVyeSBzcGFuLCBtZXRyaWMgYW5kIGxvZyByZWNvcmQuICovXG5jb25zdCBFTlZfU0VSVklDRV9OQU1FID0gJ09URUxfU0VSVklDRV9OQU1FJztcbi8qKiBSYWlzZXMgaW4tZnVuY3Rpb24gT3BlblRlbGVtZXRyeSB2ZXJib3NpdHkgaW50byB0aGUgZnVuY3Rpb24ncyBDbG91ZFdhdGNoIGxvZyBncm91cC4gKi9cbmNvbnN0IEVOVl9PVEVMX0xPR19MRVZFTCA9ICdPVEVMX0xPR19MRVZFTCc7XG5cbi8qKlxuICogU2NoZW1hIHZlcnNpb24gb2YgdGhlIG1hcmtlciBwYXlsb2FkLiBNdXN0IG1hdGNoIGBhcGkuSWFDTWFya2VyVmVyc2lvbmAgaW4gdGhlIGNvbm5lY3RvciDigJQgaXQgaXMgd2hhdCB0ZWxsc1xuICogdGhlIGNvbm5lY3RvciBob3cgdG8gcmVhZCB0aGUgcmVzdCBvZiB0aGUgb2JqZWN0LCBzbyBhIGJ1bXBlZCB2ZXJzaW9uIHRoZXJlIGlzIGEgY2hhbmdlIGhlcmUuXG4gKi9cbmNvbnN0IE1BUktFUl9WRVJTSU9OID0gMTtcblxuLyoqXG4gKiBgT0RJR09TX0lBQ2Ag4oCUIHRoZSBtYXJrZXIgcmVjb3JkaW5nIHRoYXQgdGhpcyBmdW5jdGlvbiB3YXMgaW5zdHJ1bWVudGVkIGJ5IE9kaWdvcyBJYUMgdG9vbGluZywgYnkgd2hpY2hcbiAqIHBhY2thZ2UgdmVyc2lvbiwgYW5kIGNhcnJ5aW5nIHdoaWNoIGxheWVyLiBUaGlzIGNvbnN0cnVjdCBhbHdheXMgd3JpdGVzIGl0LCBhbmQgaXQgaXMgd2hhdCBtYWtlcyBPZGlnb3NcbiAqIHJlcG9ydCB0aGUgZnVuY3Rpb24gYXMgaW5zdHJ1bWVudGVkIHJhdGhlciB0aGFuIGBBYnNlbnRgIOKAlCBcImF3YWl0aW5nIHlvdXIgZGVwbG95bWVudFwiLlxuICpcbiAqIEl0IGlzIE5PVCBgT0RJR09TX01BTkFHRURgLCBhbmQgdGhlIGRpZmZlcmVuY2UgaXMgdGhlIHdob2xlIHJlYXNvbiB0aGVyZSBhcmUgdHdvIHZhcmlhYmxlcy4gVGhhdCBvbmUgaXMgdGhlXG4gKiBjb25uZWN0b3IncyByZWNvcmQgb2YgYSBtdXRhdGlvbiBJVCBwZXJmb3JtZWQsIHdob3NlIHBheWxvYWQgaXMgdGhlIHNuYXBzaG90IGl0IHJlc3RvcmVzIGZyb20gb24gcm9sbGJhY2s7XG4gKiBhIENESyBzdGFjayBoYXMgbm8gc3VjaCBzbmFwc2hvdCB0byBvZmZlciwgYmVjYXVzZSBub3RoaW5nIHdhcyBtdXRhdGVkIOKAlCB0aGUgZW52aXJvbm1lbnQgYmVsb3cgSVMgdGhlXG4gKiBmdW5jdGlvbidzIGRlZmluaXRpb24uIFNvIHRoZSBjb25uZWN0b3IgYWNjZXB0cyBlaXRoZXIgbWFya2VyIGZvciBcImlzIHRoaXMgaW5zdHJ1bWVudGVkIGJ5IE9kaWdvc1wiLCBhbmRcbiAqIG9ubHkgaXRzIG93biBmb3IgXCJtYXkgSSByb2xsIHRoaXMgYmFja1wiLiBUaGlzIGNvbnN0cnVjdCB3cml0ZXMgdGhlIGZpcnN0IGFuZCBuZXZlciB0aGUgc2Vjb25kOiB0aGUgcGFja2FnZVxuICogd2lsbCBub3QgY2xhaW0gb3duZXJzaGlwIG9mIGEgZnVuY3Rpb24gb24geW91ciBiZWhhbGYuXG4gKlxuICogVGhlIGBsYXllcmAgZmllbGQgaXMgdGhlIGxvYWQtYmVhcmluZyBvbmUuIFRoZSBjb25uZWN0b3IgcmVhZHMgaXQgYmFjayB0byBkZWNpZGUgd2hpY2ggbGF5ZXIgdmVyc2lvbiB0aGVcbiAqIGZ1bmN0aW9uIGlzIFNVUFBPU0VEIHRvIGNhcnJ5LCBzbyBhIHZlcnNpb24geW91IHBpbm5lZCBpcyByZXNwZWN0ZWQgaW5zdGVhZCBvZiBiZWluZyByZXBvcnRlZCBhcyBkcmlmdCB0aGVcbiAqIGRheSBPZGlnb3MgcHVibGlzaGVzIGEgbmV3ZXIgb25lLiBJdCB3b3JrcyBpbiBgSU5fQUNDT1VOVGAgbW9kZSB0b28sIHdoZXJlIHRoZSBBUk4gaXMgYSBkZXBsb3ktdGltZVxuICogcmVmZXJlbmNlIHlvdXIgb3duIGNvZGUgaGFzIG5vIHdheSB0byBvYnRhaW4uXG4gKi9cbmNvbnN0IEVOVl9JQUNfTUFSS0VSID0gJ09ESUdPU19JQUMnO1xuXG4vKipcbiAqIFRoZSBzZXJ2aWNlIGEgZnVuY3Rpb24gcmVwb3J0cyBhcywgd2hlbiB0aGUgY2FsbGVyIGhhcyBub3QgbmFtZWQgb25lLlxuICpcbiAqIFJFQUQgRlJPTSBUSEUgTDEsIE5PVCBGUk9NIGBmbi5mdW5jdGlvbk5hbWVgLiBUaGUgTDIgcHJvcGVydHkgaXMgYSBjcm9zcy1lbnZpcm9ubWVudC1hd2FyZSB0b2tlbiB0aGF0XG4gKiByZXNvbHZlcyB0byBhIGBSZWZgIHRvIHRoZSBmdW5jdGlvbiBpdHNlbGYgZXZlbiB3aGVuIHRoZSBzdGFjayBzZXQgYGZ1bmN0aW9uTmFtZWAgZXhwbGljaXRseSDigJQgc28gdGhlXG4gKiBvYnZpb3VzIGBTdGFjay5vZihmbikucmVzb2x2ZShmbi5mdW5jdGlvbk5hbWUpYCBuZXZlciB5aWVsZHMgYSBsaXRlcmFsLCBhbmQgZXZlcnkgZnVuY3Rpb24gc2lsZW50bHkgZmVsbFxuICogYmFjayB0byBpdHMgY29uc3RydWN0IGlkLiBgQ2ZuRnVuY3Rpb24uZnVuY3Rpb25OYW1lYCBpcyB0aGUgcmF3IHRlbXBsYXRlIHZhbHVlOiB0aGUgbGl0ZXJhbCB0aGUgc3RhY2tcbiAqIHBhc3NlZCwgb3IgdW5kZWZpbmVkIHdoZW4gQ2xvdWRGb3JtYXRpb24gZ2VuZXJhdGVzIHRoZSBuYW1lLlxuICpcbiAqIFdoeSB0aGUgZmFsbGJhY2sgaXMgdGhlIGNvbnN0cnVjdCBpZCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJhdGVkIG5hbWU6IGEgZ2VuZXJhdGVkIG5hbWUgaXMgYSBgUmVmYCB0byB0aGVcbiAqIGZ1bmN0aW9uLCBhbmQgcHV0dGluZyB0aGF0IGluIHRoZSBmdW5jdGlvbidzIG93biBlbnZpcm9ubWVudCBtYWtlcyB0aGUgcmVzb3VyY2UgZGVwZW5kIG9uIGl0cyBvd25cbiAqIGNyZWF0aW9uIOKAlCBDbG91ZEZvcm1hdGlvbiByZWplY3RzIHRoZSB0ZW1wbGF0ZSB3aXRoIGEgZGVwZW5kZW5jeSBjeWNsZSwgYXQgZGVwbG95IHRpbWUuXG4gKlxuICogVGhpcyBtYXR0ZXJzIGJleW9uZCBjb3NtZXRpY3MuIFRoZSBjb25uZWN0b3IgY29tcGFyZXMgYE9URUxfU0VSVklDRV9OQU1FYCBhZ2FpbnN0IHRoZSB3b3JrbG9hZCdzIG5hbWUgaW5cbiAqIE9kaWdvcywgd2hpY2ggaXMgdGhlIHJlYWwgQVdTIGZ1bmN0aW9uIG5hbWUsIHNvIGEgZnVuY3Rpb24gcmVwb3J0aW5nIGl0cyBjb25zdHJ1Y3QgaWQgaXMgcmVwb3J0ZWQgYXNcbiAqIGRyaWZ0ZWQgb24gdGhlIHNlcnZpY2UtbmFtZSBjb21wb25lbnQuIE5hbWluZyB0aGUgZnVuY3Rpb24gaW4geW91ciBzdGFjayBpcyBub3cgZW5vdWdoIHRvIGxpbmUgdGhlIHR3b1xuICogdXA7IGEgZnVuY3Rpb24gd2hvc2UgbmFtZSBDbG91ZEZvcm1hdGlvbiBnZW5lcmF0ZXMgc3RpbGwgbmVlZHMgYHNlcnZpY2VOYW1lYCBwYXNzZWQgZXhwbGljaXRseS5cbiAqL1xuZnVuY3Rpb24gZGVmYXVsdFNlcnZpY2VOYW1lKGZuOiBsYW1iZGEuRnVuY3Rpb24pOiBzdHJpbmcge1xuICBjb25zdCBjZm4gPSBmbi5ub2RlLmRlZmF1bHRDaGlsZCBhcyBsYW1iZGEuQ2ZuRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG4gIGNvbnN0IHJlc29sdmVkID0gY2ZuID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBTdGFjay5vZihmbikucmVzb2x2ZShjZm4uZnVuY3Rpb25OYW1lKTtcbiAgaWYgKHR5cGVvZiByZXNvbHZlZCA9PT0gJ3N0cmluZycgJiYgcmVzb2x2ZWQgIT09ICcnICYmICFUb2tlbi5pc1VucmVzb2x2ZWQocmVzb2x2ZWQpKSB7XG4gICAgcmV0dXJuIHJlc29sdmVkO1xuICB9XG4gIHJldHVybiBmbi5ub2RlLmlkO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgc2hhcmVkIGJ5IHRoZSBjb25zdHJ1Y3QgYW5kIHRoZSBhc3BlY3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT2RpZ29zSW5zdHJ1bWVudGF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgaW4tTGFtYmRhIGNvbGxlY3RvciBleHBvcnRzIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb246IE9kaWdvc0Rlc3RpbmF0aW9uO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgT2RpZ29zIGxheWVyIGNvbWVzIGZyb20uXG4gICAqXG4gICAqIEBkZWZhdWx0IE9kaWdvc0xheWVyU291cmNlLk9ESUdPU19QVUJMSUNcbiAgICovXG4gIHJlYWRvbmx5IGxheWVyU291cmNlPzogT2RpZ29zTGF5ZXJTb3VyY2U7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXIgbW9kZSBvciB3ZWItc2VydmVyIChMYW1iZGEgV2ViIEFkYXB0ZXIpIG1vZGUuXG4gICAqXG4gICAqIFRoZXJlIGlzIG5vIGF1dG8tZGV0ZWN0aW9uLCBhbmQgdGhhdCBpcyBkZWxpYmVyYXRlIHJhdGhlciB0aGFuIGFuIG9taXNzaW9uOiBkZXRlY3RpbmcgdGhlIHdlYiBhZGFwdGVyXG4gICAqIG1lYW5zIGluc3BlY3RpbmcgdGhlIGZ1bmN0aW9uJ3Mgb3RoZXIgbGF5ZXJzLCB3aGljaCBhdCBzeW50aCB0aW1lIGFyZSBmcmVxdWVudGx5IHVucmVzb2x2ZWQgdG9rZW5zLlxuICAgKiBBIGRldGVjdG9yIHRoYXQgaXMgcmlnaHQgbW9zdCBvZiB0aGUgdGltZSB3b3VsZCBzaWxlbnRseSBicmVhayB0aGUgZnVuY3Rpb25zIGl0IGdvdCB3cm9uZy5cbiAgICpcbiAgICogQGRlZmF1bHQgT2RpZ29zSW5zdHJ1bWVudGF0aW9uTW9kZS5IQU5ETEVSXG4gICAqL1xuICByZWFkb25seSBtb2RlPzogT2RpZ29zSW5zdHJ1bWVudGF0aW9uTW9kZTtcblxuICAvKipcbiAgICogQ29ubmVjdG9yIEdyYXBoUUwgZGlzdHJvIG5hbWUsIHN1Y2ggYXMgamF2YS1sYW1iZGEtb3RlbC1hZ2VudCBvciBqYXZhLWxhbWJkYS1vdGVsLXdyYXBwZXIuXG4gICAqIEBkZWZhdWx0IC0gdGhlIGJ1bmRsZWQgZGVmYXVsdCBkaXN0cmlidXRpb24gZm9yIHRoZSBmdW5jdGlvbidzIHJ1bnRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGRpc3Rybz86IHN0cmluZztcblxuICAvKipcbiAgICogTGVnYWN5IGxpZ2h0d2VpZ2h0IEphdmEgaGFuZGxlciBhZGFwdGVyLlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgdGhlIGNvcnJlc3BvbmRpbmcgamF2YS1sYW1iZGEtb3RlbC0qLXdyYXBwZXIgZGlzdHJvLlxuICAgKi9cbiAgcmVhZG9ubHkgamF2YUhhbmRsZXJEaXN0cm8/OiBPZGlnb3NKYXZhSGFuZGxlckRpc3RybztcblxuICAvKipcbiAgICogYE9URUxfU0VSVklDRV9OQU1FYCBmb3IgZXZlcnkgZnVuY3Rpb24gdGhpcyBpbnN0cnVtZW50cy5cbiAgICpcbiAgICogVXN1YWxseSB3cm9uZyB0byBzZXQgd2hlbiBpbnN0cnVtZW50aW5nIG1vcmUgdGhhbiBvbmUgZnVuY3Rpb24g4oCUIHRoZXkgd291bGQgYWxsIHJlcG9ydCBhcyB0aGUgc2FtZVxuICAgKiBzZXJ2aWNlLlxuICAgKlxuICAgKiBMZWZ0IHVuc2V0LCBhIGZ1bmN0aW9uIHJlcG9ydHMgYXMgaXRzIGV4cGxpY2l0bHktc2V0IHBoeXNpY2FsIG5hbWUgaWYgaXQgaGFzIG9uZSwgYW5kIG90aGVyd2lzZSBhc1xuICAgKiBpdHMgY29uc3RydWN0IGlkLiBJdCBkZWxpYmVyYXRlbHkgZG9lcyBub3QgZGVmYXVsdCB0byB0aGUgZ2VuZXJhdGVkIHBoeXNpY2FsIG5hbWU6IHRoYXQgdmFsdWUgaXMgYVxuICAgKiBgUmVmYCB0byB0aGUgZnVuY3Rpb24gaXRzZWxmLCBhbmQgYSBmdW5jdGlvbiByZWZlcmVuY2luZyBpdHNlbGYgaW4gaXRzIG93biBlbnZpcm9ubWVudCBpcyBhXG4gICAqIENsb3VkRm9ybWF0aW9uIGRlcGVuZGVuY3kgY3ljbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGZ1bmN0aW9uJ3MgcGh5c2ljYWwgbmFtZSBpZiBleHBsaWNpdGx5IHNldCwgb3RoZXJ3aXNlIGl0cyBjb25zdHJ1Y3QgaWRcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSYWlzZSBpbi1mdW5jdGlvbiBPcGVuVGVsZW1ldHJ5IHZlcmJvc2l0eSAoYE9URUxfTE9HX0xFVkVMPWRlYnVnYCkuXG4gICAqXG4gICAqIFRoZSBsYXllciwgU0RLIGFuZCBjb2xsZWN0b3IgdGhlbiBlbWl0IHNwYW4gYW5kIE9UTFAtZXhwb3J0IGRpYWdub3N0aWNzIGludG8gdGhlIGZ1bmN0aW9uJ3MgQ2xvdWRXYXRjaFxuICAgKiBsb2cgZ3JvdXAuIFVzZWZ1bCB3aGlsZSB3aXJpbmcgdXAgYSBkZXN0aW5hdGlvbiwgZXhwZW5zaXZlIHRvIGxlYXZlIG9uLlxuICAgKlxuICAgKiBIYXMgbm8gZWZmZWN0IGluIHdlYi1zZXJ2ZXIgbW9kZSwgbWF0Y2hpbmcgdGhlIGNvbm5lY3Rvciwgd2hpY2ggbmV2ZXIgc2V0cyBhIGxvZyBsZXZlbCB0aGVyZS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRlYnVnPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQXR0YWNoIHRoaXMgbGF5ZXIgaW5zdGVhZCBvZiByZXNvbHZpbmcgb25lLiBPdmVycmlkZXMgYGxheWVyU291cmNlYCBlbnRpcmVseS5cbiAgICpcbiAgICogVGhlIGVzY2FwZSBoYXRjaCBmb3IgYSBsYXllciBtaXJyb3JlZCBpbnRvIGEgcHJpdmF0ZSByZWdpc3RyeSBvciBhbiBpbnRlcm5hbCBhY2NvdW50LiBUaGUgbGF5ZXIgbXVzdFxuICAgKiBoYXZlIHRoZSBzYW1lIGNvbnRlbnRzIGFzIHRoZSBPZGlnb3Mgb25lIOKAlCB0aGUgZW52aXJvbm1lbnQgc2V0IGhlcmUgYXNzdW1lcyBpdHMgZXhhY3Qgc2NyaXB0IGxheW91dC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSByZXNvbHZlZCBmcm9tIGxheWVyU291cmNlXG4gICAqL1xuICByZWFkb25seSBsYXllclZlcnNpb24/OiBsYW1iZGEuSUxheWVyVmVyc2lvbjtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIHRoZSBmdW5jdGlvbiBhbHJlYWR5IG5lZWRzIGluIGl0cyBsYW5ndWFnZSBsb2FkZXIgdmFyaWFibGUgKGBOT0RFX09QVElPTlNgLFxuICAgKiBgSkFWQV9UT09MX09QVElPTlNgIG9yIGBQWVRIT05QQVRIYCksIHdoaWNoIHRoZSBPZGlnb3MgbG9hZGVyIGlzIGpvaW5lZCB0byByYXRoZXIgdGhhbiByZXBsYWNpbmcuXG4gICAqXG4gICAqIE9ubHkgdXNlZCBpbiB3ZWItc2VydmVyIG1vZGUuIEl0IGhhcyB0byBiZSBwYXNzZWQgZXhwbGljaXRseSBiZWNhdXNlIENESydzIGBsYW1iZGEuRnVuY3Rpb25gIGV4cG9zZXNcbiAgICogbm8gd2F5IHRvIHJlYWQgYmFjayBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBzZXQgZWxzZXdoZXJlIGluIHRoZSBhcHAg4oCUIGFuIG9taXR0ZWQgdmFsdWUgaGVyZSBpc1xuICAgKiBzaWxlbnRseSBvdmVyd3JpdHRlbiwgd2hpY2ggZm9yIGBOT0RFX09QVElPTlNgIGNhbiBtZWFuIGxvc2luZyBhIGZsYWcgdGhlIGFwcCBuZWVkcyB0byBib290LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSBsb2FkZXIgdmFyaWFibGUgaXMgc2V0IHRvIHRoZSBPZGlnb3MgdmFsdWUgYWxvbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nTG9hZGVyVmFsdWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNraXAgZnVuY3Rpb25zIHdob3NlIHJ1bnRpbWUgaGFzIG5vIE9wZW5UZWxlbWV0cnkgTGFtYmRhIGxheWVyIGluc3RlYWQgb2YgdGhyb3dpbmcuXG4gICAqXG4gICAqIGBkb3RuZXQqYCBhbmQgYHByb3ZpZGVkLipgIChHbywgY3VzdG9tIHJ1bnRpbWVzKSBoYXZlIG5vIGxhbmd1YWdlIGxheWVyIHVwc3RyZWFtLiBFeHBsaWNpdGx5XG4gICAqIGluc3RydW1lbnRpbmcgb25lIGlzIGEgbWlzdGFrZSB3b3J0aCBmYWlsaW5nIG9uOyBzd2VlcGluZyBhIHdob2xlIHN0YWNrIHdpdGggdGhlIGFzcGVjdCBhbmQgaGl0dGluZ1xuICAgKiBvbmUgaXMgbm90LCB3aGljaCBpcyB3aHkgdGhlIGFzcGVjdCBkZWZhdWx0cyB0aGlzIHRvIGB0cnVlYCBhbmQgdGhlIGNvbnN0cnVjdCB0byBgZmFsc2VgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2tpcFVuc3VwcG9ydGVkUnVudGltZXM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB7QGxpbmsgT2RpZ29zTGFtYmRhSW5zdHJ1bWVudGF0aW9ufS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPZGlnb3NMYW1iZGFJbnN0cnVtZW50YXRpb25Qcm9wcyBleHRlbmRzIE9kaWdvc0luc3RydW1lbnRhdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogRnVuY3Rpb25zIHRvIGluc3RydW1lbnQgb24gY29uc3RydWN0aW9uLiBNb3JlIGNhbiBiZSBhZGRlZCB3aXRoIGBpbnN0cnVtZW50KClgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9ucz86IGxhbWJkYS5GdW5jdGlvbltdO1xufVxuXG4vKipcbiAqIEluc3RydW1lbnRzIEFXUyBMYW1iZGEgZnVuY3Rpb25zIHdpdGggdGhlIE9kaWdvcyBPcGVuVGVsZW1ldHJ5IGxheWVyLlxuICpcbiAqIGBgYHRzXG4gKiBjb25zdCBvZGlnb3MgPSBuZXcgT2RpZ29zTGFtYmRhSW5zdHJ1bWVudGF0aW9uKHRoaXMsICdPZGlnb3MnLCB7XG4gKiAgIGRlc3RpbmF0aW9uOiB7IGVuZHBvaW50OiAnb3RscC5leGFtcGxlLmNvbTo0MzE3JyB9LFxuICogICBmdW5jdGlvbnM6IFthcGlGbiwgd29ya2VyRm5dLFxuICogfSk7XG4gKiBvZGlnb3MuaW5zdHJ1bWVudChhbm90aGVyRm4pO1xuICogYGBgXG4gKlxuICogV2hhdCBpdCBkb2VzIHRvIGVhY2ggZnVuY3Rpb246IGF0dGFjaGVzIHRoZSBsYXllciBmb3IgdGhlIGZ1bmN0aW9uJ3MgbGFuZ3VhZ2UgYW5kIGFyY2hpdGVjdHVyZSwgc2V0c1xuICogYEFXU19MQU1CREFfRVhFQ19XUkFQUEVSYCBzbyB0aGUgbGF5ZXIgbG9hZHMgdGhlIFNESywgc2V0cyBgT1RFTF9TRVJWSUNFX05BTUVgLCBhbmQgaGFuZHMgdGhlIGluLUxhbWJkYVxuICogY29sbGVjdG9yIGl0cyBlbnRpcmUgY29uZmlndXJhdGlvbiBpbmxpbmUgdGhyb3VnaCBgT1BFTlRFTEVNRVRSWV9DT0xMRUNUT1JfQ09ORklHX1VSSWAuXG4gKlxuICogVGhlIGZ1bmN0aW9uJ3MgU0RLIGV4cG9ydHMgdG8gdGhlIGNvbGxlY3RvciBvbiBsb2NhbGhvc3QsIG5vdCB0byB5b3VyIGRlc3RpbmF0aW9uLiBUaGUgY29sbGVjdG9yXG4gKiBmb3J3YXJkcyBhZnRlciB0aGUgaGFuZGxlciBoYXMgYWxyZWFkeSByZXR1cm5lZCwgc28gYSBzbG93IGRlc3RpbmF0aW9uIGNvc3RzIGJpbGxlZCBkdXJhdGlvbiByYXRoZXJcbiAqIHRoYW4gY2FsbGVyIGxhdGVuY3kuXG4gKlxuICogIyMgRG8gbm90IGFsc28gaW5zdHJ1bWVudCB0aGVzZSBmdW5jdGlvbnMgd2l0aCB0aGUgY29ubmVjdG9yXG4gKlxuICogVGhlIE9kaWdvcyBBV1MgY29ubmVjdG9yIGluc3RydW1lbnRzIGxpdmUgZnVuY3Rpb25zIGJ5IG11dGF0aW5nIHRoZW0sIGFuZCByZWNvbmNpbGVzIHRoZW0gYmFjayB0byBpdHNcbiAqIG93biBkZXNpcmVkIHN0YXRlIG9uIGV2ZXJ5IHBhc3MuIEEgZnVuY3Rpb24gaW5zdHJ1bWVudGVkIGhlcmUgYW5kIGFsc28gZW5hYmxlZCBhcyBhIGNvbm5lY3RvciBzb3VyY2VcbiAqIGVuZHMgdXAgb3duZWQgYnkgYm90aDogZWFjaCBgY2RrIGRlcGxveWAgcmVhc3NlcnRzIHRoZSBDREsncyBlbnZpcm9ubWVudCwgZWFjaCByZWNvbmNpbGUgcmVhc3NlcnRzIHRoZVxuICogY29ubmVjdG9yJ3MsIGFuZCBldmVyeSByb3VuZCB0cmlwIHB1Ymxpc2hlcyBhIG5ldyBmdW5jdGlvbiB2ZXJzaW9uLlxuICpcbiAqIENob29zZSBvbmUgcGVyIGZ1bmN0aW9uLiBUaGlzIGNvbnN0cnVjdCB3cml0ZXMgYE9ESUdPU19JQUNgIGFuZCBuZXZlciB0aGUgY29ubmVjdG9yJ3MgYE9ESUdPU19NQU5BR0VEYFxuICogb3duZXJzaGlwIG1hcmtlciwgc28gYW4gSWFDLWluc3RydW1lbnRlZCBmdW5jdGlvbiByZXBvcnRzIGFzIGluc3RydW1lbnRlZCBidXQgaXMgbm90IG9uZSB0aGUgY29ubmVjdG9yXG4gKiB3aWxsIHJvbGwgYmFjayDigJQgdGhvdWdoIGl0IHdpbGwgaGFwcGlseSB0YWtlIGl0IG92ZXIgaWYgeW91IGVuYWJsZSBpdCBhcyBhIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE9kaWdvc0xhbWJkYUluc3RydW1lbnRhdGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogT2RpZ29zSW5zdHJ1bWVudGF0aW9uT3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvbHZlcjogT2RpZ29zTGF5ZXJSZXNvbHZlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBjb2xsZWN0b3JDb25maWc6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBpbnN0cnVtZW50ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogT2RpZ29zTGFtYmRhSW5zdHJ1bWVudGF0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5vcHRpb25zID0gcHJvcHM7XG4gICAgdGhpcy5yZXNvbHZlciA9IG5ldyBPZGlnb3NMYXllclJlc29sdmVyKHRoaXMsIHByb3BzLmxheWVyU291cmNlID8/IE9kaWdvc0xheWVyU291cmNlLk9ESUdPU19QVUJMSUMpO1xuXG4gICAgLy8gUmVuZGVyZWQgb25jZS4gSXQgZGVwZW5kcyBvbmx5IG9uIHRoZSBkZXN0aW5hdGlvbiwgYW5kIHJlbmRlcmluZyBpdCBwZXIgZnVuY3Rpb24gd291bGQgbWFrZSBhblxuICAgIC8vIGFjY2lkZW50YWwgZGlmZmVyZW5jZSBiZXR3ZWVuIHR3byBmdW5jdGlvbnMgcG9zc2libGUuXG4gICAgdGhpcy5jb2xsZWN0b3JDb25maWcgPSByZW5kZXJDb2xsZWN0b3JDb25maWcocHJvcHMuZGVzdGluYXRpb24pO1xuXG4gICAgLy8gQSB3YXJuaW5nIHJhdGhlciB0aGFuIGFuIGVycm9yLCBiZWNhdXNlIGEgY29sbGVjdG9yIENBTiBiZSByZWFjaGVkIG92ZXIgZ1JQQyBvbiBhIG5vbi1zdGFuZGFyZCBwb3J0IOKAlFxuICAgIC8vIGJ1dCB0aGUgb3ZlcndoZWxtaW5nbHkgbGlrZWxpZXIgcmVhZGluZyBvZiBgZW5kcG9pbnQ6IFwiaG9zdDo0MzE4XCJgIGlzIGFuIE9UTFAvSFRUUCBlbmRwb2ludCBwYXNzZWQgdG9cbiAgICAvLyB0aGUgZ1JQQyBleHBvcnRlciwgd2hpY2ggYnVpbGRzLCBzdGFydHMsIGFuZCB0aGVuIG5ldmVyIGRlbGl2ZXJzIGEgYmF0Y2guIFNpbGVudCBmb3IgdGhlIGNhbGxlciB3aG9cbiAgICAvLyBtZWFudCBpdDsgbG91ZCBmb3IgdGhlIG9uZSB3aG8gZGlkIG5vdC5cbiAgICBpZiAocHJvcHMuZGVzdGluYXRpb24uZW5kcG9pbnQ/LmVuZHNXaXRoKCc6NDMxOCcpKSB7XG4gICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nVjIoXG4gICAgICAgICdAb2RpZ29zL2F3cy1jZGs6cHJvYmFibGVIdHRwRW5kcG9pbnQnLFxuICAgICAgICBgT2RpZ29zOiBkZXN0aW5hdGlvbiBlbmRwb2ludCBcIiR7cHJvcHMuZGVzdGluYXRpb24uZW5kcG9pbnR9XCIgaXMgb24gNDMxOCwgdGhlIE9UTFAvSFRUUCBwb3J0LCBidXQgYCArXG4gICAgICAgICAgJ2BlbmRwb2ludGAgY29uZmlndXJlcyB0aGUgZ1JQQyBleHBvcnRlciAoY29udmVudGlvbmFsbHkgNDMxNykuIElmIHRoYXQgaXMgYW4gT1RMUC9IVFRQIGNvbGxlY3RvciwgJyArXG4gICAgICAgICAgJ3Bhc3MgaXQgYXMgYGh0dHBFbmRwb2ludDogXCJodHRwOi8vaG9zdDo0MzE4XCJgIGluc3RlYWQg4oCUIHRoZSBnUlBDIGV4cG9ydGVyIHdpbGwgZXhwb3J0IG5vdGhpbmcgdG8gaXQuJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChwcm9wcy5kZXN0aW5hdGlvbi5odHRwRW5kcG9pbnQ/LmVuZHNXaXRoKCc6NDMxNycpKSB7XG4gICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nVjIoXG4gICAgICAgICdAb2RpZ29zL2F3cy1jZGs6cHJvYmFibGVHcnBjRW5kcG9pbnQnLFxuICAgICAgICBgT2RpZ29zOiBkZXN0aW5hdGlvbiBodHRwRW5kcG9pbnQgXCIke3Byb3BzLmRlc3RpbmF0aW9uLmh0dHBFbmRwb2ludH1cIiBpcyBvbiA0MzE3LCB0aGUgT1RMUC9nUlBDIHBvcnQsIGAgK1xuICAgICAgICAgICdidXQgYGh0dHBFbmRwb2ludGAgY29uZmlndXJlcyB0aGUgSFRUUCBleHBvcnRlciAoY29udmVudGlvbmFsbHkgNDMxOCkuIElmIHRoYXQgaXMgYSBnUlBDIGNvbGxlY3RvciwgJyArXG4gICAgICAgICAgJ3Bhc3MgaXQgYXMgYGVuZHBvaW50OiBcImhvc3Q6NDMxN1wiYCBpbnN0ZWFkLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZm4gb2YgcHJvcHMuZnVuY3Rpb25zID8/IFtdKSB7XG4gICAgICB0aGlzLmluc3RydW1lbnQoZm4pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbnN0cnVtZW50cyBvbmUgZnVuY3Rpb24uIElkZW1wb3RlbnQg4oCUIGluc3RydW1lbnRpbmcgdGhlIHNhbWUgZnVuY3Rpb24gdHdpY2UgaXMgYSBuby1vcCByYXRoZXIgdGhhbiBhXG4gICAqIGRvdWJsZWQgbG9hZGVyIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIGluc3RydW1lbnQoZm46IGxhbWJkYS5GdW5jdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGtleSA9IGZuLm5vZGUucGF0aDtcbiAgICBpZiAodGhpcy5pbnN0cnVtZW50ZWQuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBydW50aW1lTmFtZSA9IGZuLnJ1bnRpbWUubmFtZTtcbiAgICBjb25zdCBsYW5ndWFnZSA9IGxhbmd1YWdlRnJvbVJ1bnRpbWUocnVudGltZU5hbWUpO1xuICAgIGlmICghbGFuZ3VhZ2UpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgICBgT2RpZ29zOiBydW50aW1lIFwiJHtydW50aW1lTmFtZX1cIiBoYXMgbm8gT3BlblRlbGVtZXRyeSBMYW1iZGEgbGF5ZXIgYCArXG4gICAgICAgICcodXBzdHJlYW0gcHVibGlzaGVzIGxheWVycyBmb3IgcHl0aG9uLCBub2RlanMsIGphdmEgYW5kIHJ1Ynkgb25seSksIHNvIHRoaXMgZnVuY3Rpb24gY2Fubm90IGJlIGluc3RydW1lbnRlZC4nO1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5za2lwVW5zdXBwb3J0ZWRSdW50aW1lcykge1xuICAgICAgICBBbm5vdGF0aW9ucy5vZihmbikuYWRkV2FybmluZ1YyKCdAb2RpZ29zL2F3cy1jZGs6dW5zdXBwb3J0ZWRSdW50aW1lJywgYCR7bWVzc2FnZX0gU2tpcHBpbmcuYCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHttZXNzYWdlfSBTZXQgc2tpcFVuc3VwcG9ydGVkUnVudGltZXM6IHRydWUgdG8gc2tpcCBpdCBpbnN0ZWFkLmApO1xuICAgIH1cblxuICAgIHRoaXMuaW5zdHJ1bWVudGVkLmFkZChrZXkpO1xuXG4gICAgY29uc3QgYXJjaGl0ZWN0dXJlID0gZm4uYXJjaGl0ZWN0dXJlLm5hbWU7XG4gICAgY29uc3QgbGF5ZXIgPSB0aGlzLm9wdGlvbnMubGF5ZXJWZXJzaW9uID8/IHRoaXMucmVzb2x2ZXIucmVzb2x2ZShsYW5ndWFnZSwgYXJjaGl0ZWN0dXJlKTtcbiAgICBmbi5hZGRMYXllcnMobGF5ZXIpO1xuXG4gICAgLy8gVGhlIEFSTiwgbm90IHRoZSBjb25zdHJ1Y3Q6IHRoZSBtYXJrZXIgaGFzIHRvIG5hbWUgdGhlIGV4YWN0IGxheWVyIHZlcnNpb24gdGhlIGZ1bmN0aW9uIGNhcnJpZXMsIGFuZFxuICAgIC8vIGluIElOX0FDQ09VTlQgbW9kZSB0aGF0IGlzIGEgbmVzdGVkLXN0YWNrIG91dHB1dCByZWZlcmVuY2UgcmVzb2x2ZWQgYXQgZGVwbG95IHRpbWUuXG4gICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuZW52aXJvbm1lbnRGb3IoZm4sIGxhbmd1YWdlLCBsYXllci5sYXllclZlcnNpb25Bcm4pKSkge1xuICAgICAgZm4uYWRkRW52aXJvbm1lbnQobmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBJbnN0cnVtZW50cyBldmVyeSBmdW5jdGlvbiBpbiB0aGUgbGlzdC4gKi9cbiAgcHVibGljIGluc3RydW1lbnRBbGwoZnVuY3Rpb25zOiBsYW1iZGEuRnVuY3Rpb25bXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgZm4gb2YgZnVuY3Rpb25zKSB7XG4gICAgICB0aGlzLmluc3RydW1lbnQoZm4pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgYXBwbGllZCB0byBvbmUgZnVuY3Rpb24uXG4gICAqXG4gICAqIE1pcnJvcnMgYGFwcGx5SGFuZGxlckVudmAgLyBgYXBwbHlXZWJTZXJ2ZXJFbnZgIGluIHRoZSBjb25uZWN0b3IsIGluY2x1ZGluZyB3aGF0IGlzIGRlbGliZXJhdGVseSBOT1RcbiAgICogc2V0OiBgT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UYCBzdGF5cyB1bnNldCBzbyB0aGUgU0RLIGtlZXBzIGV4cG9ydGluZyB0byB0aGUgaW4tTGFtYmRhIGNvbGxlY3RvclxuICAgKiBvbiBsb2NhbGhvc3QgcmF0aGVyIHRoYW4gYmxvY2tpbmcgdGhlIGludm9jYXRpb24gb24gdGhlIHJlbW90ZSBkZXN0aW5hdGlvbiwgYW5kIGFuIGVuYWJsZWQgc2lnbmFsJ3NcbiAgICogYE9URUxfKl9FWFBPUlRFUmAgc3RheXMgdW5zZXQgYmVjYXVzZSBgb3RscGAgaXMgYWxyZWFkeSB0aGUgU0RLIGRlZmF1bHQuXG4gICAqL1xuICBwcml2YXRlIGVudmlyb25tZW50Rm9yKGZuOiBsYW1iZGEuRnVuY3Rpb24sIGxhbmd1YWdlOiBzdHJpbmcsIGxheWVyQXJuOiBzdHJpbmcpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCB7IGRlc3RpbmF0aW9uLCBtb2RlLCBkZWJ1Zywgc2VydmljZU5hbWUsIGphdmFIYW5kbGVyRGlzdHJvLCBkaXN0cm8sIGV4aXN0aW5nTG9hZGVyVmFsdWUgfSA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCB3ZWJTZXJ2ZXIgPSBtb2RlID09PSBPZGlnb3NJbnN0cnVtZW50YXRpb25Nb2RlLldFQl9TRVJWRVI7XG5cbiAgICBjb25zdCBlbnY6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICBbRU5WX1NFUlZJQ0VfTkFNRV06IHNlcnZpY2VOYW1lID8/IGRlZmF1bHRTZXJ2aWNlTmFtZShmbiksXG4gICAgICBbRU5WX0NPTExFQ1RPUl9DT05GSUdfVVJJXTogdGhpcy5jb2xsZWN0b3JDb25maWcsXG4gICAgICBbRU5WX0lBQ19NQVJLRVJdOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIHY6IE1BUktFUl9WRVJTSU9OLFxuICAgICAgICBzb3VyY2U6ICdjZGsnLFxuICAgICAgICB2ZXJzaW9uOiBPRElHT1NfVkVSU0lPTiB8fCAndW5yZWxlYXNlZCcsXG4gICAgICAgIGxheWVyOiBsYXllckFybixcbiAgICAgIH0pLFxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZFdyYXBwZXIgPSBkaXN0cmlidXRpb25XcmFwcGVyKGxhbmd1YWdlLCBkaXN0cm8sIGphdmFIYW5kbGVyRGlzdHJvLCB3ZWJTZXJ2ZXIpO1xuICAgIGlmICh3ZWJTZXJ2ZXIpIHtcbiAgICAgIC8vIE5vIGV4ZWMgd3JhcHBlcjogdGhlIExhbWJkYSBXZWIgQWRhcHRlciBvd25zIGl0LCBhbmQgb3ZlcndyaXRpbmcgaXQgc3RvcHMgdGhlIGZ1bmN0aW9uIHNlcnZpbmcuXG4gICAgICBPYmplY3QuYXNzaWduKGVudiwgd2ViU2VydmVyRW52KGxhbmd1YWdlLCBleGlzdGluZ0xvYWRlclZhbHVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVudltFTlZfRVhFQ19XUkFQUEVSXSA9IHNlbGVjdGVkV3JhcHBlcjtcbiAgICAgIGlmIChkZWJ1Zykge1xuICAgICAgICBlbnZbRU5WX09URUxfTE9HX0xFVkVMXSA9ICdkZWJ1Zyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU3VwcHJlc3MgdGhlIHNpZ25hbHMgdGhlIGRlc3RpbmF0aW9uIGRvZXMgbm90IGFjY2VwdC4gQSBzaWduYWwgd2l0aCBubyBjb2xsZWN0b3IgcGlwZWxpbmUgaXMgcmVmdXNlZFxuICAgIC8vIGF0IHRoZSByZWNlaXZlciBvbiBldmVyeSBiYXRjaCwgc28gdGVsbGluZyB0aGUgU0RLIG5vdCB0byBwcm9kdWNlIGl0IGlzIHRoZSBoYWxmIHRoYXQgc3RvcHMgdGhlXG4gICAgLy8gZXJyb3IgbG9vcDsgdGhlIHBpcGVsaW5lIGJlaW5nIGFic2VudCBpcyB0aGUgaGFsZiB0aGF0IHN0b3BzIHRoZSBleHBvcnQuXG4gICAgY29uc3QgZW5hYmxlZCA9IHJlc29sdmVkU2lnbmFscyhkZXN0aW5hdGlvbik7XG4gICAgY29uc3Qgb3ZlcnJpZGVzOiBBcnJheTxbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdPiA9IFtcbiAgICAgIFtFTlZfVFJBQ0VTX0VYUE9SVEVSLCBleHBvcnRlck92ZXJyaWRlRm9yKGVuYWJsZWQudHJhY2VzKV0sXG4gICAgICBbRU5WX01FVFJJQ1NfRVhQT1JURVIsIGV4cG9ydGVyT3ZlcnJpZGVGb3IoZW5hYmxlZC5tZXRyaWNzKV0sXG4gICAgICBbRU5WX0xPR1NfRVhQT1JURVIsIGV4cG9ydGVyT3ZlcnJpZGVGb3IoZW5hYmxlZC5sb2dzKV0sXG4gICAgXTtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2Ygb3ZlcnJpZGVzKSB7XG4gICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBlbnZbbmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZW52O1xuICB9XG59XG5cbi8qKlxuICogUHJvcHMgZm9yIHtAbGluayBPZGlnb3NJbnN0cnVtZW50YXRpb25Bc3BlY3R9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9kaWdvc0luc3RydW1lbnRhdGlvbkFzcGVjdFByb3BzIGV4dGVuZHMgT2RpZ29zSW5zdHJ1bWVudGF0aW9uT3B0aW9ucyB7fVxuXG4vKipcbiAqIEFwcGxpZXMgT2RpZ29zIGluc3RydW1lbnRhdGlvbiB0byBldmVyeSBgbGFtYmRhLkZ1bmN0aW9uYCBpbiBhIHNjb3BlLlxuICpcbiAqIGBgYHRzXG4gKiBBc3BlY3RzLm9mKHN0YWNrKS5hZGQobmV3IE9kaWdvc0luc3RydW1lbnRhdGlvbkFzcGVjdChzdGFjaywge1xuICogICBkZXN0aW5hdGlvbjogeyBlbmRwb2ludDogJ290bHAuZXhhbXBsZS5jb206NDMxNycgfSxcbiAqIH0pKTtcbiAqIGBgYFxuICpcbiAqIGBza2lwVW5zdXBwb3J0ZWRSdW50aW1lc2AgZGVmYXVsdHMgdG8gYHRydWVgIGhlcmUsIHVubGlrZSB0aGUgY29uc3RydWN0OiBhbiBhc3BlY3QgdmlzaXRzIGV2ZXJ5IGZ1bmN0aW9uXG4gKiBpbiB0aGUgc2NvcGUsIGluY2x1ZGluZyBvbmVzIHdob3NlIHJ1bnRpbWUgaGFzIG5vIE9wZW5UZWxlbWV0cnkgbGF5ZXIsIGFuZCBmYWlsaW5nIHRoZSB3aG9sZSBzeW50aFxuICogYmVjYXVzZSBhIHN0YWNrIGhhcHBlbnMgdG8gY29udGFpbiBvbmUgR28gZnVuY3Rpb24gaXMgbm90IHVzZWZ1bC4gRWFjaCBza2lwIGlzIHJlcG9ydGVkIGFzIGEgc3ludGhcbiAqIHdhcm5pbmcsIHNvIGl0IGlzIHZpc2libGUgcmF0aGVyIHRoYW4gc2lsZW50LlxuICpcbiAqIFRoZSBhc3BlY3QgaW5zdHJ1bWVudHMgd2hhdCBleGlzdHMgaW4gdGhlIHRyZWUgd2hlbiBpdCBydW5zLiBBIGZ1bmN0aW9uIGFkZGVkIGJ5IGEgbGF0ZXIgYXNwZWN0IGlzIG5vdFxuICogdmlzaXRlZDsgdXNlIHRoZSBjb25zdHJ1Y3QgZGlyZWN0bHkgZm9yIHRob3NlLlxuICovXG5leHBvcnQgY2xhc3MgT2RpZ29zSW5zdHJ1bWVudGF0aW9uQXNwZWN0IGltcGxlbWVudHMgSUFzcGVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5zdHJ1bWVudGF0aW9uOiBPZGlnb3NMYW1iZGFJbnN0cnVtZW50YXRpb247XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBzY29wZSB3aGVyZSB0aGUgc2hhcmVkIGxheWVyIGNvbnN0cnVjdHMgYXJlIGNyZWF0ZWQuIFVzdWFsbHkgdGhlIHNhbWUgc2NvcGUgdGhlIGFzcGVjdCBpc1xuICAgKiBhcHBsaWVkIHRvLiBJdCBpcyBhIHNlcGFyYXRlIGFyZ3VtZW50IGZyb20gdGhlIHZpc2l0ZWQgbm9kZXMgYmVjYXVzZSB0aGUgbGF5ZXIgKGFuZCwgaW4gYElOX0FDQ09VTlRgXG4gICAqIG1vZGUsIHRoZSBuZXN0ZWQgU0FSIGFwcGxpY2F0aW9uKSBpcyBjcmVhdGVkIG9uY2UgYW5kIHNoYXJlZCBieSBldmVyeSBmdW5jdGlvbiB0aGUgYXNwZWN0IHZpc2l0cy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBPZGlnb3NJbnN0cnVtZW50YXRpb25Bc3BlY3RQcm9wcykge1xuICAgIHRoaXMuaW5zdHJ1bWVudGF0aW9uID0gbmV3IE9kaWdvc0xhbWJkYUluc3RydW1lbnRhdGlvbihzY29wZSwgJ09kaWdvc0luc3RydW1lbnRhdGlvbkFzcGVjdCcsIHtcbiAgICAgIHNraXBVbnN1cHBvcnRlZFJ1bnRpbWVzOiB0cnVlLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdmlzaXQobm9kZTogSUNvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmIChub2RlIGluc3RhbmNlb2YgbGFtYmRhLkZ1bmN0aW9uKSB7XG4gICAgICB0aGlzLmluc3RydW1lbnRhdGlvbi5pbnN0cnVtZW50KG5vZGUpO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/lib/runtime.d.ts
CHANGED
|
@@ -10,8 +10,8 @@ export declare function languageFromRuntime(runtimeName: string): string | undef
|
|
|
10
10
|
/**
|
|
11
11
|
* The `AWS_LAMBDA_EXEC_WRAPPER` value for a language.
|
|
12
12
|
*
|
|
13
|
-
* The wrapper script is
|
|
14
|
-
*
|
|
13
|
+
* The wrapper script is language-specific. Java defaults to `/opt/otel-javaagent-handler`;
|
|
14
|
+
* Python uses `/opt/otel-instrument`, and Node.js/Ruby use `/opt/otel-handler`. Setting the wrong one makes the layer bootstrap fail at cold start with
|
|
15
15
|
* `/opt/otel-instrument: does not exist` and the function errors out — which is why this is never a
|
|
16
16
|
* hardcoded constant at a call site.
|
|
17
17
|
*
|
|
@@ -56,3 +56,5 @@ export declare function webServerLoaderKey(language: string): string | undefined
|
|
|
56
56
|
export declare function webServerEnv(language: string, existingLoaderValue?: string): {
|
|
57
57
|
[key: string]: string;
|
|
58
58
|
};
|
|
59
|
+
/** Resolve the same concrete SDK names advertised by the connector's GraphQL catalog. */
|
|
60
|
+
export declare function distributionWrapper(language: string, name?: string, legacy?: OdigosJavaHandlerDistro, webServer?: boolean): string;
|
package/lib/runtime.js
CHANGED
|
@@ -6,6 +6,8 @@ exports.layerNameFor = layerNameFor;
|
|
|
6
6
|
exports.addLoaderValue = addLoaderValue;
|
|
7
7
|
exports.webServerLoaderKey = webServerLoaderKey;
|
|
8
8
|
exports.webServerEnv = webServerEnv;
|
|
9
|
+
exports.distributionWrapper = distributionWrapper;
|
|
10
|
+
const distributions_1 = require("./generated/distributions");
|
|
9
11
|
const layers_1 = require("./generated/layers");
|
|
10
12
|
const types_1 = require("./types");
|
|
11
13
|
/**
|
|
@@ -47,8 +49,8 @@ const JAVA_DISTRO_WRAPPERS = {
|
|
|
47
49
|
/**
|
|
48
50
|
* The `AWS_LAMBDA_EXEC_WRAPPER` value for a language.
|
|
49
51
|
*
|
|
50
|
-
* The wrapper script is
|
|
51
|
-
*
|
|
52
|
+
* The wrapper script is language-specific. Java defaults to `/opt/otel-javaagent-handler`;
|
|
53
|
+
* Python uses `/opt/otel-instrument`, and Node.js/Ruby use `/opt/otel-handler`. Setting the wrong one makes the layer bootstrap fail at cold start with
|
|
52
54
|
* `/opt/otel-instrument: does not exist` and the function errors out — which is why this is never a
|
|
53
55
|
* hardcoded constant at a call site.
|
|
54
56
|
*
|
|
@@ -56,7 +58,7 @@ const JAVA_DISTRO_WRAPPERS = {
|
|
|
56
58
|
*/
|
|
57
59
|
function execWrapperFor(language, distro) {
|
|
58
60
|
if (language === 'java') {
|
|
59
|
-
return JAVA_DISTRO_WRAPPERS[distro
|
|
61
|
+
return distro ? JAVA_DISTRO_WRAPPERS[distro] : '/opt/otel-javaagent-handler';
|
|
60
62
|
}
|
|
61
63
|
const spec = layers_1.LANGUAGES[language];
|
|
62
64
|
if (!spec) {
|
|
@@ -128,4 +130,25 @@ function webServerEnv(language, existingLoaderValue) {
|
|
|
128
130
|
}
|
|
129
131
|
return env;
|
|
130
132
|
}
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMEJBLGtEQU9DO0FBb0JELHdDQVNDO0FBR0Qsb0NBTUM7QUFjRCx3Q0FRQztBQVVELGdEQUVDO0FBY0Qsb0NBcUJDO0FBNUlELCtDQUErQztBQUMvQyxtQ0FBNkU7QUFFN0U7Ozs7OztHQU1HO0FBRUgsNEdBQTRHO0FBQzVHLE1BQU0saUJBQWlCLEdBQTRCO0lBQ2pELENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUNwQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDcEIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNqQixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsV0FBbUI7SUFDckQsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDbkQsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkMsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsNEVBQTRFO0FBQzVFLE1BQU0sb0JBQW9CLEdBQThCO0lBQ3RELENBQUMsK0JBQXVCLENBQUMsWUFBWSxDQUFDLEVBQUUsbUJBQW1CO0lBQzNELENBQUMsK0JBQXVCLENBQUMsa0JBQWtCLENBQUMsRUFBRSx5QkFBeUI7SUFDdkUsQ0FBQywrQkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLHVCQUF1QjtJQUNuRSxDQUFDLCtCQUF1QixDQUFDLG1CQUFtQixDQUFDLEVBQUUsMEJBQTBCO0NBQzFFLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixjQUFjLENBQUMsUUFBZ0IsRUFBRSxNQUFnQztJQUMvRSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUN4QixPQUFPLG9CQUFvQixDQUFDLE1BQU0sSUFBSSwrQkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsa0JBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7QUFDMUIsQ0FBQztBQUVELDJFQUEyRTtBQUMzRSxTQUFnQixZQUFZLENBQUMsUUFBZ0IsRUFBRSxZQUFvQjtJQUNqRSxNQUFNLElBQUksR0FBRyxrQkFBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUNELE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLFlBQVksRUFBRSxDQUFDO0FBQzdDLENBQUM7QUFPRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixjQUFjLENBQUMsUUFBNEIsRUFBRSxLQUFhLEVBQUUsU0FBaUI7SUFDM0YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUNELE9BQU8sU0FBUyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsR0FBRyxTQUFTLEdBQUcsS0FBSyxFQUFFLENBQUM7QUFDbkcsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxRQUFnQjtJQUNqRCxPQUFPLGtCQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQztBQUNoRCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFnQixZQUFZLENBQzFCLFFBQWdCLEVBQ2hCLG1CQUE0QjtJQUU1QixNQUFNLElBQUksR0FBRyxrQkFBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxTQUFTLENBQUM7SUFDL0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osTUFBTSxJQUFJLEtBQUssQ0FDYixXQUFXLGlDQUF5QixDQUFDLFVBQVUsOEJBQThCLFFBQVEsS0FBSztZQUN4Rix3R0FBd0csQ0FDM0csQ0FBQztJQUNKLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBOEI7UUFDckMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQztLQUNyRixDQUFDO0lBQ0YsdUdBQXVHO0lBQ3ZHLDhFQUE4RTtJQUM5RSxLQUFLLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNyRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExBTkdVQUdFUyB9IGZyb20gJy4vZ2VuZXJhdGVkL2xheWVycyc7XG5pbXBvcnQgeyBPZGlnb3NJbnN0cnVtZW50YXRpb25Nb2RlLCBPZGlnb3NKYXZhSGFuZGxlckRpc3RybyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFJ1bnRpbWUgLT4gbGFuZ3VhZ2UsIGFuZCBsYW5ndWFnZSAtPiB0aGUgZXhhY3QgZW52IHRoZSBsYXllciBleHBlY3RzLlxuICpcbiAqIE1pcnJvcnMgYExhbmd1YWdlRnJvbVJ1bnRpbWVgLCBgZXhlY1dyYXBwZXJGb3JMYW5ndWFnZWAgYW5kIGB3ZWJTZXJ2ZXJMb2FkZXJgIGluIHRoZSBjb25uZWN0b3Inc1xuICogaW5zdHJ1bWVudG9yLiBUaGUgZGF0YSBsaXZlcyBpbiAuLi8uLi9hcnRpZmFjdHMuanNvbiBhbmQgcmVhY2hlcyBoZXJlIHRocm91Z2ggdGhlIGdlbmVyYXRlZCBtb2R1bGU7IHRoZVxuICogZGVjaXNpb25zIGxpdmUgaGVyZS5cbiAqL1xuXG4vKiogUnVudGltZSBwcmVmaXhlcyB0aGF0IG1hcCB0byBhbiBPVGVsIGxheWVyIGxhbmd1YWdlLiBQcmVmaXgtbWF0Y2hlZCwgc28gYGphdmE4LmFsMmAgcmVzb2x2ZXMgdG8gamF2YS4gKi9cbmNvbnN0IExBTkdVQUdFX1BSRUZJWEVTOiBBcnJheTxbc3RyaW5nLCBzdHJpbmddPiA9IFtcbiAgWydweXRob24nLCAncHl0aG9uJ10sXG4gIFsnbm9kZWpzJywgJ25vZGVqcyddLFxuICBbJ2phdmEnLCAnamF2YSddLFxuICBbJ3J1YnknLCAncnVieSddLFxuXTtcblxuLyoqXG4gKiBSZXNvbHZlcyBhIExhbWJkYSBydW50aW1lIGlkZW50aWZpZXIgKGBweXRob24zLjEyYCwgYGphdmEyMWAsIGBub2RlanMyMi54YCkgdG8gdGhlIE9UZWwgbGF5ZXIgbGFuZ3VhZ2UuXG4gKlxuICogUmV0dXJucyBgdW5kZWZpbmVkYCBmb3IgcnVudGltZXMgd2l0aCBubyBPcGVuVGVsZW1ldHJ5IExhbWJkYSBsYW5ndWFnZSBsYXllciDigJQgYGRvdG5ldCpgLCBgcHJvdmlkZWQuKmBcbiAqIChHbyBhbmQgY3VzdG9tIHJ1bnRpbWVzKS4gVGhlIGNhbGxlciByZWZ1c2VzIHRvIGluc3RydW1lbnQgcmF0aGVyIHRoYW4gYXR0YWNoaW5nIGEgbGF5ZXIgdGhhdCBkb2VzXG4gKiBub3RoaW5nLCBiZWNhdXNlIGEgbGF5ZXIgcGx1cyBhbiBleGVjIHdyYXBwZXIgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiBpdCBmYWlscyB0aGUgZnVuY3Rpb24gYXQgY29sZCBzdGFydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhbmd1YWdlRnJvbVJ1bnRpbWUocnVudGltZU5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGZvciAoY29uc3QgW3ByZWZpeCwgbGFuZ3VhZ2VdIG9mIExBTkdVQUdFX1BSRUZJWEVTKSB7XG4gICAgaWYgKHJ1bnRpbWVOYW1lLnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgICAgcmV0dXJuIGxhbmd1YWdlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKiogTWFwcyB0aGUgSmF2YSBkaXN0cm8gZW51bSB0byB0aGUgd3JhcHBlciBzY3JpcHQgcGF0aCB0aGUgbGF5ZXIgc2hpcHMuICovXG5jb25zdCBKQVZBX0RJU1RST19XUkFQUEVSUzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgW09kaWdvc0phdmFIYW5kbGVyRGlzdHJvLk9URUxfSEFORExFUl06ICcvb3B0L290ZWwtaGFuZGxlcicsXG4gIFtPZGlnb3NKYXZhSGFuZGxlckRpc3Ryby5PVEVMX1BST1hZX0hBTkRMRVJdOiAnL29wdC9vdGVsLXByb3h5LWhhbmRsZXInLFxuICBbT2RpZ29zSmF2YUhhbmRsZXJEaXN0cm8uT1RFTF9TUVNfSEFORExFUl06ICcvb3B0L290ZWwtc3FzLWhhbmRsZXInLFxuICBbT2RpZ29zSmF2YUhhbmRsZXJEaXN0cm8uT1RFTF9TVFJFQU1fSEFORExFUl06ICcvb3B0L290ZWwtc3RyZWFtLWhhbmRsZXInLFxufTtcblxuLyoqXG4gKiBUaGUgYEFXU19MQU1CREFfRVhFQ19XUkFQUEVSYCB2YWx1ZSBmb3IgYSBsYW5ndWFnZS5cbiAqXG4gKiBUaGUgd3JhcHBlciBzY3JpcHQgaXMgTEFOR1VBR0UtU1BFQ0lGSUM6IFB5dGhvbiBzaGlwcyBgL29wdC9vdGVsLWluc3RydW1lbnRgOyBOb2RlLmpzLCBKYXZhIGFuZCBSdWJ5XG4gKiBzaGlwIGAvb3B0L290ZWwtaGFuZGxlcmAuIFNldHRpbmcgdGhlIHdyb25nIG9uZSBtYWtlcyB0aGUgbGF5ZXIgYm9vdHN0cmFwIGZhaWwgYXQgY29sZCBzdGFydCB3aXRoXG4gKiBgL29wdC9vdGVsLWluc3RydW1lbnQ6IGRvZXMgbm90IGV4aXN0YCBhbmQgdGhlIGZ1bmN0aW9uIGVycm9ycyBvdXQg4oCUIHdoaWNoIGlzIHdoeSB0aGlzIGlzIG5ldmVyIGFcbiAqIGhhcmRjb2RlZCBjb25zdGFudCBhdCBhIGNhbGwgc2l0ZS5cbiAqXG4gKiBgZGlzdHJvYCBpcyBvbmx5IGNvbnN1bHRlZCBmb3IgSmF2YSwgd2hvc2UgbGF5ZXIgc2hpcHMgZm91ciB3cmFwcGVycywgb25lIHBlciBoYW5kbGVyIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWNXcmFwcGVyRm9yKGxhbmd1YWdlOiBzdHJpbmcsIGRpc3Rybz86IE9kaWdvc0phdmFIYW5kbGVyRGlzdHJvKTogc3RyaW5nIHtcbiAgaWYgKGxhbmd1YWdlID09PSAnamF2YScpIHtcbiAgICByZXR1cm4gSkFWQV9ESVNUUk9fV1JBUFBFUlNbZGlzdHJvID8/IE9kaWdvc0phdmFIYW5kbGVyRGlzdHJvLk9URUxfSEFORExFUl07XG4gIH1cbiAgY29uc3Qgc3BlYyA9IExBTkdVQUdFU1tsYW5ndWFnZV07XG4gIGlmICghc3BlYykge1xuICAgIHRocm93IG5ldyBFcnJvcihgT2RpZ29zOiBubyBPcGVuVGVsZW1ldHJ5IExhbWJkYSBsYXllciBmb3IgbGFuZ3VhZ2UgXCIke2xhbmd1YWdlfVwiYCk7XG4gIH1cbiAgcmV0dXJuIHNwZWMuZXhlY1dyYXBwZXI7XG59XG5cbi8qKiBMYXllciBuYW1lIGZvciBhIGxhbmd1YWdlL2FyY2hpdGVjdHVyZSDigJQgYG9kaWdvcy1vdGVsLXB5dGhvbi1hcm02NGAuICovXG5leHBvcnQgZnVuY3Rpb24gbGF5ZXJOYW1lRm9yKGxhbmd1YWdlOiBzdHJpbmcsIGFyY2hpdGVjdHVyZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgc3BlYyA9IExBTkdVQUdFU1tsYW5ndWFnZV07XG4gIGlmICghc3BlYykge1xuICAgIHRocm93IG5ldyBFcnJvcihgT2RpZ29zOiB1bmtub3duIGxhbmd1YWdlIFwiJHtsYW5ndWFnZX1cImApO1xuICB9XG4gIHJldHVybiBgJHtzcGVjLmxheWVyTmFtZX0tJHthcmNoaXRlY3R1cmV9YDtcbn1cblxuLyoqIEVudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgb24gYSBmdW5jdGlvbiwgYXMgYSBwbGFpbiBtYXAuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudlZhcnMge1xuICByZWFkb25seSBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSWRlbXBvdGVudGx5IGFkZHMgb3VyIGxvYWRlciB2YWx1ZSB0byBhIHZhbHVlIHRoZSBmdW5jdGlvbiBhbHJlYWR5IGNhcnJpZXMuXG4gKlxuICogYFBZVEhPTlBBVEhgIGlzIFBSRVBFTkRFRCwgc28gdGhlIGxheWVyJ3MgcGFja2FnZXMgYW5kIGl0cyBgc2l0ZWN1c3RvbWl6ZWAgYXJlIGZvdW5kIGZpcnN0OyB0aGVcbiAqIGAqX09QVElPTlNgIHZhcmlhYmxlcyBhcmUgYXBwZW5kZWQsIHNvIHRoZSBjdXN0b21lcidzIG93biBmbGFncyBrZWVwIHByZWNlZGVuY2UuIE1pcnJvcnNcbiAqIGBhZGRMb2FkZXJWYWx1ZWAgaW4gdGhlIGNvbm5lY3Rvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZExvYWRlclZhbHVlKGV4aXN0aW5nOiBzdHJpbmcgfCB1bmRlZmluZWQsIHZhbHVlOiBzdHJpbmcsIHNlcGFyYXRvcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFleGlzdGluZykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAoZXhpc3RpbmcuaW5jbHVkZXModmFsdWUpKSB7XG4gICAgcmV0dXJuIGV4aXN0aW5nO1xuICB9XG4gIHJldHVybiBzZXBhcmF0b3IgPT09ICc6JyA/IGAke3ZhbHVlfSR7c2VwYXJhdG9yfSR7ZXhpc3Rpbmd9YCA6IGAke2V4aXN0aW5nfSR7c2VwYXJhdG9yfSR7dmFsdWV9YDtcbn1cblxuLyoqXG4gKiBUaGUgbG9hZGVyIHZhcmlhYmxlIGEgbGFuZ3VhZ2UgYWN0aXZhdGVzIHRocm91Z2ggaW4gd2ViLXNlcnZlciBtb2RlIChgTk9ERV9PUFRJT05TYCxcbiAqIGBKQVZBX1RPT0xfT1BUSU9OU2AsIGBQWVRIT05QQVRIYCksIG9yIHVuZGVmaW5lZCBmb3IgYSBsYW5ndWFnZSB3aXRoIG5vIHZlcmlmaWVkIHdlYi1zZXJ2ZXIgbG9hZGVyLlxuICpcbiAqIEV4aXN0cyBzbyBhIGNhbGxlciB0aGF0IG5lZWRzIHRvIG5hbWUgdGhlIHZhcmlhYmxlIOKAlCB0aGUgb3duZXJzaGlwIG1hcmtlcidzIHJvbGxiYWNrIHNuYXBzaG90LCB3aGljaCBoYXNcbiAqIHRvIHJlY29yZCB0aGUgY2FsbGVyJ3Mgb3duIHByaW9yIHZhbHVlIGZvciBpdCDigJQgZG9lcyBub3QgaGF2ZSB0byBndWVzcyBpdCBmcm9tIHRoZSBrZXkgb3JkZXIgb2ZcbiAqIGB3ZWJTZXJ2ZXJFbnZgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2ViU2VydmVyTG9hZGVyS2V5KGxhbmd1YWdlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gTEFOR1VBR0VTW2xhbmd1YWdlXT8ud2ViU2VydmVyPy5lbnZLZXk7XG59XG5cbi8qKlxuICogVGhlIGVudmlyb25tZW50IHRoYXQgbG9hZHMgdGhlIGxhbmd1YWdlIGFnZW50IGluIHdlYi1zZXJ2ZXIgKEFXUyBMYW1iZGEgV2ViIEFkYXB0ZXIpIG1vZGUuXG4gKlxuICogV2ViLWFkYXB0ZXIgZnVuY3Rpb25zIHJ1biBhIHdlYiBzZXJ2ZXIgcmF0aGVyIHRoYW4gYSBMYW1iZGEgaGFuZGxlciwgYW5kIHRoZSBhZGFwdGVyIG93bnNcbiAqIGBBV1NfTEFNQkRBX0VYRUNfV1JBUFBFUmAg4oCUIHNvIGluc3RydW1lbnRhdGlvbiBpcyBsb2FkZWQgdGhyb3VnaCB0aGUgbGFuZ3VhZ2UncyBvd24gbG9hZGVyIHZhcmlhYmxlIGFuZFxuICogdGhlIHdyYXBwZXIgaXMgbGVmdCBhbG9uZS4gSGFuZGxlci1tb2RlIGluc3RydW1lbnRhdGlvbiBhcHBsaWVkIHRvIG9uZSBvZiB0aGVzZSBvdmVyd3JpdGVzIHRoZVxuICogYWRhcHRlcidzIHdyYXBwZXIgYW5kIHRoZSBmdW5jdGlvbiBzdG9wcyBzZXJ2aW5nLlxuICpcbiAqIEBwYXJhbSBleGlzdGluZ0xvYWRlclZhbHVlIHRoZSB2YWx1ZSB0aGUgZnVuY3Rpb24gYWxyZWFkeSBuZWVkcyBpbiBpdHMgbG9hZGVyIHZhcmlhYmxlLCB3aGljaCBvdXJzIGlzXG4gKiBqb2luZWQgdG8uIENESydzIGBsYW1iZGEuRnVuY3Rpb25gIGV4cG9zZXMgbm8gd2F5IHRvIHJlYWQgYmFjayBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBzZXQgZWxzZXdoZXJlIGluXG4gKiB0aGUgYXBwLCBzbyBhIHZhbHVlIHRoYXQgbXVzdCBiZSBwcmVzZXJ2ZWQgaGFzIHRvIGJlIHBhc3NlZCBpbiBleHBsaWNpdGx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2ViU2VydmVyRW52KFxuICBsYW5ndWFnZTogc3RyaW5nLFxuICBleGlzdGluZ0xvYWRlclZhbHVlPzogc3RyaW5nLFxuKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gIGNvbnN0IHNwZWMgPSBMQU5HVUFHRVNbbGFuZ3VhZ2VdO1xuICBjb25zdCBsb2FkZXIgPSBzcGVjPy53ZWJTZXJ2ZXI7XG4gIGlmICghbG9hZGVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYE9kaWdvczogJHtPZGlnb3NJbnN0cnVtZW50YXRpb25Nb2RlLldFQl9TRVJWRVJ9IG1vZGUgaXMgbm90IHN1cHBvcnRlZCBmb3IgJHtsYW5ndWFnZX0g4oCUIGAgK1xuICAgICAgICAndGhlcmUgaXMgbm8gdmVyaWZpZWQgd2ViLXNlcnZlciBsb2FkZXIgZm9yIGl0LiBVc2UgSEFORExFUiBtb2RlLCBvciBsZWF2ZSB0aGUgZnVuY3Rpb24gdW5pbnN0cnVtZW50ZWQuJyxcbiAgICApO1xuICB9XG4gIGNvbnN0IGVudjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgICBbbG9hZGVyLmVudktleV06IGFkZExvYWRlclZhbHVlKGV4aXN0aW5nTG9hZGVyVmFsdWUsIGxvYWRlci52YWx1ZSwgbG9hZGVyLnNlcGFyYXRvciksXG4gIH07XG4gIC8vIFB5dGhvbiBtdXN0IGJlIHBpbm5lZCB0byB0aGUgSFRUUCBPVExQIGV4cG9ydGVyIOKAlCB0aGUgb25seSBvbmUgYnVuZGxlZCBpbiBpdHMgbGF5ZXIuIE90aGVyIGxhbmd1YWdlc1xuICAvLyBleHBvcnQgY29ycmVjdGx5IHdpdGggdGhlaXIgZGVmYXVsdHMsIHNvIG5vdGhpbmcgZXh0cmEgaXMgd3JpdHRlbiBmb3IgdGhlbS5cbiAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMobG9hZGVyLmV4dHJhRW52KSkge1xuICAgIGVudltrXSA9IHY7XG4gIH1cbiAgcmV0dXJuIGVudjtcbn1cbiJdfQ==
|
|
133
|
+
/** Resolve the same concrete SDK names advertised by the connector's GraphQL catalog. */
|
|
134
|
+
function distributionWrapper(language, name, legacy, webServer = false) {
|
|
135
|
+
if (legacy && name)
|
|
136
|
+
throw new Error('Use distro or legacy javaHandlerDistro, not both');
|
|
137
|
+
if (legacy) {
|
|
138
|
+
if (language !== 'java')
|
|
139
|
+
return execWrapperFor(language);
|
|
140
|
+
if (webServer)
|
|
141
|
+
throw new Error('Java handler adapters require HANDLER mode');
|
|
142
|
+
if (!JAVA_DISTRO_WRAPPERS[legacy])
|
|
143
|
+
throw new Error(`Unsupported Java handler adapter ${legacy}`);
|
|
144
|
+
return execWrapperFor(language, legacy);
|
|
145
|
+
}
|
|
146
|
+
if (webServer && language === 'ruby')
|
|
147
|
+
throw new Error('Web-server instrumentation is not supported for ruby');
|
|
148
|
+
const d = distributions_1.LAMBDA_DISTRIBUTIONS.find(d => d.language === language && (name ? d.name === name : d.isDefault));
|
|
149
|
+
if (!d || (webServer && (language === 'ruby' || (language === 'java' && d.name !== 'java-lambda-otel-agent')))) {
|
|
150
|
+
throw new Error(`Unsupported Lambda distro ${name ?? '(default)'} for ${language}`);
|
|
151
|
+
}
|
|
152
|
+
return d.execWrapper;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMkJBLGtEQU9DO0FBb0JELHdDQVNDO0FBR0Qsb0NBTUM7QUFjRCx3Q0FRQztBQVVELGdEQUVDO0FBY0Qsb0NBcUJDO0FBR0Qsa0RBY0M7QUE5SkQsNkRBQWlFO0FBQ2pFLCtDQUErQztBQUMvQyxtQ0FBNkU7QUFFN0U7Ozs7OztHQU1HO0FBRUgsNEdBQTRHO0FBQzVHLE1BQU0saUJBQWlCLEdBQTRCO0lBQ2pELENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztJQUNwQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDcEIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztDQUNqQixDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQUMsV0FBbUI7SUFDckQsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDbkQsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkMsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsNEVBQTRFO0FBQzVFLE1BQU0sb0JBQW9CLEdBQThCO0lBQ3RELENBQUMsK0JBQXVCLENBQUMsWUFBWSxDQUFDLEVBQUUsbUJBQW1CO0lBQzNELENBQUMsK0JBQXVCLENBQUMsa0JBQWtCLENBQUMsRUFBRSx5QkFBeUI7SUFDdkUsQ0FBQywrQkFBdUIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLHVCQUF1QjtJQUNuRSxDQUFDLCtCQUF1QixDQUFDLG1CQUFtQixDQUFDLEVBQUUsMEJBQTBCO0NBQzFFLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxT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bmVyYXRlZC9kaXN0cmlidXRpb25zJztcbmltcG9ydCB7IExBTkdVQUdFUyB9IGZyb20gJy4vZ2VuZXJhdGVkL2xheWVycyc7XG5pbXBvcnQgeyBPZGlnb3NJbnN0cnVtZW50YXRpb25Nb2RlLCBPZGlnb3NKYXZhSGFuZGxlckRpc3RybyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFJ1bnRpbWUgLT4gbGFuZ3VhZ2UsIGFuZCBsYW5ndWFnZSAtPiB0aGUgZXhhY3QgZW52IHRoZSBsYXllciBleHBlY3RzLlxuICpcbiAqIE1pcnJvcnMgYExhbmd1YWdlRnJvbVJ1bnRpbWVgLCBgZXhlY1dyYXBwZXJGb3JMYW5ndWFnZWAgYW5kIGB3ZWJTZXJ2ZXJMb2FkZXJgIGluIHRoZSBjb25uZWN0b3Inc1xuICogaW5zdHJ1bWVudG9yLiBUaGUgZGF0YSBsaXZlcyBpbiAuLi8uLi9hcnRpZmFjdHMuanNvbiBhbmQgcmVhY2hlcyBoZXJlIHRocm91Z2ggdGhlIGdlbmVyYXRlZCBtb2R1bGU7IHRoZVxuICogZGVjaXNpb25zIGxpdmUgaGVyZS5cbiAqL1xuXG4vKiogUnVudGltZSBwcmVmaXhlcyB0aGF0IG1hcCB0byBhbiBPVGVsIGxheWVyIGxhbmd1YWdlLiBQcmVmaXgtbWF0Y2hlZCwgc28gYGphdmE4LmFsMmAgcmVzb2x2ZXMgdG8gamF2YS4gKi9cbmNvbnN0IExBTkdVQUdFX1BSRUZJWEVTOiBBcnJheTxbc3RyaW5nLCBzdHJpbmddPiA9IFtcbiAgWydweXRob24nLCAncHl0aG9uJ10sXG4gIFsnbm9kZWpzJywgJ25vZGVqcyddLFxuICBbJ2phdmEnLCAnamF2YSddLFxuICBbJ3J1YnknLCAncnVieSddLFxuXTtcblxuLyoqXG4gKiBSZXNvbHZlcyBhIExhbWJkYSBydW50aW1lIGlkZW50aWZpZXIgKGBweXRob24zLjEyYCwgYGphdmEyMWAsIGBub2RlanMyMi54YCkgdG8gdGhlIE9UZWwgbGF5ZXIgbGFuZ3VhZ2UuXG4gKlxuICogUmV0dXJucyBgdW5kZWZpbmVkYCBmb3IgcnVudGltZXMgd2l0aCBubyBPcGVuVGVsZW1ldHJ5IExhbWJkYSBsYW5ndWFnZSBsYXllciDigJQgYGRvdG5ldCpgLCBgcHJvdmlkZWQuKmBcbiAqIChHbyBhbmQgY3VzdG9tIHJ1bnRpbWVzKS4gVGhlIGNhbGxlciByZWZ1c2VzIHRvIGluc3RydW1lbnQgcmF0aGVyIHRoYW4gYXR0YWNoaW5nIGEgbGF5ZXIgdGhhdCBkb2VzXG4gKiBub3RoaW5nLCBiZWNhdXNlIGEgbGF5ZXIgcGx1cyBhbiBleGVjIHdyYXBwZXIgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiBpdCBmYWlscyB0aGUgZnVuY3Rpb24gYXQgY29sZCBzdGFydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhbmd1YWdlRnJvbVJ1bnRpbWUocnVudGltZU5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGZvciAoY29uc3QgW3ByZWZpeCwgbGFuZ3VhZ2VdIG9mIExBTkdVQUdFX1BSRUZJWEVTKSB7XG4gICAgaWYgKHJ1bnRpbWVOYW1lLnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgICAgcmV0dXJuIGxhbmd1YWdlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG4vKiogTWFwcyB0aGUgSmF2YSBkaXN0cm8gZW51bSB0byB0aGUgd3JhcHBlciBzY3JpcHQgcGF0aCB0aGUgbGF5ZXIgc2hpcHMuICovXG5jb25zdCBKQVZBX0RJU1RST19XUkFQUEVSUzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcbiAgW09kaWdvc0phdmFIYW5kbGVyRGlzdHJvLk9URUxfSEFORExFUl06ICcvb3B0L290ZWwtaGFuZGxlcicsXG4gIFtPZGlnb3NKYXZhSGFuZGxlckRpc3Ryby5PVEVMX1BST1hZX0hBTkRMRVJdOiAnL29wdC9vdGVsLXByb3h5LWhhbmRsZXInLFxuICBbT2RpZ29zSmF2YUhhbmRsZXJEaXN0cm8uT1RFTF9TUVNfSEFORExFUl06ICcvb3B0L290ZWwtc3FzLWhhbmRsZXInLFxuICBbT2RpZ29zSmF2YUhhbmRsZXJEaXN0cm8uT1RFTF9TVFJFQU1fSEFORExFUl06ICcvb3B0L290ZWwtc3RyZWFtLWhhbmRsZXInLFxufTtcblxuLyoqXG4gKiBUaGUgYEFXU19MQU1CREFfRVhFQ19XUkFQUEVSYCB2YWx1ZSBmb3IgYSBsYW5ndWFnZS5cbiAqXG4gKiBUaGUgd3JhcHBlciBzY3JpcHQgaXMgbGFuZ3VhZ2Utc3BlY2lmaWMuIEphdmEgZGVmYXVsdHMgdG8gYC9vcHQvb3RlbC1qYXZhYWdlbnQtaGFuZGxlcmA7XG4gKiBQeXRob24gdXNlcyBgL29wdC9vdGVsLWluc3RydW1lbnRgLCBhbmQgTm9kZS5qcy9SdWJ5IHVzZSBgL29wdC9vdGVsLWhhbmRsZXJgLiBTZXR0aW5nIHRoZSB3cm9uZyBvbmUgbWFrZXMgdGhlIGxheWVyIGJvb3RzdHJhcCBmYWlsIGF0IGNvbGQgc3RhcnQgd2l0aFxuICogYC9vcHQvb3RlbC1pbnN0cnVtZW50OiBkb2VzIG5vdCBleGlzdGAgYW5kIHRoZSBmdW5jdGlvbiBlcnJvcnMgb3V0IOKAlCB3aGljaCBpcyB3aHkgdGhpcyBpcyBuZXZlciBhXG4gKiBoYXJkY29kZWQgY29uc3RhbnQgYXQgYSBjYWxsIHNpdGUuXG4gKlxuICogYGRpc3Ryb2AgaXMgb25seSBjb25zdWx0ZWQgZm9yIEphdmEsIHdob3NlIGxheWVyIHNoaXBzIGZvdXIgd3JhcHBlcnMsIG9uZSBwZXIgaGFuZGxlciBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjV3JhcHBlckZvcihsYW5ndWFnZTogc3RyaW5nLCBkaXN0cm8/OiBPZGlnb3NKYXZhSGFuZGxlckRpc3Rybyk6IHN0cmluZyB7XG4gIGlmIChsYW5ndWFnZSA9PT0gJ2phdmEnKSB7XG4gICAgcmV0dXJuIGRpc3RybyA/IEpBVkFfRElTVFJPX1dSQVBQRVJTW2Rpc3Ryb10gOiAnL29wdC9vdGVsLWphdmFhZ2VudC1oYW5kbGVyJztcbiAgfVxuICBjb25zdCBzcGVjID0gTEFOR1VBR0VTW2xhbmd1YWdlXTtcbiAgaWYgKCFzcGVjKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBPZGlnb3M6IG5vIE9wZW5UZWxlbWV0cnkgTGFtYmRhIGxheWVyIGZvciBsYW5ndWFnZSBcIiR7bGFuZ3VhZ2V9XCJgKTtcbiAgfVxuICByZXR1cm4gc3BlYy5leGVjV3JhcHBlcjtcbn1cblxuLyoqIExheWVyIG5hbWUgZm9yIGEgbGFuZ3VhZ2UvYXJjaGl0ZWN0dXJlIOKAlCBgb2RpZ29zLW90ZWwtcHl0aG9uLWFybTY0YC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYXllck5hbWVGb3IobGFuZ3VhZ2U6IHN0cmluZywgYXJjaGl0ZWN0dXJlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBzcGVjID0gTEFOR1VBR0VTW2xhbmd1YWdlXTtcbiAgaWYgKCFzcGVjKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBPZGlnb3M6IHVua25vd24gbGFuZ3VhZ2UgXCIke2xhbmd1YWdlfVwiYCk7XG4gIH1cbiAgcmV0dXJuIGAke3NwZWMubGF5ZXJOYW1lfS0ke2FyY2hpdGVjdHVyZX1gO1xufVxuXG4vKiogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBvbiBhIGZ1bmN0aW9uLCBhcyBhIHBsYWluIG1hcC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW52VmFycyB7XG4gIHJlYWRvbmx5IFtrZXk6IHN0cmluZ106IHN0cmluZztcbn1cblxuLyoqXG4gKiBJZGVtcG90ZW50bHkgYWRkcyBvdXIgbG9hZGVyIHZhbHVlIHRvIGEgdmFsdWUgdGhlIGZ1bmN0aW9uIGFscmVhZHkgY2Fycmllcy5cbiAqXG4gKiBgUFlUSE9OUEFUSGAgaXMgUFJFUEVOREVELCBzbyB0aGUgbGF5ZXIncyBwYWNrYWdlcyBhbmQgaXRzIGBzaXRlY3VzdG9taXplYCBhcmUgZm91bmQgZmlyc3Q7IHRoZVxuICogYCpfT1BUSU9OU2AgdmFyaWFibGVzIGFyZSBhcHBlbmRlZCwgc28gdGhlIGN1c3RvbWVyJ3Mgb3duIGZsYWdzIGtlZXAgcHJlY2VkZW5jZS4gTWlycm9yc1xuICogYGFkZExvYWRlclZhbHVlYCBpbiB0aGUgY29ubmVjdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTG9hZGVyVmFsdWUoZXhpc3Rpbmc6IHN0cmluZyB8IHVuZGVmaW5lZCwgdmFsdWU6IHN0cmluZywgc2VwYXJhdG9yOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChleGlzdGluZy5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICByZXR1cm4gZXhpc3Rpbmc7XG4gIH1cbiAgcmV0dXJuIHNlcGFyYXRvciA9PT0gJzonID8gYCR7dmFsdWV9JHtzZXBhcmF0b3J9JHtleGlzdGluZ31gIDogYCR7ZXhpc3Rpbmd9JHtzZXBhcmF0b3J9JHt2YWx1ZX1gO1xufVxuXG4vKipcbiAqIFRoZSBsb2FkZXIgdmFyaWFibGUgYSBsYW5ndWFnZSBhY3RpdmF0ZXMgdGhyb3VnaCBpbiB3ZWItc2VydmVyIG1vZGUgKGBOT0RFX09QVElPTlNgLFxuICogYEpBVkFfVE9PTF9PUFRJT05TYCwgYFBZVEhPTlBBVEhgKSwgb3IgdW5kZWZpbmVkIGZvciBhIGxhbmd1YWdlIHdpdGggbm8gdmVyaWZpZWQgd2ViLXNlcnZlciBsb2FkZXIuXG4gKlxuICogRXhpc3RzIHNvIGEgY2FsbGVyIHRoYXQgbmVlZHMgdG8gbmFtZSB0aGUgdmFyaWFibGUg4oCUIHRoZSBvd25lcnNoaXAgbWFya2VyJ3Mgcm9sbGJhY2sgc25hcHNob3QsIHdoaWNoIGhhc1xuICogdG8gcmVjb3JkIHRoZSBjYWxsZXIncyBvd24gcHJpb3IgdmFsdWUgZm9yIGl0IOKAlCBkb2VzIG5vdCBoYXZlIHRvIGd1ZXNzIGl0IGZyb20gdGhlIGtleSBvcmRlciBvZlxuICogYHdlYlNlcnZlckVudmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3ZWJTZXJ2ZXJMb2FkZXJLZXkobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBMQU5HVUFHRVNbbGFuZ3VhZ2VdPy53ZWJTZXJ2ZXI/LmVudktleTtcbn1cblxuLyoqXG4gKiBUaGUgZW52aXJvbm1lbnQgdGhhdCBsb2FkcyB0aGUgbGFuZ3VhZ2UgYWdlbnQgaW4gd2ViLXNlcnZlciAoQVdTIExhbWJkYSBXZWIgQWRhcHRlcikgbW9kZS5cbiAqXG4gKiBXZWItYWRhcHRlciBmdW5jdGlvbnMgcnVuIGEgd2ViIHNlcnZlciByYXRoZXIgdGhhbiBhIExhbWJkYSBoYW5kbGVyLCBhbmQgdGhlIGFkYXB0ZXIgb3duc1xuICogYEFXU19MQU1CREFfRVhFQ19XUkFQUEVSYCDigJQgc28gaW5zdHJ1bWVudGF0aW9uIGlzIGxvYWRlZCB0aHJvdWdoIHRoZSBsYW5ndWFnZSdzIG93biBsb2FkZXIgdmFyaWFibGUgYW5kXG4gKiB0aGUgd3JhcHBlciBpcyBsZWZ0IGFsb25lLiBIYW5kbGVyLW1vZGUgaW5zdHJ1bWVudGF0aW9uIGFwcGxpZWQgdG8gb25lIG9mIHRoZXNlIG92ZXJ3cml0ZXMgdGhlXG4gKiBhZGFwdGVyJ3Mgd3JhcHBlciBhbmQgdGhlIGZ1bmN0aW9uIHN0b3BzIHNlcnZpbmcuXG4gKlxuICogQHBhcmFtIGV4aXN0aW5nTG9hZGVyVmFsdWUgdGhlIHZhbHVlIHRoZSBmdW5jdGlvbiBhbHJlYWR5IG5lZWRzIGluIGl0cyBsb2FkZXIgdmFyaWFibGUsIHdoaWNoIG91cnMgaXNcbiAqIGpvaW5lZCB0by4gQ0RLJ3MgYGxhbWJkYS5GdW5jdGlvbmAgZXhwb3NlcyBubyB3YXkgdG8gcmVhZCBiYWNrIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHNldCBlbHNld2hlcmUgaW5cbiAqIHRoZSBhcHAsIHNvIGEgdmFsdWUgdGhhdCBtdXN0IGJlIHByZXNlcnZlZCBoYXMgdG8gYmUgcGFzc2VkIGluIGV4cGxpY2l0bHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3ZWJTZXJ2ZXJFbnYoXG4gIGxhbmd1YWdlOiBzdHJpbmcsXG4gIGV4aXN0aW5nTG9hZGVyVmFsdWU/OiBzdHJpbmcsXG4pOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgY29uc3Qgc3BlYyA9IExBTkdVQUdFU1tsYW5ndWFnZV07XG4gIGNvbnN0IGxvYWRlciA9IHNwZWM/LndlYlNlcnZlcjtcbiAgaWYgKCFsb2FkZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgT2RpZ29zOiAke09kaWdvc0luc3RydW1lbnRhdGlvbk1vZGUuV0VCX1NFUlZFUn0gbW9kZSBpcyBub3Qgc3VwcG9ydGVkIGZvciAke2xhbmd1YWdlfSDigJQgYCArXG4gICAgICAgICd0aGVyZSBpcyBubyB2ZXJpZmllZCB3ZWItc2VydmVyIGxvYWRlciBmb3IgaXQuIFVzZSBIQU5ETEVSIG1vZGUsIG9yIGxlYXZlIHRoZSBmdW5jdGlvbiB1bmluc3RydW1lbnRlZC4nLFxuICAgICk7XG4gIH1cbiAgY29uc3QgZW52OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIFtsb2FkZXIuZW52S2V5XTogYWRkTG9hZGVyVmFsdWUoZXhpc3RpbmdMb2FkZXJWYWx1ZSwgbG9hZGVyLnZhbHVlLCBsb2FkZXIuc2VwYXJhdG9yKSxcbiAgfTtcbiAgLy8gUHl0aG9uIG11c3QgYmUgcGlubmVkIHRvIHRoZSBIVFRQIE9UTFAgZXhwb3J0ZXIg4oCUIHRoZSBvbmx5IG9uZSBidW5kbGVkIGluIGl0cyBsYXllci4gT3RoZXIgbGFuZ3VhZ2VzXG4gIC8vIGV4cG9ydCBjb3JyZWN0bHkgd2l0aCB0aGVpciBkZWZhdWx0cywgc28gbm90aGluZyBleHRyYSBpcyB3cml0dGVuIGZvciB0aGVtLlxuICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhsb2FkZXIuZXh0cmFFbnYpKSB7XG4gICAgZW52W2tdID0gdjtcbiAgfVxuICByZXR1cm4gZW52O1xufVxuXG4vKiogUmVzb2x2ZSB0aGUgc2FtZSBjb25jcmV0ZSBTREsgbmFtZXMgYWR2ZXJ0aXNlZCBieSB0aGUgY29ubmVjdG9yJ3MgR3JhcGhRTCBjYXRhbG9nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpc3RyaWJ1dGlvbldyYXBwZXIobGFuZ3VhZ2U6IHN0cmluZywgbmFtZT86IHN0cmluZywgbGVnYWN5PzogT2RpZ29zSmF2YUhhbmRsZXJEaXN0cm8sIHdlYlNlcnZlciA9IGZhbHNlKTogc3RyaW5nIHtcbiAgaWYgKGxlZ2FjeSAmJiBuYW1lKSB0aHJvdyBuZXcgRXJyb3IoJ1VzZSBkaXN0cm8gb3IgbGVnYWN5IGphdmFIYW5kbGVyRGlzdHJvLCBub3QgYm90aCcpO1xuICBpZiAobGVnYWN5KSB7XG4gICAgaWYgKGxhbmd1YWdlICE9PSAnamF2YScpIHJldHVybiBleGVjV3JhcHBlckZvcihsYW5ndWFnZSk7XG4gICAgaWYgKHdlYlNlcnZlcikgdGhyb3cgbmV3IEVycm9yKCdKYXZhIGhhbmRsZXIgYWRhcHRlcnMgcmVxdWlyZSBIQU5ETEVSIG1vZGUnKTtcbiAgICBpZiAoIUpBVkFfRElTVFJPX1dSQVBQRVJTW2xlZ2FjeV0pIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgSmF2YSBoYW5kbGVyIGFkYXB0ZXIgJHtsZWdhY3l9YCk7XG4gICAgcmV0dXJuIGV4ZWNXcmFwcGVyRm9yKGxhbmd1YWdlLCBsZWdhY3kpO1xuICB9XG4gIGlmICh3ZWJTZXJ2ZXIgJiYgbGFuZ3VhZ2UgPT09ICdydWJ5JykgdGhyb3cgbmV3IEVycm9yKCdXZWItc2VydmVyIGluc3RydW1lbnRhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBydWJ5Jyk7XG4gIGNvbnN0IGQgPSBMQU1CREFfRElTVFJJQlVUSU9OUy5maW5kKGQgPT4gZC5sYW5ndWFnZSA9PT0gbGFuZ3VhZ2UgJiYgKG5hbWUgPyBkLm5hbWUgPT09IG5hbWUgOiBkLmlzRGVmYXVsdCkpO1xuICBpZiAoIWQgfHwgKHdlYlNlcnZlciAmJiAobGFuZ3VhZ2UgPT09ICdydWJ5JyB8fCAobGFuZ3VhZ2UgPT09ICdqYXZhJyAmJiBkLm5hbWUgIT09ICdqYXZhLWxhbWJkYS1vdGVsLWFnZW50JykpKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgTGFtYmRhIGRpc3RybyAke25hbWUgPz8gJyhkZWZhdWx0KSd9IGZvciAke2xhbmd1YWdlfWApO1xuICB9XG4gIHJldHVybiBkLmV4ZWNXcmFwcGVyO1xufVxuIl19
|