Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

otel-cli

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

otel-cli - npm Package Compare versions

Comparing version
1.2.0
to
1.3.0
+7
-0
CHANGELOG.md

@@ -6,2 +6,9 @@ # Change Log

<a name="1.2.0"></a>
# 1.2.0 (2023-09-17)
### Features
* Add `GRPC` protocol support to export spans
<a name="1.1.2"></a>

@@ -8,0 +15,0 @@ # 1.1.2 (2023-07-16)

+3
-0

@@ -27,5 +27,8 @@ import { CommandExecutor } from '../CommandExecutor';

private spanAttributes;
private resourceAttributes;
private serverPort;
private traceMetadata;
private _tryToGetTraceIdFromTraceParent;
private _tryToGetParentSpanIdFromTraceParent;
private _normalizeResourceAttributes;
private _parseOptions;

@@ -32,0 +35,0 @@ private _checkOptions;

+19
-5

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

const index_1 = require("../index");
const constants_1 = require("../../constants");
const commander_1 = require("commander");
const MANAGED_RESOURCE_ATTRIBUTES = [
constants_1.RESOURCE_ATTRIBUTES.SERVICE_NAME,
];
class ExportCommandExecutor {

@@ -48,2 +52,6 @@ _tryToGetTraceIdFromTraceParent(traceParent) {

}
_normalizeResourceAttributes(resourceAttributes) {
MANAGED_RESOURCE_ATTRIBUTES.forEach((a) => resourceAttributes.delete(a));
return resourceAttributes;
}
_parseOptions(options) {

@@ -80,3 +88,8 @@ this.verboseEnabled = options.verbose;

this.spanAttributes = (0, utils_1.parseKeyValue)(options.attributes);
this.resourceAttributes = this._normalizeResourceAttributes((0, utils_1.parseKeyValue)(options.resourceAttributes));
this.serverPort = parseInt(options.serverPort);
this.traceMetadata = {
serviceName: this.serviceName,
resourceAttributes: (0, utils_1.flattenAttributes)(this.resourceAttributes),
};
}

@@ -280,2 +293,6 @@ _checkOptions() {

.addOption(new commander_1.Option('-a --attributes <key-value-pairs...>', 'Span attributes as space seperated key-value pairs (key1=value1 key2=value2 key3=value3)').makeOptionMandatory(false))
.addOption(new commander_1.Option('-ra --resource-attributes <key-value-pairs...>', 'Resource attributes as space seperated key-value pairs (key1=value1 key2=value2 key3=value3)')
.makeOptionMandatory(false)
.default(process.env.OTEL_RESOURCE_ATTRIBUTES &&
process.env.OTEL_RESOURCE_ATTRIBUTES.split(',')))
.addOption(new commander_1.Option('-sp, --server-port <port>', 'OTEL CLI server port for communicating over to export traces asynchronously in background')

@@ -288,7 +305,4 @@ .makeOptionMandatory(false)

this._checkOptions();
const metadata = {
serviceName: this.serviceName,
};
const spans = [this._createSpan()];
await this._exportSpans(metadata, spans);
await this._exportSpans(this.traceMetadata, spans);
if (this.traceParentPrint) {

@@ -300,2 +314,2 @@ console.log(this._generateTraceParent());

exports.ExportCommandExecutor = ExportCommandExecutor;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0Q29tbWFuZEV4ZWN1dG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmQvZXhwb3J0L0V4cG9ydENvbW1hbmRFeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHFDQUFrQztBQUNsQyx5Q0FPc0I7QUFDdEIsdUNBU3FCO0FBQ3JCLHlDQUtzQjtBQUN0QixxREFBdUM7QUFDdkMsb0NBQW9DO0FBRXBDLHlDQUEwRDtBQUUxRCxNQUFhLHFCQUFxQjtJQTBCdEIsK0JBQStCLENBQ25DLFdBQW1CO1FBRW5CLElBQUksV0FBVyxFQUFFO1lBQ2IsT0FBTyxJQUFBLHFDQUE2QixFQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLG9DQUFvQyxDQUN4QyxXQUFtQjtRQUVuQixJQUFJLFdBQVcsRUFBRTtZQUNiLE9BQU8sSUFBQSxvQ0FBNEIsRUFBQyxXQUFXLENBQUMsQ0FBQztTQUNwRDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBcUI7UUFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzdDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFBLHFCQUFhLEVBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCO1lBQzFDLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxJ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fSBmcm9tICcuLi9Db21tYW5kRXhlY3V0b3InO1xuaW1wb3J0IHsgZXhpdCB9IGZyb20gJy4uLy4uL2V4aXQnO1xuaW1wb3J0IHtcbiAgICBBdHRyaWJ1dGUsXG4gICAgU3BhbixcbiAgICBTcGFuS2luZCxcbiAgICBTcGFuU3RhdHVzLFxuICAgIFNwYW5TdGF0dXNDb2RlLFxuICAgIFRyYWNlTWV0YWRhdGEsXG59IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICAgIGV4dHJhY3RTcGFuSWRGcm9tVHJhY2VQYXJlbnQsXG4gICAgZXh0cmFjdFRyYWNlSWRGcm9tVHJhY2VQYXJlbnQsXG4gICAgZmxhdHRlbkF0dHJpYnV0ZXMsXG4gICAgZ2VuZXJhdGVTcGFuSWQsXG4gICAgcGFyc2VLZXlWYWx1ZSxcbiAgICB2YWxpZGF0ZVNwYW5JZCxcbiAgICB2YWxpZGF0ZVRyYWNlSWQsXG4gICAgdmFsaWRhdGVUcmFjZVBhcmVudCxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBjcmVhdGVTZXJ2ZXJUcmFjZUV4cG9ydGVyLFxuICAgIGNyZWF0ZVRyYWNlRXhwb3J0ZXIsXG4gICAgRXhwb3J0ZXJPVExQUHJvdG9jb2xzLFxuICAgIFRyYWNlRXhwb3J0ZXIsXG59IGZyb20gJy4uLy4uL2V4cG9ydCc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vLi4vbG9nZ2VyJztcbmltcG9ydCB7IENvbW1hbmRzIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5pbXBvcnQgeyBDb21tYW5kLCBPcHRpb24sIE9wdGlvblZhbHVlcyB9IGZyb20gJ2NvbW1hbmRlcic7XG5cbmV4cG9ydCBjbGFzcyBFeHBvcnRDb21tYW5kRXhlY3V0b3IgaW1wbGVtZW50cyBDb21tYW5kRXhlY3V0b3Ige1xuICAgIHByaXZhdGUgdmVyYm9zZUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nO1xuICAgIHByaXZhdGUgZXhwb3J0ZXJPVExQUHJvdG9jb2w6IHN0cmluZztcbiAgICBwcml2YXRlIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJpdmF0ZSB0cmFjZVBhcmVudDogc3RyaW5nO1xuICAgIHByaXZhdGUgdHJhY2VQYXJlbnRQcmludDogYm9vbGVhbjtcbiAgICBwcml2YXRlIHRyYWNlSWQ6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5JZDogc3RyaW5nO1xuICAgIHByaXZhdGUgcGFyZW50U3BhbklkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuTmFtZTogc3RyaW5nO1xuICAgIHByaXZhdGUgc2VydmljZU5hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5LaW5kOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuU3RhcnRUaW1lTmFub3M6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVNaWNyb3M6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVNaWxsaXM6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVTZWNzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBzcGFuRW5kVGltZU5hbm9zOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBzcGFuRW5kVGltZU1pY3JvczogbnVtYmVyO1xuICAgIHByaXZhdGUgc3BhbkVuZFRpbWVNaWxsaXM6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5FbmRUaW1lU2VjczogbnVtYmVyO1xuICAgIHByaXZhdGUgc3BhblN0YXR1c0NvZGU6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5TdGF0dXNNZXNzYWdlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuQXR0cmlidXRlczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgICBwcml2YXRlIHNlcnZlclBvcnQ6IG51bWJlcjtcblxuICAgIHByaXZhdGUgX3RyeVRvR2V0VHJhY2VJZEZyb21UcmFjZVBhcmVudChcbiAgICAgICAgdHJhY2VQYXJlbnQ6IHN0cmluZ1xuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0cmFjZVBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGV4dHJhY3RUcmFjZUlkRnJvbVRyYWNlUGFyZW50KHRyYWNlUGFyZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RyeVRvR2V0UGFyZW50U3BhbklkRnJvbVRyYWNlUGFyZW50KFxuICAgICAgICB0cmFjZVBhcmVudDogc3RyaW5nXG4gICAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRyYWNlUGFyZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZXh0cmFjdFNwYW5JZEZyb21UcmFjZVBhcmVudCh0cmFjZVBhcmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wYXJzZU9wdGlvbnMob3B0aW9uczogT3B0aW9uVmFsdWVzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmVyYm9zZUVuYWJsZWQgPSBvcHRpb25zLnZlcmJvc2U7XG4gICAgICAgIGxvZ2dlci5zZXREZWJ1Z0VuYWJsZWQodGhpcy52ZXJib3NlRW5hYmxlZCk7XG5cbiAgICAgICAgdGhpcy5leHBvcnRlck9UTFBFbmRwb2ludCA9IG9wdGlvbnMuZW5kcG9pbnQ7XG4gICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQUHJvdG9jb2wgPSBvcHRpb25zLnByb3RvY29sO1xuICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUEhlYWRlcnMgPSBwYXJzZUtleVZhbHVlKG9wdGlvbnMuaGVhZGVycyk7XG5cbiAgICAgICAgdGhpcy50cmFjZVBhcmVudCA9ICFvcHRpb25zLnRyYWNlcGFyZW50RGlzYWJsZVxuICAgICAgICAgICAgPyBvcHRpb25zLnRyYWNlcGFyZW50IHx8IHByb2Nlc3MuZW52LlRSQUNFUEFSRU5UXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50cmFjZVBhcmVudFByaW50ID0gb3B0aW9ucy50cmFjZXBhcmVudFByaW50O1xuICAgICAgICB0aGlzLnRyYWNlSWQgPVxuICAgICAgICAgICAgb3B0aW9ucy50cmFjZUlkIHx8XG4gICAgICAgICAgICB0aGlzLl90cnlUb0dldFRyYWNlSWRGcm9tVHJhY2VQYXJlbnQodGhpcy50cmFjZVBhcmVudCk7XG4gICAgICAgIHRoaXMuc3BhbklkID0gb3B0aW9ucy5zcGFuSWQ7XG4gICAgICAgIHRoaXMucGFyZW50U3BhbklkID1cbiAgICAgICAgICAgIG9wdGlvbnMucGFyZW50U3BhbklkIHx8XG4gICAgICAgICAgICB0aGlzLl90cnlUb0dldFBhcmVudFNwYW5JZEZyb21UcmFjZVBhcmVudCh0aGlzLnRyYWNlUGFyZW50KTtcbiAgICAgICAgdGhpcy5zcGFuTmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZSA9IG9wdGlvbnMuc2VydmljZU5hbWU7XG4gICAgICAgIHRoaXMuc3BhbktpbmQgPSBvcHRpb25zLmtpbmQ7XG4gICAgICAgIHRoaXMuc3BhblN0YXJ0VGltZU5hbm9zID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVOYW5vcyk7XG4gICAgICAgIHRoaXMuc3BhblN0YXJ0VGltZU1pY3JvcyA9IHBhcnNlSW50KG9wdGlvbnMuc3RhcnRUaW1lTWljcm9zKTtcbiAgICAgICAgdGhpcy5zcGFuU3RhcnRUaW1lTWlsbGlzID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVNaWxsaXMpO1xuICAgICAgICB0aGlzLnNwYW5TdGFydFRpbWVTZWNzID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVTZWNzKTtcbiAgICAgICAgdGhpcy5zcGFuRW5kVGltZU5hbm9zID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lTmFub3MpO1xuICAgICAgICB0aGlzLnNwYW5FbmRUaW1lTWljcm9zID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lTWljcm9zKTtcbiAgICAgICAgdGhpcy5zcGFuRW5kVGltZU1pbGxpcyA9IHBhcnNlSW50KG9wdGlvbnMuZW5kVGltZU1pbGxpcyk7XG4gICAgICAgIHRoaXMuc3BhbkVuZFRpbWVTZWNzID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lU2Vjcyk7XG4gICAgICAgIHRoaXMuc3BhblN0YXR1c0NvZGUgPSBvcHRpb25zLnN0YXR1c0NvZGU7XG4gICAgICAgIHRoaXMuc3BhblN0YXR1c01lc3NhZ2UgPSBvcHRpb25zLnN0YXR1c01lc3NhZ2U7XG4gICAgICAgIHRoaXMuc3BhbkF0dHJpYnV0ZXMgPSBwYXJzZUtleVZhbHVlKG9wdGlvbnMuYXR0cmlidXRlcyk7XG4gICAgICAgIHRoaXMuc2VydmVyUG9ydCA9IHBhcnNlSW50KG9wdGlvbnMuc2VydmVyUG9ydCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50cmFjZVBhcmVudCAmJiAhdmFsaWRhdGVUcmFjZVBhcmVudCh0aGlzLnRyYWNlUGFyZW50KSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBJbnZhbGlkIHRyYWNlIHBhcmVudDogJHt0aGlzLnRyYWNlUGFyZW50fSFgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRyYWNlSWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgVHJhY2UgaWQgaXMgbm90IHNwZWNpZmllZDogJHt0aGlzLnRyYWNlSWR9IWApO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkYXRlVHJhY2VJZCh0aGlzLnRyYWNlSWQpKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEludmFsaWQgdHJhY2UgaWQ6ICR7dGhpcy50cmFjZUlkfSFgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZGF0ZVNwYW5JZCh0aGlzLnNwYW5JZCkpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgSW52YWxpZCBzcGFuIGlkOiAke3RoaXMuc3BhbklkfSFgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFyZW50U3BhbklkICYmICF2YWxpZGF0ZVNwYW5JZCh0aGlzLnBhcmVudFNwYW5JZCkpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgSW52YWxpZCBwYXJlbnQgc3BhbiBpZDogJHt0aGlzLnBhcmVudFNwYW5JZH0hYCk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLnNwYW5TdGFydFRpbWVOYW5vcyAmJlxuICAgICAgICAgICAgIXRoaXMuc3BhbkVuZFRpbWVNaWNyb3MgJiZcbiAgICAgICAgICAgICF0aGlzLnNwYW5TdGFydFRpbWVNaWxsaXMgJiZcbiAgICAgICAgICAgICF0aGlzLnNwYW5TdGFydFRpbWVTZWNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICdTcGFuIHN0YXJ0IHRpbWUgbXVzdCBiZSBzcGVjaWZpZWQgaW4gb25lIG9mIHRoZSBzdXBwb3J0ZWQgZm9ybWF0cyAnICtcbiAgICAgICAgICAgICAgICAgICAgJyhuYW5vc2Vjb25kcywgbWljcm9zZWNvbmRzLCBtaWxsaXNlY29uZHMsIG9yIHNlY29uZHMpISdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLnNwYW5FbmRUaW1lTmFub3MgJiZcbiAgICAgICAgICAgICF0aGlzLnNwYW5FbmRUaW1lTWljcm9zICYmXG4gICAgICAgICAgICAhdGhpcy5zcGFuRW5kVGltZU1pbGxpcyAmJlxuICAgICAgICAgICAgIXRoaXMuc3BhbkVuZFRpbWVTZWNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICdTcGFuIGVuZCB0aW1lIG11c3QgYmUgc3BlY2lmaWVkIGluIG9uZSBvZiB0aGUgc3VwcG9ydGVkIGZvcm1hdHMgJyArXG4gICAgICAgICAgICAgICAgICAgICcobmFub3NlY29uZHMsIG1pY3Jvc2Vjb25kcywgbWlsbGlzZWNvbmRzLCBvciBzZWNvbmRzKSEnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc29sdmVTcGFuU3RhcnRUaW1lTmFub3MoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuc3BhblN0YXJ0VGltZU5hbm9zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuU3RhcnRUaW1lTmFub3M7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zcGFuU3RhcnRUaW1lTWljcm9zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuU3RhcnRUaW1lTWljcm9zICogMTAwMDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNwYW5TdGFydFRpbWVNaWxsaXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwYW5TdGFydFRpbWVNaWxsaXMgKiAxMDAwMDAwO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3BhblN0YXJ0VGltZVNlY3MpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwYW5TdGFydFRpbWVTZWNzICogMTAwMDAwMDAwMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc3BhbiBzdGFydCB0aW1lIGlzIHNwZWNpZmllZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVzb2x2ZVNwYW5FbmRUaW1lTmFub3MoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuc3BhbkVuZFRpbWVOYW5vcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BhbkVuZFRpbWVOYW5vcztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNwYW5FbmRUaW1lTWljcm9zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuRW5kVGltZU1pY3JvcyAqIDEwMDA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zcGFuRW5kVGltZU1pbGxpcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BhbkVuZFRpbWVNaWxsaXMgKiAxMDAwMDAwO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3BhbkVuZFRpbWVTZWNzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuRW5kVGltZVNlY3MgKiAxMDAwMDAwMDAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBzcGFuIGVuZCB0aW1lIGlzIHNwZWNpZmllZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbm9ybWFsaXplSWQoaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChpZCAmJiBpZC5zdGFydHNXaXRoKCcweCcpKSB7XG4gICAgICAgICAgICBpZCA9IGlkLnN1YnN0cmluZygnMHgnLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVNwYW4oKTogU3BhbiB7XG4gICAgICAgIGNvbnN0IHRyYWNlSWQ6IHN0cmluZyA9IHRoaXMuX25vcm1hbGl6ZUlkKHRoaXMudHJhY2VJZCk7XG4gICAgICAgIGNvbnN0IHNwYW5JZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5fbm9ybWFsaXplSWQodGhpcy5zcGFuSWQpO1xuICAgICAgICBjb25zdCB0cmFjZVN0YXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAgICAgY29uc3QgcGFyZW50U3BhbklkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLl9ub3JtYWxpemVJZChcbiAgICAgICAgICAgIHRoaXMucGFyZW50U3BhbklkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IHRoaXMuc3Bhbk5hbWU7XG4gICAgICAgIGNvbnN0IGtpbmQ6IFNwYW5LaW5kID0gU3BhbktpbmRbdGhpcy5zcGFuS2luZCBhcyBrZXlvZiB0eXBlb2YgU3BhbktpbmRdO1xuICAgICAgICBjb25zdCBzdGFydFRpbWVVbml4TmFubzogbnVtYmVyID0gdGhpcy5fcmVzb2x2ZVNwYW5TdGFydFRpbWVOYW5vcygpO1xuICAgICAgICBjb25zdCBlbmRUaW1lVW5peE5hbm86IG51bWJlciA9IHRoaXMuX3Jlc29sdmVTcGFuRW5kVGltZU5hbm9zKCk7XG4gICAgICAgIGNvbnN0IHN0YXR1c0NvZGU6IFNwYW5TdGF0dXNDb2RlID1cbiAgICAgICAgICAgIFNwYW5TdGF0dXNDb2RlW3RoaXMuc3BhblN0YXR1c0NvZGUgYXMga2V5b2YgdHlwZW9mIFNwYW5TdGF0dXNDb2RlXTtcbiAgICAgICAgY29uc3Qgc3RhdHVzTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5zcGFuU3RhdHVzTWVzc2FnZTtcbiAgICAgICAgY29uc3Qgc3RhdHVzOiBTcGFuU3RhdHVzID0ge1xuICAgICAgICAgICAgY29kZTogc3RhdHVzQ29kZSB8fCBTcGFuU3RhdHVzQ29kZS5VTlNFVCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHN0YXR1c01lc3NhZ2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdID0gZmxhdHRlbkF0dHJpYnV0ZXModGhpcy5zcGFuQXR0cmlidXRlcyk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRyYWNlSWQsXG4gICAgICAgICAgICBzcGFuSWQsXG4gICAgICAgICAgICB0cmFjZVN0YXRlLFxuICAgICAgICAgICAgcGFyZW50U3BhbklkLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICBzdGFydFRpbWVVbml4TmFubyxcbiAgICAgICAgICAgIGVuZFRpbWVVbml4TmFubyxcbiAgICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICBkcm9wcGVkQXR0cmlidXRlc0NvdW50OiAwLFxuICAgICAgICB9IGFzIFNwYW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlVHJhY2VFeHBvcnRlcigpOiBUcmFjZUV4cG9ydGVyIHtcbiAgICAgICAgaWYgKHRoaXMuc2VydmVyUG9ydCkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclRyYWNlRXhwb3J0ZXIodGhpcy5zZXJ2ZXJQb3J0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVUcmFjZUV4cG9ydGVyKFxuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQUHJvdG9jb2wsXG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRlck9UTFBFbmRwb2ludCxcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUEhlYWRlcnNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9leHBvcnRTcGFucyhcbiAgICAgICAgbWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEsXG4gICAgICAgIHNwYW5zOiBTcGFuW11cbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdHJhY2VFeHBvcnRlcjogVHJhY2VFeHBvcnRlciA9IHRoaXMuX2NyZWF0ZVRyYWNlRXhwb3J0ZXIoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChsb2dnZXIuaXNEZWJ1Z0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgRXhwb3J0aW5nIHNwYW5zOmAsIHNwYW5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHRyYWNlRXhwb3J0ZXIuZXhwb3J0KG1ldGFkYXRhLCBzcGFucyk7XG4gICAgICAgICAgICBsb2dnZXIuZGVidWcoJ0V4cG9ydGVkIHNwYW5zJyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoJ1VuYWJsZSB0byBleHBvcnQgc3BhbnMnLCBlcnIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUcmFjZVBhcmVudCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYDAwLSR7dGhpcy50cmFjZUlkfS0ke3RoaXMuc3BhbklkfS0wMWA7XG4gICAgfVxuXG4gICAgY29tbWFuZE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbW1hbmRzLkVYUE9SVDtcbiAgICB9XG5cbiAgICBkZWZpbmVPcHRpb25zKGNvbW1hbmQ6IENvbW1hbmQpIHtcbiAgICAgICAgY29tbWFuZFxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctdiwgLS12ZXJib3NlJywgJ0VuYWJsZSB2ZXJib3NlIG1vZGUnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9WRVJCT1NFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVkVSQk9TRS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJ1ZSdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLWUsIC0tZW5kcG9pbnQgPHVybD4nLFxuICAgICAgICAgICAgICAgICAgICAnT1RFTCBFeHBvcnRlciBPVExQIGVuZHBvaW50J1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLXAsIC0tcHJvdG9jb2wgPHByb3RvY29sPicsXG4gICAgICAgICAgICAgICAgICAgICdPVEVMIEV4cG9ydGVyIE9UTFAgcHJvdG9jb2wnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfUFJPVE9DT0wgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnRlck9UTFBQcm90b2NvbHMuSFRUUF9KU09OXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLmNob2ljZXMoT2JqZWN0LnZhbHVlcyhFeHBvcnRlck9UTFBQcm90b2NvbHMpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLWgsIC0taGVhZGVycyA8a2V5LXZhbHVlLXBhaXJzLi4uPicsXG4gICAgICAgICAgICAgICAgICAgICdPVEVMIEV4cG9ydGVyIE9UTFAgaGVhZGVycydcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9IRUFERVJTICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0hFQURFUlMuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctdHAsIC0tdHJhY2VwYXJlbnQgPGhlYWRlcj4nLFxuICAgICAgICAgICAgICAgICAgICAnVHJhY2VwYXJlbnQgaGVhZGVyIGluIFczQyB0cmFjZSBjb250ZXh0IGZvcm1hdCdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChwcm9jZXNzLmVudi5UUkFDRVBBUkVOVClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy10cGQsIC0tdHJhY2VwYXJlbnQtZGlzYWJsZScsXG4gICAgICAgICAgICAgICAgICAgICdEaXNhYmxlIHRyYWNlcGFyZW50IGhlYWRlciBiYXNlZCBXM0MgdHJhY2UgY29udGV4dCBwcm9wYWdhdGlvbiBmb3IgdGhlIGV4cG9ydGVkIHNwYW4nXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9UUkFDRVBBUkVOVF9ESVNBQkxFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVFJBQ0VQQVJFTlRfRElTQUJMRS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJ1ZSdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLXRwcCwgLS10cmFjZXBhcmVudC1wcmludCcsXG4gICAgICAgICAgICAgICAgICAgICdQcmludCB0cmFjZXBhcmVudCBoZWFkZXIgaW4gVzNDIHRyYWNlIGNvbnRleHQgZm9ybWF0IGZvciB0aGUgZXhwb3J0ZWQgc3BhbidcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfQ0xJX1RSQUNFUEFSRU5UX1BSSU5UICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVFJBQ0VQQVJFTlRfUFJJTlQudG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXQsIC0tdHJhY2UtaWQgPGlkPicsICdUcmFjZSBpZCcpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChwcm9jZXNzLmVudi5PVEVMX0NMSV9UUkFDRV9JRClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXMsIC0tc3Bhbi1pZCA8aWQ+JywgJ1NwYW4gaWQnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoZ2VuZXJhdGVTcGFuSWQoKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy1wLCAtLXBhcmVudC1zcGFuLWlkIDxpZD4nLFxuICAgICAgICAgICAgICAgICAgICAnUGFyZW50IHNwYW4gaWQnXG4gICAgICAgICAgICAgICAgKS5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLW4sIC0tbmFtZSA8bmFtZT4nLFxuICAgICAgICAgICAgICAgICAgICAnU3BhbiBuYW1lJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeSh0cnVlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctc24sIC0tc2VydmljZS1uYW1lIDxuYW1lPicsICdTZXJ2aWNlIG5hbWUnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeSh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfQ0xJX1NFUlZJQ0VfTkFNRSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfU0VSVklDRV9OQU1FXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLWssIC0ta2luZCA8a2luZD4nLCAnU3BhbiBraW5kJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KFNwYW5LaW5kW1NwYW5LaW5kLklOVEVSTkFMXSlcbiAgICAgICAgICAgICAgICAgICAgLmNob2ljZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhTcGFuS2luZCkuZmlsdGVyKChvKSA9PiBpc05hTihOdW1iZXIobykpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctLXN0YXJ0LXRpbWUtbmFub3MgPG5hbm9zPicsXG4gICAgICAgICAgICAgICAgICAgICdTdGFydCB0aW1lIGluIG5hbm9zZWNvbmRzJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy0tc3RhcnQtdGltZS1taWNyb3MgPG1pY3Jvcz4nLFxuICAgICAgICAgICAgICAgICAgICAnU3RhcnQgdGltZSBpbiBtaWNyb3NlY29uZHMnXG4gICAgICAgICAgICAgICAgKS5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLS1zdGFydC10aW1lLW1pbGxpcyA8bWlsbGlzPicsXG4gICAgICAgICAgICAgICAgICAgICdTdGFydCB0aW1lIGluIG1pbGxpc2Vjb25kcydcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctLXN0YXJ0LXRpbWUtc2VjcyA8c2Vjcz4nLFxuICAgICAgICAgICAgICAgICAgICAnU3RhcnQgdGltZSBpbiBzZWNvbmRzJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy0tZW5kLXRpbWUtbmFub3MgPG5hbm9zPicsXG4gICAgICAgICAgICAgICAgICAgICdFbmQgdGltZSBpbiBuYW5vc2Vjb25kcydcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctLWVuZC10aW1lLW1pY3JvcyA8bWljcm9zPicsXG4gICAgICAgICAgICAgICAgICAgICdFbmQgdGltZSBpbiBtaWNyb3NlY29uZHMnXG4gICAgICAgICAgICAgICAgKS5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLS1lbmQtdGltZS1taWxsaXMgPG1pbGxpcz4nLFxuICAgICAgICAgICAgICAgICAgICAnRW5kIHRpbWUgaW4gbWlsbGlzZWNvbmRzJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy0tZW5kLXRpbWUtc2VjcyA8c2Vjcz4nLFxuICAgICAgICAgICAgICAgICAgICAnRW5kIHRpbWUgaW4gc2Vjb25kcydcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy1zYyAtLXN0YXR1cy1jb2RlIDxjb2RlPicsICdTdGF0dXMgY29kZScpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChTcGFuU3RhdHVzQ29kZVtTcGFuU3RhdHVzQ29kZS5VTlNFVF0pXG4gICAgICAgICAgICAgICAgICAgIC5jaG9pY2VzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoU3BhblN0YXR1c0NvZGUpLmZpbHRlcigobykgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05hTihOdW1iZXIobykpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy1zbSAtLXN0YXR1cy1tZXNzYWdlIDxtZXNzYWdlPicsXG4gICAgICAgICAgICAgICAgICAgICdTdGF0dXMgbWVzc2FnZSdcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctYSAtLWF0dHJpYnV0ZXMgPGtleS12YWx1ZS1wYWlycy4uLj4nLFxuICAgICAgICAgICAgICAgICAgICAnU3BhbiBhdHRyaWJ1dGVzIGFzIHNwYWNlIHNlcGVyYXRlZCBrZXktdmFsdWUgcGFpcnMgKGtleTE9dmFsdWUxIGtleTI9dmFsdWUyIGtleTM9dmFsdWUzKSdcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctc3AsIC0tc2VydmVyLXBvcnQgPHBvcnQ+JyxcbiAgICAgICAgICAgICAgICAgICAgJ09URUwgQ0xJIHNlcnZlciBwb3J0IGZvciBjb21tdW5pY2F0aW5nIG92ZXIgdG8gZXhwb3J0IHRyYWNlcyBhc3luY2hyb25vdXNseSBpbiBiYWNrZ3JvdW5kJ1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KHByb2Nlc3MuZW52Lk9URUxfQ0xJX1NFUlZFUl9QT1JUKVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICBhc3luYyBleGVjdXRlKG9wdGlvbnM6IE9wdGlvblZhbHVlcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLl9wYXJzZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5fY2hlY2tPcHRpb25zKCk7XG5cbiAgICAgICAgY29uc3QgbWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBzZXJ2aWNlTmFtZTogdGhpcy5zZXJ2aWNlTmFtZSxcbiAgICAgICAgfSBhcyBUcmFjZU1ldGFkYXRhO1xuICAgICAgICBjb25zdCBzcGFuczogU3BhbltdID0gW3RoaXMuX2NyZWF0ZVNwYW4oKV07XG4gICAgICAgIGF3YWl0IHRoaXMuX2V4cG9ydFNwYW5zKG1ldGFkYXRhLCBzcGFucyk7XG4gICAgICAgIGlmICh0aGlzLnRyYWNlUGFyZW50UHJpbnQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuX2dlbmVyYXRlVHJhY2VQYXJlbnQoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwb3J0Q29tbWFuZEV4ZWN1dG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmQvZXhwb3J0L0V4cG9ydENvbW1hbmRFeGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHFDQUFrQztBQUNsQyx5Q0FPc0I7QUFDdEIsdUNBU3FCO0FBQ3JCLHlDQUtzQjtBQUN0QixxREFBdUM7QUFDdkMsb0NBQW9DO0FBQ3BDLCtDQUFzRDtBQUV0RCx5Q0FBMEQ7QUFFMUQsTUFBTSwyQkFBMkIsR0FBYTtJQUMxQywrQkFBbUIsQ0FBQyxZQUFZO0NBQ25DLENBQUM7QUFFRixNQUFhLHFCQUFxQjtJQTRCdEIsK0JBQStCLENBQ25DLFdBQW1CO1FBRW5CLElBQUksV0FBVyxFQUFFO1lBQ2IsT0FBTyxJQUFBLHFDQUE2QixFQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVPLG9DQUFvQyxDQUN4QyxXQUFtQjtRQUVuQixJQUFJLFdBQVcsRUFBRTtZQUNiLE9BQU8sSUFBQSxvQ0FBNEIsRUFBQyxXQUFXLENBQUMsQ0FBQztTQUNwRDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFTyw0QkFBNEIsQ0FDaEMsa0JBQXVDO1FBRXZDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQzlDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FDL0IsQ0FBQztRQUNGLE9BQU8sa0JBQWtCLENBQUM7SUFDOUIsQ0FBQztJQUVPLGFBQWEsQ0FBQyxPQUFxQjtRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDdEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDN0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDN0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUEscUJBQWEsRUFBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0I7WUFDMUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXO1lBQ2hELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTztZQUNSLE9BQU8sQ0FBQyxPQUFPO2dCQUNmLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxZQUFZO1lBQ2IsT0FBTyxDQUFDLFlBQVk7Z0JBQ3BCLElBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUN6QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUEscUJBQWEsRUFBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FDdkQsSUFBQSxxQkFBYSxFQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUM1QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDakIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGtCQUFrQixFQUFFLElBQUEseUJBQWlCLEVBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1NBQ2hELENBQUM7SUFDdkIsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBQSwyQkFBbUIsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDNUQsTUFBTSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFDM0QsSUFBQSxXQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDNUQsSUFBQSxXQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWDtRQUNELElBQUksQ0FBQyxJQUFBLHVCQUFlLEVBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1lBQ25ELElBQUEsV0FBSSxFQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1g7UUFDRCxJQUFJLENBQUMsSUFBQSxzQkFBYyxFQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNqRCxJQUFBLFdBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztTQUNYO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBQSxzQkFBYyxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN6RCxNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUEyQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUM5RCxJQUFBLFdBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztTQUNYO1FBQ0QsSUFDSSxDQUFDLElBQUksQ0FBQyxrQkFBa0I7WUFDeEIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCO1lBQ3ZCLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUN6QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFDekI7WUFDRSxNQUFNLENBQUMsS0FBSyxDQUNSLG9FQUFvRTtnQkFDaEUsd0RBQXdELENBQy9ELENBQUM7WUFDRixJQUFBLFdBQUksRUFBQyxDQUFDLENBQUMsQ0FBQztTQUNYO1FBQ0QsSUFDSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0I7WUFDdEIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCO1lBQ3ZCLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUN2QixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQ3ZCO1lBQ0UsTUFBTSxDQUFDLEtBQUssQ0FDUixrRUFBa0U7Z0JBQzlELHdEQUF3RCxDQUMvRCxDQUFDO1lBQ0YsSUFBQSxXQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWDtJQUNMLENBQUM7SUFFTywwQkFBMEI7UUFDOUIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7U0FDbEM7YUFBTSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7U0FDMUM7YUFBTSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUM7U0FDN0M7YUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7U0FDOUM7YUFBTTtZQUNILE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztTQUN0RDtJQUNMLENBQUM7SUFFTyx3QkFBd0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDaEM7YUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7U0FDeEM7YUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUM7U0FDM0M7YUFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsZUFBZSxHQUFHLFVBQVUsQ0FBQztTQUM1QzthQUFNO1lBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQztJQUVPLFlBQVksQ0FBQyxFQUFVO1FBQzNCLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU8sV0FBVztRQUNmLE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELE1BQU0sTUFBTSxHQUF1QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRSxNQUFNLFVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUF1QixJQUFJLENBQUMsWUFBWSxDQUN0RCxJQUFJLENBQUMsWUFBWSxDQUNwQixDQUFDO1FBQ0YsTUFBTSxJQUFJLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNuQyxNQUFNLElBQUksR0FBYSxpQkFBUSxDQUFDLElBQUksQ0FBQyxRQUFpQyxDQUFDLENBQUM7UUFDeEUsTUFBTSxpQkFBaUIsR0FBVyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNwRSxNQUFNLGVBQWUsR0FBVyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNoRSxNQUFNLFVBQVUsR0FDWix1QkFBYyxDQUFDLElBQUksQ0FBQyxjQUE2QyxDQUFDLENBQUM7UUFDdkUsTUFBTSxhQUFhLEdBQXVCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBZTtZQUN2QixJQUFJLEVBQUUsVUFBVSxJQUFJLHVCQUFjLENBQUMsS0FBSztZQUN4QyxPQUFPLEVBQUUsYUFBYTtTQUN6QixDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQWdCLElBQUEseUJBQWlCLEVBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZFLE9BQU87WUFDSCxPQUFPO1lBQ1AsTUFBTTtZQUNOLFVBQVU7WUFDVixZQUFZO1lBQ1osSUFBSTtZQUNKLElBQUk7WUFDSixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLE1BQU07WUFDTixVQUFVO1lBQ1Ysc0JBQXNCLEVBQUUsQ0FBQztTQUNwQixDQUFDO0lBQ2QsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsT0FBTyxJQUFBLGtDQUF5QixFQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNyRDthQUFNO1lBQ0gsT0FBTyxJQUFBLDRCQUFtQixFQUN0QixJQUFJLENBQUMsb0JBQW9CLEVBQ3pCLElBQUksQ0FBQyxvQkFBb0IsRUFDekIsSUFBSSxDQUFDLG1CQUFtQixDQUMzQixDQUFDO1NBQ0w7SUFDTCxDQUFDO0lBRU8sS0FBSyxDQUFDLFlBQVksQ0FDdEIsUUFBdUIsRUFDdkIsS0FBYTtRQUViLE1BQU0sYUFBYSxHQUFrQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNqRSxJQUFJO1lBQ0EsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBQ3pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDM0M7WUFDRCxNQUFNLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNsQztRQUFDLE9BQU8sR0FBUSxFQUFFO1lBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUMvQztJQUNMLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsT0FBTyxNQUFNLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXO1FBQ1AsT0FBTyxnQkFBUSxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWdCO1FBQzFCLE9BQU87YUFDRixTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUFDLGVBQWUsRUFBRSxxQkFBcUIsQ0FBQzthQUM3QyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO1lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFO2dCQUN0QyxNQUFNLENBQ2pCLENBQ1I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLHNCQUFzQixFQUN0Qiw2QkFBNkIsQ0FDaEM7YUFDSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7YUFDekIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FDeEQ7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDJCQUEyQixFQUMzQiw2QkFBNkIsQ0FDaEM7YUFDSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCO1lBQ25DLDhCQUFxQixDQUFDLFNBQVMsQ0FDdEM7YUFDQSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyw4QkFBcUIsQ0FBQyxDQUFDLENBQ3JEO2FBQ0EsU0FBUyxDQUNOLElBQUksa0JBQU0sQ0FDTixvQ0FBb0MsRUFDcEMsNEJBQTRCLENBQy9CO2FBQ0ksbUJBQW1CLENBQUMsS0FBSyxDQUFDO2FBQzFCLE9BQU8sQ0FDSixPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQjtZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FDeEQsQ0FDUjthQUNBLFNBQVMsQ0FDTixJQUFJLGtCQUFNLENBQ04sNkJBQTZCLEVBQzdCLGdEQUFnRCxDQUNuRDthQUNJLG1CQUFtQixDQUFDLEtBQUssQ0FBQzthQUMxQixPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FDeEM7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDZCQUE2QixFQUM3QixzRkFBc0YsQ0FDekY7YUFDSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCO1lBQ3BDLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsV0FBVyxFQUFFO2dCQUNsRCxNQUFNLENBQ2pCLENBQ1I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDJCQUEyQixFQUMzQiw0RUFBNEUsQ0FDL0U7YUFDSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCO1lBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsV0FBVyxFQUFFO2dCQUNoRCxNQUFNLENBQ2pCLENBQ1I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUFDLHFCQUFxQixFQUFFLFVBQVUsQ0FBQzthQUN4QyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FDOUM7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUFDLG9CQUFvQixFQUFFLFNBQVMsQ0FBQzthQUN0QyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUFDLElBQUEsc0JBQWMsR0FBRSxDQUFDLENBQ2pDO2FBQ0EsU0FBUyxDQUNOLElBQUksa0JBQU0sQ0FDTiwyQkFBMkIsRUFDM0IsZ0JBQWdCLENBQ25CLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQy9CO2FBQ0EsU0FBUyxDQUNOLElBQUksa0JBQU0sQ0FDTixtQkFBbUIsRUFDbkIsV0FBVyxDQUNkLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQzlCO2FBQ0EsU0FBUyxDQUNOLElBQUksa0JBQU0sQ0FBQyw0QkFBNEIsRUFBRSxjQUFjLENBQUM7YUFDbkQsbUJBQW1CLENBQUMsSUFBSSxDQUFDO2FBQ3pCLE9BQU8sQ0FDSixPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQjtZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUNwQyxDQUNSO2FBQ0EsU0FBUyxDQUNOLElBQUksa0JBQU0sQ0FBQyxtQkFBbUIsRUFBRSxXQUFXLENBQUM7YUFDdkMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO2FBQzFCLE9BQU8sQ0FBQyxpQkFBUSxDQUFDLGlCQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDcEMsT0FBTyxDQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3hELENBQ1I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDRCQUE0QixFQUM1QiwyQkFBMkIsQ0FDOUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDhCQUE4QixFQUM5Qiw0QkFBNEIsQ0FDL0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDhCQUE4QixFQUM5Qiw0QkFBNEIsQ0FDL0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDBCQUEwQixFQUMxQix1QkFBdUIsQ0FDMUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDBCQUEwQixFQUMxQix5QkFBeUIsQ0FDNUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDRCQUE0QixFQUM1QiwwQkFBMEIsQ0FDN0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLDRCQUE0QixFQUM1QiwwQkFBMEIsQ0FDN0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLHdCQUF3QixFQUN4QixxQkFBcUIsQ0FDeEIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUFDLDBCQUEwQixFQUFFLGFBQWEsQ0FBQzthQUNoRCxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUFDLHVCQUFjLENBQUMsdUJBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QyxPQUFPLENBQ0osTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNuQixDQUNKLENBQ1I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLGdDQUFnQyxFQUNoQyxnQkFBZ0IsQ0FDbkIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLHNDQUFzQyxFQUN0QywwRkFBMEYsQ0FDN0YsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQ04sSUFBSSxrQkFBTSxDQUNOLGdEQUFnRCxFQUNoRCw4RkFBOEYsQ0FDakc7YUFDSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7YUFDMUIsT0FBTyxDQUNKLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUN0RCxDQUNSO2FBQ0EsU0FBUyxDQUNOLElBQUksa0JBQU0sQ0FDTiwyQkFBMkIsRUFDM0IsMkZBQTJGLENBQzlGO2FBQ0ksbUJBQW1CLENBQUMsS0FBSyxDQUFDO2FBQzFCLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQ2pELENBQUM7SUFDVixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFxQjtRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixNQUFNLEtBQUssR0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5ELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztTQUM1QztJQUNMLENBQUM7Q0FDSjtBQW5kRCxzREFtZEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tYW5kRXhlY3V0b3IgfSBmcm9tICcuLi9Db21tYW5kRXhlY3V0b3InO1xuaW1wb3J0IHsgZXhpdCB9IGZyb20gJy4uLy4uL2V4aXQnO1xuaW1wb3J0IHtcbiAgICBBdHRyaWJ1dGUsXG4gICAgU3BhbixcbiAgICBTcGFuS2luZCxcbiAgICBTcGFuU3RhdHVzLFxuICAgIFNwYW5TdGF0dXNDb2RlLFxuICAgIFRyYWNlTWV0YWRhdGEsXG59IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICAgIGV4dHJhY3RTcGFuSWRGcm9tVHJhY2VQYXJlbnQsXG4gICAgZXh0cmFjdFRyYWNlSWRGcm9tVHJhY2VQYXJlbnQsXG4gICAgZmxhdHRlbkF0dHJpYnV0ZXMsXG4gICAgZ2VuZXJhdGVTcGFuSWQsXG4gICAgcGFyc2VLZXlWYWx1ZSxcbiAgICB2YWxpZGF0ZVNwYW5JZCxcbiAgICB2YWxpZGF0ZVRyYWNlSWQsXG4gICAgdmFsaWRhdGVUcmFjZVBhcmVudCxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBjcmVhdGVTZXJ2ZXJUcmFjZUV4cG9ydGVyLFxuICAgIGNyZWF0ZVRyYWNlRXhwb3J0ZXIsXG4gICAgRXhwb3J0ZXJPVExQUHJvdG9jb2xzLFxuICAgIFRyYWNlRXhwb3J0ZXIsXG59IGZyb20gJy4uLy4uL2V4cG9ydCc7XG5pbXBvcnQgKiBhcyBsb2dnZXIgZnJvbSAnLi4vLi4vbG9nZ2VyJztcbmltcG9ydCB7IENvbW1hbmRzIH0gZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgUkVTT1VSQ0VfQVRUUklCVVRFUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7IENvbW1hbmQsIE9wdGlvbiwgT3B0aW9uVmFsdWVzIH0gZnJvbSAnY29tbWFuZGVyJztcblxuY29uc3QgTUFOQUdFRF9SRVNPVVJDRV9BVFRSSUJVVEVTOiBzdHJpbmdbXSA9IFtcbiAgICBSRVNPVVJDRV9BVFRSSUJVVEVTLlNFUlZJQ0VfTkFNRSxcbl07XG5cbmV4cG9ydCBjbGFzcyBFeHBvcnRDb21tYW5kRXhlY3V0b3IgaW1wbGVtZW50cyBDb21tYW5kRXhlY3V0b3Ige1xuICAgIHByaXZhdGUgdmVyYm9zZUVuYWJsZWQ6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nO1xuICAgIHByaXZhdGUgZXhwb3J0ZXJPVExQUHJvdG9jb2w6IHN0cmluZztcbiAgICBwcml2YXRlIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJpdmF0ZSB0cmFjZVBhcmVudDogc3RyaW5nO1xuICAgIHByaXZhdGUgdHJhY2VQYXJlbnRQcmludDogYm9vbGVhbjtcbiAgICBwcml2YXRlIHRyYWNlSWQ6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5JZDogc3RyaW5nO1xuICAgIHByaXZhdGUgcGFyZW50U3BhbklkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuTmFtZTogc3RyaW5nO1xuICAgIHByaXZhdGUgc2VydmljZU5hbWU6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5LaW5kOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuU3RhcnRUaW1lTmFub3M6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVNaWNyb3M6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVNaWxsaXM6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5TdGFydFRpbWVTZWNzOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBzcGFuRW5kVGltZU5hbm9zOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBzcGFuRW5kVGltZU1pY3JvczogbnVtYmVyO1xuICAgIHByaXZhdGUgc3BhbkVuZFRpbWVNaWxsaXM6IG51bWJlcjtcbiAgICBwcml2YXRlIHNwYW5FbmRUaW1lU2VjczogbnVtYmVyO1xuICAgIHByaXZhdGUgc3BhblN0YXR1c0NvZGU6IHN0cmluZztcbiAgICBwcml2YXRlIHNwYW5TdGF0dXNNZXNzYWdlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBzcGFuQXR0cmlidXRlczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgICBwcml2YXRlIHJlc291cmNlQXR0cmlidXRlczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgICBwcml2YXRlIHNlcnZlclBvcnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIHRyYWNlTWV0YWRhdGE6IFRyYWNlTWV0YWRhdGE7XG5cbiAgICBwcml2YXRlIF90cnlUb0dldFRyYWNlSWRGcm9tVHJhY2VQYXJlbnQoXG4gICAgICAgIHRyYWNlUGFyZW50OiBzdHJpbmdcbiAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodHJhY2VQYXJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBleHRyYWN0VHJhY2VJZEZyb21UcmFjZVBhcmVudCh0cmFjZVBhcmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF90cnlUb0dldFBhcmVudFNwYW5JZEZyb21UcmFjZVBhcmVudChcbiAgICAgICAgdHJhY2VQYXJlbnQ6IHN0cmluZ1xuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0cmFjZVBhcmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGV4dHJhY3RTcGFuSWRGcm9tVHJhY2VQYXJlbnQodHJhY2VQYXJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbm9ybWFsaXplUmVzb3VyY2VBdHRyaWJ1dGVzKFxuICAgICAgICByZXNvdXJjZUF0dHJpYnV0ZXM6IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgICApOiBNYXA8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICAgICAgTUFOQUdFRF9SRVNPVVJDRV9BVFRSSUJVVEVTLmZvckVhY2goKGE6IHN0cmluZykgPT5cbiAgICAgICAgICAgIHJlc291cmNlQXR0cmlidXRlcy5kZWxldGUoYSlcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHJlc291cmNlQXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wYXJzZU9wdGlvbnMob3B0aW9uczogT3B0aW9uVmFsdWVzKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmVyYm9zZUVuYWJsZWQgPSBvcHRpb25zLnZlcmJvc2U7XG4gICAgICAgIGxvZ2dlci5zZXREZWJ1Z0VuYWJsZWQodGhpcy52ZXJib3NlRW5hYmxlZCk7XG5cbiAgICAgICAgdGhpcy5leHBvcnRlck9UTFBFbmRwb2ludCA9IG9wdGlvbnMuZW5kcG9pbnQ7XG4gICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQUHJvdG9jb2wgPSBvcHRpb25zLnByb3RvY29sO1xuICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUEhlYWRlcnMgPSBwYXJzZUtleVZhbHVlKG9wdGlvbnMuaGVhZGVycyk7XG5cbiAgICAgICAgdGhpcy50cmFjZVBhcmVudCA9ICFvcHRpb25zLnRyYWNlcGFyZW50RGlzYWJsZVxuICAgICAgICAgICAgPyBvcHRpb25zLnRyYWNlcGFyZW50IHx8IHByb2Nlc3MuZW52LlRSQUNFUEFSRU5UXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy50cmFjZVBhcmVudFByaW50ID0gb3B0aW9ucy50cmFjZXBhcmVudFByaW50O1xuICAgICAgICB0aGlzLnRyYWNlSWQgPVxuICAgICAgICAgICAgb3B0aW9ucy50cmFjZUlkIHx8XG4gICAgICAgICAgICB0aGlzLl90cnlUb0dldFRyYWNlSWRGcm9tVHJhY2VQYXJlbnQodGhpcy50cmFjZVBhcmVudCk7XG4gICAgICAgIHRoaXMuc3BhbklkID0gb3B0aW9ucy5zcGFuSWQ7XG4gICAgICAgIHRoaXMucGFyZW50U3BhbklkID1cbiAgICAgICAgICAgIG9wdGlvbnMucGFyZW50U3BhbklkIHx8XG4gICAgICAgICAgICB0aGlzLl90cnlUb0dldFBhcmVudFNwYW5JZEZyb21UcmFjZVBhcmVudCh0aGlzLnRyYWNlUGFyZW50KTtcbiAgICAgICAgdGhpcy5zcGFuTmFtZSA9IG9wdGlvbnMubmFtZTtcbiAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZSA9IG9wdGlvbnMuc2VydmljZU5hbWU7XG4gICAgICAgIHRoaXMuc3BhbktpbmQgPSBvcHRpb25zLmtpbmQ7XG4gICAgICAgIHRoaXMuc3BhblN0YXJ0VGltZU5hbm9zID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVOYW5vcyk7XG4gICAgICAgIHRoaXMuc3BhblN0YXJ0VGltZU1pY3JvcyA9IHBhcnNlSW50KG9wdGlvbnMuc3RhcnRUaW1lTWljcm9zKTtcbiAgICAgICAgdGhpcy5zcGFuU3RhcnRUaW1lTWlsbGlzID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVNaWxsaXMpO1xuICAgICAgICB0aGlzLnNwYW5TdGFydFRpbWVTZWNzID0gcGFyc2VJbnQob3B0aW9ucy5zdGFydFRpbWVTZWNzKTtcbiAgICAgICAgdGhpcy5zcGFuRW5kVGltZU5hbm9zID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lTmFub3MpO1xuICAgICAgICB0aGlzLnNwYW5FbmRUaW1lTWljcm9zID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lTWljcm9zKTtcbiAgICAgICAgdGhpcy5zcGFuRW5kVGltZU1pbGxpcyA9IHBhcnNlSW50KG9wdGlvbnMuZW5kVGltZU1pbGxpcyk7XG4gICAgICAgIHRoaXMuc3BhbkVuZFRpbWVTZWNzID0gcGFyc2VJbnQob3B0aW9ucy5lbmRUaW1lU2Vjcyk7XG4gICAgICAgIHRoaXMuc3BhblN0YXR1c0NvZGUgPSBvcHRpb25zLnN0YXR1c0NvZGU7XG4gICAgICAgIHRoaXMuc3BhblN0YXR1c01lc3NhZ2UgPSBvcHRpb25zLnN0YXR1c01lc3NhZ2U7XG4gICAgICAgIHRoaXMuc3BhbkF0dHJpYnV0ZXMgPSBwYXJzZUtleVZhbHVlKG9wdGlvbnMuYXR0cmlidXRlcyk7XG4gICAgICAgIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzID0gdGhpcy5fbm9ybWFsaXplUmVzb3VyY2VBdHRyaWJ1dGVzKFxuICAgICAgICAgICAgcGFyc2VLZXlWYWx1ZShvcHRpb25zLnJlc291cmNlQXR0cmlidXRlcylcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXJ2ZXJQb3J0ID0gcGFyc2VJbnQob3B0aW9ucy5zZXJ2ZXJQb3J0KTtcblxuICAgICAgICB0aGlzLnRyYWNlTWV0YWRhdGEgPSB7XG4gICAgICAgICAgICBzZXJ2aWNlTmFtZTogdGhpcy5zZXJ2aWNlTmFtZSxcbiAgICAgICAgICAgIHJlc291cmNlQXR0cmlidXRlczogZmxhdHRlbkF0dHJpYnV0ZXModGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMpLFxuICAgICAgICB9IGFzIFRyYWNlTWV0YWRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY2hlY2tPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50cmFjZVBhcmVudCAmJiAhdmFsaWRhdGVUcmFjZVBhcmVudCh0aGlzLnRyYWNlUGFyZW50KSkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBJbnZhbGlkIHRyYWNlIHBhcmVudDogJHt0aGlzLnRyYWNlUGFyZW50fSFgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnRyYWNlSWQpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgVHJhY2UgaWQgaXMgbm90IHNwZWNpZmllZDogJHt0aGlzLnRyYWNlSWR9IWApO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkYXRlVHJhY2VJZCh0aGlzLnRyYWNlSWQpKSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEludmFsaWQgdHJhY2UgaWQ6ICR7dGhpcy50cmFjZUlkfSFgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZGF0ZVNwYW5JZCh0aGlzLnNwYW5JZCkpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgSW52YWxpZCBzcGFuIGlkOiAke3RoaXMuc3BhbklkfSFgKTtcbiAgICAgICAgICAgIGV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucGFyZW50U3BhbklkICYmICF2YWxpZGF0ZVNwYW5JZCh0aGlzLnBhcmVudFNwYW5JZCkpIHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgSW52YWxpZCBwYXJlbnQgc3BhbiBpZDogJHt0aGlzLnBhcmVudFNwYW5JZH0hYCk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLnNwYW5TdGFydFRpbWVOYW5vcyAmJlxuICAgICAgICAgICAgIXRoaXMuc3BhbkVuZFRpbWVNaWNyb3MgJiZcbiAgICAgICAgICAgICF0aGlzLnNwYW5TdGFydFRpbWVNaWxsaXMgJiZcbiAgICAgICAgICAgICF0aGlzLnNwYW5TdGFydFRpbWVTZWNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICdTcGFuIHN0YXJ0IHRpbWUgbXVzdCBiZSBzcGVjaWZpZWQgaW4gb25lIG9mIHRoZSBzdXBwb3J0ZWQgZm9ybWF0cyAnICtcbiAgICAgICAgICAgICAgICAgICAgJyhuYW5vc2Vjb25kcywgbWljcm9zZWNvbmRzLCBtaWxsaXNlY29uZHMsIG9yIHNlY29uZHMpISdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBleGl0KDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLnNwYW5FbmRUaW1lTmFub3MgJiZcbiAgICAgICAgICAgICF0aGlzLnNwYW5FbmRUaW1lTWljcm9zICYmXG4gICAgICAgICAgICAhdGhpcy5zcGFuRW5kVGltZU1pbGxpcyAmJlxuICAgICAgICAgICAgIXRoaXMuc3BhbkVuZFRpbWVTZWNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgICAgICAgICdTcGFuIGVuZCB0aW1lIG11c3QgYmUgc3BlY2lmaWVkIGluIG9uZSBvZiB0aGUgc3VwcG9ydGVkIGZvcm1hdHMgJyArXG4gICAgICAgICAgICAgICAgICAgICcobmFub3NlY29uZHMsIG1pY3Jvc2Vjb25kcywgbWlsbGlzZWNvbmRzLCBvciBzZWNvbmRzKSEnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZXhpdCgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc29sdmVTcGFuU3RhcnRUaW1lTmFub3MoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuc3BhblN0YXJ0VGltZU5hbm9zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuU3RhcnRUaW1lTmFub3M7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zcGFuU3RhcnRUaW1lTWljcm9zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuU3RhcnRUaW1lTWljcm9zICogMTAwMDtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNwYW5TdGFydFRpbWVNaWxsaXMpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwYW5TdGFydFRpbWVNaWxsaXMgKiAxMDAwMDAwO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3BhblN0YXJ0VGltZVNlY3MpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwYW5TdGFydFRpbWVTZWNzICogMTAwMDAwMDAwMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc3BhbiBzdGFydCB0aW1lIGlzIHNwZWNpZmllZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVzb2x2ZVNwYW5FbmRUaW1lTmFub3MoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKHRoaXMuc3BhbkVuZFRpbWVOYW5vcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BhbkVuZFRpbWVOYW5vcztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNwYW5FbmRUaW1lTWljcm9zKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuRW5kVGltZU1pY3JvcyAqIDEwMDA7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zcGFuRW5kVGltZU1pbGxpcykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3BhbkVuZFRpbWVNaWxsaXMgKiAxMDAwMDAwO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3BhbkVuZFRpbWVTZWNzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zcGFuRW5kVGltZVNlY3MgKiAxMDAwMDAwMDAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBzcGFuIGVuZCB0aW1lIGlzIHNwZWNpZmllZCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbm9ybWFsaXplSWQoaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChpZCAmJiBpZC5zdGFydHNXaXRoKCcweCcpKSB7XG4gICAgICAgICAgICBpZCA9IGlkLnN1YnN0cmluZygnMHgnLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVNwYW4oKTogU3BhbiB7XG4gICAgICAgIGNvbnN0IHRyYWNlSWQ6IHN0cmluZyA9IHRoaXMuX25vcm1hbGl6ZUlkKHRoaXMudHJhY2VJZCk7XG4gICAgICAgIGNvbnN0IHNwYW5JZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5fbm9ybWFsaXplSWQodGhpcy5zcGFuSWQpO1xuICAgICAgICBjb25zdCB0cmFjZVN0YXRlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICAgICAgY29uc3QgcGFyZW50U3BhbklkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB0aGlzLl9ub3JtYWxpemVJZChcbiAgICAgICAgICAgIHRoaXMucGFyZW50U3BhbklkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IHRoaXMuc3Bhbk5hbWU7XG4gICAgICAgIGNvbnN0IGtpbmQ6IFNwYW5LaW5kID0gU3BhbktpbmRbdGhpcy5zcGFuS2luZCBhcyBrZXlvZiB0eXBlb2YgU3BhbktpbmRdO1xuICAgICAgICBjb25zdCBzdGFydFRpbWVVbml4TmFubzogbnVtYmVyID0gdGhpcy5fcmVzb2x2ZVNwYW5TdGFydFRpbWVOYW5vcygpO1xuICAgICAgICBjb25zdCBlbmRUaW1lVW5peE5hbm86IG51bWJlciA9IHRoaXMuX3Jlc29sdmVTcGFuRW5kVGltZU5hbm9zKCk7XG4gICAgICAgIGNvbnN0IHN0YXR1c0NvZGU6IFNwYW5TdGF0dXNDb2RlID1cbiAgICAgICAgICAgIFNwYW5TdGF0dXNDb2RlW3RoaXMuc3BhblN0YXR1c0NvZGUgYXMga2V5b2YgdHlwZW9mIFNwYW5TdGF0dXNDb2RlXTtcbiAgICAgICAgY29uc3Qgc3RhdHVzTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gdGhpcy5zcGFuU3RhdHVzTWVzc2FnZTtcbiAgICAgICAgY29uc3Qgc3RhdHVzOiBTcGFuU3RhdHVzID0ge1xuICAgICAgICAgICAgY29kZTogc3RhdHVzQ29kZSB8fCBTcGFuU3RhdHVzQ29kZS5VTlNFVCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHN0YXR1c01lc3NhZ2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGF0dHJpYnV0ZXM6IEF0dHJpYnV0ZVtdID0gZmxhdHRlbkF0dHJpYnV0ZXModGhpcy5zcGFuQXR0cmlidXRlcyk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRyYWNlSWQsXG4gICAgICAgICAgICBzcGFuSWQsXG4gICAgICAgICAgICB0cmFjZVN0YXRlLFxuICAgICAgICAgICAgcGFyZW50U3BhbklkLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICBzdGFydFRpbWVVbml4TmFubyxcbiAgICAgICAgICAgIGVuZFRpbWVVbml4TmFubyxcbiAgICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICBkcm9wcGVkQXR0cmlidXRlc0NvdW50OiAwLFxuICAgICAgICB9IGFzIFNwYW47XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlVHJhY2VFeHBvcnRlcigpOiBUcmFjZUV4cG9ydGVyIHtcbiAgICAgICAgaWYgKHRoaXMuc2VydmVyUG9ydCkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVNlcnZlclRyYWNlRXhwb3J0ZXIodGhpcy5zZXJ2ZXJQb3J0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVUcmFjZUV4cG9ydGVyKFxuICAgICAgICAgICAgICAgIHRoaXMuZXhwb3J0ZXJPVExQUHJvdG9jb2wsXG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRlck9UTFBFbmRwb2ludCxcbiAgICAgICAgICAgICAgICB0aGlzLmV4cG9ydGVyT1RMUEhlYWRlcnNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9leHBvcnRTcGFucyhcbiAgICAgICAgbWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEsXG4gICAgICAgIHNwYW5zOiBTcGFuW11cbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgdHJhY2VFeHBvcnRlcjogVHJhY2VFeHBvcnRlciA9IHRoaXMuX2NyZWF0ZVRyYWNlRXhwb3J0ZXIoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChsb2dnZXIuaXNEZWJ1Z0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgRXhwb3J0aW5nIHNwYW5zOmAsIHNwYW5zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGF3YWl0IHRyYWNlRXhwb3J0ZXIuZXhwb3J0KG1ldGFkYXRhLCBzcGFucyk7XG4gICAgICAgICAgICBsb2dnZXIuZGVidWcoJ0V4cG9ydGVkIHNwYW5zJyk7XG4gICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoJ1VuYWJsZSB0byBleHBvcnQgc3BhbnMnLCBlcnIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVUcmFjZVBhcmVudCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYDAwLSR7dGhpcy50cmFjZUlkfS0ke3RoaXMuc3BhbklkfS0wMWA7XG4gICAgfVxuXG4gICAgY29tbWFuZE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENvbW1hbmRzLkVYUE9SVDtcbiAgICB9XG5cbiAgICBkZWZpbmVPcHRpb25zKGNvbW1hbmQ6IENvbW1hbmQpIHtcbiAgICAgICAgY29tbWFuZFxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctdiwgLS12ZXJib3NlJywgJ0VuYWJsZSB2ZXJib3NlIG1vZGUnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9WRVJCT1NFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVkVSQk9TRS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJ1ZSdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLWUsIC0tZW5kcG9pbnQgPHVybD4nLFxuICAgICAgICAgICAgICAgICAgICAnT1RFTCBFeHBvcnRlciBPVExQIGVuZHBvaW50J1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQocHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0VORFBPSU5UKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLXAsIC0tcHJvdG9jb2wgPHByb3RvY29sPicsXG4gICAgICAgICAgICAgICAgICAgICdPVEVMIEV4cG9ydGVyIE9UTFAgcHJvdG9jb2wnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0VYUE9SVEVSX09UTFBfUFJPVE9DT0wgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBvcnRlck9UTFBQcm90b2NvbHMuSFRUUF9KU09OXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLmNob2ljZXMoT2JqZWN0LnZhbHVlcyhFeHBvcnRlck9UTFBQcm90b2NvbHMpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLWgsIC0taGVhZGVycyA8a2V5LXZhbHVlLXBhaXJzLi4uPicsXG4gICAgICAgICAgICAgICAgICAgICdPVEVMIEV4cG9ydGVyIE9UTFAgaGVhZGVycydcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfRVhQT1JURVJfT1RMUF9IRUFERVJTICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9FWFBPUlRFUl9PVExQX0hFQURFUlMuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctdHAsIC0tdHJhY2VwYXJlbnQgPGhlYWRlcj4nLFxuICAgICAgICAgICAgICAgICAgICAnVHJhY2VwYXJlbnQgaGVhZGVyIGluIFczQyB0cmFjZSBjb250ZXh0IGZvcm1hdCdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChwcm9jZXNzLmVudi5UUkFDRVBBUkVOVClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy10cGQsIC0tdHJhY2VwYXJlbnQtZGlzYWJsZScsXG4gICAgICAgICAgICAgICAgICAgICdEaXNhYmxlIHRyYWNlcGFyZW50IGhlYWRlciBiYXNlZCBXM0MgdHJhY2UgY29udGV4dCBwcm9wYWdhdGlvbiBmb3IgdGhlIGV4cG9ydGVkIHNwYW4nXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5PVEVMX0NMSV9UUkFDRVBBUkVOVF9ESVNBQkxFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVFJBQ0VQQVJFTlRfRElTQUJMRS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHJ1ZSdcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLXRwcCwgLS10cmFjZXBhcmVudC1wcmludCcsXG4gICAgICAgICAgICAgICAgICAgICdQcmludCB0cmFjZXBhcmVudCBoZWFkZXIgaW4gVzNDIHRyYWNlIGNvbnRleHQgZm9ybWF0IGZvciB0aGUgZXhwb3J0ZWQgc3BhbidcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfQ0xJX1RSQUNFUEFSRU5UX1BSSU5UICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9DTElfVFJBQ0VQQVJFTlRfUFJJTlQudG9Mb3dlckNhc2UoKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXQsIC0tdHJhY2UtaWQgPGlkPicsICdUcmFjZSBpZCcpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChwcm9jZXNzLmVudi5PVEVMX0NMSV9UUkFDRV9JRClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLXMsIC0tc3Bhbi1pZCA8aWQ+JywgJ1NwYW4gaWQnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgLmRlZmF1bHQoZ2VuZXJhdGVTcGFuSWQoKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy1wLCAtLXBhcmVudC1zcGFuLWlkIDxpZD4nLFxuICAgICAgICAgICAgICAgICAgICAnUGFyZW50IHNwYW4gaWQnXG4gICAgICAgICAgICAgICAgKS5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLW4sIC0tbmFtZSA8bmFtZT4nLFxuICAgICAgICAgICAgICAgICAgICAnU3BhbiBuYW1lJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeSh0cnVlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKCctc24sIC0tc2VydmljZS1uYW1lIDxuYW1lPicsICdTZXJ2aWNlIG5hbWUnKVxuICAgICAgICAgICAgICAgICAgICAubWFrZU9wdGlvbk1hbmRhdG9yeSh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfQ0xJX1NFUlZJQ0VfTkFNRSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk9URUxfU0VSVklDRV9OQU1FXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbignLWssIC0ta2luZCA8a2luZD4nLCAnU3BhbiBraW5kJylcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KFNwYW5LaW5kW1NwYW5LaW5kLklOVEVSTkFMXSlcbiAgICAgICAgICAgICAgICAgICAgLmNob2ljZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhTcGFuS2luZCkuZmlsdGVyKChvKSA9PiBpc05hTihOdW1iZXIobykpKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctLXN0YXJ0LXRpbWUtbmFub3MgPG5hbm9zPicsXG4gICAgICAgICAgICAgICAgICAgICdTdGFydCB0aW1lIGluIG5hbm9zZWNvbmRzJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy0tc3RhcnQtdGltZS1taWNyb3MgPG1pY3Jvcz4nLFxuICAgICAgICAgICAgICAgICAgICAnU3RhcnQgdGltZSBpbiBtaWNyb3NlY29uZHMnXG4gICAgICAgICAgICAgICAgKS5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLS1zdGFydC10aW1lLW1pbGxpcyA8bWlsbGlzPicsXG4gICAgICAgICAgICAgICAgICAgICdTdGFydCB0aW1lIGluIG1pbGxpc2Vjb25kcydcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctLXN0YXJ0LXRpbWUtc2VjcyA8c2Vjcz4nLFxuICAgICAgICAgICAgICAgICAgICAnU3RhcnQgdGltZSBpbiBzZWNvbmRzJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy0tZW5kLXRpbWUtbmFub3MgPG5hbm9zPicsXG4gICAgICAgICAgICAgICAgICAgICdFbmQgdGltZSBpbiBuYW5vc2Vjb25kcydcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctLWVuZC10aW1lLW1pY3JvcyA8bWljcm9zPicsXG4gICAgICAgICAgICAgICAgICAgICdFbmQgdGltZSBpbiBtaWNyb3NlY29uZHMnXG4gICAgICAgICAgICAgICAgKS5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLS1lbmQtdGltZS1taWxsaXMgPG1pbGxpcz4nLFxuICAgICAgICAgICAgICAgICAgICAnRW5kIHRpbWUgaW4gbWlsbGlzZWNvbmRzJ1xuICAgICAgICAgICAgICAgICkubWFrZU9wdGlvbk1hbmRhdG9yeShmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy0tZW5kLXRpbWUtc2VjcyA8c2Vjcz4nLFxuICAgICAgICAgICAgICAgICAgICAnRW5kIHRpbWUgaW4gc2Vjb25kcydcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oJy1zYyAtLXN0YXR1cy1jb2RlIDxjb2RlPicsICdTdGF0dXMgY29kZScpXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChTcGFuU3RhdHVzQ29kZVtTcGFuU3RhdHVzQ29kZS5VTlNFVF0pXG4gICAgICAgICAgICAgICAgICAgIC5jaG9pY2VzKFxuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoU3BhblN0YXR1c0NvZGUpLmZpbHRlcigobykgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc05hTihOdW1iZXIobykpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZGRPcHRpb24oXG4gICAgICAgICAgICAgICAgbmV3IE9wdGlvbihcbiAgICAgICAgICAgICAgICAgICAgJy1zbSAtLXN0YXR1cy1tZXNzYWdlIDxtZXNzYWdlPicsXG4gICAgICAgICAgICAgICAgICAgICdTdGF0dXMgbWVzc2FnZSdcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctYSAtLWF0dHJpYnV0ZXMgPGtleS12YWx1ZS1wYWlycy4uLj4nLFxuICAgICAgICAgICAgICAgICAgICAnU3BhbiBhdHRyaWJ1dGVzIGFzIHNwYWNlIHNlcGVyYXRlZCBrZXktdmFsdWUgcGFpcnMgKGtleTE9dmFsdWUxIGtleTI9dmFsdWUyIGtleTM9dmFsdWUzKSdcbiAgICAgICAgICAgICAgICApLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWRkT3B0aW9uKFxuICAgICAgICAgICAgICAgIG5ldyBPcHRpb24oXG4gICAgICAgICAgICAgICAgICAgICctcmEgLS1yZXNvdXJjZS1hdHRyaWJ1dGVzIDxrZXktdmFsdWUtcGFpcnMuLi4+JyxcbiAgICAgICAgICAgICAgICAgICAgJ1Jlc291cmNlIGF0dHJpYnV0ZXMgYXMgc3BhY2Ugc2VwZXJhdGVkIGtleS12YWx1ZSBwYWlycyAoa2V5MT12YWx1ZTEga2V5Mj12YWx1ZTIga2V5Mz12YWx1ZTMpJ1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgLm1ha2VPcHRpb25NYW5kYXRvcnkoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIC5kZWZhdWx0KFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9SRVNPVVJDRV9BVFRSSUJVVEVTICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuT1RFTF9SRVNPVVJDRV9BVFRSSUJVVEVTLnNwbGl0KCcsJylcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFkZE9wdGlvbihcbiAgICAgICAgICAgICAgICBuZXcgT3B0aW9uKFxuICAgICAgICAgICAgICAgICAgICAnLXNwLCAtLXNlcnZlci1wb3J0IDxwb3J0PicsXG4gICAgICAgICAgICAgICAgICAgICdPVEVMIENMSSBzZXJ2ZXIgcG9ydCBmb3IgY29tbXVuaWNhdGluZyBvdmVyIHRvIGV4cG9ydCB0cmFjZXMgYXN5bmNocm9ub3VzbHkgaW4gYmFja2dyb3VuZCdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIC5tYWtlT3B0aW9uTWFuZGF0b3J5KGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAuZGVmYXVsdChwcm9jZXNzLmVudi5PVEVMX0NMSV9TRVJWRVJfUE9SVClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgYXN5bmMgZXhlY3V0ZShvcHRpb25zOiBPcHRpb25WYWx1ZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fcGFyc2VPcHRpb25zKG9wdGlvbnMpO1xuXG4gICAgICAgIHRoaXMuX2NoZWNrT3B0aW9ucygpO1xuXG4gICAgICAgIGNvbnN0IHNwYW5zOiBTcGFuW10gPSBbdGhpcy5fY3JlYXRlU3BhbigpXTtcbiAgICAgICAgYXdhaXQgdGhpcy5fZXhwb3J0U3BhbnModGhpcy50cmFjZU1ldGFkYXRhLCBzcGFucyk7XG5cbiAgICAgICAgaWYgKHRoaXMudHJhY2VQYXJlbnRQcmludCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2codGhpcy5fZ2VuZXJhdGVUcmFjZVBhcmVudCgpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==

@@ -0,3 +1,5 @@

import { Attribute } from './Attribute';
export type TraceMetadata = {
serviceName: string;
resourceAttributes: Attribute[];
};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhY2VNZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb21haW4vVHJhY2VNZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVHJhY2VNZXRhZGF0YSA9IHtcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhY2VNZXRhZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb21haW4vVHJhY2VNZXRhZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlIH0gZnJvbSAnLi9BdHRyaWJ1dGUnO1xuXG5leHBvcnQgdHlwZSBUcmFjZU1ldGFkYXRhID0ge1xuICAgIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gICAgcmVzb3VyY2VBdHRyaWJ1dGVzOiBBdHRyaWJ1dGVbXTtcbn07XG4iXX0=

@@ -91,2 +91,3 @@ "use strict";

[constants_1.RESOURCE_ATTRIBUTES.SERVICE_NAME]: metadata.serviceName,
...this._toAttributes(metadata.resourceAttributes || []),
},

@@ -127,2 +128,2 @@ },

exports.GrpcTraceExporter = GrpcTraceExporter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY1RyYWNlRXhwb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXhwb3J0L2dycGMvR3JwY1RyYWNlRXhwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0NBS3lCO0FBRXpCLDhDQUFxRTtBQUNyRSw0Q0FNNEI7QUFFNUIsc0ZBQTRFO0FBQzVFLDJDQUF5QztBQUV6QyxNQUFhLGlCQUFpQjtJQUkxQixZQUNJLG9CQUE0QixFQUM1QixtQkFBd0M7UUFFeEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksNENBQWlCLENBQUM7WUFDbEMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztTQUN6RCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sa0JBQWtCLENBQ3RCLG1CQUF3QztRQUV4QyxNQUFNLFFBQVEsR0FBYSxJQUFJLGtCQUFRLEVBQUUsQ0FBQztRQUMxQyxJQUFJLG1CQUFtQixFQUFFO1lBQ3JCLEtBQUssTUFBTSxLQUFLLElBQUksbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sVUFBVSxHQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxXQUFXLEdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQzthQUN6QztTQUNKO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQWE7UUFDdEMsZ0RBQWdEO1FBQ2hELGdEQUFnRDtRQUNoRCxNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFLLENBQUMsQ0FBQztRQUNqRCxNQUFNLGNBQWMsR0FBVyxNQUFNLEdBQUcsT0FBUyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE9BQVMsQ0FBQyxDQUFDO1FBQ3ZELE9BQU87WUFDSCxPQUFPO1lBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ2xFLENBQUM7SUFDTixDQUFDO0lBRU8sd0JBQXdCLENBQUMsTUFBYyxFQUFFLE1BQWM7UUFDM0QsZ0RBQWdEO1FBQ2hELGdEQUFnRDtRQUNoRCxNQUFNLE9BQU8sR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLE9BQU8sR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLFVBQVUsR0FBVyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzdDLE1BQU0sU0FBUyxHQUFXLFVBQVUsR0FBRyxJQUFLLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLGFBQWEsQ0FBQyxhQUEwQjtRQUM1QyxNQUFNLFVBQVUsR0FBZSxFQUFFLENBQUM7UUFDbEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxhQUFhLEVBQUU7WUFDbkMsSUFBSSxZQUF3QyxDQUFDO1lBQzdDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFO2dCQUNyQyxZQUFZLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7YUFDOUM7aUJBQU0sSUFBSSxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JBQ3pDLFlBQVksR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQzthQUMzQztpQkFBTSxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRTtnQkFDNUMsWUFBWSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2FBQzlDO2lCQUFNLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFO2dCQUMxQyxZQUFZLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7YUFDNUM7WUFDRCxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQztTQUM1QztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxvQkFBb0IsQ0FDeEIsUUFBdUIsRUFDdkIsS0FBYTtRQUViLE1BQU0sYUFBYSxHQUFtQixFQUFFLENBQUM7UUFDekMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7WUFDdEIsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLGNBQVEsQ0FDVixjQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQTBCLENBQzdEO2dCQUNELFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtnQkFDL0IsV0FBVyxFQUFFLEdBQUcsRUFBRTtvQkFDZCxPQUFPO3dCQUNILE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzt3QkFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO3dCQUNuQixVQUFVLEVBQUUsOEJBQWtCO3FCQUNqQyxDQUFDO2dCQUNOLENBQUM7Z0JBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7Z0JBQzVELE9BQU8sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDeEQsUUFBUSxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FDbkMsSUFBSSxDQUFDLGVBQWUsRUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUN6QjtnQkFDRCxLQUFLLEVBQUUsSUFBSTtnQkFDWCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQy9DLFFBQVEsRUFBRTtvQkFDTixVQUFVLEVBQUU7d0JBQ1IsQ0FBQywrQkFBbUIsQ0FBQyxZQUFZLENBQUMsRUFDOUIsUUFBUSxDQUFDLFdBQVc7cUJBQzNCO2lCQUNKO2dCQUNELHNCQUFzQixFQUFFO29CQUNwQixJQUFJLEVBQUUseUJBQWE7b0JBQ25CLE9BQU8sRUFBRSw0QkFBZ0I7aUJBQzVCO2dCQUNELE1BQU0sRUFBRSxFQUFrQjtnQkFDMUIsS0FBSyxFQUFFLEVBQVk7Z0JBQ25CLHNCQUFzQixFQUFFLENBQUM7Z0JBQ3pCLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3JCLGlCQUFpQixFQUFFLENBQUM7YUFDUCxDQUFDLENBQUM7U0FDdEI7UUFDRCxPQUFPLGFBQWEsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUF1QixFQUFFLEtBQWE7UUFDL0MsTUFBTSxhQUFhLEdBQW1CLElBQUksQ0FBQyxvQkFBb0IsQ0FDM0QsUUFBUSxFQUNSLEtBQUssQ0FDUixDQUFDO1FBQ0YsT0FBTyxJQUFJLE9BQU8sQ0FDZCxDQUFDLEdBQTJCLEVBQUUsR0FBMEIsRUFBUSxFQUFFO1lBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQW9CLEVBQUUsRUFBRTtnQkFDekQsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO29CQUNkLEdBQUcsQ0FDQyxJQUFJLEtBQUssQ0FDTCwwQkFBMEIsTUFBTSxDQUFDLEtBQUssaUJBQWlCLE1BQU0sQ0FBQyxJQUFJLHNDQUFzQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQ3JILENBQ0osQ0FBQztpQkFDTDtxQkFBTTtvQkFDSCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssdUJBQWdCLENBQUMsTUFBTSxFQUFFO3dCQUN6QyxHQUFHLENBQ0MsSUFBSSxLQUFLLENBQ0wsZ0NBQWdDLE1BQU0sQ0FBQyxJQUFJLHNDQUFzQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQzlGLENBQ0osQ0FBQztxQkFDTDt5QkFBTTt3QkFDSCxHQUFHLEVBQUUsQ0FBQztxQkFDVDtpQkFDSjtZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0NBQ0o7QUFsSkQsOENBa0pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhY2VFeHBvcnRlciB9IGZyb20gJy4uL1RyYWNlRXhwb3J0ZXInO1xuaW1wb3J0IHsgQXR0cmlidXRlLCBTcGFuLCBUcmFjZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gICAgT1RFTF9DTElfTkFNRSxcbiAgICBPVEVMX0NMSV9WRVJTSU9OLFxuICAgIFJFU09VUkNFX0FUVFJJQlVURVMsXG4gICAgU0FNUExFRF9UUkFDRV9GTEFHLFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgeyBFeHBvcnRSZXN1bHQsIEV4cG9ydFJlc3VsdENvZGUgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9jb3JlJztcbmltcG9ydCB7XG4gICAgQXR0cmlidXRlcyxcbiAgICBBdHRyaWJ1dGVWYWx1ZSxcbiAgICBMaW5rLFxuICAgIEhyVGltZSxcbiAgICBTcGFuS2luZCxcbn0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvYXBpJztcbmltcG9ydCB7IFJlYWRhYmxlU3BhbiwgVGltZWRFdmVudCB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L3Nkay10cmFjZS1iYXNlJztcbmltcG9ydCB7IE9UTFBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvZXhwb3J0ZXItdHJhY2Utb3RscC1ncnBjJztcbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSAnQGdycGMvZ3JwYy1qcyc7XG5cbmV4cG9ydCBjbGFzcyBHcnBjVHJhY2VFeHBvcnRlciBpbXBsZW1lbnRzIFRyYWNlRXhwb3J0ZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleHBvcnRlcjogT1RMUFRyYWNlRXhwb3J0ZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZXhwb3J0ZXJPVExQRW5kcG9pbnQ6IHN0cmluZyxcbiAgICAgICAgZXhwb3J0ZXJPVExQSGVhZGVyczogTWFwPHN0cmluZywgc3RyaW5nPlxuICAgICkge1xuICAgICAgICB0aGlzLnVybCA9IGV4cG9ydGVyT1RMUEVuZHBvaW50O1xuICAgICAgICB0aGlzLmV4cG9ydGVyID0gbmV3IE9UTFBUcmFjZUV4cG9ydGVyKHtcbiAgICAgICAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICAgICAgICBtZXRhZGF0YTogdGhpcy5faGVhZGVyc1RvTWV0YWRhdGEoZXhwb3J0ZXJPVExQSGVhZGVycyksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hlYWRlcnNUb01ldGFkYXRhKFxuICAgICAgICBleHBvcnRlck9UTFBIZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gICAgKTogTWV0YWRhdGEge1xuICAgICAgICBjb25zdCBtZXRhZGF0YTogTWV0YWRhdGEgPSBuZXcgTWV0YWRhdGEoKTtcbiAgICAgICAgaWYgKGV4cG9ydGVyT1RMUEhlYWRlcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZXhwb3J0ZXJPVExQSGVhZGVycy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJOYW1lOiBzdHJpbmcgPSBlbnRyeVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJWYWx1ZTogc3RyaW5nID0gZW50cnlbMV07XG4gICAgICAgICAgICAgICAgbWV0YWRhdGEuc2V0KGhlYWRlck5hbWUsIGhlYWRlclZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWV0YWRhdGE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmFub3NlY29uZHNUb0hyVGltZShuYW5vczogbnVtYmVyKTogSHJUaW1lIHtcbiAgICAgICAgLy8gU2luY2Ugd2UgbG9zdCBwcmVjaXNpb24gYXQgbmFub3NlY29uZHMgbGV2ZWwsXG4gICAgICAgIC8vIHdlIGNvbnZlcnQgbmFub3NlY29uZHMgdG8gbWlsbGlzZWNvbmRzIGZpcnN0LlxuICAgICAgICBjb25zdCBtaWNyb3M6IG51bWJlciA9IE1hdGguZmxvb3IobmFub3MgLyAxXzAwMCk7XG4gICAgICAgIGNvbnN0IHNlY29uZHNEZWNpbWFsOiBudW1iZXIgPSBtaWNyb3MgLyAxXzAwMF8wMDA7XG4gICAgICAgIGNvbnN0IHNlY29uZHM6IG51bWJlciA9IE1hdGguZmxvb3IobWljcm9zIC8gMV8wMDBfMDAwKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHNlY29uZHMsXG4gICAgICAgICAgICBNYXRoLmZsb29yKE51bWJlcigoc2Vjb25kc0RlY2ltYWwgLSBzZWNvbmRzKS50b0ZpeGVkKDYpKSAqIDFlOSksXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmFub3NlY29uZHNEaWZmVG9IclRpbWUobmFub3MxOiBudW1iZXIsIG5hbm9zMjogbnVtYmVyKTogSHJUaW1lIHtcbiAgICAgICAgLy8gU2luY2Ugd2UgbG9zdCBwcmVjaXNpb24gYXQgbmFub3NlY29uZHMgbGV2ZWwsXG4gICAgICAgIC8vIHdlIGNvbnZlcnQgbmFub3NlY29uZHMgdG8gbWlsbGlzZWNvbmRzIGZpcnN0LlxuICAgICAgICBjb25zdCBtaWNyb3MxOiBudW1iZXIgPSBNYXRoLmZsb29yKG5hbm9zMSAvIDFfMDAwKTtcbiAgICAgICAgY29uc3QgbWljcm9zMjogbnVtYmVyID0gTWF0aC5mbG9vcihuYW5vczIgLyAxXzAwMCk7XG4gICAgICAgIGNvbnN0IGRpZmZNaWNyb3M6IG51bWJlciA9IG1pY3JvczEgLSBtaWNyb3MyO1xuICAgICAgICBjb25zdCBkaWZmTmFub3M6IG51bWJlciA9IGRpZmZNaWNyb3MgKiAxXzAwMDtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hbm9zZWNvbmRzVG9IclRpbWUoZGlmZk5hbm9zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF90b0F0dHJpYnV0ZXMoYXR0cmlidXRlTGlzdDogQXR0cmlidXRlW10pOiBBdHRyaWJ1dGVzIHtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlczogQXR0cmlidXRlcyA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVMaXN0KSB7XG4gICAgICAgICAgICBsZXQgYXR0cmlidXRlVmFsOiBBdHRyaWJ1dGVWYWx1ZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmIChhdHRyaWJ1dGUudmFsdWUuc3RyaW5nVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbCA9IGF0dHJpYnV0ZS52YWx1ZS5zdHJpbmdWYWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlLnZhbHVlLmludFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWwgPSBhdHRyaWJ1dGUudmFsdWUuaW50VmFsdWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZS52YWx1ZS5kb3VibGVWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsID0gYXR0cmlidXRlLnZhbHVlLmRvdWJsZVZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUudmFsdWUuYm9vbFZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWwgPSBhdHRyaWJ1dGUudmFsdWUuYm9vbFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXR0cmlidXRlc1thdHRyaWJ1dGUua2V5XSA9IGF0dHJpYnV0ZVZhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXR0cmlidXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVSZWFkYWJsZVNwYW5zKFxuICAgICAgICBtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSxcbiAgICAgICAgc3BhbnM6IFNwYW5bXVxuICAgICk6IFJlYWRhYmxlU3BhbltdIHtcbiAgICAgICAgY29uc3QgcmVhZGFibGVTcGFuczogUmVhZGFibGVTcGFuW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBzcGFuIG9mIHNwYW5zKSB7XG4gICAgICAgICAgICByZWFkYWJsZVNwYW5zLnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6IHNwYW4ubmFtZSxcbiAgICAgICAgICAgICAgICBraW5kOiBTcGFuS2luZFtcbiAgICAgICAgICAgICAgICAgICAgU3BhbktpbmRbc3Bhbi5raW5kLnZhbHVlT2YoKSAtIDFdIGFzIGtleW9mIHR5cGVvZiBTcGFuS2luZFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgcGFyZW50U3BhbklkOiBzcGFuLnBhcmVudFNwYW5JZCxcbiAgICAgICAgICAgICAgICBzcGFuQ29udGV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2VJZDogc3Bhbi50cmFjZUlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbklkOiBzcGFuLnNwYW5JZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlRmxhZ3M6IFNBTVBMRURfVFJBQ0VfRkxBRyxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogdGhpcy5fbmFub3NlY29uZHNUb0hyVGltZShzcGFuLnN0YXJ0VGltZVVuaXhOYW5vKSxcbiAgICAgICAgICAgICAgICBlbmRUaW1lOiB0aGlzLl9uYW5vc2Vjb25kc1RvSHJUaW1lKHNwYW4uZW5kVGltZVVuaXhOYW5vKSxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogdGhpcy5fbmFub3NlY29uZHNEaWZmVG9IclRpbWUoXG4gICAgICAgICAgICAgICAgICAgIHNwYW4uZW5kVGltZVVuaXhOYW5vLFxuICAgICAgICAgICAgICAgICAgICBzcGFuLnN0YXJ0VGltZVVuaXhOYW5vXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBlbmRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdGF0dXM6IHNwYW4uc3RhdHVzLFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuX3RvQXR0cmlidXRlcyhzcGFuLmF0dHJpYnV0ZXMpLFxuICAgICAgICAgICAgICAgIHJlc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtSRVNPVVJDRV9BVFRSSUJVVEVTLlNFUlZJQ0VfTkFNRV06XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuc2VydmljZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpbnN0cnVtZW50YXRpb25MaWJyYXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IE9URUxfQ0xJX05BTUUsXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb246IE9URUxfQ0xJX1ZFUlNJT04sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBldmVudHM6IFtdIGFzIFRpbWVkRXZlbnRbXSxcbiAgICAgICAgICAgICAgICBsaW5rczogW10gYXMgTGlua1tdLFxuICAgICAgICAgICAgICAgIGRyb3BwZWRBdHRyaWJ1dGVzQ291bnQ6IDAsXG4gICAgICAgICAgICAgICAgZHJvcHBlZEV2ZW50c0NvdW50OiAwLFxuICAgICAgICAgICAgICAgIGRyb3BwZWRMaW5rc0NvdW50OiAwLFxuICAgICAgICAgICAgfSBhcyBSZWFkYWJsZVNwYW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWFkYWJsZVNwYW5zO1xuICAgIH1cblxuICAgIGFzeW5jIGV4cG9ydChtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSwgc3BhbnM6IFNwYW5bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCByZWFkYWJsZVNwYW5zOiBSZWFkYWJsZVNwYW5bXSA9IHRoaXMuX2NyZWF0ZVJlYWRhYmxlU3BhbnMoXG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICAgIHNwYW5zXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShcbiAgICAgICAgICAgIChyZXM6IChyZXN1bHQ6IHZvaWQpID0+IHZvaWQsIHJlajogKHJlYXNvbjogYW55KSA9PiB2b2lkKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRlci5leHBvcnQocmVhZGFibGVTcGFucywgKHJlc3VsdDogRXhwb3J0UmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlaihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBGYWlsZWQgcmVzcG9uc2UgKGVycm9yPSR7cmVzdWx0LmVycm9yfSwgc3RhdHVzIGNvZGU9JHtyZXN1bHQuY29kZX0pIGZyb20gZXhwb3J0ZXIgT1RMUCBHUlBDIGVuZHBvaW50ICR7dGhpcy51cmx9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmNvZGUgPT09IEV4cG9ydFJlc3VsdENvZGUuRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHJlc3BvbnNlIChzdGF0dXMgY29kZT0ke3Jlc3VsdC5jb2RlfSkgZnJvbSBleHBvcnRlciBPVExQIEdSUEMgZW5kcG9pbnQgJHt0aGlzLnVybH1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JwY1RyYWNlRXhwb3J0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXhwb3J0L2dycGMvR3JwY1RyYWNlRXhwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsK0NBS3lCO0FBRXpCLDhDQUFxRTtBQUNyRSw0Q0FNNEI7QUFFNUIsc0ZBQTRFO0FBQzVFLDJDQUF5QztBQUV6QyxNQUFhLGlCQUFpQjtJQUkxQixZQUNJLG9CQUE0QixFQUM1QixtQkFBd0M7UUFFeEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxvQkFBb0IsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksNENBQWlCLENBQUM7WUFDbEMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztTQUN6RCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sa0JBQWtCLENBQ3RCLG1CQUF3QztRQUV4QyxNQUFNLFFBQVEsR0FBYSxJQUFJLGtCQUFRLEVBQUUsQ0FBQztRQUMxQyxJQUFJLG1CQUFtQixFQUFFO1lBQ3JCLEtBQUssTUFBTSxLQUFLLElBQUksbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sVUFBVSxHQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxXQUFXLEdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQzthQUN6QztTQUNKO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLEtBQWE7UUFDdEMsZ0RBQWdEO1FBQ2hELGdEQUFnRDtRQUNoRCxNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFLLENBQUMsQ0FBQztRQUNqRCxNQUFN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Q0FDckgsQ0FDSixDQUFDO2lCQUNMO3FCQUFNO29CQUNILElBQUksTUFBTSxDQUFDLElBQUksS0FBSyx1QkFBZ0IsQ0FBQyxNQUFNLEVBQUU7d0JBQ3pDLEdBQUcsQ0FDQyxJQUFJLEtBQUssQ0FDTCxnQ0FBZ0MsTUFBTSxDQUFDLElBQUksc0NBQXNDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FDOUYsQ0FDSixDQUFDO3FCQUNMO3lCQUFNO3dCQUNILEdBQUcsRUFBRSxDQUFDO3FCQUNUO2lCQUNKO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSjtBQXJKRCw4Q0FxSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFjZUV4cG9ydGVyIH0gZnJvbSAnLi4vVHJhY2VFeHBvcnRlcic7XG5pbXBvcnQgeyBBdHRyaWJ1dGUsIFNwYW4sIFRyYWNlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHtcbiAgICBPVEVMX0NMSV9OQU1FLFxuICAgIE9URUxfQ0xJX1ZFUlNJT04sXG4gICAgUkVTT1VSQ0VfQVRUUklCVVRFUyxcbiAgICBTQU1QTEVEX1RSQUNFX0ZMQUcsXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7IEV4cG9ydFJlc3VsdCwgRXhwb3J0UmVzdWx0Q29kZSB9IGZyb20gJ0BvcGVudGVsZW1ldHJ5L2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBdHRyaWJ1dGVzLFxuICAgIEF0dHJpYnV0ZVZhbHVlLFxuICAgIExpbmssXG4gICAgSHJUaW1lLFxuICAgIFNwYW5LaW5kLFxufSBmcm9tICdAb3BlbnRlbGVtZXRyeS9hcGknO1xuaW1wb3J0IHsgUmVhZGFibGVTcGFuLCBUaW1lZEV2ZW50IH0gZnJvbSAnQG9wZW50ZWxlbWV0cnkvc2RrLXRyYWNlLWJhc2UnO1xuaW1wb3J0IHsgT1RMUFRyYWNlRXhwb3J0ZXIgfSBmcm9tICdAb3BlbnRlbGVtZXRyeS9leHBvcnRlci10cmFjZS1vdGxwLWdycGMnO1xuaW1wb3J0IHsgTWV0YWRhdGEgfSBmcm9tICdAZ3JwYy9ncnBjLWpzJztcblxuZXhwb3J0IGNsYXNzIEdycGNUcmFjZUV4cG9ydGVyIGltcGxlbWVudHMgVHJhY2VFeHBvcnRlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmw6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4cG9ydGVyOiBPVExQVHJhY2VFeHBvcnRlcjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBleHBvcnRlck9UTFBFbmRwb2ludDogc3RyaW5nLFxuICAgICAgICBleHBvcnRlck9UTFBIZWFkZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gICAgKSB7XG4gICAgICAgIHRoaXMudXJsID0gZXhwb3J0ZXJPVExQRW5kcG9pbnQ7XG4gICAgICAgIHRoaXMuZXhwb3J0ZXIgPSBuZXcgT1RMUFRyYWNlRXhwb3J0ZXIoe1xuICAgICAgICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB0aGlzLl9oZWFkZXJzVG9NZXRhZGF0YShleHBvcnRlck9UTFBIZWFkZXJzKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGVhZGVyc1RvTWV0YWRhdGEoXG4gICAgICAgIGV4cG9ydGVyT1RMUEhlYWRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgICApOiBNZXRhZGF0YSB7XG4gICAgICAgIGNvbnN0IG1ldGFkYXRhOiBNZXRhZGF0YSA9IG5ldyBNZXRhZGF0YSgpO1xuICAgICAgICBpZiAoZXhwb3J0ZXJPVExQSGVhZGVycykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBleHBvcnRlck9UTFBIZWFkZXJzLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlck5hbWU6IHN0cmluZyA9IGVudHJ5WzBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlclZhbHVlOiBzdHJpbmcgPSBlbnRyeVsxXTtcbiAgICAgICAgICAgICAgICBtZXRhZGF0YS5zZXQoaGVhZGVyTmFtZSwgaGVhZGVyVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZXRhZGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9uYW5vc2Vjb25kc1RvSHJUaW1lKG5hbm9zOiBudW1iZXIpOiBIclRpbWUge1xuICAgICAgICAvLyBTaW5jZSB3ZSBsb3N0IHByZWNpc2lvbiBhdCBuYW5vc2Vjb25kcyBsZXZlbCxcbiAgICAgICAgLy8gd2UgY29udmVydCBuYW5vc2Vjb25kcyB0byBtaWxsaXNlY29uZHMgZmlyc3QuXG4gICAgICAgIGNvbnN0IG1pY3JvczogbnVtYmVyID0gTWF0aC5mbG9vcihuYW5vcyAvIDFfMDAwKTtcbiAgICAgICAgY29uc3Qgc2Vjb25kc0RlY2ltYWw6IG51bWJlciA9IG1pY3JvcyAvIDFfMDAwXzAwMDtcbiAgICAgICAgY29uc3Qgc2Vjb25kczogbnVtYmVyID0gTWF0aC5mbG9vcihtaWNyb3MgLyAxXzAwMF8wMDApO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc2Vjb25kcyxcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTnVtYmVyKChzZWNvbmRzRGVjaW1hbCAtIHNlY29uZHMpLnRvRml4ZWQoNikpICogMWU5KSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9uYW5vc2Vjb25kc0RpZmZUb0hyVGltZShuYW5vczE6IG51bWJlciwgbmFub3MyOiBudW1iZXIpOiBIclRpbWUge1xuICAgICAgICAvLyBTaW5jZSB3ZSBsb3N0IHByZWNpc2lvbiBhdCBuYW5vc2Vjb25kcyBsZXZlbCxcbiAgICAgICAgLy8gd2UgY29udmVydCBuYW5vc2Vjb25kcyB0byBtaWxsaXNlY29uZHMgZmlyc3QuXG4gICAgICAgIGNvbnN0IG1pY3JvczE6IG51bWJlciA9IE1hdGguZmxvb3IobmFub3MxIC8gMV8wMDApO1xuICAgICAgICBjb25zdCBtaWNyb3MyOiBudW1iZXIgPSBNYXRoLmZsb29yKG5hbm9zMiAvIDFfMDAwKTtcbiAgICAgICAgY29uc3QgZGlmZk1pY3JvczogbnVtYmVyID0gbWljcm9zMSAtIG1pY3JvczI7XG4gICAgICAgIGNvbnN0IGRpZmZOYW5vczogbnVtYmVyID0gZGlmZk1pY3JvcyAqIDFfMDAwO1xuICAgICAgICByZXR1cm4gdGhpcy5fbmFub3NlY29uZHNUb0hyVGltZShkaWZmTmFub3MpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RvQXR0cmlidXRlcyhhdHRyaWJ1dGVMaXN0OiBBdHRyaWJ1dGVbXSk6IEF0dHJpYnV0ZXMge1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzOiBBdHRyaWJ1dGVzID0ge307XG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZUxpc3QpIHtcbiAgICAgICAgICAgIGxldCBhdHRyaWJ1dGVWYWw6IEF0dHJpYnV0ZVZhbHVlIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZS52YWx1ZS5zdHJpbmdWYWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgYXR0cmlidXRlVmFsID0gYXR0cmlidXRlLnZhbHVlLnN0cmluZ1ZhbHVlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGUudmFsdWUuaW50VmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbCA9IGF0dHJpYnV0ZS52YWx1ZS5pbnRWYWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlLnZhbHVlLmRvdWJsZVZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVWYWwgPSBhdHRyaWJ1dGUudmFsdWUuZG91YmxlVmFsdWU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZS52YWx1ZS5ib29sVmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZVZhbCA9IGF0dHJpYnV0ZS52YWx1ZS5ib29sVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhdHRyaWJ1dGVzW2F0dHJpYnV0ZS5rZXldID0gYXR0cmlidXRlVmFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVJlYWRhYmxlU3BhbnMoXG4gICAgICAgIG1ldGFkYXRhOiBUcmFjZU1ldGFkYXRhLFxuICAgICAgICBzcGFuczogU3BhbltdXG4gICAgKTogUmVhZGFibGVTcGFuW10ge1xuICAgICAgICBjb25zdCByZWFkYWJsZVNwYW5zOiBSZWFkYWJsZVNwYW5bXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHNwYW4gb2Ygc3BhbnMpIHtcbiAgICAgICAgICAgIHJlYWRhYmxlU3BhbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogc3Bhbi5uYW1lLFxuICAgICAgICAgICAgICAgIGtpbmQ6IFNwYW5LaW5kW1xuICAgICAgICAgICAgICAgICAgICBTcGFuS2luZFtzcGFuLmtpbmQudmFsdWVPZigpIC0gMV0gYXMga2V5b2YgdHlwZW9mIFNwYW5LaW5kXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBwYXJlbnRTcGFuSWQ6IHNwYW4ucGFyZW50U3BhbklkLFxuICAgICAgICAgICAgICAgIHNwYW5Db250ZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFjZUlkOiBzcGFuLnRyYWNlSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuSWQ6IHNwYW4uc3BhbklkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2VGbGFnczogU0FNUExFRF9UUkFDRV9GTEFHLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB0aGlzLl9uYW5vc2Vjb25kc1RvSHJUaW1lKHNwYW4uc3RhcnRUaW1lVW5peE5hbm8pLFxuICAgICAgICAgICAgICAgIGVuZFRpbWU6IHRoaXMuX25hbm9zZWNvbmRzVG9IclRpbWUoc3Bhbi5lbmRUaW1lVW5peE5hbm8pLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiB0aGlzLl9uYW5vc2Vjb25kc0RpZmZUb0hyVGltZShcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5lbmRUaW1lVW5peE5hbm8sXG4gICAgICAgICAgICAgICAgICAgIHNwYW4uc3RhcnRUaW1lVW5peE5hbm9cbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGVuZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHN0YXR1czogc3Bhbi5zdGF0dXMsXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogdGhpcy5fdG9BdHRyaWJ1dGVzKHNwYW4uYXR0cmlidXRlcyksXG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgW1JFU09VUkNFX0FUVFJJQlVURVMuU0VSVklDRV9OQU1FXTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5zZXJ2aWNlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX3RvQXR0cmlidXRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5yZXNvdXJjZUF0dHJpYnV0ZXMgfHwgW11cbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpbnN0cnVtZW50YXRpb25MaWJyYXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IE9URUxfQ0xJX05BTUUsXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb246IE9URUxfQ0xJX1ZFUlNJT04sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBldmVudHM6IFtdIGFzIFRpbWVkRXZlbnRbXSxcbiAgICAgICAgICAgICAgICBsaW5rczogW10gYXMgTGlua1tdLFxuICAgICAgICAgICAgICAgIGRyb3BwZWRBdHRyaWJ1dGVzQ291bnQ6IDAsXG4gICAgICAgICAgICAgICAgZHJvcHBlZEV2ZW50c0NvdW50OiAwLFxuICAgICAgICAgICAgICAgIGRyb3BwZWRMaW5rc0NvdW50OiAwLFxuICAgICAgICAgICAgfSBhcyBSZWFkYWJsZVNwYW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWFkYWJsZVNwYW5zO1xuICAgIH1cblxuICAgIGFzeW5jIGV4cG9ydChtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSwgc3BhbnM6IFNwYW5bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCByZWFkYWJsZVNwYW5zOiBSZWFkYWJsZVNwYW5bXSA9IHRoaXMuX2NyZWF0ZVJlYWRhYmxlU3BhbnMoXG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgICAgIHNwYW5zXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShcbiAgICAgICAgICAgIChyZXM6IChyZXN1bHQ6IHZvaWQpID0+IHZvaWQsIHJlajogKHJlYXNvbjogYW55KSA9PiB2b2lkKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHBvcnRlci5leHBvcnQocmVhZGFibGVTcGFucywgKHJlc3VsdDogRXhwb3J0UmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlaihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBGYWlsZWQgcmVzcG9uc2UgKGVycm9yPSR7cmVzdWx0LmVycm9yfSwgc3RhdHVzIGNvZGU9JHtyZXN1bHQuY29kZX0pIGZyb20gZXhwb3J0ZXIgT1RMUCBHUlBDIGVuZHBvaW50ICR7dGhpcy51cmx9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0LmNvZGUgPT09IEV4cG9ydFJlc3VsdENvZGUuRkFJTEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHJlc3BvbnNlIChzdGF0dXMgY29kZT0ke3Jlc3VsdC5jb2RlfSkgZnJvbSBleHBvcnRlciBPVExQIEdSUEMgZW5kcG9pbnQgJHt0aGlzLnVybH1gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==

@@ -50,2 +50,3 @@ "use strict";

},
...(metadata.resourceAttributes || []),
],

@@ -88,2 +89,2 @@ droppedAttributesCount: 0,

exports.HttpJsonTraceExporter = HttpJsonTraceExporter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEpzb25UcmFjZUV4cG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2V4cG9ydC9odHRwL0h0dHBKc29uVHJhY2VFeHBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSwrQ0FJeUI7QUFFekIsa0RBQThFO0FBRTlFLE1BQWEscUJBQXFCO0lBSTlCLFlBQ0ksb0JBQTRCLEVBQzVCLG1CQUF5QztRQUV6QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLFlBQVksQ0FBQyxvQkFBNEI7UUFDL0MsT0FBTyxHQUFHLG9CQUFvQixZQUFZLENBQUM7SUFDL0MsQ0FBQztJQUVTLFdBQVcsQ0FBQyxtQkFBeUM7UUFDM0QsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixLQUFLLE1BQU0sS0FBSyxJQUFJLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUMvQyxNQUFNLFVBQVUsR0FBVyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sV0FBVyxHQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxXQUFXLENBQUM7YUFDMUM7U0FDSjtJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFhO1FBQ25DLE9BQU87WUFDSDtnQkFDSSxLQUFLLEVBQUU7b0JBQ0gsSUFBSSxFQUFFLHlCQUFhO29CQUNuQixPQUFPLEVBQUUsNEJBQWdCO29CQUN6QixVQUFVLEVBQUUsRUFBRTtpQkFDakI7Z0JBQ0QsS0FBSyxFQUFFLEtBQUs7YUFDZjtTQUNKLENBQUM7SUFDTixDQUFDO0lBRU8sb0JBQW9CLENBQ3hCLFFBQXVCLEVBQ3ZCLEtBQWE7UUFFYixPQUFPO1lBQ0g7Z0JBQ0ksUUFBUSxFQUFFO29CQUNOLFVBQVUsRUFBRTt3QkFDUjs0QkFDSSxHQUFHLEVBQUUsK0JBQW1CLENBQUMsWUFBWTs0QkFDckMsS0FBSyxFQUFFO2dDQUNILFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVzs2QkFDcEM7eUJBQ0o7cUJBQ0o7b0JBQ0Qsc0JBQXNCLEVBQUUsQ0FBQztpQkFDNUI7Z0JBQ0QsVUFBVSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7YUFDNUM7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLG1CQUFtQixDQUN2QixRQUF1QixFQUN2QixLQUFhO1FBRWIsT0FBTztZQUNILGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztTQUM1RCxDQUFDO0lBQ04sQ0FBQztJQUVTLGlCQUFpQixDQUFDLFFBQXVCLEVBQUUsS0FBYTtRQUM5RCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBdUIsRUFBRSxLQUFhOztRQUMvQyxJQUFJO1lBQ0EsTUFBTSxXQUFXLEdBQVEsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNqRSxNQUFNLEdBQUcsR0FBa0IsTUFBTSxlQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFO2dCQUMvRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDeEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUU7Z0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQ1gsZ0NBQWdDLEdBQUcsQ0FBQyxNQUFNLHNDQUFzQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQzdGLENBQUM7YUFDTDtTQUNKO1FBQUMsT0FBTyxHQUFxQixFQUFFO1lBQzVCLElBQUksTUFBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsUUFBUSwwQ0FBRSxNQUFNLEVBQUU7Z0JBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQ1gsZ0NBQWdDLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFFBQVEsMENBQUUsTUFBTSxzQ0FBc0MsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUN4RyxDQUFDO2FBQ0w7aUJBQU07Z0JBQ0gsTUFBTSxJQUFJLEtBQUssQ0FDWCxpRUFBaUUsSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FDNUcsQ0FBQzthQUNMO1NBQ0o7SUFDTCxDQUFDO0NBQ0o7QUFsR0Qsc0RBa0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhY2VFeHBvcnRlciB9IGZyb20gJy4uL1RyYWNlRXhwb3J0ZXInO1xuaW1wb3J0IHtcbiAgICBSZXNvdXJjZVNwYW5zLFxuICAgIFNjb3BlU3BhbnMsXG4gICAgU3BhbixcbiAgICBUcmFjZU1ldGFkYXRhLFxuICAgIFRyYWNlUmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7XG4gICAgT1RFTF9DTElfTkFNRSxcbiAgICBPVEVMX0NMSV9WRVJTSU9OLFxuICAgIFJFU09VUkNFX0FUVFJJQlVURVMsXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5cbmltcG9ydCBheGlvcywgeyBBeGlvc0Vycm9yLCBBeGlvc1JlcXVlc3RIZWFkZXJzLCBBeGlvc1Jlc3BvbnNlIH0gZnJvbSAnYXhpb3MnO1xuXG5leHBvcnQgY2xhc3MgSHR0cEpzb25UcmFjZUV4cG9ydGVyIGltcGxlbWVudHMgVHJhY2VFeHBvcnRlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB1cmw6IHN0cmluZztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhlYWRlcnM6IEF4aW9zUmVxdWVzdEhlYWRlcnM7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZXhwb3J0ZXJPVExQRW5kcG9pbnQ6IHN0cmluZyxcbiAgICAgICAgZXhwb3J0ZXJPVExQSGVhZGVycz86IE1hcDxzdHJpbmcsIHN0cmluZz5cbiAgICApIHtcbiAgICAgICAgdGhpcy51cmwgPSB0aGlzLm5vcm1hbGl6ZVVSTChleHBvcnRlck9UTFBFbmRwb2ludCk7XG4gICAgICAgIHRoaXMuaGVhZGVycyA9IHt9O1xuICAgICAgICB0aGlzLmluaXRIZWFkZXJzKGV4cG9ydGVyT1RMUEhlYWRlcnMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBub3JtYWxpemVVUkwoZXhwb3J0ZXJPVExQRW5kcG9pbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtleHBvcnRlck9UTFBFbmRwb2ludH0vdjEvdHJhY2VzYDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdEhlYWRlcnMoZXhwb3J0ZXJPVExQSGVhZGVycz86IE1hcDxzdHJpbmcsIHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGV4cG9ydGVyT1RMUEhlYWRlcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZXhwb3J0ZXJPVExQSGVhZGVycy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJOYW1lOiBzdHJpbmcgPSBlbnRyeVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCBoZWFkZXJWYWx1ZTogc3RyaW5nID0gZW50cnlbMV07XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJzW2hlYWRlck5hbWVdID0gaGVhZGVyVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVTY29wZVNwYW5zKHNwYW5zOiBTcGFuW10pOiBTY29wZVNwYW5zW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHNjb3BlOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IE9URUxfQ0xJX05BTUUsXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb246IE9URUxfQ0xJX1ZFUlNJT04sXG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc3BhbnM6IHNwYW5zLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVSZXNvdXJjZVNwYW5zKFxuICAgICAgICBtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSxcbiAgICAgICAgc3BhbnM6IFNwYW5bXVxuICAgICk6IFJlc291cmNlU3BhbnNbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogUkVTT1VSQ0VfQVRUUklCVVRFUy5TRVJWSUNFX05BTUUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nVmFsdWU6IG1ldGFkYXRhLnNlcnZpY2VOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBkcm9wcGVkQXR0cmlidXRlc0NvdW50OiAwLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2NvcGVTcGFuczogdGhpcy5fY3JlYXRlU2NvcGVTcGFucyhzcGFucyksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVRyYWNlUmVxdWVzdChcbiAgICAgICAgbWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEsXG4gICAgICAgIHNwYW5zOiBTcGFuW11cbiAgICApOiBUcmFjZVJlcXVlc3Qge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVzb3VyY2VTcGFuczogdGhpcy5fY3JlYXRlUmVzb3VyY2VTcGFucyhtZXRhZGF0YSwgc3BhbnMpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXF1ZXN0RGF0YShtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSwgc3BhbnM6IFNwYW5bXSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVUcmFjZVJlcXVlc3QobWV0YWRhdGEsIHNwYW5zKTtcbiAgICB9XG5cbiAgICBhc3luYyBleHBvcnQobWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEsIHNwYW5zOiBTcGFuW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3REYXRhOiBhbnkgPSB0aGlzLmNyZWF0ZVJlcXVlc3REYXRhKG1ldGFkYXRhLCBzcGFucyk7XG4gICAgICAgICAgICBjb25zdCByZXM6IEF4aW9zUmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0KHRoaXMudXJsLCByZXF1ZXN0RGF0YSwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgLyAxMDAgIT0gMikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYEZhaWxlZCByZXNwb25zZSAoc3RhdHVzIGNvZGU9JHtyZXMuc3RhdHVzfSkgZnJvbSBleHBvcnRlciBPVExQIEhUVFAgZW5kcG9pbnQgJHt0aGlzLnVybH1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyOiBBeGlvc0Vycm9yIHwgYW55KSB7XG4gICAgICAgICAgICBpZiAoZXJyPy5yZXNwb25zZT8uc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHJlc3BvbnNlIChzdGF0dXMgY29kZT0ke2Vycj8ucmVzcG9uc2U/LnN0YXR1c30pIGZyb20gZXhwb3J0ZXIgT1RMUCBIVFRQIGVuZHBvaW50ICR7dGhpcy51cmx9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFVuYWJsZSB0byBleHBvcnQgdHJhY2UgcmVxdWVzdCB0byBleHBvcnRlciBPVExQIEhUVFAgZW5kcG9pbnQgJHt0aGlzLnVybH06ICR7ZXJyLm5hbWV9ICgke2Vyci5tZXNzYWdlfSlgXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cEpzb25UcmFjZUV4cG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2V4cG9ydC9odHRwL0h0dHBKc29uVHJhY2VFeHBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSwrQ0FJeUI7QUFFekIsa0RBQThFO0FBRTlFLE1BQWEscUJBQXFCO0lBSTlCLFlBQ0ksb0JBQTRCLEVBQzVCLG1CQUF5QztRQUV6QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLFlBQVksQ0FBQyxvQkFBNEI7UUFDL0MsT0FBTyxHQUFHLG9CQUFvQixZQUFZLENBQUM7SUFDL0MsQ0FBQztJQUVTLFdBQVcsQ0FBQyxtQkFBeUM7UUFDM0QsSUFBSSxtQkFBbUIsRUFBRTtZQUNyQixLQUFLLE1BQU0sS0FBSyxJQUFJLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUMvQyxNQUFNLFVBQVUsR0FBVyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sV0FBVyxHQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxXQUFXLENBQUM7YUFDMUM7U0FDSjtJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFhO1FBQ25DLE9BQU87WUFDSDtnQkFDSSxLQUFLLEVBQUU7b0JBQ0gsSUFBSSxFQUFFLHlCQUFhO29CQUNuQixPQUFPLEVBQUUsNEJBQWdCO29CQUN6QixVQUFVLEVBQUUsRUFBRTtpQkFDakI7Z0JBQ0QsS0FBSyxFQUFFLEtBQUs7YUFDZjtTQUNKLENBQUM7SUFDTixDQUFDO0lBRU8sb0JBQW9CLENBQ3hCLFFBQXVCLEVBQ3ZCLEtBQWE7UUFFYixPQUFPO1lBQ0g7Z0JBQ0ksUUFBUSxFQUFFO29CQUNOLFVBQVUsRUFBRTt3QkFDUjs0QkFDSSxHQUFHLEVBQUUsK0JBQW1CLENBQUMsWUFBWTs0QkFDckMsS0FBSyxFQUFFO2dDQUNILFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVzs2QkFDcEM7eUJBQ0o7d0JBQ0QsR0FBRyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7cUJBQ3pDO29CQUNELHNCQUFzQixFQUFFLENBQUM7aUJBQzVCO2dCQUNELFVBQVUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO2FBQzVDO1NBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxtQkFBbUIsQ0FDdkIsUUFBdUIsRUFDdkIsS0FBYTtRQUViLE9BQU87WUFDSCxhQUFhLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7U0FDNUQsQ0FBQztJQUNOLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxRQUF1QixFQUFFLEtBQWE7UUFDOUQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQXVCLEVBQUUsS0FBYTs7UUFDL0MsSUFBSTtZQUNBLE1BQU0sV0FBVyxHQUFRLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDakUsTUFBTSxHQUFHLEdBQWtCLE1BQU0sZUFBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRTtnQkFDL0QsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2FBQ3hCLENBQUMsQ0FBQztZQUNILElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUNYLGdDQUFnQyxHQUFHLENBQUMsTUFBTSxzQ0FBc0MsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUM3RixDQUFDO2FBQ0w7U0FDSjtRQUFDLE9BQU8sR0FBcUIsRUFBRTtZQUM1QixJQUFJLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLFFBQVEsMENBQUUsTUFBTSxFQUFFO2dCQUN2QixNQUFNLElBQUksS0FBSyxDQUNYLGdDQUFnQyxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLDBDQUFFLE1BQU0sc0NBQXNDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FDeEcsQ0FBQzthQUNMO2lCQUFNO2dCQUNILE1BQU0sSUFBSSxLQUFLLENBQ1gsaUVBQWlFLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQzVHLENBQUM7YUFDTDtTQUNKO0lBQ0wsQ0FBQztDQUNKO0FBbkdELHNEQW1HQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYWNlRXhwb3J0ZXIgfSBmcm9tICcuLi9UcmFjZUV4cG9ydGVyJztcbmltcG9ydCB7XG4gICAgUmVzb3VyY2VTcGFucyxcbiAgICBTY29wZVNwYW5zLFxuICAgIFNwYW4sXG4gICAgVHJhY2VNZXRhZGF0YSxcbiAgICBUcmFjZVJlcXVlc3QsXG59IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICAgIE9URUxfQ0xJX05BTUUsXG4gICAgT1RFTF9DTElfVkVSU0lPTixcbiAgICBSRVNPVVJDRV9BVFRSSUJVVEVTLFxufSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuXG5pbXBvcnQgYXhpb3MsIHsgQXhpb3NFcnJvciwgQXhpb3NSZXF1ZXN0SGVhZGVycywgQXhpb3NSZXNwb25zZSB9IGZyb20gJ2F4aW9zJztcblxuZXhwb3J0IGNsYXNzIEh0dHBKc29uVHJhY2VFeHBvcnRlciBpbXBsZW1lbnRzIFRyYWNlRXhwb3J0ZXIge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdXJsOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBoZWFkZXJzOiBBeGlvc1JlcXVlc3RIZWFkZXJzO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGV4cG9ydGVyT1RMUEVuZHBvaW50OiBzdHJpbmcsXG4gICAgICAgIGV4cG9ydGVyT1RMUEhlYWRlcnM/OiBNYXA8c3RyaW5nLCBzdHJpbmc+XG4gICAgKSB7XG4gICAgICAgIHRoaXMudXJsID0gdGhpcy5ub3JtYWxpemVVUkwoZXhwb3J0ZXJPVExQRW5kcG9pbnQpO1xuICAgICAgICB0aGlzLmhlYWRlcnMgPSB7fTtcbiAgICAgICAgdGhpcy5pbml0SGVhZGVycyhleHBvcnRlck9UTFBIZWFkZXJzKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbm9ybWFsaXplVVJMKGV4cG9ydGVyT1RMUEVuZHBvaW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7ZXhwb3J0ZXJPVExQRW5kcG9pbnR9L3YxL3RyYWNlc2A7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRIZWFkZXJzKGV4cG9ydGVyT1RMUEhlYWRlcnM/OiBNYXA8c3RyaW5nLCBzdHJpbmc+KTogdm9pZCB7XG4gICAgICAgIGlmIChleHBvcnRlck9UTFBIZWFkZXJzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGVudHJ5IG9mIGV4cG9ydGVyT1RMUEhlYWRlcnMuZW50cmllcygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVhZGVyTmFtZTogc3RyaW5nID0gZW50cnlbMF07XG4gICAgICAgICAgICAgICAgY29uc3QgaGVhZGVyVmFsdWU6IHN0cmluZyA9IGVudHJ5WzFdO1xuICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyc1toZWFkZXJOYW1lXSA9IGhlYWRlclZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlU2NvcGVTcGFucyhzcGFuczogU3BhbltdKTogU2NvcGVTcGFuc1tdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzY29wZToge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBPVEVMX0NMSV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOiBPVEVMX0NMSV9WRVJTSU9OLFxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNwYW5zOiBzcGFucyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlUmVzb3VyY2VTcGFucyhcbiAgICAgICAgbWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEsXG4gICAgICAgIHNwYW5zOiBTcGFuW11cbiAgICApOiBSZXNvdXJjZVNwYW5zW10ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHJlc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFJFU09VUkNFX0FUVFJJQlVURVMuU0VSVklDRV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ1ZhbHVlOiBtZXRhZGF0YS5zZXJ2aWNlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLihtZXRhZGF0YS5yZXNvdXJjZUF0dHJpYnV0ZXMgfHwgW10pLFxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBkcm9wcGVkQXR0cmlidXRlc0NvdW50OiAwLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2NvcGVTcGFuczogdGhpcy5fY3JlYXRlU2NvcGVTcGFucyhzcGFucyksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NyZWF0ZVRyYWNlUmVxdWVzdChcbiAgICAgICAgbWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEsXG4gICAgICAgIHNwYW5zOiBTcGFuW11cbiAgICApOiBUcmFjZVJlcXVlc3Qge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVzb3VyY2VTcGFuczogdGhpcy5fY3JlYXRlUmVzb3VyY2VTcGFucyhtZXRhZGF0YSwgc3BhbnMpLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVSZXF1ZXN0RGF0YShtZXRhZGF0YTogVHJhY2VNZXRhZGF0YSwgc3BhbnM6IFNwYW5bXSk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVUcmFjZVJlcXVlc3QobWV0YWRhdGEsIHNwYW5zKTtcbiAgICB9XG5cbiAgICBhc3luYyBleHBvcnQobWV0YWRhdGE6IFRyYWNlTWV0YWRhdGEsIHNwYW5zOiBTcGFuW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3REYXRhOiBhbnkgPSB0aGlzLmNyZWF0ZVJlcXVlc3REYXRhKG1ldGFkYXRhLCBzcGFucyk7XG4gICAgICAgICAgICBjb25zdCByZXM6IEF4aW9zUmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0KHRoaXMudXJsLCByZXF1ZXN0RGF0YSwge1xuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVycyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHJlcy5zdGF0dXMgLyAxMDAgIT0gMikge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYEZhaWxlZCByZXNwb25zZSAoc3RhdHVzIGNvZGU9JHtyZXMuc3RhdHVzfSkgZnJvbSBleHBvcnRlciBPVExQIEhUVFAgZW5kcG9pbnQgJHt0aGlzLnVybH1gXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyOiBBeGlvc0Vycm9yIHwgYW55KSB7XG4gICAgICAgICAgICBpZiAoZXJyPy5yZXNwb25zZT8uc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgRmFpbGVkIHJlc3BvbnNlIChzdGF0dXMgY29kZT0ke2Vycj8ucmVzcG9uc2U/LnN0YXR1c30pIGZyb20gZXhwb3J0ZXIgT1RMUCBIVFRQIGVuZHBvaW50ICR7dGhpcy51cmx9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgYFVuYWJsZSB0byBleHBvcnQgdHJhY2UgcmVxdWVzdCB0byBleHBvcnRlciBPVExQIEhUVFAgZW5kcG9pbnQgJHt0aGlzLnVybH06ICR7ZXJyLm5hbWV9ICgke2Vyci5tZXNzYWdlfSlgXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
{
"name": "otel-cli",
"version": "1.2.0",
"version": "1.3.0",
"description": "OTEL CLI is a command-line tool for sending OpenTelemetry traces.",

@@ -5,0 +5,0 @@ "author": "Serkan Ozal <serkanozal86@gmail.com> (https://github.com/serkan-ozal)",

+28
-27

@@ -46,29 +46,30 @@ # OTEL (OpenTelemetry) CLI

| CLI Option | Environment Variable | Mandatory | Choices | Default Value | Description | Example |
|--------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|-----------|--------------------------------------------------------------------------------------------|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------|
| - `--verbose` <br/> - `-v` | `OTEL_CLI_VERBOSE=true` | NO | | `false` | Enable verbose mode | `--verbose` |
| - `--endpoint <url>` <br/> - `-e <url>` | `OTEL_EXPORTER_OTLP_ENDPOINT=<url>` | YES | | | OTEL Exporter OTLP endpoint | `--endpoint https://collector.otel.io` |
| - `--protocol <url>` <br/> - `-p <url>` | `OTEL_EXPORTER_OTLP_PROTOCOL=<protocol>` | NO | - `http/json` <br/> - `grpc` | `http/json` | OTEL Exporter OTLP protocol | - `--protocol http/json` <br/> - `--protocol grpc` |
| - `--headers <key1=value1> <key2=value2> ...` <br/> - `-h <key1=value1> <key2=value2> ...` | `OTEL_EXPORTER_OTLP_HEADERS=key1=value1>,<key2=value2>` | NO | | | OTEL Exporter OTLP headers <br/> - In CLI options, headers are specified as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) <br/> - In environment variable, headers are specified as comma (`,`) seperated key-value pairs (`key1=value1,key2=value2,key3=value3`) <br/> | `--headers x-api-key=abcd-1234 x-project-id=efgh-5678` |
| - `--traceparent <header>` <br/> - `-tp <header>` | `TRACEPARENT=<header>` | NO | | | Traceparent header in W3C trace context format | `--traceparent 00-84b54e9330faae5350f0dd8673c98146-279fa73bc935cc05-01` |
| - `--traceparent-disable` <br/> - `-tpd` | `OTEL_CLI_TRACEPARENT_DISABLE=true` | NO | | `false` | Disable traceparent header based W3C trace context propagation for the exported span | `--traceparent-disable` |
| - `--traceparent-print` <br/> - `-tpp` | `OTEL_CLI_TRACEPARENT_PRINT=true` | NO | | `false` | Print traceparent header in W3C trace context format for the exported span (the exported span id will be injected as parent span id in the header) | `--traceparent-print` |
| - `--trace-id <id>` <br/> - `-t <id>` | `OTEL_CLI_TRACE_ID=<id>` | NO | | | Trace id | `--trace-id 84b54e9330faae5350f0dd8673c98146` |
| - `--span-id <id>` <br/> - `-s <id>` | | NO | | | Span id | `--span-id b2746bb26cd13726` |
| - `--parent-span-id <id>` <br/> - `-p <id>` | | NO | | | Parent span id | `--parent-span-id 279fa73bc935cc05` |
| - `--name <name>` <br/> - `-s <name>` | | YES | | | Span name | `--name doPayment` |
| - `--service-name <name>` <br/> - `-sn <name>` | - `OTEL_CLI_SERVICE_NAME=<service-name>` <br/> - `OTEL_SERVICE_NAME=<service-name>` | YES | | | Service name | `--service-name payment-service` |
| - `--kind <kind>` <br/> - `-k <kind>` | | NO | - `INTERNAL` <br/> - `SERVER` <br/> - `CLIENT` <br/> - `PRODUCER` <br/> - `CONSUMER` <br/> | `INTERNAL` | Span kind | - `--kind CLIENT` <br/> - `--kind PRODUCER` <br/> - ... <br/> |
| - `--start-time-nanos <nanos>` | | NO | | | Start time in nanoseconds | `--start-time-nanos 1688811191123456789` |
| - `--start-time-micros <micros>` | | NO | | | Start time in microseconds | `--start-time-micros 1688811191123456` |
| - `--start-time-millis <millis>` | | NO | | | Start time in milliseconds | `--start-time-millis 1688811191123` |
| - `--start-time-secs <secs>` | | NO | | | Start time in seconds | `--start-time-secs 1688811191` |
| - `--end-time-nanos <nanos>` | | NO | | | End time in nanoseconds | `--end-time-nanos 1688811192123456789` |
| - `--end-time-micros <micros>` | | NO | | | End time in microseconds | `--end-time-micros 1688811192123456` |
| - `--end-time-millis <millis>` | | NO | | | End time in milliseconds | `--end-time-millis 1688811192123` |
| - `--end-time-secs <secs>` | | NO | | | End time in seconds | `--start-time-secs 1688811192` |
| - `--status-code <code>` <br/> - `-sc <code>` | | NO | - `UNSET` <br/> - `OK` <br/> - `ERROR` <br/> | `UNSET` | Status code | - `--status-code OK` <br/> - `--status-code ERROR` <br/> - ... <br/> |
| - `--status-message <message>` <br/> - `-sm <message>` | | NO | | | Status message | `--status-message "Invalid argument"` |
| - `--attributes <key-value-pairs...>` <br/> - `-a <key-value-pairs...>` | | NO | | | Span attributes as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) | `--attributes key1=value1 key2=\"my value\" key3=true key4=123 key5=67.89 key6=\"456\"` |
| - `--server-port` <br/> - `-sp <port>` | `OTEL_CLI_SERVER_PORT=<port>` | NO | | `7777` | OTEL CLI server port for communicating over to export traces asynchronously in background | - `--server-port 12345` <br/> - `-sp 12345` |
| CLI Option | Environment Variable | Mandatory | Choices | Default Value | Description | Example |
|--------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|-----------|--------------------------------------------------------------------------------------------|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
| - `--verbose` <br/> - `-v` | `OTEL_CLI_VERBOSE=true` | NO | | `false` | Enable verbose mode | `--verbose` |
| - `--endpoint <url>` <br/> - `-e <url>` | `OTEL_EXPORTER_OTLP_ENDPOINT=<url>` | YES | | | OTEL Exporter OTLP endpoint | `--endpoint https://collector.otel.io` |
| - `--protocol <url>` <br/> - `-p <url>` | `OTEL_EXPORTER_OTLP_PROTOCOL=<protocol>` | NO | - `http/json` <br/> - `grpc` | `http/json` | OTEL Exporter OTLP protocol | - `--protocol http/json` <br/> - `--protocol grpc` |
| - `--headers <key1=value1> <key2=value2> ...` <br/> - `-h <key1=value1> <key2=value2> ...` | `OTEL_EXPORTER_OTLP_HEADERS=key1=value1>,<key2=value2>` | NO | | | OTEL Exporter OTLP headers <br/> - In CLI options, headers are specified as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) <br/> - In environment variable, headers are specified as comma (`,`) seperated key-value pairs (`key1=value1,key2=value2,key3=value3`) <br/> | `--headers x-api-key=abcd-1234 x-project-id=efgh-5678` |
| - `--traceparent <header>` <br/> - `-tp <header>` | `TRACEPARENT=<header>` | NO | | | Traceparent header in W3C trace context format | `--traceparent 00-84b54e9330faae5350f0dd8673c98146-279fa73bc935cc05-01` |
| - `--traceparent-disable` <br/> - `-tpd` | `OTEL_CLI_TRACEPARENT_DISABLE=true` | NO | | `false` | Disable traceparent header based W3C trace context propagation for the exported span | `--traceparent-disable` |
| - `--traceparent-print` <br/> - `-tpp` | `OTEL_CLI_TRACEPARENT_PRINT=true` | NO | | `false` | Print traceparent header in W3C trace context format for the exported span (the exported span id will be injected as parent span id in the header) | `--traceparent-print` |
| - `--trace-id <id>` <br/> - `-t <id>` | `OTEL_CLI_TRACE_ID=<id>` | NO | | | Trace id | `--trace-id 84b54e9330faae5350f0dd8673c98146` |
| - `--span-id <id>` <br/> - `-s <id>` | | NO | | | Span id | `--span-id b2746bb26cd13726` |
| - `--parent-span-id <id>` <br/> - `-p <id>` | | NO | | | Parent span id | `--parent-span-id 279fa73bc935cc05` |
| - `--name <name>` <br/> - `-s <name>` | | YES | | | Span name | `--name doPayment` |
| - `--service-name <name>` <br/> - `-sn <name>` | - `OTEL_CLI_SERVICE_NAME=<service-name>` <br/> - `OTEL_SERVICE_NAME=<service-name>` | YES | | | Service name | `--service-name payment-service` |
| - `--kind <kind>` <br/> - `-k <kind>` | | NO | - `INTERNAL` <br/> - `SERVER` <br/> - `CLIENT` <br/> - `PRODUCER` <br/> - `CONSUMER` <br/> | `INTERNAL` | Span kind | - `--kind CLIENT` <br/> - `--kind PRODUCER` <br/> - ... <br/> |
| - `--start-time-nanos <nanos>` | | NO | | | Start time in nanoseconds | `--start-time-nanos 1688811191123456789` |
| - `--start-time-micros <micros>` | | NO | | | Start time in microseconds | `--start-time-micros 1688811191123456` |
| - `--start-time-millis <millis>` | | NO | | | Start time in milliseconds | `--start-time-millis 1688811191123` |
| - `--start-time-secs <secs>` | | NO | | | Start time in seconds | `--start-time-secs 1688811191` |
| - `--end-time-nanos <nanos>` | | NO | | | End time in nanoseconds | `--end-time-nanos 1688811192123456789` |
| - `--end-time-micros <micros>` | | NO | | | End time in microseconds | `--end-time-micros 1688811192123456` |
| - `--end-time-millis <millis>` | | NO | | | End time in milliseconds | `--end-time-millis 1688811192123` |
| - `--end-time-secs <secs>` | | NO | | | End time in seconds | `--start-time-secs 1688811192` |
| - `--status-code <code>` <br/> - `-sc <code>` | | NO | - `UNSET` <br/> - `OK` <br/> - `ERROR` <br/> | `UNSET` | Status code | - `--status-code OK` <br/> - `--status-code ERROR` <br/> - ... <br/> |
| - `--status-message <message>` <br/> - `-sm <message>` | | NO | | | Status message | `--status-message "Invalid argument"` |
| - `--attributes <key-value-pairs...>` <br/> - `-a <key-value-pairs...>` | | NO | | | Span attributes as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) | `--attributes key1=value1 key2=\"my value\" key3=true key4=123 key5=67.89 key6=\"456\"` |
| - `--resource-attributes <key-value-pairs...>` <br/> - `-ra <key-value-pairs...>` | | NO | | | Resource attributes as space (` `) seperated key-value pairs (`key1=value1 key2=value2 key3=value3`) | `--resource-attributes key1=value1 key2=\"my value\" key3=true key4=123 key5=67.89 key6=\"456\"` |
| - `--server-port` <br/> - `-sp <port>` | `OTEL_CLI_SERVER_PORT=<port>` | NO | | `7777` | OTEL CLI server port for communicating over to export traces asynchronously in background | - `--server-port 12345` <br/> - `-sp 12345` |

@@ -75,0 +76,0 @@ #### How OTEL Exporter OTLP HTTP traces endpoint resolved?