footprintjs 4.4.1 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/lib/engine/handlers/StageRunner.js +2 -2
- package/dist/esm/lib/engine/narrative/types.js +1 -1
- package/dist/esm/lib/engine/runtimeStageId.js +57 -0
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +12 -3
- package/dist/esm/lib/memory/StageContext.js +9 -2
- package/dist/esm/lib/memory/types.js +1 -1
- package/dist/esm/lib/runner/FlowChartExecutor.js +7 -1
- package/dist/esm/lib/scope/ScopeFacade.js +23 -5
- package/dist/esm/lib/scope/types.js +1 -1
- package/dist/lib/engine/handlers/StageRunner.js +2 -2
- package/dist/lib/engine/narrative/types.js +1 -1
- package/dist/lib/engine/runtimeStageId.js +63 -0
- package/dist/lib/engine/traversal/FlowchartTraverser.js +12 -3
- package/dist/lib/memory/StageContext.js +9 -2
- package/dist/lib/memory/types.js +1 -1
- package/dist/lib/runner/FlowChartExecutor.js +7 -1
- package/dist/lib/scope/ScopeFacade.js +23 -5
- package/dist/lib/scope/types.js +1 -1
- package/dist/types/lib/engine/narrative/types.d.ts +2 -0
- package/dist/types/lib/engine/runtimeStageId.d.ts +47 -0
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +9 -0
- package/dist/types/lib/memory/StageContext.d.ts +2 -0
- package/dist/types/lib/memory/types.d.ts +4 -0
- package/dist/types/lib/runner/FlowChartExecutor.d.ts +2 -0
- package/dist/types/lib/scope/ScopeFacade.d.ts +2 -2
- package/dist/types/lib/scope/types.d.ts +4 -2
- package/package.json +1 -1
|
@@ -96,6 +96,8 @@ export class ScopeFacade {
|
|
|
96
96
|
notifyStageStart() {
|
|
97
97
|
this._invokeHook('onStageStart', {
|
|
98
98
|
stageName: this._stageName,
|
|
99
|
+
stageId: this._stageContext.stageId,
|
|
100
|
+
runtimeStageId: this._stageContext.runtimeStageId,
|
|
99
101
|
pipelineId: this._stageContext.runId,
|
|
100
102
|
timestamp: Date.now(),
|
|
101
103
|
});
|
|
@@ -104,28 +106,32 @@ export class ScopeFacade {
|
|
|
104
106
|
notifyStageEnd(duration) {
|
|
105
107
|
this._invokeHook('onStageEnd', {
|
|
106
108
|
stageName: this._stageName,
|
|
109
|
+
stageId: this._stageContext.stageId,
|
|
110
|
+
runtimeStageId: this._stageContext.runtimeStageId,
|
|
107
111
|
pipelineId: this._stageContext.runId,
|
|
108
112
|
timestamp: Date.now(),
|
|
109
113
|
duration,
|
|
110
114
|
});
|
|
111
115
|
}
|
|
112
116
|
/** @internal */
|
|
113
|
-
notifyPause(
|
|
117
|
+
notifyPause(pauseData) {
|
|
114
118
|
this._invokeHook('onPause', {
|
|
115
119
|
stageName: this._stageName,
|
|
120
|
+
stageId: this._stageContext.stageId,
|
|
121
|
+
runtimeStageId: this._stageContext.runtimeStageId,
|
|
116
122
|
pipelineId: this._stageContext.runId,
|
|
117
123
|
timestamp: Date.now(),
|
|
118
|
-
stageId,
|
|
119
124
|
pauseData,
|
|
120
125
|
});
|
|
121
126
|
}
|
|
122
127
|
/** @internal */
|
|
123
|
-
notifyResume(
|
|
128
|
+
notifyResume(hasInput) {
|
|
124
129
|
this._invokeHook('onResume', {
|
|
125
130
|
stageName: this._stageName,
|
|
131
|
+
stageId: this._stageContext.stageId,
|
|
132
|
+
runtimeStageId: this._stageContext.runtimeStageId,
|
|
126
133
|
pipelineId: this._stageContext.runId,
|
|
127
134
|
timestamp: Date.now(),
|
|
128
|
-
stageId,
|
|
129
135
|
hasInput,
|
|
130
136
|
});
|
|
131
137
|
}
|
|
@@ -133,6 +139,8 @@ export class ScopeFacade {
|
|
|
133
139
|
notifyCommit(mutations) {
|
|
134
140
|
this._invokeHook('onCommit', {
|
|
135
141
|
stageName: this._stageName,
|
|
142
|
+
stageId: this._stageContext.stageId,
|
|
143
|
+
runtimeStageId: this._stageContext.runtimeStageId,
|
|
136
144
|
pipelineId: this._stageContext.runId,
|
|
137
145
|
timestamp: Date.now(),
|
|
138
146
|
mutations,
|
|
@@ -232,6 +240,8 @@ export class ScopeFacade {
|
|
|
232
240
|
}
|
|
233
241
|
this._invokeHook('onRead', {
|
|
234
242
|
stageName: this._stageName,
|
|
243
|
+
stageId: this._stageContext.stageId,
|
|
244
|
+
runtimeStageId: this._stageContext.runtimeStageId,
|
|
235
245
|
pipelineId: this._stageContext.runId,
|
|
236
246
|
timestamp: Date.now(),
|
|
237
247
|
key,
|
|
@@ -277,6 +287,8 @@ export class ScopeFacade {
|
|
|
277
287
|
}
|
|
278
288
|
this._invokeHook('onWrite', {
|
|
279
289
|
stageName: this._stageName,
|
|
290
|
+
stageId: this._stageContext.stageId,
|
|
291
|
+
runtimeStageId: this._stageContext.runtimeStageId,
|
|
280
292
|
pipelineId: this._stageContext.runId,
|
|
281
293
|
timestamp: Date.now(),
|
|
282
294
|
key,
|
|
@@ -313,6 +325,8 @@ export class ScopeFacade {
|
|
|
313
325
|
}
|
|
314
326
|
this._invokeHook('onWrite', {
|
|
315
327
|
stageName: this._stageName,
|
|
328
|
+
stageId: this._stageContext.stageId,
|
|
329
|
+
runtimeStageId: this._stageContext.runtimeStageId,
|
|
316
330
|
pipelineId: this._stageContext.runId,
|
|
317
331
|
timestamp: Date.now(),
|
|
318
332
|
key,
|
|
@@ -331,6 +345,8 @@ export class ScopeFacade {
|
|
|
331
345
|
if (this._recorders.length > 0) {
|
|
332
346
|
this._invokeHook('onWrite', {
|
|
333
347
|
stageName: this._stageName,
|
|
348
|
+
stageId: this._stageContext.stageId,
|
|
349
|
+
runtimeStageId: this._stageContext.runtimeStageId,
|
|
334
350
|
pipelineId: this._stageContext.runId,
|
|
335
351
|
timestamp: Date.now(),
|
|
336
352
|
key,
|
|
@@ -460,6 +476,8 @@ export class ScopeFacade {
|
|
|
460
476
|
if (hook !== 'onError') {
|
|
461
477
|
this._invokeHook('onError', {
|
|
462
478
|
stageName: this._stageName,
|
|
479
|
+
stageId: this._stageContext.stageId,
|
|
480
|
+
runtimeStageId: this._stageContext.runtimeStageId,
|
|
463
481
|
pipelineId: this._stageContext.runId,
|
|
464
482
|
timestamp: Date.now(),
|
|
465
483
|
error: error,
|
|
@@ -480,4 +498,4 @@ ScopeFacade.BRAND = Symbol.for('ScopeFacade@v1');
|
|
|
480
498
|
* 256 characters comfortably exceeds any realistic scope-state key name.
|
|
481
499
|
*/
|
|
482
500
|
ScopeFacade._MAX_PATTERN_KEY_LEN = 256;
|
|
483
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NvcGVGYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL1Njb3BlRmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBR0gsT0FBTyxFQUFFLFNBQVMsSUFBSSxTQUFTLEVBQUUsU0FBUyxJQUFJLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUdwRixNQUFNLE9BQU8sV0FBVztJQWtCdEIsWUFBWSxPQUFxQixFQUFFLFNBQWlCLEVBQUUsY0FBd0IsRUFBRSxZQUEyQjtRQUxuRyxlQUFVLEdBQWUsRUFBRSxDQUFDO1FBRzVCLHlCQUFvQixHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBR2pFLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUV2Qyw4RkFBOEY7UUFDOUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFD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Q0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLFdBQVcsQ0FBQyxJQUFnQyxFQUFFLEtBQWM7UUFDbEUsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDaEMsTUFBbUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFO3dCQUMxQixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7d0JBQzFCLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUs7d0JBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO3dCQUNyQixLQUFLLEVBQUUsS0FBYzt3QkFDckIsU0FBUyxFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPO3FCQUNqRixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs7QUFqaEJzQixpQkFBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQUFBL0IsQ0FBZ0M7QUErZDVEOzs7Ozs7O0dBT0c7QUFDcUIsZ0NBQW9CLEdBQUcsR0FBRyxBQUFOLENBQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNjb3BlRmFjYWRlIOKAlCBCYXNlIGNsYXNzIHRoYXQgbGlicmFyeSBjb25zdW1lcnMgZXh0ZW5kIHRvIGNyZWF0ZSBjdXN0b20gc2NvcGUgY2xhc3Nlc1xuICpcbiAqIFdyYXBzIFN0YWdlQ29udGV4dCAoZnJvbSBtZW1vcnkvKSB0byBwcm92aWRlIGEgY29uc3VtZXItZnJpZW5kbHkgQVBJIGZvclxuICogc3RhdGUgYWNjZXNzLCBkZWJ1ZyBsb2dnaW5nLCBtZXRyaWNzLCBhbmQgcmVjb3JkZXIgaG9va3MuXG4gKlxuICogQ29uc3VtZXJzIGV4dGVuZCB0aGlzIGNsYXNzIHRvIGFkZCBkb21haW4tc3BlY2lmaWMgcHJvcGVydGllczpcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjbGFzcyBNeVNjb3BlIGV4dGVuZHMgU2NvcGVGYWNhZGUge1xuICogICBnZXQgdXNlck5hbWUoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoJ25hbWUnKSBhcyBzdHJpbmc7IH1cbiAqICAgc2V0IHVzZXJOYW1lKHZhbHVlOiBzdHJpbmcpIHsgdGhpcy5zZXRWYWx1ZSgnbmFtZScsIHZhbHVlKTsgfVxuICogfVxuICogYGBgXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBFeGVjdXRpb25FbnYgfSBmcm9tICcuLi9lbmdpbmUvdHlwZXMuanMnO1xuaW1wb3J0IHsgbmF0aXZlSGFzIGFzIGxvZGFzaEhhcywgbmF0aXZlU2V0IGFzIGxvZGFzaFNldCB9IGZyb20gJy4uL21lbW9yeS9wYXRoT3BzLmpzJztcbmltcG9ydCB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHsgaGFzQ2lyY3VsYXJSZWZlcmVuY2UsIGlzRGV2TW9kZSB9IGZyb20gJy4vZGV0ZWN0Q2lyY3VsYXIuanMnO1xuaW1wb3J0IHsgYXNzZXJ0Tm90UmVhZG9ubHksIGNyZWF0ZUZyb3plbkFyZ3MgfSBmcm9tICcuL3Byb3RlY3Rpb24vcmVhZG9ubHlJbnB1dC5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbW1pdEV2ZW50LCBSZWNvcmRlciwgUmVkYWN0aW9uUG9saWN5LCBSZWRhY3Rpb25SZXBvcnQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFNjb3BlRmFjYWRlIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCUkFORCA9IFN5bWJvbC5mb3IoJ1Njb3BlRmFjYWRlQHYxJyk7XG5cbiAgcHJvdGVjdGVkIF9zdGFnZUNvbnRleHQ6IFN0YWdlQ29udGV4dDtcbiAgcHJvdGVjdGVkIF9zdGFnZU5hbWU6IHN0cmluZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9yZWFkT25seVZhbHVlcz86IHVua25vd247XG5cbiAgLyoqIENhY2hlZCBkZWVwbHktZnJvemVuIGNvcHkgb2YgcmVhZE9ubHlWYWx1ZXMgZm9yIGdldEFyZ3MoKS4gQ3JlYXRlZCBvbmNlLiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9mcm96ZW5BcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKiogRXhlY3V0aW9uIGVudmlyb25tZW50IOKAlCByZWFkLW9ubHksIGluaGVyaXRlZCBmcm9tIHBhcmVudCBleGVjdXRvci4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZXhlY3V0aW9uRW52OiBSZWFkb25seTxFeGVjdXRpb25FbnY+O1xuXG4gIHByaXZhdGUgX3JlY29yZGVyczogUmVjb3JkZXJbXSA9IFtdO1xuICBwcml2YXRlIF9yZWRhY3RlZEtleXM6IFNldDxzdHJpbmc+O1xuICBwcml2YXRlIF9yZWRhY3Rpb25Qb2xpY3k6IFJlZGFjdGlvblBvbGljeSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfcmVkYWN0ZWRGaWVsZHNCeUtleTogTWFwPHN0cmluZywgU2V0PHN0cmluZz4+ID0gbmV3IE1hcCgpO1xuXG4gIGNvbnN0cnVjdG9yKGNvbnRleHQ6IFN0YWdlQ29udGV4dCwgc3RhZ2VOYW1lOiBzdHJpbmcsIHJlYWRPbmx5VmFsdWVzPzogdW5rbm93biwgZXhlY3V0aW9uRW52PzogRXhlY3V0aW9uRW52KSB7XG4gICAgdGhpcy5fc3RhZ2VDb250ZXh0ID0gY29udGV4dDtcbiAgICB0aGlzLl9zdGFnZU5hbWUgPSBzdGFnZU5hbWU7XG4gICAgdGhpcy5fcmVhZE9ubHlWYWx1ZXMgPSByZWFkT25seVZhbHVlcztcbiAgICB0aGlzLl9mcm96ZW5BcmdzID0gY3JlYXRlRnJvemVuQXJncyhyZWFkT25seVZhbHVlcyk7XG4gICAgdGhpcy5fZXhlY3V0aW9uRW52ID0gT2JqZWN0LmZyZWV6ZSh7IC4uLmV4ZWN1dGlvbkVudiB9KTtcbiAgICB0aGlzLl9yZWRhY3RlZEtleXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIC8vIFJlZ2lzdGVyIGFzIGNvbW1pdCBvYnNlcnZlciBzbyBSZWNvcmRlci5vbkNvbW1pdCBmaXJlcyB3aGVuIFN0YWdlQ29udGV4dC5jb21taXQoKSBpcyBjYWxsZWRcbiAgICB0aGlzLl9zdGFnZUNvbnRleHQuc2V0Q29tbWl0T2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgdGhpcy5fb25Db21taXRGaXJlZChtdXRhdGlvbnMpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNoYXJlIGEgcmVkYWN0ZWQta2V5cyBzZXQgYWNyb3NzIG11bHRpcGxlIFNjb3BlRmFjYWRlIGluc3RhbmNlcy5cbiAgICogQ2FsbCB0aGlzIHRvIG1ha2UgcmVkYWN0aW9uIHBlcnNpc3QgYWNyb3NzIHN0YWdlcyBpbiB0aGUgc2FtZSBwaXBlbGluZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1c2VTaGFyZWRSZWRhY3RlZEtleXMoc2hhcmVkU2V0OiBTZXQ8c3RyaW5nPik6IHZvaWQge1xuICAgIHRoaXMuX3JlZGFjdGVkS2V5cyA9IHNoYXJlZFNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IHJlZGFjdGVkLWtleXMgc2V0IChmb3Igc2hhcmluZyB3aXRoIG90aGVyIHNjb3BlcykuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0UmVkYWN0ZWRLZXlzKCk6IFNldDxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVkYWN0ZWRLZXlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGx5IGEgZGVjbGFyYXRpdmUgcmVkYWN0aW9uIHBvbGljeS4gVGhlIHBvbGljeSBpcyBhZGRpdGl2ZSDigJRcbiAgICogaXQgd29ya3MgYWxvbmdzaWRlIG1hbnVhbCBgc2V0VmFsdWUoLi4uLCB0cnVlKWAgY2FsbHMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdXNlUmVkYWN0aW9uUG9saWN5KHBvbGljeTogUmVkYWN0aW9uUG9saWN5KTogdm9pZCB7XG4gICAgdGhpcy5fcmVkYWN0aW9uUG9saWN5ID0gcG9saWN5O1xuICAgIC8vIFByZS1wb3B1bGF0ZSBmaWVsZC1sZXZlbCByZWRhY3Rpb24gbWFwIGZyb20gcG9saWN5XG4gICAgaWYgKHBvbGljeS5maWVsZHMpIHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgZmllbGRzXSBvZiBPYmplY3QuZW50cmllcyhwb2xpY3kuZmllbGRzKSkge1xuICAgICAgICB0aGlzLl9yZWRhY3RlZEZpZWxkc0J5S2V5LnNldChrZXksIG5ldyBTZXQoZmllbGRzKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRSZWRhY3Rpb25Qb2xpY3koKTogUmVkYWN0aW9uUG9saWN5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fcmVkYWN0aW9uUG9saWN5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBjb21wbGlhbmNlLWZyaWVuZGx5IHJlcG9ydCBvZiBhbGwgcmVkYWN0aW9uIGFjdGl2aXR5LlxuICAgKiBOZXZlciBpbmNsdWRlcyBhY3R1YWwgdmFsdWVzIOKAlCBvbmx5IGtleSBuYW1lcywgZmllbGQgbmFtZXMsIGFuZCBwYXR0ZXJucy5cbiAgICovXG4gIGdldFJlZGFjdGlvblJlcG9ydCgpOiBSZWRhY3Rpb25SZXBvcnQge1xuICAgIGNvbnN0IGZpZWxkUmVkYWN0aW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCBmaWVsZHNdIG9mIHRoaXMuX3JlZGFjdGVkRmllbGRzQnlLZXkpIHtcbiAgICAgIGZpZWxkUmVkYWN0aW9uc1trZXldID0gWy4uLmZpZWxkc107XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZWRhY3RlZEtleXM6IFsuLi50aGlzLl9yZWRhY3RlZEtleXNdLFxuICAgICAgZmllbGRSZWRhY3Rpb25zLFxuICAgICAgcGF0dGVybnM6ICh0aGlzLl9yZWRhY3Rpb25Qb2xpY3k/LnBhdHRlcm5zID8/IFtdKS5tYXAoKHApID0+IHAuc291cmNlKSxcbiAgICB9O1xuICB9XG5cbiAgLy8g4pSA4pSAIFJlY29yZGVyIE1hbmFnZW1lbnQg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgYXR0YWNoUmVjb3JkZXIocmVjb3JkZXI6IFJlY29yZGVyKTogdm9pZCB7XG4gICAgLy8gUmVwbGFjZSBleGlzdGluZyByZWNvcmRlciB3aXRoIHNhbWUgSUQgKGlkZW1wb3RlbnQg4oCUIHByZXZlbnRzIGRvdWJsZS1jb3VudGluZylcbiAgICB0aGlzLl9yZWNvcmRlcnMgPSB0aGlzLl9yZWNvcmRlcnMuZmlsdGVyKChyKSA9PiByLmlkICE9PSByZWNvcmRlci5pZCk7XG4gICAgdGhpcy5fcmVjb3JkZXJzLnB1c2gocmVjb3JkZXIpO1xuICB9XG5cbiAgZGV0YWNoUmVjb3JkZXIocmVjb3JkZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fcmVjb3JkZXJzID0gdGhpcy5fcmVjb3JkZXJzLmZpbHRlcigocikgPT4gci5pZCAhPT0gcmVjb3JkZXJJZCk7XG4gIH1cblxuICBnZXRSZWNvcmRlcnMoKTogUmVjb3JkZXJbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9yZWNvcmRlcnNdO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBub3RpZnlTdGFnZVN0YXJ0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ludm9rZUhvb2soJ29uU3RhZ2VTdGFydCcsIHtcbiAgICAgIHN0YWdlTmFtZTogdGhpcy5fc3RhZ2VOYW1lLFxuICAgICAgcGlwZWxpbmVJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnJ1bklkLFxuICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBub3RpZnlTdGFnZUVuZChkdXJhdGlvbj86IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX2ludm9rZUhvb2soJ29uU3RhZ2VFbmQnLCB7XG4gICAgICBzdGFnZU5hbWU6IHRoaXMuX3N0YWdlTmFtZSxcbiAgICAgIHBpcGVsaW5lSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW5JZCxcbiAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgIGR1cmF0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBub3RpZnlQYXVzZShzdGFnZUlkOiBzdHJpbmcsIHBhdXNlRGF0YT86IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLl9pbnZva2VIb29rKCdvblBhdXNlJywge1xuICAgICAgc3RhZ2VOYW1lOiB0aGlzLl9zdGFnZU5hbWUsXG4gICAgICBwaXBlbGluZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVuSWQsXG4gICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICBzdGFnZUlkLFxuICAgICAgcGF1c2VEYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBub3RpZnlSZXN1bWUoc3RhZ2VJZDogc3RyaW5nLCBoYXNJbnB1dDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2ludm9rZUhvb2soJ29uUmVzdW1lJywge1xuICAgICAgc3RhZ2VOYW1lOiB0aGlzLl9zdGFnZU5hbWUsXG4gICAgICBwaXBlbGluZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVuSWQsXG4gICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICBzdGFnZUlkLFxuICAgICAgaGFzSW5wdXQsXG4gICAgfSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG5vdGlmeUNvbW1pdChtdXRhdGlvbnM6IENvbW1pdEV2ZW50WydtdXRhdGlvbnMnXSk6IHZvaWQge1xuICAgIHRoaXMuX2ludm9rZUhvb2soJ29uQ29tbWl0Jywge1xuICAgICAgc3RhZ2VOYW1lOiB0aGlzLl9zdGFnZU5hbWUsXG4gICAgICBwaXBlbGluZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVuSWQsXG4gICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICBtdXRhdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICAvKiogQ2FsbGVkIGJ5IFN0YWdlQ29udGV4dC5jb21taXQoKSBvYnNlcnZlci4gQ29udmVydHMgdHJhY2tlZCB3cml0ZXMgdG8gQ29tbWl0RXZlbnQgZm9ybWF0LlxuICAgKiAgRXJyb3JzIGFyZSBjYXVnaHQgdG8gcHJldmVudCByZWNvcmRlciBpc3N1ZXMgZnJvbSBhYm9ydGluZyB0aGUgdHJhdmVyc2FsLiAqL1xuICBwcml2YXRlIF9vbkNvbW1pdEZpcmVkKG11dGF0aW9uczogUmVjb3JkPHN0cmluZywgeyB2YWx1ZTogdW5rbm93bjsgb3BlcmF0aW9uOiAnc2V0JyB8ICd1cGRhdGUnIHwgJ2RlbGV0ZScgfT4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcmVjb3JkZXJzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbW1pdE11dGF0aW9uczogQ29tbWl0RXZlbnRbJ211dGF0aW9ucyddID0gT2JqZWN0LmVudHJpZXMobXV0YXRpb25zKS5tYXAoKFtrZXksIGVudHJ5XSkgPT4ge1xuICAgICAgICBjb25zdCBpc1JlZGFjdGVkID0gdGhpcy5faXNLZXlSZWRhY3RlZChrZXkpIHx8IHRoaXMuX2lzUG9saWN5UmVkYWN0ZWQoa2V5KTtcbiAgICAgICAgY29uc3QgZmllbGRTZXQgPSB0aGlzLl9yZWRhY3RlZEZpZWxkc0J5S2V5LmdldChrZXkpO1xuXG4gICAgICAgIGxldCByZWNvcmRlclZhbHVlOiB1bmtub3duO1xuICAgICAgICBpZiAoaXNSZWRhY3RlZCkge1xuICAgICAgICAgIHJlY29yZGVyVmFsdWUgPSAnW1JFREFDVEVEXSc7XG4gICAgICAgIH0gZWxzZSBpZiAoZmllbGRTZXQgJiYgZW50cnkudmFsdWUgJiYgdHlwZW9mIGVudHJ5LnZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHJlY29yZGVyVmFsdWUgPSB0aGlzLl9zY3J1YkZpZWxkcyhlbnRyeS52YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZmllbGRTZXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlY29yZGVyVmFsdWUgPSBlbnRyeS52YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAga2V5LFxuICAgICAgICAgIHZhbHVlOiByZWNvcmRlclZhbHVlLFxuICAgICAgICAgIG9wZXJhdGlvbjogZW50cnkub3BlcmF0aW9uLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubm90aWZ5Q29tbWl0KGNvbW1pdE11dGF0aW9ucyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBTd2FsbG93IOKAlCByZWNvcmRlciBlcnJvcnMgbXVzdCBub3QgYWJvcnQgdGhlIHRyYXZlcnNhbC5cbiAgICAgIC8vIEluZGl2aWR1YWwgcmVjb3JkZXIgZXJyb3JzIGFyZSBhbHJlYWR5IGlzb2xhdGVkIGJ5IF9pbnZva2VIb29rLlxuICAgIH1cbiAgfVxuXG4gIC8vIOKUgOKUgCBEZWJ1ZyAvIERpYWdub3N0aWNzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGFkZERlYnVnSW5mbyhrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9zdGFnZUNvbnRleHQuYWRkTG9nKGtleSwgdmFsdWUpO1xuICB9XG5cbiAgYWRkRGVidWdNZXNzYWdlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fc3RhZ2VDb250ZXh0LmFkZExvZygnbWVzc2FnZXMnLCBbdmFsdWVdKTtcbiAgfVxuXG4gIGFkZEVycm9ySW5mbyhrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9zdGFnZUNvbnRleHQuYWRkRXJyb3Ioa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBhZGRNZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX3N0YWdlQ29udGV4dC5hZGRNZXRyaWMobWV0cmljTmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgYWRkRXZhbChtZXRyaWNOYW1lOiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fc3RhZ2VDb250ZXh0LmFkZEV2YWwobWV0cmljTmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgLy8g4pSA4pSAIE5vbi1UcmFja2luZyBTdGF0ZSBJbnNwZWN0aW9uIChmb3IgVHlwZWRTY29wZSBwcm94eSBpbnRlcm5hbHMpIOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKiBSZXR1cm5zIGFsbCBzdGF0ZSBrZXlzIHdpdGhvdXQgZmlyaW5nIG9uUmVhZC4gVXNlZCBieSBUeXBlZFNjb3BlIG93bktleXMvaGFzIHRyYXBzLiAqL1xuICBnZXRTdGF0ZUtleXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5fc3RhZ2VDb250ZXh0LmdldFZhbHVlKFtdLCB1bmRlZmluZWQpO1xuICAgIGlmICghc25hcHNob3QgfHwgdHlwZW9mIHNuYXBzaG90ICE9PSAnb2JqZWN0JykgcmV0dXJuIFtdO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzbmFwc2hvdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG4gIH1cblxuICAvKiogQ2hlY2sga2V5IGV4aXN0ZW5jZSB3aXRob3V0IGZpcmluZyBvblJlYWQuIFVzZWQgYnkgVHlwZWRTY29wZSBoYXMgdHJhcC5cbiAgICogIENvbnRyYWN0OiByZXR1cm5zIGZhbHNlIGZvciBrZXlzIG5ldmVyIHNldCBPUiBrZXlzIHNldCB0byB1bmRlZmluZWQuXG4gICAqICBUaGlzIG1hdGNoZXMgZGVsZXRlVmFsdWUoKSBzZW1hbnRpY3MgKHNldHMgdG8gdW5kZWZpbmVkID0gZGVsZXRlZCkuICovXG4gIGhhc0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGFnZUNvbnRleHQuZ2V0VmFsdWUoW10sIGtleSkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKiBSZWFkIHN0YXRlIHdpdGhvdXQgZmlyaW5nIG9uUmVhZC4gVXNlZCBieSBhcnJheSBwcm94eSBnZXRDdXJyZW50KCkgdG8gYXZvaWRcbiAgICogIHBoYW50b20gcmVhZHMgb24gaW50ZXJuYWwgYXJyYXkgb3BlcmF0aW9ucyAoLmxlbmd0aCwgLmhhcywgaXRlcmF0aW9uLCBldGMuKS5cbiAgICogIFRoZSBpbml0aWFsIHByb3BlcnR5IGFjY2VzcyBmaXJlcyBvbmUgdHJhY2tlZCBvblJlYWQgdmlhIGdldFZhbHVlKCk7IHN1YnNlcXVlbnRcbiAgICogIGludGVybmFsIGFycmF5IG9wZXJhdGlvbnMgdXNlIHRoaXMgbWV0aG9kIHRvIHN0YXkgc2lsZW50LlxuICAgKiAgTk9URTogTGlrZSBnZXRWYWx1ZSgpLCByZXR1cm5zIHRoZSByYXcgdmFsdWUgdG8gdGhlIGNhbGxlci4gUmVkYWN0aW9uIGFwcGxpZXNcbiAgICogIG9ubHkgdG8gcmVjb3JkZXIgZGlzcGF0Y2gg4oCUIGl0IGRvZXMgbm90IGZpbHRlciB0aGUgcmV0dXJuZWQgdmFsdWUuIFRoaXMgbWF0Y2hlc1xuICAgKiAgdGhlIGV4aXN0aW5nIGdldFZhbHVlKCkgY29udHJhY3Qgd2hlcmUgdXNlciBjb2RlIGFsd2F5cyByZWNlaXZlcyByYXcgZGF0YS4gKi9cbiAgZ2V0VmFsdWVTaWxlbnQoa2V5Pzogc3RyaW5nKTogdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWdlQ29udGV4dC5nZXRWYWx1ZURpcmVjdChbXSwga2V5KTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBTdGF0ZSBBY2Nlc3Mg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgZ2V0SW5pdGlhbFZhbHVlRm9yKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWdlQ29udGV4dC5nZXRHbG9iYWw/LihrZXkpO1xuICB9XG5cbiAgZ2V0VmFsdWUoa2V5Pzogc3RyaW5nKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9zdGFnZUNvbnRleHQuZ2V0VmFsdWUoW10sIGtleSk7XG5cbiAgICBpZiAodGhpcy5fcmVjb3JkZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGlzUmVkYWN0ZWQgPSBrZXkgIT09IHVuZGVmaW5lZCAmJiB0aGlzLl9pc0tleVJlZGFjdGVkKGtleSk7XG4gICAgICBjb25zdCBmaWVsZFNldCA9IGtleSAhPT0gdW5kZWZpbmVkID8gdGhpcy5fcmVkYWN0ZWRGaWVsZHNCeUtleS5nZXQoa2V5KSA6IHVuZGVmaW5lZDtcblxuICAgICAgbGV0IHJlY29yZGVyVmFsdWU6IHVua25vd247XG4gICAgICBpZiAoaXNSZWRhY3RlZCkge1xuICAgICAgICByZWNvcmRlclZhbHVlID0gJ1tSRURBQ1RFRF0nO1xuICAgICAgfSBlbHNlIGlmIChmaWVsZFNldCAmJiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJlY29yZGVyVmFsdWUgPSB0aGlzLl9zY3J1YkZpZWxkcyh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZmllbGRTZXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVjb3JkZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pbnZva2VIb29rKCdvblJlYWQnLCB7XG4gICAgICAgIHN0YWdlTmFtZTogdGhpcy5fc3RhZ2VOYW1lLFxuICAgICAgICBwaXBlbGluZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVuSWQsXG4gICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAga2V5LFxuICAgICAgICB2YWx1ZTogcmVjb3JkZXJWYWx1ZSxcbiAgICAgICAgcmVkYWN0ZWQ6IGlzUmVkYWN0ZWQgfHwgZmllbGRTZXQgIT09IHVuZGVmaW5lZCB8fCB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzZXRWYWx1ZShrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24sIHNob3VsZFJlZGFjdD86IGJvb2xlYW4sIGRlc2NyaXB0aW9uPzogc3RyaW5nKSB7XG4gICAgYXNzZXJ0Tm90UmVhZG9ubHkodGhpcy5fcmVhZE9ubHlWYWx1ZXMsIGtleSwgJ3dyaXRlJyk7XG5cbiAgICAvLyBEZXYtbW9kZTogd2FybiBpZiB0aGUgdmFsdWUgY29udGFpbnMgY2lyY3VsYXIgcmVmZXJlbmNlcy5cbiAgICAvLyBDaGVjayBBRlRFUiBhc3NlcnROb3RSZWFkb25seSDigJQgZG9uJ3Qgd2FybiBmb3Igd3JpdGVzIHRoYXQgd2lsbCBiZSBibG9ja2VkLlxuICAgIC8vIENpcmN1bGFyIHZhbHVlcyB3b3JrICh0ZXJtaW5hbCBwcm94eSBoYW5kbGVzIHRoZW0pIGJ1dCBjYW4gcHJvZHVjZVxuICAgIC8vIHN1cnByaXNpbmcgYmVoYXZpb3IgaW4gbmFycmF0aXZlLCBKU09OIHNlcmlhbGl6YXRpb24sIGFuZCBzbmFwc2hvdHMuXG4gICAgaWYgKGlzRGV2TW9kZSgpICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChoYXNDaXJjdWxhclJlZmVyZW5jZSh2YWx1ZSkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbZm9vdHByaW50XSBDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gc2V0VmFsdWUoJyR7a2V5fScpLiBgICtcbiAgICAgICAgICAgICdXcml0ZXMgcGFzdCB0aGUgY3ljbGUgZGVwdGggd2lsbCB1c2UgdGVybWluYWwgcHJveHkgdHJhY2tpbmcuICcgK1xuICAgICAgICAgICAgJ0NvbnNpZGVyIGZsYXR0ZW5pbmcgdGhlIGRhdGEgc3RydWN0dXJlLicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQXV0by1yZWRhY3QgaWYga2V5IG1hdGNoZXMgcG9saWN5IChleGFjdCBrZXlzIG9yIHBhdHRlcm5zKSwgb3IgaWYgdGhlIGtleSB3YXNcbiAgICAvLyBwcmV2aW91c2x5IG1hcmtlZCByZWRhY3RlZCAoZS5nLiBjYXJyaWVkIG92ZXIgZnJvbSBhIHN1YmZsb3cgdmlhIG91dHB1dE1hcHBlcikuXG4gICAgY29uc3QgZWZmZWN0aXZlUmVkYWN0ID0gc2hvdWxkUmVkYWN0IHx8IHRoaXMuX2lzUG9saWN5UmVkYWN0ZWQoa2V5KSB8fCB0aGlzLl9yZWRhY3RlZEtleXMuaGFzKGtleSk7XG5cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9zdGFnZUNvbnRleHQuc2V0T2JqZWN0KFtdLCBrZXksIHZhbHVlLCBlZmZlY3RpdmVSZWRhY3QsIGRlc2NyaXB0aW9uKTtcblxuICAgIGlmIChlZmZlY3RpdmVSZWRhY3QpIHtcbiAgICAgIHRoaXMuX3JlZGFjdGVkS2V5cy5hZGQoa2V5KTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgZmllbGQtbGV2ZWwgcmVkYWN0aW9uIGZyb20gcG9saWN5XG4gICAgY29uc3QgZmllbGRTZXQgPSB0aGlzLl9yZWRhY3RlZEZpZWxkc0J5S2V5LmdldChrZXkpO1xuXG4gICAgaWYgKHRoaXMuX3JlY29yZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgcmVjb3JkZXJWYWx1ZTogdW5rbm93bjtcbiAgICAgIGlmIChlZmZlY3RpdmVSZWRhY3QpIHtcbiAgICAgICAgcmVjb3JkZXJWYWx1ZSA9ICdbUkVEQUNURURdJztcbiAgICAgIH0gZWxzZSBpZiAoZmllbGRTZXQgJiYgdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZWNvcmRlclZhbHVlID0gdGhpcy5fc2NydWJGaWVsZHModmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGZpZWxkU2V0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlY29yZGVyVmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5faW52b2tlSG9vaygnb25Xcml0ZScsIHtcbiAgICAgICAgc3RhZ2VOYW1lOiB0aGlzLl9zdGFnZU5hbWUsXG4gICAgICAgIHBpcGVsaW5lSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW5JZCxcbiAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICBrZXksXG4gICAgICAgIHZhbHVlOiByZWNvcmRlclZhbHVlLFxuICAgICAgICBvcGVyYXRpb246ICdzZXQnLFxuICAgICAgICByZWRhY3RlZDogZWZmZWN0aXZlUmVkYWN0IHx8IGZpZWxkU2V0ICE9PSB1bmRlZmluZWQgfHwgdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biwgZGVzY3JpcHRpb24/OiBzdHJpbmcpIHtcbiAgICBhc3NlcnROb3RSZWFkb25seSh0aGlzLl9yZWFkT25seVZhbHVlcywga2V5LCAnd3JpdGUnKTtcblxuICAgIC8vIERldi1tb2RlOiBzYW1lIGNpcmN1bGFyIGNoZWNrIGFzIHNldFZhbHVlIChtZXJnZSB0YXJnZXRzIGNhbiBiZSBjaXJjdWxhciB0b28pXG4gICAgaWYgKGlzRGV2TW9kZSgpICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChoYXNDaXJjdWxhclJlZmVyZW5jZSh2YWx1ZSkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbZm9vdHByaW50XSBDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gdXBkYXRlVmFsdWUoJyR7a2V5fScpLiBgICtcbiAgICAgICAgICAgICdDb25zaWRlciBmbGF0dGVuaW5nIHRoZSBkYXRhIHN0cnVjdHVyZS4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGlzUmVkYWN0ZWQgPSB0aGlzLl9pc0tleVJlZGFjdGVkKGtleSkgfHwgdGhpcy5faXNQb2xpY3lSZWRhY3RlZChrZXkpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3N0YWdlQ29udGV4dC51cGRhdGVPYmplY3QoW10sIGtleSwgdmFsdWUsIGRlc2NyaXB0aW9uLCBpc1JlZGFjdGVkKTtcblxuICAgIGlmICh0aGlzLl9yZWNvcmRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmllbGRTZXQgPSB0aGlzLl9yZWRhY3RlZEZpZWxkc0J5S2V5LmdldChrZXkpO1xuXG4gICAgICBsZXQgcmVjb3JkZXJWYWx1ZTogdW5rbm93bjtcbiAgICAgIGlmIChpc1JlZGFjdGVkKSB7XG4gICAgICAgIHJlY29yZGVyVmFsdWUgPSAnW1JFREFDVEVEXSc7XG4gICAgICB9IGVsc2UgaWYgKGZpZWxkU2V0ICYmIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmVjb3JkZXJWYWx1ZSA9IHRoaXMuX3NjcnViRmllbGRzKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBmaWVsZFNldCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWNvcmRlclZhbHVlID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2ludm9rZUhvb2soJ29uV3JpdGUnLCB7XG4gICAgICAgIHN0YWdlTmFtZTogdGhpcy5fc3RhZ2VOYW1lLFxuICAgICAgICBwaXBlbGluZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVuSWQsXG4gICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAga2V5LFxuICAgICAgICB2YWx1ZTogcmVjb3JkZXJWYWx1ZSxcbiAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgcmVkYWN0ZWQ6IGlzUmVkYWN0ZWQgfHwgZmllbGRTZXQgIT09IHVuZGVmaW5lZCB8fCB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZGVsZXRlVmFsdWUoa2V5OiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nKSB7XG4gICAgYXNzZXJ0Tm90UmVhZG9ubHkodGhpcy5fcmVhZE9ubHlWYWx1ZXMsIGtleSwgJ2RlbGV0ZScpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fc3RhZ2VDb250ZXh0LnNldE9iamVjdChbXSwga2V5LCB1bmRlZmluZWQsIGZhbHNlLCBkZXNjcmlwdGlvbiA/PyBgZGVsZXRlZCAke2tleX1gLCAnZGVsZXRlJyk7XG5cbiAgICAvLyBEZWxldGluZyBhIHJlZGFjdGVkIGtleSBjbGVhcnMgaXRzIHJlZGFjdGlvbiBzdGF0dXNcbiAgICB0aGlzLl9yZWRhY3RlZEtleXMuZGVsZXRlKGtleSk7XG5cbiAgICBpZiAodGhpcy5fcmVjb3JkZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuX2ludm9rZUhvb2soJ29uV3JpdGUnLCB7XG4gICAgICAgIHN0YWdlTmFtZTogdGhpcy5fc3RhZ2VOYW1lLFxuICAgICAgICBwaXBlbGluZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVuSWQsXG4gICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAga2V5LFxuICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICBvcGVyYXRpb246ICdkZWxldGUnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgc2V0R2xvYmFsKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biwgZGVzY3JpcHRpb24/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhZ2VDb250ZXh0LnNldEdsb2JhbD8uKGtleSwgdmFsdWUsIGRlc2NyaXB0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZ2V0R2xvYmFsKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWdlQ29udGV4dC5nZXRHbG9iYWw/LihrZXkpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzZXRPYmplY3RJblJvb3Qoa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWdlQ29udGV4dC5zZXRSb290Py4oa2V5LCB2YWx1ZSk7XG4gIH1cblxuICAvLyDilIDilIAgUmVhZC1vbmx5ICsgbWlzYyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcmVhZG9ubHkgaW5wdXQgdmFsdWVzIHBhc3NlZCB0byB0aGlzIHBpcGVsaW5lLCBjYXN0IHRvIGBUYC5cbiAgICogVGhlIHJldHVybmVkIG9iamVjdCBpcyBkZWVwbHkgZnJvemVuIOKAlCBhbnkgYXR0ZW1wdCB0byBtdXRhdGUgaXQgdGhyb3dzLlxuICAgKiBDYWNoZWQgYXQgY29uc3RydWN0aW9uIHRpbWUgZm9yIHplcm8tYWxsb2NhdGlvbiByZXBlYXRlZCBhY2Nlc3MuXG4gICAqXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgeyBhcHBsaWNhbnROYW1lLCBpbmNvbWUgfSA9IHNjb3BlLmdldEFyZ3M8eyBhcHBsaWNhbnROYW1lOiBzdHJpbmc7IGluY29tZTogbnVtYmVyIH0+KCk7XG4gICAqIGBgYFxuICAgKi9cbiAgZ2V0QXJnczxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KCk6IFQge1xuICAgIHJldHVybiB0aGlzLl9mcm96ZW5BcmdzIGFzIFQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZXhlY3V0aW9uIGVudmlyb25tZW50IOKAlCByZWFkLW9ubHkgaW5mcmFzdHJ1Y3R1cmUgdmFsdWVzXG4gICAqIHRoYXQgcHJvcGFnYXRlIHRocm91Z2ggbmVzdGVkIGV4ZWN1dG9ycyAobGlrZSBgcHJvY2Vzcy5lbnZgIGZvciBmbG93Y2hhcnRzKS5cbiAgICpcbiAgICogQ29udGFpbnM6IHNpZ25hbCAoYWJvcnQpLCB0aW1lb3V0TXMsIHRyYWNlSWQuXG4gICAqIEZyb3plbiBhdCBjb25zdHJ1Y3Rpb24gdGltZS4gSW5oZXJpdGVkIGJ5IHN1YmZsb3dzIGF1dG9tYXRpY2FsbHkuXG4gICAqXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgeyBzaWduYWwsIHRyYWNlSWQgfSA9IHNjb3BlLmdldEVudigpO1xuICAgKiBgYGBcbiAgICovXG4gIGdldEVudigpOiBSZWFkb25seTxFeGVjdXRpb25FbnY+IHtcbiAgICByZXR1cm4gdGhpcy5fZXhlY3V0aW9uRW52O1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRQaXBlbGluZUlkKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGFnZUNvbnRleHQucnVuSWQ7XG4gIH1cblxuICAvLyDilIDilIAgSW50ZXJuYWwg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqIENoZWNrcyBpZiBhIGtleSBpcyByZWRhY3RlZCAoZXhwbGljaXQgX3JlZGFjdGVkS2V5cyBzZXQpLiAqL1xuICBwcml2YXRlIF9pc0tleVJlZGFjdGVkKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZGFjdGVkS2V5cy5oYXMoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBrZXkgc2hvdWxkIGJlIGF1dG8tcmVkYWN0ZWQgYnkgdGhlIHBvbGljeSAoZXhhY3Qga2V5cyArIHBhdHRlcm5zKS5cbiAgICpcbiAgICogUmVEb1MgZ3VhcmQ6IHBhdHRlcm4gdGVzdGluZyBpcyBjYXBwZWQgYXQgTUFYX1BBVFRFUk5fS0VZX0xFTiBjaGFyYWN0ZXJzLlxuICAgKiBTY29wZSBzdGF0ZSBrZXlzIGFyZSBhbHdheXMgc2hvcnQgaWRlbnRpZmllcnM7IGFueSBrZXkgZXhjZWVkaW5nIHRoZSBjYXBcbiAgICogaXMgYWxtb3N0IGNlcnRhaW5seSBub3QgYSBsZWdpdGltYXRlIHNjb3BlIGtleSwgc28gc2tpcHBpbmcgcGF0dGVybiBtYXRjaGluZ1xuICAgKiBmb3IgaXQgZG9lcyBub3QgcmlzayBsZWFraW5nIFBJSS4gRXhhY3Qta2V5IG1hdGNoaW5nIChBcnJheS5pbmNsdWRlcykgaXNcbiAgICogc3RpbGwgYXBwbGllZCByZWdhcmRsZXNzIG9mIGxlbmd0aCBhbmQgaXMgbm90IHZ1bG5lcmFibGUgdG8gUmVEb1MuXG4gICAqL1xuICBwcml2YXRlIF9pc1BvbGljeVJlZGFjdGVkKGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLl9yZWRhY3Rpb25Qb2xpY3kpIHJldHVybiBmYWxzZTtcbiAgICBpZiAodGhpcy5fcmVkYWN0aW9uUG9saWN5LmtleXM/LmluY2x1ZGVzKGtleSkpIHJldHVybiB0cnVlO1xuICAgIGlmICh0aGlzLl9yZWRhY3Rpb25Qb2xpY3kucGF0dGVybnMpIHtcbiAgICAgIGlmIChrZXkubGVuZ3RoID4gU2NvcGVGYWNhZGUuX01BWF9QQVRURVJOX0tFWV9MRU4pIHtcbiAgICAgICAgLy8gRGV2LW1vZGUgd2FybmluZzogcGF0dGVybiBtYXRjaGluZyB3YXMgc2lsZW50bHkgc2tpcHBlZCBmb3IgdGhpcyBrZXkuXG4gICAgICAgIC8vIFVzZSBwb2xpY3kua2V5cyBmb3IgZXhhY3QgbWF0Y2hpbmcgb2YgbG9uZyBrZXkgbmFtZXMuXG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFtmb290cHJpbnRdIFJlZGFjdGlvblBvbGljeToga2V5ICcke2tleS5zbGljZSgwLCA0MCl9Li4uJyAoJHtrZXkubGVuZ3RofSBjaGFycykgZXhjZWVkcyBgICtcbiAgICAgICAgICAgICAgJ3RoZSBwYXR0ZXJuLW1hdGNoaW5nIGxlbmd0aCBjYXAgYW5kIHdhcyBza2lwcGVkLiAnICtcbiAgICAgICAgICAgICAgJ1VzZSBwb2xpY3kua2V5cyBmb3IgZXhhY3QgbWF0Y2hpbmcgb2YgbG9uZyBrZXkgbmFtZXMuJyxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy5fcmVkYWN0aW9uUG9saWN5LnBhdHRlcm5zKSB7XG4gICAgICAgICAgcC5sYXN0SW5kZXggPSAwOyAvLyBSZXNldCBzdGF0ZWZ1bCBnbG9iYWwvc3RpY2t5IHJlZ2V4ZXNcbiAgICAgICAgICBpZiAocC50ZXN0KGtleSkpIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXhpbXVtIGtleSBsZW5ndGggKGNoYXJhY3RlcnMpIHRoYXQgd2lsbCBiZSB0ZXN0ZWQgYWdhaW5zdCByZWdleCByZWRhY3Rpb25cbiAgICogcGF0dGVybnMuIEtleXMgbG9uZ2VyIHRoYW4gdGhpcyBhcmUgc2tpcHBlZCBmb3IgcGF0dGVybiBtYXRjaGluZyB0byBwcmV2ZW50XG4gICAqIFJlRG9TOiBhIHBhdGhvbG9naWNhbCByZWdleCB0ZXN0ZWQgYWdhaW5zdCBhbiB1bmJvdW5kZWRseSBsb25nIGtleSBzdHJpbmdcbiAgICogY2FuIGNhdXNlIGNhdGFzdHJvcGhpYyBiYWNrdHJhY2tpbmcuXG4gICAqXG4gICAqIDI1NiBjaGFyYWN0ZXJzIGNvbWZvcnRhYmx5IGV4Y2VlZHMgYW55IHJlYWxpc3RpYyBzY29wZS1zdGF0ZSBrZXkgbmFtZS5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9NQVhfUEFUVEVSTl9LRVlfTEVOID0gMjU2O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgZGVlcC1jbG9uZWQgY29weSB3aXRoIHNwZWNpZmllZCBmaWVsZHMgcmVwbGFjZWQgYnkgJ1tSRURBQ1RFRF0nLlxuICAgKiBTdXBwb3J0cyBkb3Qtbm90YXRpb24gcGF0aHMgKGUuZy4gJ2FkZHJlc3MuemlwJykgZm9yIG5lc3RlZCBvYmplY3RzLlxuICAgKi9cbiAgcHJpdmF0ZSBfc2NydWJGaWVsZHMob2JqOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZmllbGRzOiBTZXQ8c3RyaW5nPik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICBjb25zdCBjb3B5ID0gc3RydWN0dXJlZENsb25lKG9iaik7XG4gICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgIGlmIChmaWVsZC5pbmNsdWRlcygnLicpICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29weSwgZmllbGQpKSB7XG4gICAgICAgIC8vIERvdC1ub3RhdGlvbiBwYXRoIOKGkiBkZWVwIHNjcnViIChvbmx5IGlmIG5vdCBhIGxpdGVyYWwgZmxhdCBrZXkpXG4gICAgICAgIGlmIChsb2Rhc2hIYXMoY29weSwgZmllbGQpKSB7XG4gICAgICAgICAgbG9kYXNoU2V0KGNvcHksIGZpZWxkLCAnW1JFREFDVEVEXScpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNvcHksIGZpZWxkKSkge1xuICAgICAgICAgIGNvcHlbZmllbGRdID0gJ1tSRURBQ1RFRF0nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb3B5O1xuICB9XG5cbiAgcHJpdmF0ZSBfaW52b2tlSG9vayhob29rOiBrZXlvZiBPbWl0PFJlY29yZGVyLCAnaWQnPiwgZXZlbnQ6IHVua25vd24pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHJlY29yZGVyIG9mIHRoaXMuX3JlY29yZGVycykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaG9va0ZuID0gcmVjb3JkZXJbaG9va107XG4gICAgICAgIGlmICh0eXBlb2YgaG9va0ZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgKGhvb2tGbiBhcyAoZXZlbnQ6IHVua25vd24pID0+IHZvaWQpLmNhbGwocmVjb3JkZXIsIGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGhvb2sgIT09ICdvbkVycm9yJykge1xuICAgICAgICAgIHRoaXMuX2ludm9rZUhvb2soJ29uRXJyb3InLCB7XG4gICAgICAgICAgICBzdGFnZU5hbWU6IHRoaXMuX3N0YWdlTmFtZSxcbiAgICAgICAgICAgIHBpcGVsaW5lSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW5JZCxcbiAgICAgICAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgIGVycm9yOiBlcnJvciBhcyBFcnJvcixcbiAgICAgICAgICAgIG9wZXJhdGlvbjogaG9vayA9PT0gJ29uUmVhZCcgPyAncmVhZCcgOiBob29rID09PSAnb25Db21taXQnID8gJ2NvbW1pdCcgOiAnd3JpdGUnLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
501
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NvcGVGYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL1Njb3BlRmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBR0gsT0FBTyxFQUFFLFNBQVMsSUFBSSxTQUFTLEVBQUUsU0FBUyxJQUFJLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUdwRixNQUFNLE9BQU8sV0FBVztJQWtCdEIsWUFBWSxPQUFxQixFQUFFLFNBQWlCLEVBQUUsY0FBd0IsRUFBRSxZQUEyQjtRQUxuRyxlQUFVLEdBQWUsRUFBRSxDQUFDO1FBRzVCLHlCQUFvQixHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBR2pFLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUV2Qyw4RkFBOEY7UUFDOUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFD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T0FBTyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ2hDLE1BQW1DLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDN0QsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRTt3QkFDMUIsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO3dCQUMxQixPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPO3dCQUNuQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjO3dCQUNqRCxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLO3dCQUNwQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDckIsS0FBSyxFQUFFLEtBQWM7d0JBQ3JCLFNBQVMsRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTztxQkFDakYsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7O0FBbmlCc0IsaUJBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEFBQS9CLENBQWdDO0FBK2U1RDs7Ozs7OztHQU9HO0FBQ3FCLGdDQUFvQixHQUFHLEdBQUcsQUFBTixDQUFPIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTY29wZUZhY2FkZSDigJQgQmFzZSBjbGFzcyB0aGF0IGxpYnJhcnkgY29uc3VtZXJzIGV4dGVuZCB0byBjcmVhdGUgY3VzdG9tIHNjb3BlIGNsYXNzZXNcbiAqXG4gKiBXcmFwcyBTdGFnZUNvbnRleHQgKGZyb20gbWVtb3J5LykgdG8gcHJvdmlkZSBhIGNvbnN1bWVyLWZyaWVuZGx5IEFQSSBmb3JcbiAqIHN0YXRlIGFjY2VzcywgZGVidWcgbG9nZ2luZywgbWV0cmljcywgYW5kIHJlY29yZGVyIGhvb2tzLlxuICpcbiAqIENvbnN1bWVycyBleHRlbmQgdGhpcyBjbGFzcyB0byBhZGQgZG9tYWluLXNwZWNpZmljIHByb3BlcnRpZXM6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogY2xhc3MgTXlTY29wZSBleHRlbmRzIFNjb3BlRmFjYWRlIHtcbiAqICAgZ2V0IHVzZXJOYW1lKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLmdldFZhbHVlKCduYW1lJykgYXMgc3RyaW5nOyB9XG4gKiAgIHNldCB1c2VyTmFtZSh2YWx1ZTogc3RyaW5nKSB7IHRoaXMuc2V0VmFsdWUoJ25hbWUnLCB2YWx1ZSk7IH1cbiAqIH1cbiAqIGBgYFxuICovXG5cbmltcG9ydCB0eXBlIHsgRXhlY3V0aW9uRW52IH0gZnJvbSAnLi4vZW5naW5lL3R5cGVzLmpzJztcbmltcG9ydCB7IG5hdGl2ZUhhcyBhcyBsb2Rhc2hIYXMsIG5hdGl2ZVNldCBhcyBsb2Rhc2hTZXQgfSBmcm9tICcuLi9tZW1vcnkvcGF0aE9wcy5qcyc7XG5pbXBvcnQgeyBTdGFnZUNvbnRleHQgfSBmcm9tICcuLi9tZW1vcnkvU3RhZ2VDb250ZXh0LmpzJztcbmltcG9ydCB7IGhhc0NpcmN1bGFyUmVmZXJlbmNlLCBpc0Rldk1vZGUgfSBmcm9tICcuL2RldGVjdENpcmN1bGFyLmpzJztcbmltcG9ydCB7IGFzc2VydE5vdFJlYWRvbmx5LCBjcmVhdGVGcm96ZW5BcmdzIH0gZnJvbSAnLi9wcm90ZWN0aW9uL3JlYWRvbmx5SW5wdXQuanMnO1xuaW1wb3J0IHR5cGUgeyBDb21taXRFdmVudCwgUmVjb3JkZXIsIFJlZGFjdGlvblBvbGljeSwgUmVkYWN0aW9uUmVwb3J0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBTY29wZUZhY2FkZSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQlJBTkQgPSBTeW1ib2wuZm9yKCdTY29wZUZhY2FkZUB2MScpO1xuXG4gIHByb3RlY3RlZCBfc3RhZ2VDb250ZXh0OiBTdGFnZUNvbnRleHQ7XG4gIHByb3RlY3RlZCBfc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHByb3RlY3RlZCByZWFkb25seSBfcmVhZE9ubHlWYWx1ZXM/OiB1bmtub3duO1xuXG4gIC8qKiBDYWNoZWQgZGVlcGx5LWZyb3plbiBjb3B5IG9mIHJlYWRPbmx5VmFsdWVzIGZvciBnZXRBcmdzKCkuIENyZWF0ZWQgb25jZS4gKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZnJvemVuQXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIEV4ZWN1dGlvbiBlbnZpcm9ubWVudCDigJQgcmVhZC1vbmx5LCBpbmhlcml0ZWQgZnJvbSBwYXJlbnQgZXhlY3V0b3IuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4ZWN1dGlvbkVudjogUmVhZG9ubHk8RXhlY3V0aW9uRW52PjtcblxuICBwcml2YXRlIF9yZWNvcmRlcnM6IFJlY29yZGVyW10gPSBbXTtcbiAgcHJpdmF0ZSBfcmVkYWN0ZWRLZXlzOiBTZXQ8c3RyaW5nPjtcbiAgcHJpdmF0ZSBfcmVkYWN0aW9uUG9saWN5OiBSZWRhY3Rpb25Qb2xpY3kgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3JlZGFjdGVkRmllbGRzQnlLZXk6IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3Rvcihjb250ZXh0OiBTdGFnZUNvbnRleHQsIHN0YWdlTmFtZTogc3RyaW5nLCByZWFkT25seVZhbHVlcz86IHVua25vd24sIGV4ZWN1dGlvbkVudj86IEV4ZWN1dGlvbkVudikge1xuICAgIHRoaXMuX3N0YWdlQ29udGV4dCA9IGNvbnRleHQ7XG4gICAgdGhpcy5fc3RhZ2VOYW1lID0gc3RhZ2VOYW1lO1xuICAgIHRoaXMuX3JlYWRPbmx5VmFsdWVzID0gcmVhZE9ubHlWYWx1ZXM7XG4gICAgdGhpcy5fZnJvemVuQXJncyA9IGNyZWF0ZUZyb3plbkFyZ3MocmVhZE9ubHlWYWx1ZXMpO1xuICAgIHRoaXMuX2V4ZWN1dGlvbkVudiA9IE9iamVjdC5mcmVlemUoeyAuLi5leGVjdXRpb25FbnYgfSk7XG4gICAgdGhpcy5fcmVkYWN0ZWRLZXlzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAvLyBSZWdpc3RlciBhcyBjb21taXQgb2JzZXJ2ZXIgc28gUmVjb3JkZXIub25Db21taXQgZmlyZXMgd2hlbiBTdGFnZUNvbnRleHQuY29tbWl0KCkgaXMgY2FsbGVkXG4gICAgdGhpcy5fc3RhZ2VDb250ZXh0LnNldENvbW1pdE9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIHRoaXMuX29uQ29tbWl0RmlyZWQobXV0YXRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaGFyZSBhIHJlZGFjdGVkLWtleXMgc2V0IGFjcm9zcyBtdWx0aXBsZSBTY29wZUZhY2FkZSBpbnN0YW5jZXMuXG4gICAqIENhbGwgdGhpcyB0byBtYWtlIHJlZGFjdGlvbiBwZXJzaXN0IGFjcm9zcyBzdGFnZXMgaW4gdGhlIHNhbWUgcGlwZWxpbmUuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgdXNlU2hhcmVkUmVkYWN0ZWRLZXlzKHNoYXJlZFNldDogU2V0PHN0cmluZz4pOiB2b2lkIHtcbiAgICB0aGlzLl9yZWRhY3RlZEtleXMgPSBzaGFyZWRTZXQ7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCByZWRhY3RlZC1rZXlzIHNldCAoZm9yIHNoYXJpbmcgd2l0aCBvdGhlciBzY29wZXMpLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldFJlZGFjdGVkS2V5cygpOiBTZXQ8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZGFjdGVkS2V5cztcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBhIGRlY2xhcmF0aXZlIHJlZGFjdGlvbiBwb2xpY3kuIFRoZSBwb2xpY3kgaXMgYWRkaXRpdmUg4oCUXG4gICAqIGl0IHdvcmtzIGFsb25nc2lkZSBtYW51YWwgYHNldFZhbHVlKC4uLiwgdHJ1ZSlgIGNhbGxzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHVzZVJlZGFjdGlvblBvbGljeShwb2xpY3k6IFJlZGFjdGlvblBvbGljeSk6IHZvaWQge1xuICAgIHRoaXMuX3JlZGFjdGlvblBvbGljeSA9IHBvbGljeTtcbiAgICAvLyBQcmUtcG9wdWxhdGUgZmllbGQtbGV2ZWwgcmVkYWN0aW9uIG1hcCBmcm9tIHBvbGljeVxuICAgIGlmIChwb2xpY3kuZmllbGRzKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIGZpZWxkc10gb2YgT2JqZWN0LmVudHJpZXMocG9saWN5LmZpZWxkcykpIHtcbiAgICAgICAgdGhpcy5fcmVkYWN0ZWRGaWVsZHNCeUtleS5zZXQoa2V5LCBuZXcgU2V0KGZpZWxkcykpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZ2V0UmVkYWN0aW9uUG9saWN5KCk6IFJlZGFjdGlvblBvbGljeSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZGFjdGlvblBvbGljeTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgY29tcGxpYW5jZS1mcmllbmRseSByZXBvcnQgb2YgYWxsIHJlZGFjdGlvbiBhY3Rpdml0eS5cbiAgICogTmV2ZXIgaW5jbHVkZXMgYWN0dWFsIHZhbHVlcyDigJQgb25seSBrZXkgbmFtZXMsIGZpZWxkIG5hbWVzLCBhbmQgcGF0dGVybnMuXG4gICAqL1xuICBnZXRSZWRhY3Rpb25SZXBvcnQoKTogUmVkYWN0aW9uUmVwb3J0IHtcbiAgICBjb25zdCBmaWVsZFJlZGFjdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgZmllbGRzXSBvZiB0aGlzLl9yZWRhY3RlZEZpZWxkc0J5S2V5KSB7XG4gICAgICBmaWVsZFJlZGFjdGlvbnNba2V5XSA9IFsuLi5maWVsZHNdO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgcmVkYWN0ZWRLZXlzOiBbLi4udGhpcy5fcmVkYWN0ZWRLZXlzXSxcbiAgICAgIGZpZWxkUmVkYWN0aW9ucyxcbiAgICAgIHBhdHRlcm5zOiAodGhpcy5fcmVkYWN0aW9uUG9saWN5Py5wYXR0ZXJucyA/PyBbXSkubWFwKChwKSA9PiBwLnNvdXJjZSksXG4gICAgfTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBSZWNvcmRlciBNYW5hZ2VtZW50IOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGF0dGFjaFJlY29yZGVyKHJlY29yZGVyOiBSZWNvcmRlcik6IHZvaWQge1xuICAgIC8vIFJlcGxhY2UgZXhpc3RpbmcgcmVjb3JkZXIgd2l0aCBzYW1lIElEIChpZGVtcG90ZW50IOKAlCBwcmV2ZW50cyBkb3VibGUtY291bnRpbmcpXG4gICAgdGhpcy5fcmVjb3JkZXJzID0gdGhpcy5fcmVjb3JkZXJzLmZpbHRlcigocikgPT4gci5pZCAhPT0gcmVjb3JkZXIuaWQpO1xuICAgIHRoaXMuX3JlY29yZGVycy5wdXNoKHJlY29yZGVyKTtcbiAgfVxuXG4gIGRldGFjaFJlY29yZGVyKHJlY29yZGVySWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3JlY29yZGVycyA9IHRoaXMuX3JlY29yZGVycy5maWx0ZXIoKHIpID0+IHIuaWQgIT09IHJlY29yZGVySWQpO1xuICB9XG5cbiAgZ2V0UmVjb3JkZXJzKCk6IFJlY29yZGVyW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5fcmVjb3JkZXJzXTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgbm90aWZ5U3RhZ2VTdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnZva2VIb29rKCdvblN0YWdlU3RhcnQnLCB7XG4gICAgICBzdGFnZU5hbWU6IHRoaXMuX3N0YWdlTmFtZSxcbiAgICAgIHN0YWdlSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5zdGFnZUlkLFxuICAgICAgcnVudGltZVN0YWdlSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW50aW1lU3RhZ2VJZCxcbiAgICAgIHBpcGVsaW5lSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW5JZCxcbiAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgbm90aWZ5U3RhZ2VFbmQoZHVyYXRpb24/OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnZva2VIb29rKCdvblN0YWdlRW5kJywge1xuICAgICAgc3RhZ2VOYW1lOiB0aGlzLl9zdGFnZU5hbWUsXG4gICAgICBzdGFnZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQuc3RhZ2VJZCxcbiAgICAgIHJ1bnRpbWVTdGFnZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVudGltZVN0YWdlSWQsXG4gICAgICBwaXBlbGluZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVuSWQsXG4gICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICBkdXJhdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgbm90aWZ5UGF1c2UocGF1c2VEYXRhPzogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMuX2ludm9rZUhvb2soJ29uUGF1c2UnLCB7XG4gICAgICBzdGFnZU5hbWU6IHRoaXMuX3N0YWdlTmFtZSxcbiAgICAgIHN0YWdlSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5zdGFnZUlkLFxuICAgICAgcnVudGltZVN0YWdlSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW50aW1lU3RhZ2VJZCxcbiAgICAgIHBpcGVsaW5lSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW5JZCxcbiAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgIHBhdXNlRGF0YSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgbm90aWZ5UmVzdW1lKGhhc0lucHV0OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5faW52b2tlSG9vaygnb25SZXN1bWUnLCB7XG4gICAgICBzdGFnZU5hbWU6IHRoaXMuX3N0YWdlTmFtZSxcbiAgICAgIHN0YWdlSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5zdGFnZUlkLFxuICAgICAgcnVudGltZVN0YWdlSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW50aW1lU3RhZ2VJZCxcbiAgICAgIHBpcGVsaW5lSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW5JZCxcbiAgICAgIHRpbWVzdGFtcDogRGF0ZS5ub3coKSxcbiAgICAgIGhhc0lucHV0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBub3RpZnlDb21taXQobXV0YXRpb25zOiBDb21taXRFdmVudFsnbXV0YXRpb25zJ10pOiB2b2lkIHtcbiAgICB0aGlzLl9pbnZva2VIb29rKCdvbkNvbW1pdCcsIHtcbiAgICAgIHN0YWdlTmFtZTogdGhpcy5fc3RhZ2VOYW1lLFxuICAgICAgc3RhZ2VJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnN0YWdlSWQsXG4gICAgICBydW50aW1lU3RhZ2VJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnJ1bnRpbWVTdGFnZUlkLFxuICAgICAgcGlwZWxpbmVJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnJ1bklkLFxuICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgbXV0YXRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIENhbGxlZCBieSBTdGFnZUNvbnRleHQuY29tbWl0KCkgb2JzZXJ2ZXIuIENvbnZlcnRzIHRyYWNrZWQgd3JpdGVzIHRvIENvbW1pdEV2ZW50IGZvcm1hdC5cbiAgICogIEVycm9ycyBhcmUgY2F1Z2h0IHRvIHByZXZlbnQgcmVjb3JkZXIgaXNzdWVzIGZyb20gYWJvcnRpbmcgdGhlIHRyYXZlcnNhbC4gKi9cbiAgcHJpdmF0ZSBfb25Db21taXRGaXJlZChtdXRhdGlvbnM6IFJlY29yZDxzdHJpbmcsIHsgdmFsdWU6IHVua25vd247IG9wZXJhdGlvbjogJ3NldCcgfCAndXBkYXRlJyB8ICdkZWxldGUnIH0+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JlY29yZGVycy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb21taXRNdXRhdGlvbnM6IENvbW1pdEV2ZW50WydtdXRhdGlvbnMnXSA9IE9iamVjdC5lbnRyaWVzKG11dGF0aW9ucykubWFwKChba2V5LCBlbnRyeV0pID0+IHtcbiAgICAgICAgY29uc3QgaXNSZWRhY3RlZCA9IHRoaXMuX2lzS2V5UmVkYWN0ZWQoa2V5KSB8fCB0aGlzLl9pc1BvbGljeVJlZGFjdGVkKGtleSk7XG4gICAgICAgIGNvbnN0IGZpZWxkU2V0ID0gdGhpcy5fcmVkYWN0ZWRGaWVsZHNCeUtleS5nZXQoa2V5KTtcblxuICAgICAgICBsZXQgcmVjb3JkZXJWYWx1ZTogdW5rbm93bjtcbiAgICAgICAgaWYgKGlzUmVkYWN0ZWQpIHtcbiAgICAgICAgICByZWNvcmRlclZhbHVlID0gJ1tSRURBQ1RFRF0nO1xuICAgICAgICB9IGVsc2UgaWYgKGZpZWxkU2V0ICYmIGVudHJ5LnZhbHVlICYmIHR5cGVvZiBlbnRyeS52YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICByZWNvcmRlclZhbHVlID0gdGhpcy5fc2NydWJGaWVsZHMoZW50cnkudmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGZpZWxkU2V0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWNvcmRlclZhbHVlID0gZW50cnkudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICB2YWx1ZTogcmVjb3JkZXJWYWx1ZSxcbiAgICAgICAgICBvcGVyYXRpb246IGVudHJ5Lm9wZXJhdGlvbixcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLm5vdGlmeUNvbW1pdChjb21taXRNdXRhdGlvbnMpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU3dhbGxvdyDigJQgcmVjb3JkZXIgZXJyb3JzIG11c3Qgbm90IGFib3J0IHRoZSB0cmF2ZXJzYWwuXG4gICAgICAvLyBJbmRpdmlkdWFsIHJlY29yZGVyIGVycm9ycyBhcmUgYWxyZWFkeSBpc29sYXRlZCBieSBfaW52b2tlSG9vay5cbiAgICB9XG4gIH1cblxuICAvLyDilIDilIAgRGVidWcgLyBEaWFnbm9zdGljcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICBhZGREZWJ1Z0luZm8oa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fc3RhZ2VDb250ZXh0LmFkZExvZyhrZXksIHZhbHVlKTtcbiAgfVxuXG4gIGFkZERlYnVnTWVzc2FnZSh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX3N0YWdlQ29udGV4dC5hZGRMb2coJ21lc3NhZ2VzJywgW3ZhbHVlXSk7XG4gIH1cblxuICBhZGRFcnJvckluZm8oa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fc3RhZ2VDb250ZXh0LmFkZEVycm9yKGtleSwgdmFsdWUpO1xuICB9XG5cbiAgYWRkTWV0cmljKG1ldHJpY05hbWU6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLl9zdGFnZUNvbnRleHQuYWRkTWV0cmljKG1ldHJpY05hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIGFkZEV2YWwobWV0cmljTmFtZTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuX3N0YWdlQ29udGV4dC5hZGRFdmFsKG1ldHJpY05hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBOb24tVHJhY2tpbmcgU3RhdGUgSW5zcGVjdGlvbiAoZm9yIFR5cGVkU2NvcGUgcHJveHkgaW50ZXJuYWxzKSDilIDilIDilIDilIDilIDilIBcblxuICAvKiogUmV0dXJucyBhbGwgc3RhdGUga2V5cyB3aXRob3V0IGZpcmluZyBvblJlYWQuIFVzZWQgYnkgVHlwZWRTY29wZSBvd25LZXlzL2hhcyB0cmFwcy4gKi9cbiAgZ2V0U3RhdGVLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IHRoaXMuX3N0YWdlQ29udGV4dC5nZXRWYWx1ZShbXSwgdW5kZWZpbmVkKTtcbiAgICBpZiAoIXNuYXBzaG90IHx8IHR5cGVvZiBzbmFwc2hvdCAhPT0gJ29iamVjdCcpIHJldHVybiBbXTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc25hcHNob3QgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pO1xuICB9XG5cbiAgLyoqIENoZWNrIGtleSBleGlzdGVuY2Ugd2l0aG91dCBmaXJpbmcgb25SZWFkLiBVc2VkIGJ5IFR5cGVkU2NvcGUgaGFzIHRyYXAuXG4gICAqICBDb250cmFjdDogcmV0dXJucyBmYWxzZSBmb3Iga2V5cyBuZXZlciBzZXQgT1Iga2V5cyBzZXQgdG8gdW5kZWZpbmVkLlxuICAgKiAgVGhpcyBtYXRjaGVzIGRlbGV0ZVZhbHVlKCkgc2VtYW50aWNzIChzZXRzIHRvIHVuZGVmaW5lZCA9IGRlbGV0ZWQpLiAqL1xuICBoYXNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhZ2VDb250ZXh0LmdldFZhbHVlKFtdLCBrZXkpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKiogUmVhZCBzdGF0ZSB3aXRob3V0IGZpcmluZyBvblJlYWQuIFVzZWQgYnkgYXJyYXkgcHJveHkgZ2V0Q3VycmVudCgpIHRvIGF2b2lkXG4gICAqICBwaGFudG9tIHJlYWRzIG9uIGludGVybmFsIGFycmF5IG9wZXJhdGlvbnMgKC5sZW5ndGgsIC5oYXMsIGl0ZXJhdGlvbiwgZXRjLikuXG4gICAqICBUaGUgaW5pdGlhbCBwcm9wZXJ0eSBhY2Nlc3MgZmlyZXMgb25lIHRyYWNrZWQgb25SZWFkIHZpYSBnZXRWYWx1ZSgpOyBzdWJzZXF1ZW50XG4gICAqICBpbnRlcm5hbCBhcnJheSBvcGVyYXRpb25zIHVzZSB0aGlzIG1ldGhvZCB0byBzdGF5IHNpbGVudC5cbiAgICogIE5PVEU6IExpa2UgZ2V0VmFsdWUoKSwgcmV0dXJucyB0aGUgcmF3IHZhbHVlIHRvIHRoZSBjYWxsZXIuIFJlZGFjdGlvbiBhcHBsaWVzXG4gICAqICBvbmx5IHRvIHJlY29yZGVyIGRpc3BhdGNoIOKAlCBpdCBkb2VzIG5vdCBmaWx0ZXIgdGhlIHJldHVybmVkIHZhbHVlLiBUaGlzIG1hdGNoZXNcbiAgICogIHRoZSBleGlzdGluZyBnZXRWYWx1ZSgpIGNvbnRyYWN0IHdoZXJlIHVzZXIgY29kZSBhbHdheXMgcmVjZWl2ZXMgcmF3IGRhdGEuICovXG4gIGdldFZhbHVlU2lsZW50KGtleT86IHN0cmluZyk6IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLl9zdGFnZUNvbnRleHQuZ2V0VmFsdWVEaXJlY3QoW10sIGtleSk7XG4gIH1cblxuICAvLyDilIDilIAgU3RhdGUgQWNjZXNzIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIGdldEluaXRpYWxWYWx1ZUZvcihrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9zdGFnZUNvbnRleHQuZ2V0R2xvYmFsPy4oa2V5KTtcbiAgfVxuXG4gIGdldFZhbHVlKGtleT86IHN0cmluZykge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fc3RhZ2VDb250ZXh0LmdldFZhbHVlKFtdLCBrZXkpO1xuXG4gICAgaWYgKHRoaXMuX3JlY29yZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBpc1JlZGFjdGVkID0ga2V5ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5faXNLZXlSZWRhY3RlZChrZXkpO1xuICAgICAgY29uc3QgZmllbGRTZXQgPSBrZXkgIT09IHVuZGVmaW5lZCA/IHRoaXMuX3JlZGFjdGVkRmllbGRzQnlLZXkuZ2V0KGtleSkgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGxldCByZWNvcmRlclZhbHVlOiB1bmtub3duO1xuICAgICAgaWYgKGlzUmVkYWN0ZWQpIHtcbiAgICAgICAgcmVjb3JkZXJWYWx1ZSA9ICdbUkVEQUNURURdJztcbiAgICAgIH0gZWxzZSBpZiAoZmllbGRTZXQgJiYgdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZWNvcmRlclZhbHVlID0gdGhpcy5fc2NydWJGaWVsZHModmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGZpZWxkU2V0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlY29yZGVyVmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5faW52b2tlSG9vaygnb25SZWFkJywge1xuICAgICAgICBzdGFnZU5hbWU6IHRoaXMuX3N0YWdlTmFtZSxcbiAgICAgICAgc3RhZ2VJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnN0YWdlSWQsXG4gICAgICAgIHJ1bnRpbWVTdGFnZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVudGltZVN0YWdlSWQsXG4gICAgICAgIHBpcGVsaW5lSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW5JZCxcbiAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICBrZXksXG4gICAgICAgIHZhbHVlOiByZWNvcmRlclZhbHVlLFxuICAgICAgICByZWRhY3RlZDogaXNSZWRhY3RlZCB8fCBmaWVsZFNldCAhPT0gdW5kZWZpbmVkIHx8IHVuZGVmaW5lZCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHNldFZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biwgc2hvdWxkUmVkYWN0PzogYm9vbGVhbiwgZGVzY3JpcHRpb24/OiBzdHJpbmcpIHtcbiAgICBhc3NlcnROb3RSZWFkb25seSh0aGlzLl9yZWFkT25seVZhbHVlcywga2V5LCAnd3JpdGUnKTtcblxuICAgIC8vIERldi1tb2RlOiB3YXJuIGlmIHRoZSB2YWx1ZSBjb250YWlucyBjaXJjdWxhciByZWZlcmVuY2VzLlxuICAgIC8vIENoZWNrIEFGVEVSIGFzc2VydE5vdFJlYWRvbmx5IOKAlCBkb24ndCB3YXJuIGZvciB3cml0ZXMgdGhhdCB3aWxsIGJlIGJsb2NrZWQuXG4gICAgLy8gQ2lyY3VsYXIgdmFsdWVzIHdvcmsgKHRlcm1pbmFsIHByb3h5IGhhbmRsZXMgdGhlbSkgYnV0IGNhbiBwcm9kdWNlXG4gICAgLy8gc3VycHJpc2luZyBiZWhhdmlvciBpbiBuYXJyYXRpdmUsIEpTT04gc2VyaWFsaXphdGlvbiwgYW5kIHNuYXBzaG90cy5cbiAgICBpZiAoaXNEZXZNb2RlKCkgJiYgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgaWYgKGhhc0NpcmN1bGFyUmVmZXJlbmNlKHZhbHVlKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFtmb290cHJpbnRdIENpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiBzZXRWYWx1ZSgnJHtrZXl9JykuIGAgK1xuICAgICAgICAgICAgJ1dyaXRlcyBwYXN0IHRoZSBjeWNsZSBkZXB0aCB3aWxsIHVzZSB0ZXJtaW5hbCBwcm94eSB0cmFja2luZy4gJyArXG4gICAgICAgICAgICAnQ29uc2lkZXIgZmxhdHRlbmluZyB0aGUgZGF0YSBzdHJ1Y3R1cmUuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBdXRvLXJlZGFjdCBpZiBrZXkgbWF0Y2hlcyBwb2xpY3kgKGV4YWN0IGtleXMgb3IgcGF0dGVybnMpLCBvciBpZiB0aGUga2V5IHdhc1xuICAgIC8vIHByZXZpb3VzbHkgbWFya2VkIHJlZGFjdGVkIChlLmcuIGNhcnJpZWQgb3ZlciBmcm9tIGEgc3ViZmxvdyB2aWEgb3V0cHV0TWFwcGVyKS5cbiAgICBjb25zdCBlZmZlY3RpdmVSZWRhY3QgPSBzaG91bGRSZWRhY3QgfHwgdGhpcy5faXNQb2xpY3lSZWRhY3RlZChrZXkpIHx8IHRoaXMuX3JlZGFjdGVkS2V5cy5oYXMoa2V5KTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3N0YWdlQ29udGV4dC5zZXRPYmplY3QoW10sIGtleSwgdmFsdWUsIGVmZmVjdGl2ZVJlZGFjdCwgZGVzY3JpcHRpb24pO1xuXG4gICAgaWYgKGVmZmVjdGl2ZVJlZGFjdCkge1xuICAgICAgdGhpcy5fcmVkYWN0ZWRLZXlzLmFkZChrZXkpO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBmaWVsZC1sZXZlbCByZWRhY3Rpb24gZnJvbSBwb2xpY3lcbiAgICBjb25zdCBmaWVsZFNldCA9IHRoaXMuX3JlZGFjdGVkRmllbGRzQnlLZXkuZ2V0KGtleSk7XG5cbiAgICBpZiAodGhpcy5fcmVjb3JkZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCByZWNvcmRlclZhbHVlOiB1bmtub3duO1xuICAgICAgaWYgKGVmZmVjdGl2ZVJlZGFjdCkge1xuICAgICAgICByZWNvcmRlclZhbHVlID0gJ1tSRURBQ1RFRF0nO1xuICAgICAgfSBlbHNlIGlmIChmaWVsZFNldCAmJiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHJlY29yZGVyVmFsdWUgPSB0aGlzLl9zY3J1YkZpZWxkcyh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgZmllbGRTZXQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVjb3JkZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pbnZva2VIb29rKCdvbldyaXRlJywge1xuICAgICAgICBzdGFnZU5hbWU6IHRoaXMuX3N0YWdlTmFtZSxcbiAgICAgICAgc3RhZ2VJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnN0YWdlSWQsXG4gICAgICAgIHJ1bnRpbWVTdGFnZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVudGltZVN0YWdlSWQsXG4gICAgICAgIHBpcGVsaW5lSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW5JZCxcbiAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICBrZXksXG4gICAgICAgIHZhbHVlOiByZWNvcmRlclZhbHVlLFxuICAgICAgICBvcGVyYXRpb246ICdzZXQnLFxuICAgICAgICByZWRhY3RlZDogZWZmZWN0aXZlUmVkYWN0IHx8IGZpZWxkU2V0ICE9PSB1bmRlZmluZWQgfHwgdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biwgZGVzY3JpcHRpb24/OiBzdHJpbmcpIHtcbiAgICBhc3NlcnROb3RSZWFkb25seSh0aGlzLl9yZWFkT25seVZhbHVlcywga2V5LCAnd3JpdGUnKTtcblxuICAgIC8vIERldi1tb2RlOiBzYW1lIGNpcmN1bGFyIGNoZWNrIGFzIHNldFZhbHVlIChtZXJnZSB0YXJnZXRzIGNhbiBiZSBjaXJjdWxhciB0b28pXG4gICAgaWYgKGlzRGV2TW9kZSgpICYmIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChoYXNDaXJjdWxhclJlZmVyZW5jZSh2YWx1ZSkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbZm9vdHByaW50XSBDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gdXBkYXRlVmFsdWUoJyR7a2V5fScpLiBgICtcbiAgICAgICAgICAgICdDb25zaWRlciBmbGF0dGVuaW5nIHRoZSBkYXRhIHN0cnVjdHVyZS4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGlzUmVkYWN0ZWQgPSB0aGlzLl9pc0tleVJlZGFjdGVkKGtleSkgfHwgdGhpcy5faXNQb2xpY3lSZWRhY3RlZChrZXkpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3N0YWdlQ29udGV4dC51cGRhdGVPYmplY3QoW10sIGtleSwgdmFsdWUsIGRlc2NyaXB0aW9uLCBpc1JlZGFjdGVkKTtcblxuICAgIGlmICh0aGlzLl9yZWNvcmRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmllbGRTZXQgPSB0aGlzLl9yZWRhY3RlZEZpZWxkc0J5S2V5LmdldChrZXkpO1xuXG4gICAgICBsZXQgcmVjb3JkZXJWYWx1ZTogdW5rbm93bjtcbiAgICAgIGlmIChpc1JlZGFjdGVkKSB7XG4gICAgICAgIHJlY29yZGVyVmFsdWUgPSAnW1JFREFDVEVEXSc7XG4gICAgICB9IGVsc2UgaWYgKGZpZWxkU2V0ICYmIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmVjb3JkZXJWYWx1ZSA9IHRoaXMuX3NjcnViRmllbGRzKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBmaWVsZFNldCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWNvcmRlclZhbHVlID0gdmFsdWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2ludm9rZUhvb2soJ29uV3JpdGUnLCB7XG4gICAgICAgIHN0YWdlTmFtZTogdGhpcy5fc3RhZ2VOYW1lLFxuICAgICAgICBzdGFnZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQuc3RhZ2VJZCxcbiAgICAgICAgcnVudGltZVN0YWdlSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW50aW1lU3RhZ2VJZCxcbiAgICAgICAgcGlwZWxpbmVJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnJ1bklkLFxuICAgICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICAgIGtleSxcbiAgICAgICAgdmFsdWU6IHJlY29yZGVyVmFsdWUsXG4gICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgIHJlZGFjdGVkOiBpc1JlZGFjdGVkIHx8IGZpZWxkU2V0ICE9PSB1bmRlZmluZWQgfHwgdW5kZWZpbmVkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGRlbGV0ZVZhbHVlKGtleTogc3RyaW5nLCBkZXNjcmlwdGlvbj86IHN0cmluZykge1xuICAgIGFzc2VydE5vdFJlYWRvbmx5KHRoaXMuX3JlYWRPbmx5VmFsdWVzLCBrZXksICdkZWxldGUnKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3N0YWdlQ29udGV4dC5zZXRPYmplY3QoW10sIGtleSwgdW5kZWZpbmVkLCBmYWxzZSwgZGVzY3JpcHRpb24gPz8gYGRlbGV0ZWQgJHtrZXl9YCwgJ2RlbGV0ZScpO1xuXG4gICAgLy8gRGVsZXRpbmcgYSByZWRhY3RlZCBrZXkgY2xlYXJzIGl0cyByZWRhY3Rpb24gc3RhdHVzXG4gICAgdGhpcy5fcmVkYWN0ZWRLZXlzLmRlbGV0ZShrZXkpO1xuXG4gICAgaWYgKHRoaXMuX3JlY29yZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9pbnZva2VIb29rKCdvbldyaXRlJywge1xuICAgICAgICBzdGFnZU5hbWU6IHRoaXMuX3N0YWdlTmFtZSxcbiAgICAgICAgc3RhZ2VJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnN0YWdlSWQsXG4gICAgICAgIHJ1bnRpbWVTdGFnZUlkOiB0aGlzLl9zdGFnZUNvbnRleHQucnVudGltZVN0YWdlSWQsXG4gICAgICAgIHBpcGVsaW5lSWQ6IHRoaXMuX3N0YWdlQ29udGV4dC5ydW5JZCxcbiAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICBrZXksXG4gICAgICAgIHZhbHVlOiB1bmRlZmluZWQsXG4gICAgICAgIG9wZXJhdGlvbjogJ2RlbGV0ZScsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzZXRHbG9iYWwoa2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duLCBkZXNjcmlwdGlvbj86IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9zdGFnZUNvbnRleHQuc2V0R2xvYmFsPy4oa2V5LCB2YWx1ZSwgZGVzY3JpcHRpb24pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRHbG9iYWwoa2V5OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhZ2VDb250ZXh0LmdldEdsb2JhbD8uKGtleSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHNldE9iamVjdEluUm9vdChrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd24pIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhZ2VDb250ZXh0LnNldFJvb3Q/LihrZXksIHZhbHVlKTtcbiAgfVxuXG4gIC8vIOKUgOKUgCBSZWFkLW9ubHkgKyBtaXNjIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByZWFkb25seSBpbnB1dCB2YWx1ZXMgcGFzc2VkIHRvIHRoaXMgcGlwZWxpbmUsIGNhc3QgdG8gYFRgLlxuICAgKiBUaGUgcmV0dXJuZWQgb2JqZWN0IGlzIGRlZXBseSBmcm96ZW4g4oCUIGFueSBhdHRlbXB0IHRvIG11dGF0ZSBpdCB0aHJvd3MuXG4gICAqIENhY2hlZCBhdCBjb25zdHJ1Y3Rpb24gdGltZSBmb3IgemVyby1hbGxvY2F0aW9uIHJlcGVhdGVkIGFjY2Vzcy5cbiAgICpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCB7IGFwcGxpY2FudE5hbWUsIGluY29tZSB9ID0gc2NvcGUuZ2V0QXJnczx7IGFwcGxpY2FudE5hbWU6IHN0cmluZzsgaW5jb21lOiBudW1iZXIgfT4oKTtcbiAgICogYGBgXG4gICAqL1xuICBnZXRBcmdzPFQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX2Zyb3plbkFyZ3MgYXMgVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBleGVjdXRpb24gZW52aXJvbm1lbnQg4oCUIHJlYWQtb25seSBpbmZyYXN0cnVjdHVyZSB2YWx1ZXNcbiAgICogdGhhdCBwcm9wYWdhdGUgdGhyb3VnaCBuZXN0ZWQgZXhlY3V0b3JzIChsaWtlIGBwcm9jZXNzLmVudmAgZm9yIGZsb3djaGFydHMpLlxuICAgKlxuICAgKiBDb250YWluczogc2lnbmFsIChhYm9ydCksIHRpbWVvdXRNcywgdHJhY2VJZC5cbiAgICogRnJvemVuIGF0IGNvbnN0cnVjdGlvbiB0aW1lLiBJbmhlcml0ZWQgYnkgc3ViZmxvd3MgYXV0b21hdGljYWxseS5cbiAgICpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCB7IHNpZ25hbCwgdHJhY2VJZCB9ID0gc2NvcGUuZ2V0RW52KCk7XG4gICAqIGBgYFxuICAgKi9cbiAgZ2V0RW52KCk6IFJlYWRvbmx5PEV4ZWN1dGlvbkVudj4ge1xuICAgIHJldHVybiB0aGlzLl9leGVjdXRpb25FbnY7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGdldFBpcGVsaW5lSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YWdlQ29udGV4dC5ydW5JZDtcbiAgfVxuXG4gIC8vIOKUgOKUgCBJbnRlcm5hbCDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKiogQ2hlY2tzIGlmIGEga2V5IGlzIHJlZGFjdGVkIChleHBsaWNpdCBfcmVkYWN0ZWRLZXlzIHNldCkuICovXG4gIHByaXZhdGUgX2lzS2V5UmVkYWN0ZWQoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVkYWN0ZWRLZXlzLmhhcyhrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiBhIGtleSBzaG91bGQgYmUgYXV0by1yZWRhY3RlZCBieSB0aGUgcG9saWN5IChleGFjdCBrZXlzICsgcGF0dGVybnMpLlxuICAgKlxuICAgKiBSZURvUyBndWFyZDogcGF0dGVybiB0ZXN0aW5nIGlzIGNhcHBlZCBhdCBNQVhfUEFUVEVSTl9LRVlfTEVOIGNoYXJhY3RlcnMuXG4gICAqIFNjb3BlIHN0YXRlIGtleXMgYXJlIGFsd2F5cyBzaG9ydCBpZGVudGlmaWVyczsgYW55IGtleSBleGNlZWRpbmcgdGhlIGNhcFxuICAgKiBpcyBhbG1vc3QgY2VydGFpbmx5IG5vdCBhIGxlZ2l0aW1hdGUgc2NvcGUga2V5LCBzbyBza2lwcGluZyBwYXR0ZXJuIG1hdGNoaW5nXG4gICAqIGZvciBpdCBkb2VzIG5vdCByaXNrIGxlYWtpbmcgUElJLiBFeGFjdC1rZXkgbWF0Y2hpbmcgKEFycmF5LmluY2x1ZGVzKSBpc1xuICAgKiBzdGlsbCBhcHBsaWVkIHJlZ2FyZGxlc3Mgb2YgbGVuZ3RoIGFuZCBpcyBub3QgdnVsbmVyYWJsZSB0byBSZURvUy5cbiAgICovXG4gIHByaXZhdGUgX2lzUG9saWN5UmVkYWN0ZWQoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX3JlZGFjdGlvblBvbGljeSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmICh0aGlzLl9yZWRhY3Rpb25Qb2xpY3kua2V5cz8uaW5jbHVkZXMoa2V5KSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKHRoaXMuX3JlZGFjdGlvblBvbGljeS5wYXR0ZXJucykge1xuICAgICAgaWYgKGtleS5sZW5ndGggPiBTY29wZUZhY2FkZS5fTUFYX1BBVFRFUk5fS0VZX0xFTikge1xuICAgICAgICAvLyBEZXYtbW9kZSB3YXJuaW5nOiBwYXR0ZXJuIG1hdGNoaW5nIHdhcyBzaWxlbnRseSBza2lwcGVkIGZvciB0aGlzIGtleS5cbiAgICAgICAgLy8gVXNlIHBvbGljeS5rZXlzIGZvciBleGFjdCBtYXRjaGluZyBvZiBsb25nIGtleSBuYW1lcy5cbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgW2Zvb3RwcmludF0gUmVkYWN0aW9uUG9saWN5OiBrZXkgJyR7a2V5LnNsaWNlKDAsIDQwKX0uLi4nICgke2tleS5sZW5ndGh9IGNoYXJzKSBleGNlZWRzIGAgK1xuICAgICAgICAgICAgICAndGhlIHBhdHRlcm4tbWF0Y2hpbmcgbGVuZ3RoIGNhcCBhbmQgd2FzIHNraXBwZWQuICcgK1xuICAgICAgICAgICAgICAnVXNlIHBvbGljeS5rZXlzIGZvciBleGFjdCBtYXRjaGluZyBvZiBsb25nIGtleSBuYW1lcy4nLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiB0aGlzLl9yZWRhY3Rpb25Qb2xpY3kucGF0dGVybnMpIHtcbiAgICAgICAgICBwLmxhc3RJbmRleCA9IDA7IC8vIFJlc2V0IHN0YXRlZnVsIGdsb2JhbC9zdGlja3kgcmVnZXhlc1xuICAgICAgICAgIGlmIChwLnRlc3Qoa2V5KSkgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1heGltdW0ga2V5IGxlbmd0aCAoY2hhcmFjdGVycykgdGhhdCB3aWxsIGJlIHRlc3RlZCBhZ2FpbnN0IHJlZ2V4IHJlZGFjdGlvblxuICAgKiBwYXR0ZXJucy4gS2V5cyBsb25nZXIgdGhhbiB0aGlzIGFyZSBza2lwcGVkIGZvciBwYXR0ZXJuIG1hdGNoaW5nIHRvIHByZXZlbnRcbiAgICogUmVEb1M6IGEgcGF0aG9sb2dpY2FsIHJlZ2V4IHRlc3RlZCBhZ2FpbnN0IGFuIHVuYm91bmRlZGx5IGxvbmcga2V5IHN0cmluZ1xuICAgKiBjYW4gY2F1c2UgY2F0YXN0cm9waGljIGJhY2t0cmFja2luZy5cbiAgICpcbiAgICogMjU2IGNoYXJhY3RlcnMgY29tZm9ydGFibHkgZXhjZWVkcyBhbnkgcmVhbGlzdGljIHNjb3BlLXN0YXRlIGtleSBuYW1lLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX01BWF9QQVRURVJOX0tFWV9MRU4gPSAyNTY7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBkZWVwLWNsb25lZCBjb3B5IHdpdGggc3BlY2lmaWVkIGZpZWxkcyByZXBsYWNlZCBieSAnW1JFREFDVEVEXScuXG4gICAqIFN1cHBvcnRzIGRvdC1ub3RhdGlvbiBwYXRocyAoZS5nLiAnYWRkcmVzcy56aXAnKSBmb3IgbmVzdGVkIG9iamVjdHMuXG4gICAqL1xuICBwcml2YXRlIF9zY3J1YkZpZWxkcyhvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBmaWVsZHM6IFNldDxzdHJpbmc+KTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIGNvbnN0IGNvcHkgPSBzdHJ1Y3R1cmVkQ2xvbmUob2JqKTtcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgaWYgKGZpZWxkLmluY2x1ZGVzKCcuJykgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjb3B5LCBmaWVsZCkpIHtcbiAgICAgICAgLy8gRG90LW5vdGF0aW9uIHBhdGgg4oaSIGRlZXAgc2NydWIgKG9ubHkgaWYgbm90IGEgbGl0ZXJhbCBmbGF0IGtleSlcbiAgICAgICAgaWYgKGxvZGFzaEhhcyhjb3B5LCBmaWVsZCkpIHtcbiAgICAgICAgICBsb2Rhc2hTZXQoY29weSwgZmllbGQsICdbUkVEQUNURURdJyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29weSwgZmllbGQpKSB7XG4gICAgICAgICAgY29weVtmaWVsZF0gPSAnW1JFREFDVEVEXSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvcHk7XG4gIH1cblxuICBwcml2YXRlIF9pbnZva2VIb29rKGhvb2s6IGtleW9mIE9taXQ8UmVjb3JkZXIsICdpZCc+LCBldmVudDogdW5rbm93bik6IHZvaWQge1xuICAgIGZvciAoY29uc3QgcmVjb3JkZXIgb2YgdGhpcy5fcmVjb3JkZXJzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBob29rRm4gPSByZWNvcmRlcltob29rXTtcbiAgICAgICAgaWYgKHR5cGVvZiBob29rRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAoaG9va0ZuIGFzIChldmVudDogdW5rbm93bikgPT4gdm9pZCkuY2FsbChyZWNvcmRlciwgZXZlbnQpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBpZiAoaG9vayAhPT0gJ29uRXJyb3InKSB7XG4gICAgICAgICAgdGhpcy5faW52b2tlSG9vaygnb25FcnJvcicsIHtcbiAgICAgICAgICAgIHN0YWdlTmFtZTogdGhpcy5fc3RhZ2VOYW1lLFxuICAgICAgICAgICAgc3RhZ2VJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnN0YWdlSWQsXG4gICAgICAgICAgICBydW50aW1lU3RhZ2VJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnJ1bnRpbWVTdGFnZUlkLFxuICAgICAgICAgICAgcGlwZWxpbmVJZDogdGhpcy5fc3RhZ2VDb250ZXh0LnJ1bklkLFxuICAgICAgICAgICAgdGltZXN0YW1wOiBEYXRlLm5vdygpLFxuICAgICAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgICAgICAgb3BlcmF0aW9uOiBob29rID09PSAnb25SZWFkJyA/ICdyZWFkJyA6IGhvb2sgPT09ICdvbkNvbW1pdCcgPyAnY29tbWl0JyA6ICd3cml0ZScsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* attached to Scope instances to observe read/write/commit operations.
|
|
7
7
|
*/
|
|
8
8
|
export {};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Njb3BlL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2NvcGUgVHlwZSBEZWZpbml0aW9uc1xuICpcbiAqIENvcmUgdHlwZXMgZm9yIHRoZSBjb21wb3NhYmxlIFNjb3BlIHN5c3RlbSB3aXRoIHBsdWdnYWJsZSBSZWNvcmRlcnMuXG4gKiBBcmNoaXRlY3R1cmUgZm9sbG93cyBjb21wb3NpdGlvbi1vdmVyLWluaGVyaXRhbmNlOiBSZWNvcmRlcnMgYXJlXG4gKiBhdHRhY2hlZCB0byBTY29wZSBpbnN0YW5jZXMgdG8gb2JzZXJ2ZSByZWFkL3dyaXRlL2NvbW1pdCBvcGVyYXRpb25zLlxuICovXG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEV2ZW50IFR5cGVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkZXJDb250ZXh0IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIC8qKiBTdGFibGUgc3RhZ2UgaWRlbnRpZmllciAobWF0Y2hlcyBzcGVjIG5vZGUgaWQpLiAqL1xuICBzdGFnZUlkOiBzdHJpbmc7XG4gIC8qKiBVbmlxdWUgcGVyLWV4ZWN1dGlvbi1zdGVwIGlkZW50aWZpZXIuIEZvcm1hdDogW3N1YmZsb3dQYXRoL11zdGFnZUlkI2V4ZWN1dGlvbkluZGV4ICovXG4gIHJ1bnRpbWVTdGFnZUlkOiBzdHJpbmc7XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgdGltZXN0YW1wOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZEV2ZW50IGV4dGVuZHMgUmVjb3JkZXJDb250ZXh0IHtcbiAga2V5Pzogc3RyaW5nO1xuICB2YWx1ZTogdW5rbm93bjtcbiAgLyoqIFRydWUgd2hlbiB0aGUgdmFsdWUgaGFzIGJlZW4gcmVkYWN0ZWQgZm9yIFBJSSBwcm90ZWN0aW9uLiAqL1xuICByZWRhY3RlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV3JpdGVFdmVudCBleHRlbmRzIFJlY29yZGVyQ29udGV4dCB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogdW5rbm93bjtcbiAgb3BlcmF0aW9uOiAnc2V0JyB8ICd1cGRhdGUnIHwgJ2RlbGV0ZSc7XG4gIC8qKiBUcnVlIHdoZW4gdGhlIHZhbHVlIGhhcyBiZWVuIHJlZGFjdGVkIGZvciBQSUkgcHJvdGVjdGlvbi4gKi9cbiAgcmVkYWN0ZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1pdEV2ZW50IGV4dGVuZHMgUmVjb3JkZXJDb250ZXh0IHtcbiAgbXV0YXRpb25zOiBBcnJheTx7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IHVua25vd247XG4gICAgb3BlcmF0aW9uOiAnc2V0JyB8ICd1cGRhdGUnIHwgJ2RlbGV0ZSc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yRXZlbnQgZXh0ZW5kcyBSZWNvcmRlckNvbnRleHQge1xuICBlcnJvcjogRXJyb3I7XG4gIG9wZXJhdGlvbjogJ3JlYWQnIHwgJ3dyaXRlJyB8ICdjb21taXQnO1xuICBrZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VFdmVudCBleHRlbmRzIFJlY29yZGVyQ29udGV4dCB7XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhdXNlRXZlbnQgZXh0ZW5kcyBSZWNvcmRlckNvbnRleHQge1xuICBwYXVzZURhdGE/OiB1bmtub3duO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc3VtZUV2ZW50IGV4dGVuZHMgUmVjb3JkZXJDb250ZXh0IHtcbiAgaGFzSW5wdXQ6IGJvb2xlYW47XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJlZGFjdGlvbiBQb2xpY3lcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBEZWNsYXJhdGl2ZSByZWRhY3Rpb24gY29uZmlndXJhdGlvbiDigJQgZGVmaW5lIG9uY2UsIGFwcGxpZWQgZXZlcnl3aGVyZS5cbiAqXG4gKiBDb25maWd1cmUgYXQgdGhlIHNjb3BlIGNsYXNzIGxldmVsIChzdGF0aWMgcHJvcGVydHkpIG9yIHBhc3MgdG9cbiAqIEZsb3dDaGFydEV4ZWN1dG9yIHRvIGFwcGx5IGFjcm9zcyBhbGwgc3RhZ2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZGFjdGlvblBvbGljeSB7XG4gIC8qKiBFeGFjdCBrZXkgbmFtZXMgdG8gYWx3YXlzIHJlZGFjdCAoZS5nLiBbJ3NzbicsICdjcmVkaXRDYXJkJ10pLiAqL1xuICBrZXlzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBSZWdleCBwYXR0ZXJucyDigJQgYW55IGtleSBtYXRjaGluZyBhIHBhdHRlcm4gaXMgYXV0by1yZWRhY3RlZC5cbiAgICpcbiAgICogUGF0dGVybiBtYXRjaGluZyBpcyBza2lwcGVkIGZvciBrZXlzIHRoYXQgZXhjZWVkIGFuIGludGVybmFsIGxlbmd0aCBjYXBcbiAgICogKGRlc2lnbmVkIHRvIHByZXZlbnQgUmVEb1Mgb24gcGF0aG9sb2dpY2FsIHBhdHRlcm5zKS4gRm9yIHZlcnkgbG9uZyBrZXlcbiAgICogbmFtZXMsIHVzZSBga2V5c2AgKGV4YWN0IG1hdGNoKSBpbnN0ZWFkIG9mIHBhdHRlcm5zLlxuICAgKi9cbiAgcGF0dGVybnM/OiBSZWdFeHBbXTtcbiAgLyoqIEZpZWxkLWxldmVsIHJlZGFjdGlvbiB3aXRoaW4gb2JqZWN0cyDigJQga2V5IOKGkiBhcnJheSBvZiBmaWVsZHMgdG8gc2NydWIuXG4gICAqICBTdXBwb3J0cyBkb3Qtbm90YXRpb24gZm9yIG5lc3RlZCBwYXRocyAoZS5nLiAnYWRkcmVzcy56aXAnKS4gKi9cbiAgZmllbGRzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xufVxuXG4vKipcbiAqIENvbXBsaWFuY2UtZnJpZW5kbHkgcmVwb3J0IG9mIHdoYXQgd2FzIHJlZGFjdGVkLiBOZXZlciBpbmNsdWRlcyB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVkYWN0aW9uUmVwb3J0IHtcbiAgLyoqIEtleXMgZnVsbHkgcmVkYWN0ZWQgKGV4YWN0IG1hdGNoIG9yIHBhdHRlcm4gbWF0Y2gpLiAqL1xuICByZWRhY3RlZEtleXM6IHN0cmluZ1tdO1xuICAvKiogS2V5cyB3aXRoIGZpZWxkLWxldmVsIHJlZGFjdGlvbiDihpIgd2hpY2ggZmllbGRzIHdlcmUgc2NydWJiZWQuICovXG4gIGZpZWxkUmVkYWN0aW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xuICAvKiogU291cmNlIHN0cmluZ3Mgb2YgcmVnaXN0ZXJlZCBwYXR0ZXJucy4gKi9cbiAgcGF0dGVybnM6IHN0cmluZ1tdO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBSZWNvcmRlciBJbnRlcmZhY2Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBQbHVnZ2FibGUgb2JzZXJ2ZXIgZm9yIHNjb3BlIG9wZXJhdGlvbnMuXG4gKlxuICogQWxsIG1ldGhvZHMgYXJlIG9wdGlvbmFsIOKAlCBpbXBsZW1lbnQgb25seSB0aGUgaG9va3MgeW91IG5lZWQuXG4gKiBSZWNvcmRlcnMgYXJlIGludm9rZWQgc3luY2hyb25vdXNseSBpbiBhdHRhY2htZW50IG9yZGVyLlxuICogSWYgYSByZWNvcmRlciB0aHJvd3MsIHRoZSBlcnJvciBpcyBjYXVnaHQgYW5kIHBhc3NlZCB0byBvbkVycm9yXG4gKiBob29rcyBvZiBvdGhlciByZWNvcmRlcnM7IHRoZSBzY29wZSBvcGVyYXRpb24gY29udGludWVzIG5vcm1hbGx5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZGVyIHtcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgb25SZWFkPyhldmVudDogUmVhZEV2ZW50KTogdm9pZDtcbiAgb25Xcml0ZT8oZXZlbnQ6IFdyaXRlRXZlbnQpOiB2b2lkO1xuICBvbkNvbW1pdD8oZXZlbnQ6IENvbW1pdEV2ZW50KTogdm9pZDtcbiAgb25FcnJvcj8oZXZlbnQ6IEVycm9yRXZlbnQpOiB2b2lkO1xuICBvblN0YWdlU3RhcnQ/KGV2ZW50OiBTdGFnZUV2ZW50KTogdm9pZDtcbiAgb25TdGFnZUVuZD8oZXZlbnQ6IFN0YWdlRXZlbnQpOiB2b2lkO1xuICBvblBhdXNlPyhldmVudDogUGF1c2VFdmVudCk6IHZvaWQ7XG4gIG9uUmVzdW1lPyhldmVudDogUmVzdW1lRXZlbnQpOiB2b2lkO1xuICAvKiogUmVzZXQgc3RhdGUgYmVmb3JlIGVhY2ggZXhlY3V0b3IucnVuKCkg4oCUIHByZXZlbnRzIGNyb3NzLXJ1biBhY2N1bXVsYXRpb24uICovXG4gIGNsZWFyPygpOiB2b2lkO1xuICAvKiogRXhwb3NlIGNvbGxlY3RlZCBkYXRhIGZvciBpbmNsdXNpb24gaW4gZXhlY3V0b3IuZ2V0U25hcHNob3QoKS5yZWNvcmRlcnMuICovXG4gIHRvU25hcHNob3Q/KCk6IHsgbmFtZTogc3RyaW5nOyBkYXRhOiB1bmtub3duIH07XG59XG4iXX0=
|
|
@@ -83,7 +83,7 @@ class StageRunner {
|
|
|
83
83
|
const pauseData = (0, types_js_1.isPauseResult)(result) ? result.data : result;
|
|
84
84
|
// Notify scope recorders before throwing
|
|
85
85
|
if (rawScope && typeof rawScope.notifyPause === 'function') {
|
|
86
|
-
rawScope.notifyPause(
|
|
86
|
+
rawScope.notifyPause(pauseData);
|
|
87
87
|
}
|
|
88
88
|
throw new types_js_1.PauseSignal(pauseData, node.id);
|
|
89
89
|
}
|
|
@@ -109,4 +109,4 @@ function raceAbort(promise, signal) {
|
|
|
109
109
|
});
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhZ2VSdW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9oYW5kbGVycy9TdGFnZVJ1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7OztBQUdILG1EQUFrRTtBQUNsRSxzREFBdUU7QUFDdkUsNEZBQXNGO0FBSXRGLE1BQWEsV0FBVztJQUN0QixZQUE2QixJQUErQjtRQUEvQixTQUFJLEdBQUosSUFBSSxDQUEyQjtJQUFHLENBQUM7SUFFaEUsS0FBSyxDQUFDLEdBQUcsQ0FDUCxJQUE2QixFQUM3QixTQUFzQyxFQUN0QyxPQUFxQixFQUNyQixPQUFtQjs7UUFFbkIseUVBQXlFO1FBQ3pFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0csdUVBQXVFO1FBQ3ZFLDJFQUEyRTtRQUMzRSwrQkFBK0I7UUFDL0IsTUFBTSxZQUFZLEdBQUcsUUFBUSxJQUFLLFFBQWdCLENBQUMseUJBQWMsQ0FBQyxLQUFLLElBQUksQ0FBQztRQUM1RSxNQUFNLEtBQUssR0FBRyxZQUFZO1lBQ3hCLENBQUMsQ0FBQyxRQUFRO1lBQ1YsQ0FBQyxDQUFFLElBQUEsOENBQW9CLEVBQUMsUUFBa0IsRUFBRTtnQkFDeEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CO2dCQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDckIsQ0FBWSxDQUFDO1FBRWxCLHlEQUF5RDtRQUN6RCxJQUFJLGNBQTBDLENBQUM7UUFDL0MsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0s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UnVubmVyIOKAlCBFeGVjdXRlcyBpbmRpdmlkdWFsIHN0YWdlIGZ1bmN0aW9ucy5cbiAqXG4gKiBSZXNwb25zaWJpbGl0aWVzOlxuICogLSBDcmVhdGUgc2NvcGUgdmlhIFNjb3BlRmFjdG9yeSBmb3IgZWFjaCBzdGFnZVxuICogLSBBcHBseSBzY29wZSBwcm90ZWN0aW9uIChjcmVhdGVQcm90ZWN0ZWRTY29wZSkgdG8gaW50ZXJjZXB0IGRpcmVjdCBhc3NpZ25tZW50c1xuICogLSBIYW5kbGUgc3RyZWFtaW5nIHN0YWdlcyAob25TdGFydCwgb25Ub2tlbiwgb25FbmQgbGlmZWN5Y2xlKVxuICogLSBTeW5jK2FzeW5jIHNhZmV0eTogb25seSBhd2FpdCByZWFsIFByb21pc2VzIChpbnN0YW5jZW9mIGNoZWNrKVxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgeyBpc1BhdXNlUmVzdWx0LCBQYXVzZVNpZ25hbCB9IGZyb20gJy4uLy4uL3BhdXNlL3R5cGVzLmpzJztcbmltcG9ydCB7IEJSRUFLX1NFVFRFUiwgSVNfVFlQRURfU0NPUEUgfSBmcm9tICcuLi8uLi9yZWFjdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVQcm90ZWN0ZWRTY29wZSB9IGZyb20gJy4uLy4uL3Njb3BlL3Byb3RlY3Rpb24vY3JlYXRlUHJvdGVjdGVkU2NvcGUuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9ncmFwaC9TdGFnZU5vZGUuanMnO1xuaW1wb3J0IHR5cGUgeyBIYW5kbGVyRGVwcywgU3RhZ2VGdW5jdGlvbiwgU3RyZWFtQ2FsbGJhY2sgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjbGFzcyBTdGFnZVJ1bm5lcjxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkZXBzOiBIYW5kbGVyRGVwczxUT3V0LCBUU2NvcGU+KSB7fVxuXG4gIGFzeW5jIHJ1bihcbiAgICBub2RlOiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPixcbiAgICBzdGFnZUZ1bmM6IFN0YWdlRnVuY3Rpb248VE91dCwgVFNjb3BlPixcbiAgICBjb250ZXh0OiBTdGFnZUNvbnRleHQsXG4gICAgYnJlYWtGbjogKCkgPT4gdm9pZCxcbiAgKTogUHJvbWlzZTxUT3V0PiB7XG4gICAgLy8gQ3JlYXRlIHNjb3BlIHZpYSBTY29wZUZhY3Rvcnkg4oCUIGVhY2ggc3RhZ2UgZ2V0cyBpdHMgb3duIHNjb3BlIGluc3RhbmNlXG4gICAgY29uc3QgcmF3U2NvcGUgPSB0aGlzLmRlcHMuc2NvcGVGYWN0b3J5KGNvbnRleHQsIG5vZGUubmFtZSwgdGhpcy5kZXBzLnJlYWRPbmx5Q29udGV4dCwgdGhpcy5kZXBzLmV4ZWN1dGlvbkVudik7XG5cbiAgICAvLyBXcmFwIHNjb3BlIHdpdGggcHJvdGVjdGlvbiB0byBpbnRlcmNlcHQgZGlyZWN0IHByb3BlcnR5IGFzc2lnbm1lbnRzLlxuICAgIC8vIFNraXAgZm9yIFR5cGVkU2NvcGUg4oCUIGl0IGFscmVhZHkgaGFzIGl0cyBvd24gUHJveHkgd2l0aCBwcm9wZXIgc2V0IHRyYXBzXG4gICAgLy8gdGhhdCBkZWxlZ2F0ZSB0byBzZXRWYWx1ZSgpLlxuICAgIGNvbnN0IGlzVHlwZWRTY29wZSA9IHJhd1Njb3BlICYmIChyYXdTY29wZSBhcyBhbnkpW0lTX1RZUEVEX1NDT1BFXSA9PT0gdHJ1ZTtcbiAgICBjb25zdCBzY29wZSA9IGlzVHlwZWRTY29wZVxuICAgICAgPyByYXdTY29wZVxuICAgICAgOiAoY3JlYXRlUHJvdGVjdGVkU2NvcGUocmF3U2NvcGUgYXMgb2JqZWN0LCB7XG4gICAgICAgICAgbW9kZTogdGhpcy5kZXBzLnNjb3BlUHJvdGVjdGlvbk1vZGUsXG4gICAgICAgICAgc3RhZ2VOYW1lOiBub2RlLm5hbWUsXG4gICAgICAgIH0pIGFzIFRTY29wZSk7XG5cbiAgICAvLyBTZXQgdXAgc3RyZWFtaW5nIGNhbGxiYWNrIGlmIHRoaXMgaXMgYSBzdHJlYW1pbmcgc3RhZ2VcbiAgICBsZXQgc3RyZWFtQ2FsbGJhY2s6IFN0cmVhbUNhbGxiYWNrIHwgdW5kZWZpbmVkO1xuICAgIGxldCBhY2N1bXVsYXRlZFRleHQgPSAnJztcblxuICAgIGlmIChub2RlLmlzU3RyZWFtaW5nKSB7XG4gICAgICBjb25zdCBzdHJlYW1JZCA9IG5vZGUuc3RyZWFtSWQgPz8gbm9kZS5uYW1lO1xuICAgICAgc3RyZWFtQ2FsbGJhY2sgPSAodG9rZW46IHN0cmluZykgPT4ge1xuICAgICAgICBhY2N1bXVsYXRlZFRleHQgKz0gdG9rZW47XG4gICAgICAgIHRoaXMuZGVwcy5zdHJlYW1IYW5kbGVycz8ub25Ub2tlbj8uKHN0cmVhbUlkLCB0b2tlbik7XG4gICAgICB9O1xuICAgICAgdGhpcy5kZXBzLnN0cmVhbUhhbmRsZXJzPy5vblN0YXJ0Py4oc3RyZWFtSWQpO1xuICAgIH1cblxuICAgIC8vIEluamVjdCBicmVha1BpcGVsaW5lIGludG8gVHlwZWRTY29wZSB2aWEgQlJFQUtfU0VUVEVSIChpZiB0aGUgc2NvcGUgc3VwcG9ydHMgaXQpXG4gICAgaWYgKHJhd1Njb3BlICYmIHR5cGVvZiAocmF3U2NvcGUgYXMgYW55KVtCUkVBS19TRVRURVJdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAocmF3U2NvcGUgYXMgYW55KVtCUkVBS19TRVRURVJdKGJyZWFrRm4pO1xuICAgIH1cblxuICAgIC8vIE5vdGlmeSByZWNvcmRlcnMgb2Ygc3RhZ2Ugc3RhcnQgKGlmIHNjb3BlIHN1cHBvcnRzIGl0KVxuICAgIGlmIChyYXdTY29wZSAmJiB0eXBlb2YgKHJhd1Njb3BlIGFzIGFueSkubm90aWZ5U3RhZ2VTdGFydCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgKHJhd1Njb3BlIGFzIGFueSkubm90aWZ5U3RhZ2VTdGFydCgpO1xuICAgIH1cblxuICAgIC8vIEV4ZWN1dGUgdGhlIHN0YWdlIGZ1bmN0aW9uXG4gICAgY29uc3Qgb3V0cHV0ID0gc3RhZ2VGdW5jKHNjb3BlLCBicmVha0ZuLCBzdHJlYW1DYWxsYmFjayk7XG5cbiAgICAvLyBTeW5jK2FzeW5jIHNhZmV0eTogb25seSBhd2FpdCByZWFsIFByb21pc2VzIHRvIGF2b2lkIHRoZW5hYmxlIGFzc2ltaWxhdGlvblxuICAgIGxldCByZXN1bHQ6IFRPdXQ7XG4gICAgaWYgKG91dHB1dCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIC8vIFJhY2UgYWdhaW5zdCBBYm9ydFNpZ25hbCBpZiBwcm92aWRlZFxuICAgICAgaWYgKHRoaXMuZGVwcy5zaWduYWwpIHtcbiAgICAgICAgcmVzdWx0ID0gKGF3YWl0IHJhY2VBYm9ydChvdXRwdXQsIHRoaXMuZGVwcy5zaWduYWwpKSBhcyBUT3V0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gKGF3YWl0IG91dHB1dCkgYXMgVE91dDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gb3V0cHV0IGFzIFRPdXQ7XG4gICAgfVxuXG4gICAgLy8gTm90aWZ5IHJlY29yZGVycyBvZiBzdGFnZSBlbmQgKGlmIHNjb3BlIHN1cHBvcnRzIGl0KVxuICAgIGlmIChyYXdTY29wZSAmJiB0eXBlb2YgKHJhd1Njb3BlIGFzIGFueSkubm90aWZ5U3RhZ2VFbmQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIChyYXdTY29wZSBhcyBhbnkpLm5vdGlmeVN0YWdlRW5kKCk7XG4gICAgfVxuXG4gICAgLy8gQ2FsbCBvbkVuZCBsaWZlY3ljbGUgaG9vayBmb3Igc3RyZWFtaW5nIHN0YWdlc1xuICAgIGlmIChub2RlLmlzU3RyZWFtaW5nKSB7XG4gICAgICBjb25zdCBzdHJlYW1JZCA9IG5vZGUuc3RyZWFtSWQgPz8gbm9kZS5uYW1lO1xuICAgICAgdGhpcy5kZXBzLnN0cmVhbUhhbmRsZXJzPy5vbkVuZD8uKHN0cmVhbUlkLCBhY2N1bXVsYXRlZFRleHQpO1xuICAgIH1cblxuICAgIC8vIOKUgOKUgCBQYXVzZSBkZXRlY3Rpb24g4pSA4pSAXG4gICAgLy8gUGF1c2FibGUgc3RhZ2VzOiBhbnkgbm9uLXZvaWQgcmV0dXJuID0gcGF1c2Ugd2l0aCB0aGF0IGRhdGEuXG4gICAgLy8gQWxzbyBzdXBwb3J0cyBleHBsaWNpdCBwYXVzZSh7IC4uLiB9KSBmb3IgYmFja3dhcmQgY29tcGF0LlxuICAgIGlmIChub2RlLmlzUGF1c2FibGUgJiYgcmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHBhdXNlRGF0YSA9IGlzUGF1c2VSZXN1bHQocmVzdWx0KSA/IChyZXN1bHQgYXMgYW55KS5kYXRhIDogcmVzdWx0O1xuICAgICAgLy8gTm90aWZ5IHNjb3BlIHJlY29yZGVycyBiZWZvcmUgdGhyb3dpbmdcbiAgICAgIGlmIChyYXdTY29wZSAmJiB0eXBlb2YgKHJhd1Njb3BlIGFzIGFueSkubm90aWZ5UGF1c2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgKHJhd1Njb3BlIGFzIGFueSkubm90aWZ5UGF1c2Uobm9kZS5pZCwgcGF1c2VEYXRhKTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBQYXVzZVNpZ25hbChwYXVzZURhdGEsIG5vZGUuaWQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuLyoqIFJhY2UgYSBwcm9taXNlIGFnYWluc3QgYW4gQWJvcnRTaWduYWwuIFJlamVjdHMgd2l0aCB0aGUgc2lnbmFsJ3MgcmVhc29uIG9uIGFib3J0LiAqL1xuZnVuY3Rpb24gcmFjZUFib3J0PFQ+KHByb21pc2U6IFByb21pc2U8VD4sIHNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNlPFQ+IHtcbiAgaWYgKHNpZ25hbC5hYm9ydGVkKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHNpZ25hbC5yZWFzb24gaW5zdGFuY2VvZiBFcnJvciA/IHNpZ25hbC5yZWFzb24gOiBuZXcgRXJyb3Ioc2lnbmFsLnJlYXNvbiA/PyAnQWJvcnRlZCcpKTtcbiAgfVxuICByZXR1cm4gbmV3IFByb21pc2U8VD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IG9uQWJvcnQgPSAoKSA9PlxuICAgICAgcmVqZWN0KHNpZ25hbC5yZWFzb24gaW5zdGFuY2VvZiBFcnJvciA/IHNpZ25hbC5yZWFzb24gOiBuZXcgRXJyb3Ioc2lnbmFsLnJlYXNvbiA/PyAnQWJvcnRlZCcpKTtcbiAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0LCB7IG9uY2U6IHRydWUgfSk7XG4gICAgcHJvbWlzZS50aGVuKFxuICAgICAgKHZhbCkgPT4ge1xuICAgICAgICBzaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignYWJvcnQnLCBvbkFib3J0KTtcbiAgICAgICAgcmVzb2x2ZSh2YWwpO1xuICAgICAgfSxcbiAgICAgIChlcnIpID0+IHtcbiAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfSxcbiAgICApO1xuICB9KTtcbn1cbiJdfQ==
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhZ2VSdW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9oYW5kbGVycy9TdGFnZVJ1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7OztBQUdILG1EQUFrRTtBQUNsRSxzREFBdUU7QUFDdkUsNEZBQXNGO0FBSXRGLE1BQWEsV0FBVztJQUN0QixZQUE2QixJQUErQjtRQUEvQixTQUFJLEdBQUosSUFBSSxDQUEyQjtJQUFHLENBQUM7SUFFaEUsS0FBSyxDQUFDLEdBQUcsQ0FDUCxJQUE2QixFQUM3QixTQUFzQyxFQUN0QyxPQUFxQixFQUNyQixPQUFtQjs7UUFFbkIseUVBQXlFO1FBQ3pFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0csdUVBQXVFO1FBQ3ZFLDJFQUEyRTtRQUMzRSwrQkFBK0I7UUFDL0IsTUFBTSxZQUFZLEdBQUcsUUFBUSxJQUFLLFFBQWdCLENBQUMseUJBQWMsQ0FBQyxLQUFLLElBQUksQ0FBQztRQUM1RSxNQUFNLEtBQUssR0FBRyxZQUFZO1lBQ3hCLENBQUMsQ0FBQyxRQUFRO1lBQ1YsQ0FBQyxDQUFFLElBQUEsOENBQW9CLEVBQUMsUUFBa0IsRUFBRTtnQkFDeEMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CO2dCQUNuQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDckIsQ0FBWSxDQUFDO1FBRWxCLHlEQUF5RDtRQUN6RCxJQUFJLGNBQTBDLENBQUM7UUFDL0MsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0s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aW5kaXZpZHVhbCBzdGFnZSBmdW5jdGlvbnMuXG4gKlxuICogUmVzcG9uc2liaWxpdGllczpcbiAqIC0gQ3JlYXRlIHNjb3BlIHZpYSBTY29wZUZhY3RvcnkgZm9yIGVhY2ggc3RhZ2VcbiAqIC0gQXBwbHkgc2NvcGUgcHJvdGVjdGlvbiAoY3JlYXRlUHJvdGVjdGVkU2NvcGUpIHRvIGludGVyY2VwdCBkaXJlY3QgYXNzaWdubWVudHNcbiAqIC0gSGFuZGxlIHN0cmVhbWluZyBzdGFnZXMgKG9uU3RhcnQsIG9uVG9rZW4sIG9uRW5kIGxpZmVjeWNsZSlcbiAqIC0gU3luYythc3luYyBzYWZldHk6IG9ubHkgYXdhaXQgcmVhbCBQcm9taXNlcyAoaW5zdGFuY2VvZiBjaGVjaylcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHsgaXNQYXVzZVJlc3VsdCwgUGF1c2VTaWduYWwgfSBmcm9tICcuLi8uLi9wYXVzZS90eXBlcy5qcyc7XG5pbXBvcnQgeyBCUkVBS19TRVRURVIsIElTX1RZUEVEX1NDT1BFIH0gZnJvbSAnLi4vLi4vcmVhY3RpdmUvdHlwZXMuanMnO1xuaW1wb3J0IHsgY3JlYXRlUHJvdGVjdGVkU2NvcGUgfSBmcm9tICcuLi8uLi9zY29wZS9wcm90ZWN0aW9uL2NyZWF0ZVByb3RlY3RlZFNjb3BlLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgSGFuZGxlckRlcHMsIFN0YWdlRnVuY3Rpb24sIFN0cmVhbUNhbGxiYWNrIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgU3RhZ2VSdW5uZXI8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGVwczogSGFuZGxlckRlcHM8VE91dCwgVFNjb3BlPikge31cblxuICBhc3luYyBydW4oXG4gICAgbm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4sXG4gICAgc3RhZ2VGdW5jOiBTdGFnZUZ1bmN0aW9uPFRPdXQsIFRTY29wZT4sXG4gICAgY29udGV4dDogU3RhZ2VDb250ZXh0LFxuICAgIGJyZWFrRm46ICgpID0+IHZvaWQsXG4gICk6IFByb21pc2U8VE91dD4ge1xuICAgIC8vIENyZWF0ZSBzY29wZSB2aWEgU2NvcGVGYWN0b3J5IOKAlCBlYWNoIHN0YWdlIGdldHMgaXRzIG93biBzY29wZSBpbnN0YW5jZVxuICAgIGNvbnN0IHJhd1Njb3BlID0gdGhpcy5kZXBzLnNjb3BlRmFjdG9yeShjb250ZXh0LCBub2RlLm5hbWUsIHRoaXMuZGVwcy5yZWFkT25seUNvbnRleHQsIHRoaXMuZGVwcy5leGVjdXRpb25FbnYpO1xuXG4gICAgLy8gV3JhcCBzY29wZSB3aXRoIHByb3RlY3Rpb24gdG8gaW50ZXJjZXB0IGRpcmVjdCBwcm9wZXJ0eSBhc3NpZ25tZW50cy5cbiAgICAvLyBTa2lwIGZvciBUeXBlZFNjb3BlIOKAlCBpdCBhbHJlYWR5IGhhcyBpdHMgb3duIFByb3h5IHdpdGggcHJvcGVyIHNldCB0cmFwc1xuICAgIC8vIHRoYXQgZGVsZWdhdGUgdG8gc2V0VmFsdWUoKS5cbiAgICBjb25zdCBpc1R5cGVkU2NvcGUgPSByYXdTY29wZSAmJiAocmF3U2NvcGUgYXMgYW55KVtJU19UWVBFRF9TQ09QRV0gPT09IHRydWU7XG4gICAgY29uc3Qgc2NvcGUgPSBpc1R5cGVkU2NvcGVcbiAgICAgID8gcmF3U2NvcGVcbiAgICAgIDogKGNyZWF0ZVByb3RlY3RlZFNjb3BlKHJhd1Njb3BlIGFzIG9iamVjdCwge1xuICAgICAgICAgIG1vZGU6IHRoaXMuZGVwcy5zY29wZVByb3RlY3Rpb25Nb2RlLFxuICAgICAgICAgIHN0YWdlTmFtZTogbm9kZS5uYW1lLFxuICAgICAgICB9KSBhcyBUU2NvcGUpO1xuXG4gICAgLy8gU2V0IHVwIHN0cmVhbWluZyBjYWxsYmFjayBpZiB0aGlzIGlzIGEgc3RyZWFtaW5nIHN0YWdlXG4gICAgbGV0IHN0cmVhbUNhbGxiYWNrOiBTdHJlYW1DYWxsYmFjayB8IHVuZGVmaW5lZDtcbiAgICBsZXQgYWNjdW11bGF0ZWRUZXh0ID0gJyc7XG5cbiAgICBpZiAobm9kZS5pc1N0cmVhbWluZykge1xuICAgICAgY29uc3Qgc3RyZWFtSWQgPSBub2RlLnN0cmVhbUlkID8/IG5vZGUubmFtZTtcbiAgICAgIHN0cmVhbUNhbGxiYWNrID0gKHRva2VuOiBzdHJpbmcpID0+IHtcbiAgICAgICAgYWNjdW11bGF0ZWRUZXh0ICs9IHRva2VuO1xuICAgICAgICB0aGlzLmRlcHMuc3RyZWFtSGFuZGxlcnM/Lm9uVG9rZW4/LihzdHJlYW1JZCwgdG9rZW4pO1xuICAgICAgfTtcbiAgICAgIHRoaXMuZGVwcy5zdHJlYW1IYW5kbGVycz8ub25TdGFydD8uKHN0cmVhbUlkKTtcbiAgICB9XG5cbiAgICAvLyBJbmplY3QgYnJlYWtQaXBlbGluZSBpbnRvIFR5cGVkU2NvcGUgdmlhIEJSRUFLX1NFVFRFUiAoaWYgdGhlIHNjb3BlIHN1cHBvcnRzIGl0KVxuICAgIGlmIChyYXdTY29wZSAmJiB0eXBlb2YgKHJhd1Njb3BlIGFzIGFueSlbQlJFQUtfU0VUVEVSXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgKHJhd1Njb3BlIGFzIGFueSlbQlJFQUtfU0VUVEVSXShicmVha0ZuKTtcbiAgICB9XG5cbiAgICAvLyBOb3RpZnkgcmVjb3JkZXJzIG9mIHN0YWdlIHN0YXJ0IChpZiBzY29wZSBzdXBwb3J0cyBpdClcbiAgICBpZiAocmF3U2NvcGUgJiYgdHlwZW9mIChyYXdTY29wZSBhcyBhbnkpLm5vdGlmeVN0YWdlU3RhcnQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIChyYXdTY29wZSBhcyBhbnkpLm5vdGlmeVN0YWdlU3RhcnQoKTtcbiAgICB9XG5cbiAgICAvLyBFeGVjdXRlIHRoZSBzdGFnZSBmdW5jdGlvblxuICAgIGNvbnN0IG91dHB1dCA9IHN0YWdlRnVuYyhzY29wZSwgYnJlYWtGbiwgc3RyZWFtQ2FsbGJhY2spO1xuXG4gICAgLy8gU3luYythc3luYyBzYWZldHk6IG9ubHkgYXdhaXQgcmVhbCBQcm9taXNlcyB0byBhdm9pZCB0aGVuYWJsZSBhc3NpbWlsYXRpb25cbiAgICBsZXQgcmVzdWx0OiBUT3V0O1xuICAgIGlmIChvdXRwdXQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAvLyBSYWNlIGFnYWluc3QgQWJvcnRTaWduYWwgaWYgcHJvdmlkZWRcbiAgICAgIGlmICh0aGlzLmRlcHMuc2lnbmFsKSB7XG4gICAgICAgIHJlc3VsdCA9IChhd2FpdCByYWNlQWJvcnQob3V0cHV0LCB0aGlzLmRlcHMuc2lnbmFsKSkgYXMgVE91dDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdCA9IChhd2FpdCBvdXRwdXQpIGFzIFRPdXQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IG91dHB1dCBhcyBUT3V0O1xuICAgIH1cblxuICAgIC8vIE5vdGlmeSByZWNvcmRlcnMgb2Ygc3RhZ2UgZW5kIChpZiBzY29wZSBzdXBwb3J0cyBpdClcbiAgICBpZiAocmF3U2NvcGUgJiYgdHlwZW9mIChyYXdTY29wZSBhcyBhbnkpLm5vdGlmeVN0YWdlRW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAocmF3U2NvcGUgYXMgYW55KS5ub3RpZnlTdGFnZUVuZCgpO1xuICAgIH1cblxuICAgIC8vIENhbGwgb25FbmQgbGlmZWN5Y2xlIGhvb2sgZm9yIHN0cmVhbWluZyBzdGFnZXNcbiAgICBpZiAobm9kZS5pc1N0cmVhbWluZykge1xuICAgICAgY29uc3Qgc3RyZWFtSWQgPSBub2RlLnN0cmVhbUlkID8/IG5vZGUubmFtZTtcbiAgICAgIHRoaXMuZGVwcy5zdHJlYW1IYW5kbGVycz8ub25FbmQ/LihzdHJlYW1JZCwgYWNjdW11bGF0ZWRUZXh0KTtcbiAgICB9XG5cbiAgICAvLyDilIDilIAgUGF1c2UgZGV0ZWN0aW9uIOKUgOKUgFxuICAgIC8vIFBhdXNhYmxlIHN0YWdlczogYW55IG5vbi12b2lkIHJldHVybiA9IHBhdXNlIHdpdGggdGhhdCBkYXRhLlxuICAgIC8vIEFsc28gc3VwcG9ydHMgZXhwbGljaXQgcGF1c2UoeyAuLi4gfSkgZm9yIGJhY2t3YXJkIGNvbXBhdC5cbiAgICBpZiAobm9kZS5pc1BhdXNhYmxlICYmIHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBwYXVzZURhdGEgPSBpc1BhdXNlUmVzdWx0KHJlc3VsdCkgPyAocmVzdWx0IGFzIGFueSkuZGF0YSA6IHJlc3VsdDtcbiAgICAgIC8vIE5vdGlmeSBzY29wZSByZWNvcmRlcnMgYmVmb3JlIHRocm93aW5nXG4gICAgICBpZiAocmF3U2NvcGUgJiYgdHlwZW9mIChyYXdTY29wZSBhcyBhbnkpLm5vdGlmeVBhdXNlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIChyYXdTY29wZSBhcyBhbnkpLm5vdGlmeVBhdXNlKHBhdXNlRGF0YSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgUGF1c2VTaWduYWwocGF1c2VEYXRhLCBub2RlLmlkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbi8qKiBSYWNlIGEgcHJvbWlzZSBhZ2FpbnN0IGFuIEFib3J0U2lnbmFsLiBSZWplY3RzIHdpdGggdGhlIHNpZ25hbCdzIHJlYXNvbiBvbiBhYm9ydC4gKi9cbmZ1bmN0aW9uIHJhY2VBYm9ydDxUPihwcm9taXNlOiBQcm9taXNlPFQ+LCBzaWduYWw6IEFib3J0U2lnbmFsKTogUHJvbWlzZTxUPiB7XG4gIGlmIChzaWduYWwuYWJvcnRlZCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChzaWduYWwucmVhc29uIGluc3RhbmNlb2YgRXJyb3IgPyBzaWduYWwucmVhc29uIDogbmV3IEVycm9yKHNpZ25hbC5yZWFzb24gPz8gJ0Fib3J0ZWQnKSk7XG4gIH1cbiAgcmV0dXJuIG5ldyBQcm9taXNlPFQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBvbkFib3J0ID0gKCkgPT5cbiAgICAgIHJlamVjdChzaWduYWwucmVhc29uIGluc3RhbmNlb2YgRXJyb3IgPyBzaWduYWwucmVhc29uIDogbmV3IEVycm9yKHNpZ25hbC5yZWFzb24gPz8gJ0Fib3J0ZWQnKSk7XG4gICAgc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCwgeyBvbmNlOiB0cnVlIH0pO1xuICAgIHByb21pc2UudGhlbihcbiAgICAgICh2YWwpID0+IHtcbiAgICAgICAgc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Fib3J0Jywgb25BYm9ydCk7XG4gICAgICAgIHJlc29sdmUodmFsKTtcbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiB7XG4gICAgICAgIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCdhYm9ydCcsIG9uQWJvcnQpO1xuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7O0dBT0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIElDb250cm9sRmxvd05hcnJhdGl2ZSDigJQgSW50ZXJmYWNlIGZvciBjb250cm9sIGZsb3cgbmFycmF0aXZlIGdlbmVyYXRpb24uXG4gKlxuICogQ2FwdHVyZXMgRkxPVyBldmVudHMgZHVyaW5nIHRyYXZlcnNhbDogZGVjaXNpb25zLCBmb3JrcywgbG9vcHMsIHN1YmZsb3dzLlxuICogQ29tcGxlbWVudGFyeSB0byBzY29wZS9yZWNvcmRlcnMvTmFycmF0aXZlUmVjb3JkZXIgd2hpY2ggY2FwdHVyZXMgREFUQSBldmVudHMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHsgRGVjaXNpb25FdmlkZW5jZSwgU2VsZWN0aW9uRXZpZGVuY2UgfSBmcm9tICcuLi8uLi9kZWNpZGUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTdHJ1Y3R1cmVkRXJyb3JJbmZvIH0gZnJvbSAnLi4vZXJyb3JzL2Vycm9ySW5mby5qcyc7XG5cbi8qKlxuICpcbiAqIFVzZXMgTnVsbCBPYmplY3QgcGF0dGVybjogTnVsbENvbnRyb2xGbG93TmFycmF0aXZlR2VuZXJhdG9yIHNhdGlzZmllcyB0aGlzXG4gKiBpbnRlcmZhY2Ugd2l0aCBlbXB0eSBtZXRob2RzIGZvciB6ZXJvLWNvc3QgZGlzYWJsZWQgcGF0aC5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb250cm9sRmxvd05hcnJhdGl2ZSB7XG4gIC8qKiBDYWxsZWQgd2hlbiBhIHN0YWdlIGV4ZWN1dGVzLiBGaXJzdCBzdGFnZSB1c2VzIGRpc3RpbmN0IG9wZW5pbmcgcGF0dGVybi4gKi9cbiAgb25TdGFnZUV4ZWN1dGVkKHN0YWdlTmFtZTogc3RyaW5nLCBkZXNjcmlwdGlvbj86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgb24gbGluZWFyIGNvbnRpbnVhdGlvbiBmcm9tIG9uZSBzdGFnZSB0byB0aGUgbmV4dC4gKi9cbiAgb25OZXh0KGZyb21TdGFnZTogc3RyaW5nLCB0b1N0YWdlOiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQ7XG5cbiAgLyoqIENhbGxlZCB3aGVuIGEgZGVjaWRlciBzZWxlY3RzIGEgYnJhbmNoLiBNb3N0IHZhbHVhYmxlIGZvciBMTE0gY29udGV4dC4gKi9cbiAgb25EZWNpc2lvbihcbiAgICBkZWNpZGVyTmFtZTogc3RyaW5nLFxuICAgIGNob3NlbkJyYW5jaDogc3RyaW5nLFxuICAgIHJhdGlvbmFsZT86IHN0cmluZyxcbiAgICBkZWNpZGVyRGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgZXZpZGVuY2U/OiBEZWNpc2lvbkV2aWRlbmNlLFxuICApOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBhIGZvcmsgZXhlY3V0ZXMgYWxsIGNoaWxkcmVuIGluIHBhcmFsbGVsLiAqL1xuICBvbkZvcmsocGFyZW50U3RhZ2U6IHN0cmluZywgY2hpbGROYW1lczogc3RyaW5nW10sIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZDtcblxuICAvKiogQ2FsbGVkIHdoZW4gYSBzZWxlY3RvciBwaWNrcyBhIHN1YnNldCBvZiBjaGlsZHJlbi4gKi9cbiAgb25TZWxlY3RlZChcbiAgICBwYXJlbnRTdGFnZTogc3RyaW5nLFxuICAgIHNlbGVjdGVkTmFtZXM6IHN0cmluZ1tdLFxuICAgIHRvdGFsQ291bnQ6IG51bWJlcixcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgICBldmlkZW5jZT86IFNlbGVjdGlvbkV2aWRlbmNlLFxuICApOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBlbnRlcmluZyBhIHN1YmZsb3cgKG5lc3RlZCBjb250ZXh0IGJvdW5kYXJ5KS4gKi9cbiAgb25TdWJmbG93RW50cnkoXG4gICAgc3ViZmxvd05hbWU6IHN0cmluZyxcbiAgICBzdWJmbG93SWQ/OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IHZvaWQ7XG5cbiAgLyoqIENhbGxlZCB3aGVuIGV4aXRpbmcgYSBzdWJmbG93LiAqL1xuICBvblN1YmZsb3dFeGl0KHN1YmZsb3dOYW1lOiBzdHJpbmcsIHN1YmZsb3dJZD86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBhIGR5bmFtaWMgc3ViZmxvdyBpcyByZWdpc3RlcmVkIGR1cmluZyB0cmF2ZXJzYWwuICovXG4gIG9uU3ViZmxvd1JlZ2lzdGVyZWQoc3ViZmxvd0lkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIHNwZWNTdHJ1Y3R1cmU/OiB1bmtub3duKTogdm9pZDtcblxuICAvKiogQ2FsbGVkIG9uIGxvb3AgaXRlcmF0aW9uIChiYWNrLWVkZ2UgdHJhdmVyc2FsKS4gKi9cbiAgb25Mb29wKHRhcmdldFN0YWdlOiBzdHJpbmcsIGl0ZXJhdGlvbjogbnVtYmVyLCBkZXNjcmlwdGlvbj86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBhIHN0YWdlIHRyaWdnZXJzIGJyZWFrIChlYXJseSB0ZXJtaW5hdGlvbikuICovXG4gIG9uQnJlYWsoc3RhZ2VOYW1lOiBzdHJpbmcsIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZDtcblxuICAvKiogQ2FsbGVkIHdoZW4gYSBzdGFnZSB0aHJvd3MgYW4gZXJyb3IuIFJhdyBlcnJvciBpcyBleHRyYWN0ZWQgaW50byBzdHJ1Y3R1cmVkIGRldGFpbHMuICovXG4gIG9uRXJyb3Ioc3RhZ2VOYW1lOiBzdHJpbmcsIGVycm9yTWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBhIHBhdXNhYmxlIHN0YWdlIHBhdXNlcyBleGVjdXRpb24uICovXG4gIG9uUGF1c2UoXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgc3RhZ2VJZDogc3RyaW5nLFxuICAgIHBhdXNlRGF0YTogdW5rbm93bixcbiAgICBzdWJmbG93UGF0aDogcmVhZG9ubHkgc3RyaW5nW10sXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IHZvaWQ7XG5cbiAgLyoqIENhbGxlZCB3aGVuIGEgcGF1c2VkIHN0YWdlIGlzIHJlc3VtZWQuICovXG4gIG9uUmVzdW1lKHN0YWdlTmFtZTogc3RyaW5nLCBzdGFnZUlkOiBzdHJpbmcsIGhhc0lucHV0OiBib29sZWFuLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQ7XG5cbiAgLyoqIFJldHVybnMgYWNjdW11bGF0ZWQgbmFycmF0aXZlIHNlbnRlbmNlcyBpbiBleGVjdXRpb24gb3JkZXIuICovXG4gIGdldFNlbnRlbmNlcygpOiBzdHJpbmdbXTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVHJhdmVyc2FsQ29udGV4dCDigJQgcmVhZC1vbmx5IGV4ZWN1dGlvbiBjb250ZXh0IGZyb20gdGhlIHRyYXZlcnNlci5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBUcmF2ZXJzYWwgY29udGV4dCBhdHRhY2hlZCB0byBldmVyeSBGbG93UmVjb3JkZXIgZXZlbnQuXG4gKiBDcmVhdGVkIGJ5IHRoZSB0cmF2ZXJzZXIgZHVyaW5nIERGUywgcGFzc2VkIHRvIHJlY29yZGVycyBhcyByZWFkLW9ubHkgZGF0YS5cbiAqIEVuYWJsZXMgcmVjb3JkZXJzIHRvIGJ1aWxkIHRyZWVzLCBncm91cCBieSBzdWJmbG93LCBhbmQgY29ycmVsYXRlIGV2ZW50c1xuICogd2l0aG91dCBtYWludGFpbmluZyB0aGVpciBvd24gc3RhY2tzIG9yIHBvc3QtcHJvY2Vzc2luZy5cbiAqXG4gKiBMaWtlIE9wZW5UZWxlbWV0cnkncyBzcGFuIGNvbnRleHQ6IHN0YWdlSWQgKyBwYXJlbnRTdGFnZUlkIGZvcm0gYSB0cmVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYXZlcnNhbENvbnRleHQge1xuICAvKiogU3RhYmxlIHN0YWdlIGlkZW50aWZpZXIgZnJvbSB0aGUgYnVpbGRlciAobWF0Y2hlcyBzcGVjIG5vZGUgaWQpLiAqL1xuICByZWFkb25seSBzdGFnZUlkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBzdGFnZSBuYW1lLiAqL1xuICByZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcbiAgLyoqIFBhcmVudCBzdGFnZSBJRCDigJQgd2FsayB1cCB0byByZWNvbnN0cnVjdCB0aGUgdHJlZS4gVW5kZWZpbmVkIGF0IHJvb3QuICovXG4gIHJlYWRvbmx5IHBhcmVudFN0YWdlSWQ/OiBzdHJpbmc7XG4gIC8qKiBTdWJmbG93IElEIHdoZW4gaW5zaWRlIGEgc3ViZmxvdy4gVW5kZWZpbmVkIGF0IHJvb3QgbGV2ZWwuICovXG4gIHJlYWRvbmx5IHN1YmZsb3dJZD86IHN0cmluZztcbiAgLyoqIEZ1bGwgc3ViZmxvdyBwYXRoIGZvciBuZXN0ZWQgc3ViZmxvd3MgKGUuZy4sIFwic2Ytb3V0ZXIvc2YtaW5uZXJcIikuICovXG4gIHJlYWRvbmx5IHN1YmZsb3dQYXRoPzogc3RyaW5nO1xuICAvKiogTmVzdGluZyBkZXB0aCAoMCA9IHJvb3QsIDEgPSBpbnNpZGUgZmlyc3Qgc3ViZmxvdywgZXRjLikuICovXG4gIHJlYWRvbmx5IGRlcHRoOiBudW1iZXI7XG4gIC8qKiBMb29wIGl0ZXJhdGlvbiBudW1iZXIgd2hlbiByZXZpc2l0aW5nIGEgbm9kZSB2aWEgbG9vcFRvLiAqL1xuICByZWFkb25seSBsb29wSXRlcmF0aW9uPzogbnVtYmVyO1xuICAvKiogRm9yayBicmFuY2ggSUQgd2hlbiBpbnNpZGUgYSBwYXJhbGxlbCBvciBkZWNpZGVyIGJyYW5jaC4gKi9cbiAgcmVhZG9ubHkgZm9ya0JyYW5jaD86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRmxvd1JlY29yZGVyIOKAlCBQbHVnZ2FibGUgb2JzZXJ2ZXIgZm9yIGNvbnRyb2wgZmxvdyBldmVudHMuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBFdmVudCBwYXNzZWQgdG8gRmxvd1JlY29yZGVyLm9uU3RhZ2VFeGVjdXRlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1N0YWdlRXZlbnQge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBUcmF2ZXJzYWwgY29udGV4dCBmcm9tIHRoZSBlbmdpbmUg4oCUIHJlYWQtb25seSwgc2V0IGJ5IHRyYXZlcnNlci4gKi9cbiAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQ7XG59XG5cbi8qKiBFdmVudCBwYXNzZWQgdG8gRmxvd1JlY29yZGVyLm9uTmV4dC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd05leHRFdmVudCB7XG4gIGZyb206IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0O1xufVxuXG4vKiogRXZlbnQgcGFzc2VkIHRvIEZsb3dSZWNvcmRlci5vbkRlY2lzaW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93RGVjaXNpb25FdmVudCB7XG4gIGRlY2lkZXI6IHN0cmluZztcbiAgY2hvc2VuOiBzdHJpbmc7XG4gIHJhdGlvbmFsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0O1xuICAvKiogU3RydWN0dXJlZCBkZWNpc2lvbiBldmlkZW5jZSBmcm9tIGRlY2lkZSgpIGhlbHBlci4gKi9cbiAgZXZpZGVuY2U/OiBEZWNpc2lvbkV2aWRlbmNlO1xufVxuXG4vKiogRXZlbnQgcGFzc2VkIHRvIEZsb3dSZWNvcmRlci5vbkZvcmsuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dGb3JrRXZlbnQge1xuICBwYXJlbnQ6IHN0cmluZztcbiAgY2hpbGRyZW46IHN0cmluZ1tdO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbn1cblxuLyoqIEV2ZW50IHBhc3NlZCB0byBGbG93UmVjb3JkZXIub25TZWxlY3RlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1NlbGVjdGVkRXZlbnQge1xuICBwYXJlbnQ6IHN0cmluZztcbiAgc2VsZWN0ZWQ6IHN0cmluZ1tdO1xuICB0b3RhbDogbnVtYmVyO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbiAgLyoqIFN0cnVjdHVyZWQgc2VsZWN0aW9uIGV2aWRlbmNlIGZyb20gc2VsZWN0KCkgaGVscGVyLiAqL1xuICBldmlkZW5jZT86IFNlbGVjdGlvbkV2aWRlbmNlO1xufVxuXG4vKiogRXZlbnQgcGFzc2VkIHRvIEZsb3dSZWNvcmRlci5vblN1YmZsb3cuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dTdWJmbG93RXZlbnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBTdWJmbG93IGlkZW50aWZpZXIg4oCUIHVzZSB0aGlzIHRvIGxvb2sgdXAgdGhlIGZ1bGwgc3BlYyB2aWEgdGhlIG1hbmlmZXN0LiAqL1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIC8qKiBCdWlsZC10aW1lIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcyBzdWJmbG93IGRvZXMuICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbn1cblxuLyoqIEV2ZW50IHBhc3NlZCB0byBGbG93UmVjb3JkZXIub25TdWJmbG93UmVnaXN0ZXJlZCAoZHluYW1pYyBzdWJmbG93IGF0dGFjaG1lbnQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93U3ViZmxvd1JlZ2lzdGVyZWRFdmVudCB7XG4gIC8qKiBTdWJmbG93IGlkZW50aWZpZXIuICovXG4gIHN1YmZsb3dJZDogc3RyaW5nO1xuICAvKiogSHVtYW4tcmVhZGFibGUgbmFtZS4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogQnVpbGQtdGltZSBkZXNjcmlwdGlvbi4gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBGdWxsIHNwZWMgc3RydWN0dXJlICh3aGVuIGF2YWlsYWJsZSBmcm9tIGJ1aWxkVGltZVN0cnVjdHVyZSkuICovXG4gIHNwZWNTdHJ1Y3R1cmU/OiB1bmtub3duO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbn1cblxuLyoqIEV2ZW50IHBhc3NlZCB0byBGbG93UmVjb3JkZXIub25Mb29wLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93TG9vcEV2ZW50IHtcbiAgdGFyZ2V0OiBzdHJpbmc7XG4gIGl0ZXJhdGlvbjogbnVtYmVyO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQ7XG59XG5cbi8qKiBFdmVudCBwYXNzZWQgdG8gRmxvd1JlY29yZGVyLm9uQnJlYWsuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dCcmVha0V2ZW50IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0O1xufVxuXG4vKiogRXZlbnQgcGFzc2VkIHRvIEZsb3dSZWNvcmRlci5vbkVycm9yLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93RXJyb3JFdmVudCB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIC8qKiBTdHJ1Y3R1cmVkIGVycm9yIGRldGFpbHMg4oCUIHByZXNlcnZlcyBmaWVsZC1sZXZlbCBpc3N1ZXMsIGVycm9yIGNvZGVzLCBldGMuICovXG4gIHN0cnVjdHVyZWRFcnJvcjogU3RydWN0dXJlZEVycm9ySW5mbztcbiAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQ7XG59XG5cbi8qKiBFdmVudCBwYXNzZWQgdG8gRmxvd1JlY29yZGVyLm9uUGF1c2UuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dQYXVzZUV2ZW50IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHN0YWdlSWQ6IHN0cmluZztcbiAgLyoqIERhdGEgZnJvbSB0aGUgcGF1c2Ugc2lnbmFsIChxdWVzdGlvbiwgcmVhc29uLCBtZXRhZGF0YSkuICovXG4gIHBhdXNlRGF0YT86IHVua25vd247XG4gIC8qKiBQYXRoIHRocm91Z2ggc3ViZmxvd3MgdG8gdGhlIHBhdXNlZCBzdGFnZS4gRW1wdHkgYXQgcm9vdCBsZXZlbC4gKi9cbiAgc3ViZmxvd1BhdGg6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbn1cblxuLyoqIEV2ZW50IHBhc3NlZCB0byBGbG93UmVjb3JkZXIub25SZXN1bWUuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dSZXN1bWVFdmVudCB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICBzdGFnZUlkOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHJlc3VtZSBpbnB1dCB3YXMgcHJvdmlkZWQuICovXG4gIGhhc0lucHV0OiBib29sZWFuO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbn1cblxuLyoqXG4gKiBGbG93UmVjb3JkZXIg4oCUIFBsdWdnYWJsZSBvYnNlcnZlciBmb3IgY29udHJvbCBmbG93IGV2ZW50cy5cbiAqXG4gKiBNaXJyb3JzIHRoZSBzY29wZS1sZXZlbCBSZWNvcmRlciBwYXR0ZXJuIGZvciB0aGUgZW5naW5lIGxheWVyLlxuICogQWxsIG1ldGhvZHMgYXJlIG9wdGlvbmFsIOKAlCBpbXBsZW1lbnQgb25seSB0aGUgaG9va3MgeW91IG5lZWQuXG4gKiBSZWNvcmRlcnMgYXJlIGludm9rZWQgc3luY2hyb25vdXNseSBpbiBhdHRhY2htZW50IG9yZGVyLlxuICogSWYgYSByZWNvcmRlciB0aHJvd3MsIHRoZSBlcnJvciBpcyBjYXVnaHQgYW5kIHN3YWxsb3dlZDsgZXhlY3V0aW9uIGNvbnRpbnVlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbWV0cmljc1JlY29yZGVyOiBGbG93UmVjb3JkZXIgPSB7XG4gKiAgIGlkOiAnbWV0cmljcycsXG4gKiAgIG9uTG9vcDogKGV2ZW50KSA9PiByZWNvcmRNZXRyaWMoJ2xvb3AuaXRlcmF0aW9uJywgZXZlbnQuaXRlcmF0aW9uKSxcbiAqICAgb25EZWNpc2lvbjogKGV2ZW50KSA9PiByZWNvcmRNZXRyaWMoJ2RlY2lzaW9uJywgZXZlbnQuY2hvc2VuKSxcbiAqIH07XG4gKiBleGVjdXRvci5hdHRhY2hGbG93UmVjb3JkZXIobWV0cmljc1JlY29yZGVyKTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dSZWNvcmRlciB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIG9uU3RhZ2VFeGVjdXRlZD8oZXZlbnQ6IEZsb3dTdGFnZUV2ZW50KTogdm9pZDtcbiAgb25OZXh0PyhldmVudDogRmxvd05leHRFdmVudCk6IHZvaWQ7XG4gIG9uRGVjaXNpb24/KGV2ZW50OiBGbG93RGVjaXNpb25FdmVudCk6IHZvaWQ7XG4gIG9uRm9yaz8oZXZlbnQ6IEZsb3dGb3JrRXZlbnQpOiB2b2lkO1xuICBvblNlbGVjdGVkPyhldmVudDogRmxvd1NlbGVjdGVkRXZlbnQpOiB2b2lkO1xuICBvblN1YmZsb3dFbnRyeT8oZXZlbnQ6IEZsb3dTdWJmbG93RXZlbnQpOiB2b2lkO1xuICBvblN1YmZsb3dFeGl0PyhldmVudDogRmxvd1N1YmZsb3dFdmVudCk6IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiBhIGR5bmFtaWMgc3ViZmxvdyBpcyByZWdpc3RlcmVkIGR1cmluZyB0cmF2ZXJzYWwuICovXG4gIG9uU3ViZmxvd1JlZ2lzdGVyZWQ/KGV2ZW50OiBGbG93U3ViZmxvd1JlZ2lzdGVyZWRFdmVudCk6IHZvaWQ7XG4gIG9uTG9vcD8oZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkO1xuICBvbkJyZWFrPyhldmVudDogRmxvd0JyZWFrRXZlbnQpOiB2b2lkO1xuICBvbkVycm9yPyhldmVudDogRmxvd0Vycm9yRXZlbnQpOiB2b2lkO1xuICBvblBhdXNlPyhldmVudDogRmxvd1BhdXNlRXZlbnQpOiB2b2lkO1xuICBvblJlc3VtZT8oZXZlbnQ6IEZsb3dSZXN1bWVFdmVudCk6IHZvaWQ7XG4gIC8qKiBDYWxsZWQgYmVmb3JlIGVhY2ggcnVuIHRvIHJlc2V0IHBlci1ydW4gc3RhdGUuIEltcGxlbWVudCBmb3Igc3RhdGVmdWwgcmVjb3JkZXJzLiAqL1xuICBjbGVhcj8oKTogdm9pZDtcbiAgLyoqIE9wdGlvbmFsOiBleHBvc2UgY29sbGVjdGVkIGRhdGEgZm9yIGluY2x1c2lvbiBpbiBzbmFwc2hvdHMuICovXG4gIHRvU25hcHNob3Q/KCk6IHsgbmFtZTogc3RyaW5nOyBkYXRhOiB1bmtub3duIH07XG59XG4iXX0=
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9uYXJyYXRpdmUvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7O0dBT0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIElDb250cm9sRmxvd05hcnJhdGl2ZSDigJQgSW50ZXJmYWNlIGZvciBjb250cm9sIGZsb3cgbmFycmF0aXZlIGdlbmVyYXRpb24uXG4gKlxuICogQ2FwdHVyZXMgRkxPVyBldmVudHMgZHVyaW5nIHRyYXZlcnNhbDogZGVjaXNpb25zLCBmb3JrcywgbG9vcHMsIHN1YmZsb3dzLlxuICogQ29tcGxlbWVudGFyeSB0byBzY29wZS9yZWNvcmRlcnMvTmFycmF0aXZlUmVjb3JkZXIgd2hpY2ggY2FwdHVyZXMgREFUQSBldmVudHMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHsgRGVjaXNpb25FdmlkZW5jZSwgU2VsZWN0aW9uRXZpZGVuY2UgfSBmcm9tICcuLi8uLi9kZWNpZGUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTdHJ1Y3R1cmVkRXJyb3JJbmZvIH0gZnJvbSAnLi4vZXJyb3JzL2Vycm9ySW5mby5qcyc7XG5cbi8qKlxuICpcbiAqIFVzZXMgTnVsbCBPYmplY3QgcGF0dGVybjogTnVsbENvbnRyb2xGbG93TmFycmF0aXZlR2VuZXJhdG9yIHNhdGlzZmllcyB0aGlzXG4gKiBpbnRlcmZhY2Ugd2l0aCBlbXB0eSBtZXRob2RzIGZvciB6ZXJvLWNvc3QgZGlzYWJsZWQgcGF0aC5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb250cm9sRmxvd05hcnJhdGl2ZSB7XG4gIC8qKiBDYWxsZWQgd2hlbiBhIHN0YWdlIGV4ZWN1dGVzLiBGaXJzdCBzdGFnZSB1c2VzIGRpc3RpbmN0IG9wZW5pbmcgcGF0dGVybi4gKi9cbiAgb25TdGFnZUV4ZWN1dGVkKHN0YWdlTmFtZTogc3RyaW5nLCBkZXNjcmlwdGlvbj86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgb24gbGluZWFyIGNvbnRpbnVhdGlvbiBmcm9tIG9uZSBzdGFnZSB0byB0aGUgbmV4dC4gKi9cbiAgb25OZXh0KGZyb21TdGFnZTogc3RyaW5nLCB0b1N0YWdlOiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQ7XG5cbiAgLyoqIENhbGxlZCB3aGVuIGEgZGVjaWRlciBzZWxlY3RzIGEgYnJhbmNoLiBNb3N0IHZhbHVhYmxlIGZvciBMTE0gY29udGV4dC4gKi9cbiAgb25EZWNpc2lvbihcbiAgICBkZWNpZGVyTmFtZTogc3RyaW5nLFxuICAgIGNob3NlbkJyYW5jaDogc3RyaW5nLFxuICAgIHJhdGlvbmFsZT86IHN0cmluZyxcbiAgICBkZWNpZGVyRGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICAgZXZpZGVuY2U/OiBEZWNpc2lvbkV2aWRlbmNlLFxuICApOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBhIGZvcmsgZXhlY3V0ZXMgYWxsIGNoaWxkcmVuIGluIHBhcmFsbGVsLiAqL1xuICBvbkZvcmsocGFyZW50U3RhZ2U6IHN0cmluZywgY2hpbGROYW1lczogc3RyaW5nW10sIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZDtcblxuICAvKiogQ2FsbGVkIHdoZW4gYSBzZWxlY3RvciBwaWNrcyBhIHN1YnNldCBvZiBjaGlsZHJlbi4gKi9cbiAgb25TZWxlY3RlZChcbiAgICBwYXJlbnRTdGFnZTogc3RyaW5nLFxuICAgIHNlbGVjdGVkTmFtZXM6IHN0cmluZ1tdLFxuICAgIHRvdGFsQ291bnQ6IG51bWJlcixcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgICBldmlkZW5jZT86IFNlbGVjdGlvbkV2aWRlbmNlLFxuICApOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBlbnRlcmluZyBhIHN1YmZsb3cgKG5lc3RlZCBjb250ZXh0IGJvdW5kYXJ5KS4gKi9cbiAgb25TdWJmbG93RW50cnkoXG4gICAgc3ViZmxvd05hbWU6IHN0cmluZyxcbiAgICBzdWJmbG93SWQ/OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IHZvaWQ7XG5cbiAgLyoqIENhbGxlZCB3aGVuIGV4aXRpbmcgYSBzdWJmbG93LiAqL1xuICBvblN1YmZsb3dFeGl0KHN1YmZsb3dOYW1lOiBzdHJpbmcsIHN1YmZsb3dJZD86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBhIGR5bmFtaWMgc3ViZmxvdyBpcyByZWdpc3RlcmVkIGR1cmluZyB0cmF2ZXJzYWwuICovXG4gIG9uU3ViZmxvd1JlZ2lzdGVyZWQoc3ViZmxvd0lkOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsIHNwZWNTdHJ1Y3R1cmU/OiB1bmtub3duKTogdm9pZDtcblxuICAvKiogQ2FsbGVkIG9uIGxvb3AgaXRlcmF0aW9uIChiYWNrLWVkZ2UgdHJhdmVyc2FsKS4gKi9cbiAgb25Mb29wKHRhcmdldFN0YWdlOiBzdHJpbmcsIGl0ZXJhdGlvbjogbnVtYmVyLCBkZXNjcmlwdGlvbj86IHN0cmluZywgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBhIHN0YWdlIHRyaWdnZXJzIGJyZWFrIChlYXJseSB0ZXJtaW5hdGlvbikuICovXG4gIG9uQnJlYWsoc3RhZ2VOYW1lOiBzdHJpbmcsIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0KTogdm9pZDtcblxuICAvKiogQ2FsbGVkIHdoZW4gYSBzdGFnZSB0aHJvd3MgYW4gZXJyb3IuIFJhdyBlcnJvciBpcyBleHRyYWN0ZWQgaW50byBzdHJ1Y3R1cmVkIGRldGFpbHMuICovXG4gIG9uRXJyb3Ioc3RhZ2VOYW1lOiBzdHJpbmcsIGVycm9yTWVzc2FnZTogc3RyaW5nLCBlcnJvcjogdW5rbm93biwgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQpOiB2b2lkO1xuXG4gIC8qKiBDYWxsZWQgd2hlbiBhIHBhdXNhYmxlIHN0YWdlIHBhdXNlcyBleGVjdXRpb24uICovXG4gIG9uUGF1c2UoXG4gICAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gICAgc3RhZ2VJZDogc3RyaW5nLFxuICAgIHBhdXNlRGF0YTogdW5rbm93bixcbiAgICBzdWJmbG93UGF0aDogcmVhZG9ubHkgc3RyaW5nW10sXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IHZvaWQ7XG5cbiAgLyoqIENhbGxlZCB3aGVuIGEgcGF1c2VkIHN0YWdlIGlzIHJlc3VtZWQuICovXG4gIG9uUmVzdW1lKHN0YWdlTmFtZTogc3RyaW5nLCBzdGFnZUlkOiBzdHJpbmcsIGhhc0lucHV0OiBib29sZWFuLCB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCk6IHZvaWQ7XG5cbiAgLyoqIFJldHVybnMgYWNjdW11bGF0ZWQgbmFycmF0aXZlIHNlbnRlbmNlcyBpbiBleGVjdXRpb24gb3JkZXIuICovXG4gIGdldFNlbnRlbmNlcygpOiBzdHJpbmdbXTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVHJhdmVyc2FsQ29udGV4dCDigJQgcmVhZC1vbmx5IGV4ZWN1dGlvbiBjb250ZXh0IGZyb20gdGhlIHRyYXZlcnNlci5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBUcmF2ZXJzYWwgY29udGV4dCBhdHRhY2hlZCB0byBldmVyeSBGbG93UmVjb3JkZXIgZXZlbnQuXG4gKiBDcmVhdGVkIGJ5IHRoZSB0cmF2ZXJzZXIgZHVyaW5nIERGUywgcGFzc2VkIHRvIHJlY29yZGVycyBhcyByZWFkLW9ubHkgZGF0YS5cbiAqIEVuYWJsZXMgcmVjb3JkZXJzIHRvIGJ1aWxkIHRyZWVzLCBncm91cCBieSBzdWJmbG93LCBhbmQgY29ycmVsYXRlIGV2ZW50c1xuICogd2l0aG91dCBtYWludGFpbmluZyB0aGVpciBvd24gc3RhY2tzIG9yIHBvc3QtcHJvY2Vzc2luZy5cbiAqXG4gKiBMaWtlIE9wZW5UZWxlbWV0cnkncyBzcGFuIGNvbnRleHQ6IHN0YWdlSWQgKyBwYXJlbnRTdGFnZUlkIGZvcm0gYSB0cmVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYXZlcnNhbENvbnRleHQge1xuICAvKiogU3RhYmxlIHN0YWdlIGlkZW50aWZpZXIgZnJvbSB0aGUgYnVpbGRlciAobWF0Y2hlcyBzcGVjIG5vZGUgaWQpLiAqL1xuICByZWFkb25seSBzdGFnZUlkOiBzdHJpbmc7XG4gIC8qKiBVbmlxdWUgcGVyLWV4ZWN1dGlvbi1zdGVwIGlkZW50aWZpZXIuIEZvcm1hdDogW3N1YmZsb3dQYXRoL11zdGFnZUlkI2V4ZWN1dGlvbkluZGV4ICovXG4gIHJlYWRvbmx5IHJ1bnRpbWVTdGFnZUlkOiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBzdGFnZSBuYW1lLiAqL1xuICByZWFkb25seSBzdGFnZU5hbWU6IHN0cmluZztcbiAgLyoqIFBhcmVudCBzdGFnZSBJRCDigJQgd2FsayB1cCB0byByZWNvbnN0cnVjdCB0aGUgdHJlZS4gVW5kZWZpbmVkIGF0IHJvb3QuICovXG4gIHJlYWRvbmx5IHBhcmVudFN0YWdlSWQ/OiBzdHJpbmc7XG4gIC8qKiBTdWJmbG93IElEIHdoZW4gaW5zaWRlIGEgc3ViZmxvdy4gVW5kZWZpbmVkIGF0IHJvb3QgbGV2ZWwuICovXG4gIHJlYWRvbmx5IHN1YmZsb3dJZD86IHN0cmluZztcbiAgLyoqIEZ1bGwgc3ViZmxvdyBwYXRoIGZvciBuZXN0ZWQgc3ViZmxvd3MgKGUuZy4sIFwic2Ytb3V0ZXIvc2YtaW5uZXJcIikuICovXG4gIHJlYWRvbmx5IHN1YmZsb3dQYXRoPzogc3RyaW5nO1xuICAvKiogTmVzdGluZyBkZXB0aCAoMCA9IHJvb3QsIDEgPSBpbnNpZGUgZmlyc3Qgc3ViZmxvdywgZXRjLikuICovXG4gIHJlYWRvbmx5IGRlcHRoOiBudW1iZXI7XG4gIC8qKiBMb29wIGl0ZXJhdGlvbiBudW1iZXIgd2hlbiByZXZpc2l0aW5nIGEgbm9kZSB2aWEgbG9vcFRvLiAqL1xuICByZWFkb25seSBsb29wSXRlcmF0aW9uPzogbnVtYmVyO1xuICAvKiogRm9yayBicmFuY2ggSUQgd2hlbiBpbnNpZGUgYSBwYXJhbGxlbCBvciBkZWNpZGVyIGJyYW5jaC4gKi9cbiAgcmVhZG9ubHkgZm9ya0JyYW5jaD86IHN0cmluZztcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRmxvd1JlY29yZGVyIOKAlCBQbHVnZ2FibGUgb2JzZXJ2ZXIgZm9yIGNvbnRyb2wgZmxvdyBldmVudHMuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBFdmVudCBwYXNzZWQgdG8gRmxvd1JlY29yZGVyLm9uU3RhZ2VFeGVjdXRlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1N0YWdlRXZlbnQge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBUcmF2ZXJzYWwgY29udGV4dCBmcm9tIHRoZSBlbmdpbmUg4oCUIHJlYWQtb25seSwgc2V0IGJ5IHRyYXZlcnNlci4gKi9cbiAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQ7XG59XG5cbi8qKiBFdmVudCBwYXNzZWQgdG8gRmxvd1JlY29yZGVyLm9uTmV4dC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd05leHRFdmVudCB7XG4gIGZyb206IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0O1xufVxuXG4vKiogRXZlbnQgcGFzc2VkIHRvIEZsb3dSZWNvcmRlci5vbkRlY2lzaW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93RGVjaXNpb25FdmVudCB7XG4gIGRlY2lkZXI6IHN0cmluZztcbiAgY2hvc2VuOiBzdHJpbmc7XG4gIHJhdGlvbmFsZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0O1xuICAvKiogU3RydWN0dXJlZCBkZWNpc2lvbiBldmlkZW5jZSBmcm9tIGRlY2lkZSgpIGhlbHBlci4gKi9cbiAgZXZpZGVuY2U/OiBEZWNpc2lvbkV2aWRlbmNlO1xufVxuXG4vKiogRXZlbnQgcGFzc2VkIHRvIEZsb3dSZWNvcmRlci5vbkZvcmsuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dGb3JrRXZlbnQge1xuICBwYXJlbnQ6IHN0cmluZztcbiAgY2hpbGRyZW46IHN0cmluZ1tdO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbn1cblxuLyoqIEV2ZW50IHBhc3NlZCB0byBGbG93UmVjb3JkZXIub25TZWxlY3RlZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxvd1NlbGVjdGVkRXZlbnQge1xuICBwYXJlbnQ6IHN0cmluZztcbiAgc2VsZWN0ZWQ6IHN0cmluZ1tdO1xuICB0b3RhbDogbnVtYmVyO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbiAgLyoqIFN0cnVjdHVyZWQgc2VsZWN0aW9uIGV2aWRlbmNlIGZyb20gc2VsZWN0KCkgaGVscGVyLiAqL1xuICBldmlkZW5jZT86IFNlbGVjdGlvbkV2aWRlbmNlO1xufVxuXG4vKiogRXZlbnQgcGFzc2VkIHRvIEZsb3dSZWNvcmRlci5vblN1YmZsb3cuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dTdWJmbG93RXZlbnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBTdWJmbG93IGlkZW50aWZpZXIg4oCUIHVzZSB0aGlzIHRvIGxvb2sgdXAgdGhlIGZ1bGwgc3BlYyB2aWEgdGhlIG1hbmlmZXN0LiAqL1xuICBzdWJmbG93SWQ/OiBzdHJpbmc7XG4gIC8qKiBCdWlsZC10aW1lIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhpcyBzdWJmbG93IGRvZXMuICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbn1cblxuLyoqIEV2ZW50IHBhc3NlZCB0byBGbG93UmVjb3JkZXIub25TdWJmbG93UmVnaXN0ZXJlZCAoZHluYW1pYyBzdWJmbG93IGF0dGFjaG1lbnQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93U3ViZmxvd1JlZ2lzdGVyZWRFdmVudCB7XG4gIC8qKiBTdWJmbG93IGlkZW50aWZpZXIuICovXG4gIHN1YmZsb3dJZDogc3RyaW5nO1xuICAvKiogSHVtYW4tcmVhZGFibGUgbmFtZS4gKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKiogQnVpbGQtdGltZSBkZXNjcmlwdGlvbi4gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBGdWxsIHNwZWMgc3RydWN0dXJlICh3aGVuIGF2YWlsYWJsZSBmcm9tIGJ1aWxkVGltZVN0cnVjdHVyZSkuICovXG4gIHNwZWNTdHJ1Y3R1cmU/OiB1bmtub3duO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbn1cblxuLyoqIEV2ZW50IHBhc3NlZCB0byBGbG93UmVjb3JkZXIub25Mb29wLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93TG9vcEV2ZW50IHtcbiAgdGFyZ2V0OiBzdHJpbmc7XG4gIGl0ZXJhdGlvbjogbnVtYmVyO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQ7XG59XG5cbi8qKiBFdmVudCBwYXNzZWQgdG8gRmxvd1JlY29yZGVyLm9uQnJlYWsuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dCcmVha0V2ZW50IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0O1xufVxuXG4vKiogRXZlbnQgcGFzc2VkIHRvIEZsb3dSZWNvcmRlci5vbkVycm9yLiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbG93RXJyb3JFdmVudCB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIC8qKiBTdHJ1Y3R1cmVkIGVycm9yIGRldGFpbHMg4oCUIHByZXNlcnZlcyBmaWVsZC1sZXZlbCBpc3N1ZXMsIGVycm9yIGNvZGVzLCBldGMuICovXG4gIHN0cnVjdHVyZWRFcnJvcjogU3RydWN0dXJlZEVycm9ySW5mbztcbiAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQ7XG59XG5cbi8qKiBFdmVudCBwYXNzZWQgdG8gRmxvd1JlY29yZGVyLm9uUGF1c2UuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dQYXVzZUV2ZW50IHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIHN0YWdlSWQ6IHN0cmluZztcbiAgLyoqIERhdGEgZnJvbSB0aGUgcGF1c2Ugc2lnbmFsIChxdWVzdGlvbiwgcmVhc29uLCBtZXRhZGF0YSkuICovXG4gIHBhdXNlRGF0YT86IHVua25vd247XG4gIC8qKiBQYXRoIHRocm91Z2ggc3ViZmxvd3MgdG8gdGhlIHBhdXNlZCBzdGFnZS4gRW1wdHkgYXQgcm9vdCBsZXZlbC4gKi9cbiAgc3ViZmxvd1BhdGg6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbn1cblxuLyoqIEV2ZW50IHBhc3NlZCB0byBGbG93UmVjb3JkZXIub25SZXN1bWUuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dSZXN1bWVFdmVudCB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICBzdGFnZUlkOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHJlc3VtZSBpbnB1dCB3YXMgcHJvdmlkZWQuICovXG4gIGhhc0lucHV0OiBib29sZWFuO1xuICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dDtcbn1cblxuLyoqXG4gKiBGbG93UmVjb3JkZXIg4oCUIFBsdWdnYWJsZSBvYnNlcnZlciBmb3IgY29udHJvbCBmbG93IGV2ZW50cy5cbiAqXG4gKiBNaXJyb3JzIHRoZSBzY29wZS1sZXZlbCBSZWNvcmRlciBwYXR0ZXJuIGZvciB0aGUgZW5naW5lIGxheWVyLlxuICogQWxsIG1ldGhvZHMgYXJlIG9wdGlvbmFsIOKAlCBpbXBsZW1lbnQgb25seSB0aGUgaG9va3MgeW91IG5lZWQuXG4gKiBSZWNvcmRlcnMgYXJlIGludm9rZWQgc3luY2hyb25vdXNseSBpbiBhdHRhY2htZW50IG9yZGVyLlxuICogSWYgYSByZWNvcmRlciB0aHJvd3MsIHRoZSBlcnJvciBpcyBjYXVnaHQgYW5kIHN3YWxsb3dlZDsgZXhlY3V0aW9uIGNvbnRpbnVlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgbWV0cmljc1JlY29yZGVyOiBGbG93UmVjb3JkZXIgPSB7XG4gKiAgIGlkOiAnbWV0cmljcycsXG4gKiAgIG9uTG9vcDogKGV2ZW50KSA9PiByZWNvcmRNZXRyaWMoJ2xvb3AuaXRlcmF0aW9uJywgZXZlbnQuaXRlcmF0aW9uKSxcbiAqICAgb25EZWNpc2lvbjogKGV2ZW50KSA9PiByZWNvcmRNZXRyaWMoJ2RlY2lzaW9uJywgZXZlbnQuY2hvc2VuKSxcbiAqIH07XG4gKiBleGVjdXRvci5hdHRhY2hGbG93UmVjb3JkZXIobWV0cmljc1JlY29yZGVyKTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsb3dSZWNvcmRlciB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIG9uU3RhZ2VFeGVjdXRlZD8oZXZlbnQ6IEZsb3dTdGFnZUV2ZW50KTogdm9pZDtcbiAgb25OZXh0PyhldmVudDogRmxvd05leHRFdmVudCk6IHZvaWQ7XG4gIG9uRGVjaXNpb24/KGV2ZW50OiBGbG93RGVjaXNpb25FdmVudCk6IHZvaWQ7XG4gIG9uRm9yaz8oZXZlbnQ6IEZsb3dGb3JrRXZlbnQpOiB2b2lkO1xuICBvblNlbGVjdGVkPyhldmVudDogRmxvd1NlbGVjdGVkRXZlbnQpOiB2b2lkO1xuICBvblN1YmZsb3dFbnRyeT8oZXZlbnQ6IEZsb3dTdWJmbG93RXZlbnQpOiB2b2lkO1xuICBvblN1YmZsb3dFeGl0PyhldmVudDogRmxvd1N1YmZsb3dFdmVudCk6IHZvaWQ7XG4gIC8qKiBDYWxsZWQgd2hlbiBhIGR5bmFtaWMgc3ViZmxvdyBpcyByZWdpc3RlcmVkIGR1cmluZyB0cmF2ZXJzYWwuICovXG4gIG9uU3ViZmxvd1JlZ2lzdGVyZWQ/KGV2ZW50OiBGbG93U3ViZmxvd1JlZ2lzdGVyZWRFdmVudCk6IHZvaWQ7XG4gIG9uTG9vcD8oZXZlbnQ6IEZsb3dMb29wRXZlbnQpOiB2b2lkO1xuICBvbkJyZWFrPyhldmVudDogRmxvd0JyZWFrRXZlbnQpOiB2b2lkO1xuICBvbkVycm9yPyhldmVudDogRmxvd0Vycm9yRXZlbnQpOiB2b2lkO1xuICBvblBhdXNlPyhldmVudDogRmxvd1BhdXNlRXZlbnQpOiB2b2lkO1xuICBvblJlc3VtZT8oZXZlbnQ6IEZsb3dSZXN1bWVFdmVudCk6IHZvaWQ7XG4gIC8qKiBDYWxsZWQgYmVmb3JlIGVhY2ggcnVuIHRvIHJlc2V0IHBlci1ydW4gc3RhdGUuIEltcGxlbWVudCBmb3Igc3RhdGVmdWwgcmVjb3JkZXJzLiAqL1xuICBjbGVhcj8oKTogdm9pZDtcbiAgLyoqIE9wdGlvbmFsOiBleHBvc2UgY29sbGVjdGVkIGRhdGEgZm9yIGluY2x1c2lvbiBpbiBzbmFwc2hvdHMuICovXG4gIHRvU25hcHNob3Q/KCk6IHsgbmFtZTogc3RyaW5nOyBkYXRhOiB1bmtub3duIH07XG59XG4iXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* runtimeStageId — unique identifier for each execution step during traversal.
|
|
4
|
+
*
|
|
5
|
+
* Format: [subflowPath/]stageId#executionIndex
|
|
6
|
+
*
|
|
7
|
+
* Components:
|
|
8
|
+
* stageId — stable node ID from the builder ('call-llm', 'seed')
|
|
9
|
+
* executionIndex — monotonic counter incremented per stage execution (0, 1, 2...)
|
|
10
|
+
* subflowPath — optional path for subflow stages ('sf-tools', 'sf-outer/sf-inner')
|
|
11
|
+
*
|
|
12
|
+
* Properties:
|
|
13
|
+
* - Unique within a run (executionIndex never repeats)
|
|
14
|
+
* - Execution-ordered (sort by executionIndex = execution order)
|
|
15
|
+
* - Human-readable ('sf-tools/execute-tool-calls#8')
|
|
16
|
+
* - Parseable (split on '#' for stageId and index, split stageId on '/' for subflow path)
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```
|
|
20
|
+
* buildRuntimeStageId('call-llm', 5) // 'call-llm#5'
|
|
21
|
+
* buildRuntimeStageId('execute-tool-calls', 8, 'sf-tools') // 'sf-tools/execute-tool-calls#8'
|
|
22
|
+
* buildRuntimeStageId('validate', 3, 'sf-outer/sf-inner') // 'sf-outer/sf-inner/validate#3'
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.createExecutionCounter = exports.parseRuntimeStageId = exports.buildRuntimeStageId = void 0;
|
|
27
|
+
/**
|
|
28
|
+
* Build a runtimeStageId from its components.
|
|
29
|
+
*
|
|
30
|
+
* Note: The traverser does NOT use the subflowPath parameter — node.id already
|
|
31
|
+
* includes the subflow prefix from the builder. This parameter exists for external
|
|
32
|
+
* consumers constructing IDs from parsed components (round-trip via parseRuntimeStageId).
|
|
33
|
+
*/
|
|
34
|
+
function buildRuntimeStageId(stageId, executionIndex, subflowPath) {
|
|
35
|
+
const prefix = subflowPath ? `${subflowPath}/` : '';
|
|
36
|
+
return `${prefix}${stageId}#${executionIndex}`;
|
|
37
|
+
}
|
|
38
|
+
exports.buildRuntimeStageId = buildRuntimeStageId;
|
|
39
|
+
/** Parse a runtimeStageId into its components. */
|
|
40
|
+
function parseRuntimeStageId(runtimeStageId) {
|
|
41
|
+
const hashIdx = runtimeStageId.lastIndexOf('#');
|
|
42
|
+
if (hashIdx === -1) {
|
|
43
|
+
return { stageId: runtimeStageId, executionIndex: 0, subflowPath: undefined };
|
|
44
|
+
}
|
|
45
|
+
const beforeHash = runtimeStageId.slice(0, hashIdx);
|
|
46
|
+
const executionIndex = parseInt(runtimeStageId.slice(hashIdx + 1), 10);
|
|
47
|
+
const lastSlash = beforeHash.lastIndexOf('/');
|
|
48
|
+
if (lastSlash === -1) {
|
|
49
|
+
return { stageId: beforeHash, executionIndex, subflowPath: undefined };
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
stageId: beforeHash.slice(lastSlash + 1),
|
|
53
|
+
executionIndex,
|
|
54
|
+
subflowPath: beforeHash.slice(0, lastSlash),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
exports.parseRuntimeStageId = parseRuntimeStageId;
|
|
58
|
+
/** Create a new execution counter starting at 0. */
|
|
59
|
+
function createExecutionCounter() {
|
|
60
|
+
return { value: 0 };
|
|
61
|
+
}
|
|
62
|
+
exports.createExecutionCounter = createExecutionCounter;
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZVN0YWdlSWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9ydW50aW1lU3RhZ2VJZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7OztBQUVIOzs7Ozs7R0FNRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLE9BQWUsRUFBRSxjQUFzQixFQUFFLFdBQW9CO0lBQy9GLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BELE9BQU8sR0FBRyxNQUFNLEdBQUcsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO0FBQ2pELENBQUM7QUFIRCxrREFHQztBQUVELGtEQUFrRDtBQUNsRCxTQUFnQixtQkFBbUIsQ0FBQyxjQUFzQjtJQUt4RCxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELElBQUksT0FBTyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDbkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDaEYsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV2RSxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDckIsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUN6RSxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDeEMsY0FBYztRQUNkLFdBQVcsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7S0FDNUMsQ0FBQztBQUNKLENBQUM7QUF2QkQsa0RBdUJDO0FBV0Qsb0RBQW9EO0FBQ3BELFNBQWdCLHNCQUFzQjtJQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ3RCLENBQUM7QUFGRCx3REFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogcnVudGltZVN0YWdlSWQg4oCUIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBlYWNoIGV4ZWN1dGlvbiBzdGVwIGR1cmluZyB0cmF2ZXJzYWwuXG4gKlxuICogRm9ybWF0OiBbc3ViZmxvd1BhdGgvXXN0YWdlSWQjZXhlY3V0aW9uSW5kZXhcbiAqXG4gKiBDb21wb25lbnRzOlxuICogICBzdGFnZUlkICAgICAgICDigJQgc3RhYmxlIG5vZGUgSUQgZnJvbSB0aGUgYnVpbGRlciAoJ2NhbGwtbGxtJywgJ3NlZWQnKVxuICogICBleGVjdXRpb25JbmRleCDigJQgbW9ub3RvbmljIGNvdW50ZXIgaW5jcmVtZW50ZWQgcGVyIHN0YWdlIGV4ZWN1dGlvbiAoMCwgMSwgMi4uLilcbiAqICAgc3ViZmxvd1BhdGggICAg4oCUIG9wdGlvbmFsIHBhdGggZm9yIHN1YmZsb3cgc3RhZ2VzICgnc2YtdG9vbHMnLCAnc2Ytb3V0ZXIvc2YtaW5uZXInKVxuICpcbiAqIFByb3BlcnRpZXM6XG4gKiAgIC0gVW5pcXVlIHdpdGhpbiBhIHJ1biAoZXhlY3V0aW9uSW5kZXggbmV2ZXIgcmVwZWF0cylcbiAqICAgLSBFeGVjdXRpb24tb3JkZXJlZCAoc29ydCBieSBleGVjdXRpb25JbmRleCA9IGV4ZWN1dGlvbiBvcmRlcilcbiAqICAgLSBIdW1hbi1yZWFkYWJsZSAoJ3NmLXRvb2xzL2V4ZWN1dGUtdG9vbC1jYWxscyM4JylcbiAqICAgLSBQYXJzZWFibGUgKHNwbGl0IG9uICcjJyBmb3Igc3RhZ2VJZCBhbmQgaW5kZXgsIHNwbGl0IHN0YWdlSWQgb24gJy8nIGZvciBzdWJmbG93IHBhdGgpXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYFxuICogYnVpbGRSdW50aW1lU3RhZ2VJZCgnY2FsbC1sbG0nLCA1KSAgICAgICAgICAgICAgICAgICAgLy8gJ2NhbGwtbGxtIzUnXG4gKiBidWlsZFJ1bnRpbWVTdGFnZUlkKCdleGVjdXRlLXRvb2wtY2FsbHMnLCA4LCAnc2YtdG9vbHMnKSAvLyAnc2YtdG9vbHMvZXhlY3V0ZS10b29sLWNhbGxzIzgnXG4gKiBidWlsZFJ1bnRpbWVTdGFnZUlkKCd2YWxpZGF0ZScsIDMsICdzZi1vdXRlci9zZi1pbm5lcicpICAvLyAnc2Ytb3V0ZXIvc2YtaW5uZXIvdmFsaWRhdGUjMydcbiAqIGBgYFxuICovXG5cbi8qKlxuICogQnVpbGQgYSBydW50aW1lU3RhZ2VJZCBmcm9tIGl0cyBjb21wb25lbnRzLlxuICpcbiAqIE5vdGU6IFRoZSB0cmF2ZXJzZXIgZG9lcyBOT1QgdXNlIHRoZSBzdWJmbG93UGF0aCBwYXJhbWV0ZXIg4oCUIG5vZGUuaWQgYWxyZWFkeVxuICogaW5jbHVkZXMgdGhlIHN1YmZsb3cgcHJlZml4IGZyb20gdGhlIGJ1aWxkZXIuIFRoaXMgcGFyYW1ldGVyIGV4aXN0cyBmb3IgZXh0ZXJuYWxcbiAqIGNvbnN1bWVycyBjb25zdHJ1Y3RpbmcgSURzIGZyb20gcGFyc2VkIGNvbXBvbmVudHMgKHJvdW5kLXRyaXAgdmlhIHBhcnNlUnVudGltZVN0YWdlSWQpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRSdW50aW1lU3RhZ2VJZChzdGFnZUlkOiBzdHJpbmcsIGV4ZWN1dGlvbkluZGV4OiBudW1iZXIsIHN1YmZsb3dQYXRoPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcHJlZml4ID0gc3ViZmxvd1BhdGggPyBgJHtzdWJmbG93UGF0aH0vYCA6ICcnO1xuICByZXR1cm4gYCR7cHJlZml4fSR7c3RhZ2VJZH0jJHtleGVjdXRpb25JbmRleH1gO1xufVxuXG4vKiogUGFyc2UgYSBydW50aW1lU3RhZ2VJZCBpbnRvIGl0cyBjb21wb25lbnRzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUnVudGltZVN0YWdlSWQocnVudGltZVN0YWdlSWQ6IHN0cmluZyk6IHtcbiAgc3RhZ2VJZDogc3RyaW5nO1xuICBleGVjdXRpb25JbmRleDogbnVtYmVyO1xuICBzdWJmbG93UGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkO1xufSB7XG4gIGNvbnN0IGhhc2hJZHggPSBydW50aW1lU3RhZ2VJZC5sYXN0SW5kZXhPZignIycpO1xuICBpZiAoaGFzaElkeCA9PT0gLTEpIHtcbiAgICByZXR1cm4geyBzdGFnZUlkOiBydW50aW1lU3RhZ2VJZCwgZXhlY3V0aW9uSW5kZXg6IDAsIHN1YmZsb3dQYXRoOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIGNvbnN0IGJlZm9yZUhhc2ggPSBydW50aW1lU3RhZ2VJZC5zbGljZSgwLCBoYXNoSWR4KTtcbiAgY29uc3QgZXhlY3V0aW9uSW5kZXggPSBwYXJzZUludChydW50aW1lU3RhZ2VJZC5zbGljZShoYXNoSWR4ICsgMSksIDEwKTtcblxuICBjb25zdCBsYXN0U2xhc2ggPSBiZWZvcmVIYXNoLmxhc3RJbmRleE9mKCcvJyk7XG4gIGlmIChsYXN0U2xhc2ggPT09IC0xKSB7XG4gICAgcmV0dXJuIHsgc3RhZ2VJZDogYmVmb3JlSGFzaCwgZXhlY3V0aW9uSW5kZXgsIHN1YmZsb3dQYXRoOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc3RhZ2VJZDogYmVmb3JlSGFzaC5zbGljZShsYXN0U2xhc2ggKyAxKSxcbiAgICBleGVjdXRpb25JbmRleCxcbiAgICBzdWJmbG93UGF0aDogYmVmb3JlSGFzaC5zbGljZSgwLCBsYXN0U2xhc2gpLFxuICB9O1xufVxuXG4vKipcbiAqIFNoYXJlZCBtdXRhYmxlIGNvdW50ZXIgZm9yIGV4ZWN1dGlvbiBpbmRleC5cbiAqIFBhc3NlZCBieSByZWZlcmVuY2UgdG8gY2hpbGQgdHJhdmVyc2VycyAoc3ViZmxvd3MpIHNvIHRoZXlcbiAqIGNvbnRpbnVlIHRoZSBnbG9iYWwgbnVtYmVyaW5nIGluc3RlYWQgb2YgcmVzdGFydGluZyBhdCAwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGlvbkNvdW50ZXIge1xuICB2YWx1ZTogbnVtYmVyO1xufVxuXG4vKiogQ3JlYXRlIGEgbmV3IGV4ZWN1dGlvbiBjb3VudGVyIHN0YXJ0aW5nIGF0IDAuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRXhlY3V0aW9uQ291bnRlcigpOiBFeGVjdXRpb25Db3VudGVyIHtcbiAgcmV0dXJuIHsgdmFsdWU6IDAgfTtcbn1cbiJdfQ==
|