footprintjs 4.17.2 → 6.0.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/CLAUDE.md +71 -9
- package/dist/advanced.js +2 -3
- package/dist/esm/advanced.js +2 -2
- package/dist/esm/index.js +3 -3
- package/dist/esm/lib/builder/FlowChartBuilder.js +359 -70
- package/dist/esm/lib/builder/index.js +1 -1
- package/dist/esm/lib/builder/structure/StructureRecorder.js +158 -0
- package/dist/esm/lib/builder/structure/StructureRecorderDispatcher.js +171 -0
- package/dist/esm/lib/builder/types.js +1 -1
- package/dist/esm/lib/decide/decide.js +9 -9
- package/dist/esm/lib/decide/evidence.js +2 -2
- package/dist/esm/lib/engine/errors/errorInfo.js +4 -3
- package/dist/esm/lib/engine/handlers/ChildrenExecutor.js +11 -2
- package/dist/esm/lib/engine/handlers/DeciderHandler.js +5 -7
- package/dist/esm/lib/engine/handlers/RuntimeStructureManager.js +2 -2
- package/dist/esm/lib/engine/handlers/SelectorHandler.js +9 -7
- package/dist/esm/lib/engine/handlers/SubflowExecutor.js +7 -1
- package/dist/esm/lib/engine/handlers/index.js +1 -3
- package/dist/esm/lib/engine/handlers/types.js +2 -2
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +14 -4
- package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +5 -5
- package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.js +8 -1
- package/dist/esm/lib/engine/narrative/types.js +1 -1
- package/dist/esm/lib/engine/runtimeStageId.js +64 -2
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +30 -56
- package/dist/esm/lib/engine/types.js +1 -1
- package/dist/esm/lib/engine/walkSubflowSpec.js +144 -0
- package/dist/esm/lib/memory/StageContext.js +3 -3
- package/dist/esm/lib/memory/backtrack.js +1 -1
- package/dist/esm/lib/reactive/createTypedScope.js +5 -5
- package/dist/esm/lib/reactive/types.js +7 -7
- package/dist/esm/lib/recorder/BoundaryStateStore.js +167 -0
- package/dist/esm/lib/recorder/BoundaryStateTracker.js +4 -4
- package/dist/esm/lib/recorder/CombinedRecorder.js +9 -9
- package/dist/esm/lib/recorder/CommitRangeIndex.js +207 -0
- package/dist/esm/lib/recorder/CompositeRecorder.js +6 -6
- package/dist/esm/lib/recorder/EmitRecorder.js +3 -3
- package/dist/esm/lib/recorder/InOutRecorder.js +1 -1
- package/dist/esm/lib/recorder/KeyedStore.js +113 -0
- package/dist/esm/lib/recorder/QualityRecorder.js +2 -2
- package/dist/esm/lib/recorder/SequenceRecorder.js +2 -2
- package/dist/esm/lib/recorder/SequenceStore.js +195 -0
- package/dist/esm/lib/recorder/TopologyRecorder.js +1 -1
- package/dist/esm/lib/recorder/index.js +13 -3
- package/dist/esm/lib/runner/ExecutionRuntime.js +1 -1
- package/dist/esm/lib/runner/FlowChartExecutor.js +75 -44
- package/dist/esm/lib/runner/RunContext.js +2 -2
- package/dist/esm/lib/runner/RunnableChart.js +1 -1
- package/dist/esm/lib/runner/getSubtreeSnapshot.js +3 -2
- package/dist/esm/lib/runner/runId.js +65 -0
- package/dist/esm/lib/scope/ScopeFacade.js +6 -6
- package/dist/esm/lib/scope/index.js +1 -1
- package/dist/esm/lib/scope/recorders/DebugRecorder.js +4 -4
- package/dist/esm/lib/scope/recorders/MetricRecorder.js +2 -2
- package/dist/esm/lib/scope/recorders/index.js +1 -1
- package/dist/esm/lib/scope/types.js +1 -1
- package/dist/esm/recorders.js +1 -1
- package/dist/esm/trace.js +15 -2
- package/dist/index.js +3 -3
- package/dist/lib/builder/FlowChartBuilder.js +359 -70
- package/dist/lib/builder/index.js +1 -1
- package/dist/lib/builder/structure/StructureRecorder.js +159 -0
- package/dist/lib/builder/structure/StructureRecorderDispatcher.js +175 -0
- package/dist/lib/builder/types.js +1 -1
- package/dist/lib/decide/decide.js +9 -9
- package/dist/lib/decide/evidence.js +2 -2
- package/dist/lib/engine/errors/errorInfo.js +4 -3
- package/dist/lib/engine/handlers/ChildrenExecutor.js +11 -2
- package/dist/lib/engine/handlers/DeciderHandler.js +5 -7
- package/dist/lib/engine/handlers/RuntimeStructureManager.js +2 -2
- package/dist/lib/engine/handlers/SelectorHandler.js +9 -7
- package/dist/lib/engine/handlers/SubflowExecutor.js +7 -1
- package/dist/lib/engine/handlers/index.js +2 -5
- package/dist/lib/engine/handlers/types.js +2 -2
- package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +14 -4
- package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +5 -5
- package/dist/lib/engine/narrative/NarrativeFlowRecorder.js +8 -1
- package/dist/lib/engine/narrative/types.js +1 -1
- package/dist/lib/engine/runtimeStageId.js +66 -3
- package/dist/lib/engine/traversal/FlowchartTraverser.js +30 -56
- package/dist/lib/engine/types.js +1 -1
- package/dist/lib/engine/walkSubflowSpec.js +148 -0
- package/dist/lib/memory/StageContext.js +3 -3
- package/dist/lib/memory/backtrack.js +1 -1
- package/dist/lib/reactive/createTypedScope.js +5 -5
- package/dist/lib/reactive/types.js +7 -7
- package/dist/lib/recorder/BoundaryStateStore.js +171 -0
- package/dist/lib/recorder/BoundaryStateTracker.js +4 -4
- package/dist/lib/recorder/CombinedRecorder.js +9 -9
- package/dist/lib/recorder/CommitRangeIndex.js +211 -0
- package/dist/lib/recorder/CompositeRecorder.js +6 -6
- package/dist/lib/recorder/EmitRecorder.js +3 -3
- package/dist/lib/recorder/InOutRecorder.js +1 -1
- package/dist/lib/recorder/KeyedStore.js +117 -0
- package/dist/lib/recorder/QualityRecorder.js +2 -2
- package/dist/lib/recorder/SequenceRecorder.js +2 -2
- package/dist/lib/recorder/SequenceStore.js +199 -0
- package/dist/lib/recorder/TopologyRecorder.js +1 -1
- package/dist/lib/recorder/index.js +19 -6
- package/dist/lib/runner/ExecutionRuntime.js +1 -1
- package/dist/lib/runner/FlowChartExecutor.js +75 -44
- package/dist/lib/runner/RunContext.js +2 -2
- package/dist/lib/runner/RunnableChart.js +1 -1
- package/dist/lib/runner/getSubtreeSnapshot.js +3 -2
- package/dist/lib/runner/runId.js +70 -0
- package/dist/lib/scope/ScopeFacade.js +6 -6
- package/dist/lib/scope/index.js +1 -1
- package/dist/lib/scope/recorders/DebugRecorder.js +4 -4
- package/dist/lib/scope/recorders/MetricRecorder.js +2 -2
- package/dist/lib/scope/recorders/index.js +1 -1
- package/dist/lib/scope/types.js +1 -1
- package/dist/recorders.js +1 -1
- package/dist/trace.js +21 -2
- package/dist/types/advanced.d.ts +4 -4
- package/dist/types/index.d.ts +6 -4
- package/dist/types/lib/builder/FlowChartBuilder.d.ts +110 -14
- package/dist/types/lib/builder/index.d.ts +2 -1
- package/dist/types/lib/builder/structure/StructureRecorder.d.ts +349 -0
- package/dist/types/lib/builder/structure/StructureRecorderDispatcher.d.ts +77 -0
- package/dist/types/lib/builder/types.d.ts +20 -6
- package/dist/types/lib/decide/evidence.d.ts +3 -3
- package/dist/types/lib/engine/errors/errorInfo.d.ts +3 -2
- package/dist/types/lib/engine/handlers/DeciderHandler.d.ts +3 -3
- package/dist/types/lib/engine/handlers/RuntimeStructureManager.d.ts +1 -1
- package/dist/types/lib/engine/handlers/SelectorHandler.d.ts +2 -2
- package/dist/types/lib/engine/handlers/index.d.ts +1 -2
- package/dist/types/lib/engine/handlers/types.d.ts +2 -9
- package/dist/types/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +1 -1
- package/dist/types/lib/engine/narrative/FlowRecorderDispatcher.d.ts +4 -4
- package/dist/types/lib/engine/narrative/types.d.ts +43 -4
- package/dist/types/lib/engine/runtimeStageId.d.ts +57 -1
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +12 -6
- package/dist/types/lib/engine/types.d.ts +0 -26
- package/dist/types/lib/engine/walkSubflowSpec.d.ts +95 -0
- package/dist/types/lib/memory/StageContext.d.ts +2 -2
- package/dist/types/lib/memory/backtrack.d.ts +1 -1
- package/dist/types/lib/reactive/types.d.ts +7 -7
- package/dist/types/lib/recorder/BoundaryStateStore.d.ts +115 -0
- package/dist/types/lib/recorder/BoundaryStateTracker.d.ts +3 -3
- package/dist/types/lib/recorder/CombinedRecorder.d.ts +11 -11
- package/dist/types/lib/recorder/CommitRangeIndex.d.ts +147 -0
- package/dist/types/lib/recorder/CompositeRecorder.d.ts +8 -8
- package/dist/types/lib/recorder/EmitRecorder.d.ts +2 -2
- package/dist/types/lib/recorder/InOutRecorder.d.ts +1 -1
- package/dist/types/lib/recorder/KeyedStore.d.ts +70 -0
- package/dist/types/lib/recorder/QualityRecorder.d.ts +4 -4
- package/dist/types/lib/recorder/SequenceRecorder.d.ts +1 -1
- package/dist/types/lib/recorder/SequenceStore.d.ts +120 -0
- package/dist/types/lib/recorder/TopologyRecorder.d.ts +1 -1
- package/dist/types/lib/recorder/index.d.ts +5 -2
- package/dist/types/lib/runner/ExecutionRuntime.d.ts +1 -1
- package/dist/types/lib/runner/FlowChartExecutor.d.ts +40 -30
- package/dist/types/lib/runner/RunContext.d.ts +2 -2
- package/dist/types/lib/runner/RunnableChart.d.ts +2 -2
- package/dist/types/lib/runner/runId.d.ts +45 -0
- package/dist/types/lib/scope/ScopeFacade.d.ts +4 -4
- package/dist/types/lib/scope/index.d.ts +1 -1
- package/dist/types/lib/scope/recorders/DebugRecorder.d.ts +4 -4
- package/dist/types/lib/scope/recorders/MetricRecorder.d.ts +4 -4
- package/dist/types/lib/scope/recorders/index.d.ts +1 -1
- package/dist/types/lib/scope/types.d.ts +1 -1
- package/dist/types/recorders.d.ts +1 -1
- package/dist/types/trace.d.ts +8 -1
- package/package.json +1 -1
- package/dist/esm/lib/engine/handlers/ExtractorRunner.js +0 -122
- package/dist/lib/engine/handlers/ExtractorRunner.js +0 -126
- package/dist/types/lib/engine/handlers/ExtractorRunner.d.ts +0 -41
|
@@ -13,7 +13,7 @@ const summarizeValue_js_1 = require("../scope/recorders/summarizeValue.js");
|
|
|
13
13
|
const MAX_VALUE_LEN = 80;
|
|
14
14
|
let evidenceCounter = 0;
|
|
15
15
|
/**
|
|
16
|
-
* Minimal
|
|
16
|
+
* Minimal ScopeRecorder that captures reads for decision evidence.
|
|
17
17
|
* Attach before when(), detach after. Collect via getInputs().
|
|
18
18
|
*/
|
|
19
19
|
class EvidenceCollector {
|
|
@@ -37,4 +37,4 @@ class EvidenceCollector {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
exports.EvidenceCollector = EvidenceCollector;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZpZGVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2RlY2lkZS9ldmlkZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7R0FPRzs7O0FBRUgsNEVBQXNFO0FBSXRFLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUV6QixJQUFJLGVBQWUsR0FBRyxDQUFDLENBQUM7QUFFeEI7OztHQUdHO0FBQ0gsTUFBYSxpQkFBaUI7SUFDbkIsRUFBRSxDQUFTO0lBQ1osTUFBTSxHQUFnQixFQUFFLENBQUM7SUFFakM7UUFDRSxJQUFJLENBQUMsRUFBRSxHQUFHLFlBQVksRUFBRSxlQUFlLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWdCO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztZQUFFLE9BQU87UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7WUFDZCxZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFBLGtDQUFjLEVBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUM7WUFDeEYsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLEtBQUssSUFBSTtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQscUNBQXFDO0lBQ3JDLFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBckJELDhDQXFCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGVjaWRlL2V2aWRlbmNlIC0tIExpZ2h0d2VpZ2h0IHRlbXAgcmVjb3JkZXIgZm9yIGF1dG8tY2FwdHVyaW5nIHJlYWRzXG4gKiBkdXJpbmcgYSB3aGVuKCkgZnVuY3Rpb24gY2FsbC5cbiAqXG4gKiBBdHRhY2hlZCB0byBzY29wZSBiZWZvcmUgY2FsbGluZyB3aGVuKHNjb3BlKSwgZGV0YWNoZWQgYWZ0ZXIuXG4gKiBDYXB0dXJlcyBSZWFkRXZlbnQga2V5ICsgc3VtbWFyaXplZCB2YWx1ZSArIHJlZGFjdGlvbiBmbGFnLlxuICogVXNlcyBzdW1tYXJpemVWYWx1ZSgpIGF0IGNhcHR1cmUgdGltZSAobm8gcmF3IG9iamVjdCByZWZlcmVuY2VzIGhlbGQpLlxuICovXG5cbmltcG9ydCB7IHN1bW1hcml6ZVZhbHVlIH0gZnJvbSAnLi4vc2NvcGUvcmVjb3JkZXJzL3N1bW1hcml6ZVZhbHVlLmpzJztcbmltcG9ydCB0eXBlIHsgUmVhZEV2ZW50LCBTY29wZVJlY29yZGVyIH0gZnJvbSAnLi4vc2NvcGUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBSZWFkSW5wdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuY29uc3QgTUFYX1ZBTFVFX0xFTiA9IDgwO1xuXG5sZXQgZXZpZGVuY2VDb3VudGVyID0gMDtcblxuLyoqXG4gKiBNaW5pbWFsIFNjb3BlUmVjb3JkZXIgdGhhdCBjYXB0dXJlcyByZWFkcyBmb3IgZGVjaXNpb24gZXZpZGVuY2UuXG4gKiBBdHRhY2ggYmVmb3JlIHdoZW4oKSwgZGV0YWNoIGFmdGVyLiBDb2xsZWN0IHZpYSBnZXRJbnB1dHMoKS5cbiAqL1xuZXhwb3J0IGNsYXNzIEV2aWRlbmNlQ29sbGVjdG9yIGltcGxlbWVudHMgU2NvcGVSZWNvcmRlciB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHByaXZhdGUgaW5wdXRzOiBSZWFkSW5wdXRbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaWQgPSBgZXZpZGVuY2UtJHsrK2V2aWRlbmNlQ291bnRlcn1gO1xuICB9XG5cbiAgb25SZWFkKGV2ZW50OiBSZWFkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIWV2ZW50LmtleSkgcmV0dXJuO1xuICAgIHRoaXMuaW5wdXRzLnB1c2goe1xuICAgICAga2V5OiBldmVudC5rZXksXG4gICAgICB2YWx1ZVN1bW1hcnk6IGV2ZW50LnJlZGFjdGVkID8gJ1tSRURBQ1RFRF0nIDogc3VtbWFyaXplVmFsdWUoZXZlbnQudmFsdWUsIE1BWF9WQUxVRV9MRU4pLFxuICAgICAgcmVkYWN0ZWQ6IGV2ZW50LnJlZGFjdGVkID09PSB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIFJldHVybnMgY29sbGVjdGVkIHJlYWQgaW5wdXRzLiAqL1xuICBnZXRJbnB1dHMoKTogUmVhZElucHV0W10ge1xuICAgIHJldHVybiB0aGlzLmlucHV0cztcbiAgfVxufVxuIl19
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
* a single extraction point that preserves structured details while still
|
|
8
8
|
* producing a human-readable message.
|
|
9
9
|
*
|
|
10
|
-
* Consumers (narrative recorders,
|
|
11
|
-
* StructuredErrorInfo instead of a flat string, and can
|
|
10
|
+
* Consumers (narrative recorders, FlowRecorder.onError handlers, diagnostic
|
|
11
|
+
* collectors) receive StructuredErrorInfo instead of a flat string, and can
|
|
12
|
+
* decide how to render it.
|
|
12
13
|
* String-ification happens only at the final rendering boundary.
|
|
13
14
|
*/
|
|
14
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -87,4 +88,4 @@ function formatErrorInfo(info) {
|
|
|
87
88
|
return `${info.message}\n${issueLines.join('\n')}`;
|
|
88
89
|
}
|
|
89
90
|
exports.formatErrorInfo = formatErrorInfo;
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JJbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvZXJyb3JzL2Vycm9ySW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7OztHQVlHOzs7QUFHSCxzREFBOEQ7QUFxQjlEOzs7Ozs7R0FNRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLEtBQWM7SUFDN0MsSUFBSSxLQUFLLFlBQVksZ0NBQW9CLEVBQUUsQ0FBQztRQUMxQyxPQUFPO1lBQ0wsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUUsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixHQUFHLEVBQUUsS0FBSztTQUNYLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDM0IsaUZBQWlGO1FBQ2pGLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUF3QjtnQkFDaEMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2dCQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7Z0JBQ2hCLEdBQUcsRUFBRSxLQUFLO2FBQ1gsQ0FBQztZQUVGLGtFQUFrRTtZQUNsRSxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxTQUFTLEdBQUksS0FBNEMsQ0FBQyxJQUFJLENBQUM7Z0JBQ3JFLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO2dCQUN4QixDQUFDO1lBQ0gsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxvQ0FBb0M7WUFDdEMsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLG1FQUFtRTtRQUNyRSxDQUFDO0lBQ0gsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxJQUFJLENBQUM7UUFDSCxPQUFPO1lBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDdEIsR0FBRyxFQUFFLEtBQUs7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLHFFQUFxRTtRQUNyRSxPQUFPO1lBQ0wsT0FBTyxFQUFFLHdCQUF3QjtZQUNqQyxHQUFHLEVBQUUsS0FBSztTQUNYLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQWpERCw0Q0FpREM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLElBQXlCO0lBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUMzQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDckUsT0FBTyxPQUFPLElBQUksS0FBSyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7QUFDckQsQ0FBQztBQVhELDBDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBlcnJvckluZm8udHMg4oCUIEV4dHJhY3Qgc3RydWN0dXJlZCBpbmZvcm1hdGlvbiBmcm9tIGFueSBlcnJvciB0eXBlLlxuICpcbiAqIFRoZSBlbmdpbmUncyBlcnJvciBjYXRjaCBibG9ja3MgY3VycmVudGx5IGNhbGwgZXJyb3IudG9TdHJpbmcoKSwgZGVzdHJveWluZ1xuICogc3RydWN0dXJlZCBkYXRhIChlLmcuIElucHV0VmFsaWRhdGlvbkVycm9yLmlzc3VlcykuIFRoaXMgbW9kdWxlIHByb3ZpZGVzXG4gKiBhIHNpbmdsZSBleHRyYWN0aW9uIHBvaW50IHRoYXQgcHJlc2VydmVzIHN0cnVjdHVyZWQgZGV0YWlscyB3aGlsZSBzdGlsbFxuICogcHJvZHVjaW5nIGEgaHVtYW4tcmVhZGFibGUgbWVzc2FnZS5cbiAqXG4gKiBDb25zdW1lcnMgKG5hcnJhdGl2ZSByZWNvcmRlcnMsIEZsb3dSZWNvcmRlci5vbkVycm9yIGhhbmRsZXJzLCBkaWFnbm9zdGljXG4gKiBjb2xsZWN0b3JzKSByZWNlaXZlIFN0cnVjdHVyZWRFcnJvckluZm8gaW5zdGVhZCBvZiBhIGZsYXQgc3RyaW5nLCBhbmQgY2FuXG4gKiBkZWNpZGUgaG93IHRvIHJlbmRlciBpdC5cbiAqIFN0cmluZy1pZmljYXRpb24gaGFwcGVucyBvbmx5IGF0IHRoZSBmaW5hbCByZW5kZXJpbmcgYm91bmRhcnkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uSXNzdWUgfSBmcm9tICcuLi8uLi9zY2hlbWEvZXJyb3JzLmpzJztcbmltcG9ydCB7IElucHV0VmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vc2NoZW1hL2Vycm9ycy5qcyc7XG5cbi8qKiBTdHJ1Y3R1cmVkIHJlcHJlc2VudGF0aW9uIG9mIGFueSBlcnJvciBjYXVnaHQgZHVyaW5nIHN0YWdlIGV4ZWN1dGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RydWN0dXJlZEVycm9ySW5mbyB7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBlcnJvciBtZXNzYWdlIChhbHdheXMgcHJlc2VudCkuICovXG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgLyoqIEVycm9yIGNsYXNzIG5hbWUgd2hlbiBhdmFpbGFibGUgKGUuZy4gJ0lucHV0VmFsaWRhdGlvbkVycm9yJywgJ1R5cGVFcnJvcicpLiAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogRmllbGQtbGV2ZWwgdmFsaWRhdGlvbiBpc3N1ZXMgKHByZXNlbnQgZm9yIElucHV0VmFsaWRhdGlvbkVycm9yKS4gKi9cbiAgaXNzdWVzPzogVmFsaWRhdGlvbklzc3VlW107XG4gIC8qKiBNYWNoaW5lLXJlYWRhYmxlIGVycm9yIGNvZGUgaWYgdGhlIGVycm9yIGNhcnJpZXMgb25lLiAqL1xuICBjb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG9yaWdpbmFsIGVycm9yIG9iamVjdCwgZm9yIGNvbnN1bWVycyB0aGF0IG5lZWQgZnVsbCBhY2Nlc3MuXG4gICAqIE5vdCBzYWZlIHRvIHNlcmlhbGl6ZSBkaXJlY3RseSDigJQgbWF5IGNvbnRhaW4gY2lyY3VsYXIgcmVmZXJlbmNlcyxcbiAgICogc3RhY2sgdHJhY2VzLCBvciBzZW5zaXRpdmUgaW50ZXJuYWxzLiBVc2UgYGZvcm1hdEVycm9ySW5mbygpYCBmb3JcbiAgICogc2FmZSBzdHJpbmcgb3V0cHV0LlxuICAgKi9cbiAgcmF3OiB1bmtub3duO1xufVxuXG4vKipcbiAqIEV4dHJhY3Qgc3RydWN0dXJlZCBlcnJvciBpbmZvIGZyb20gYW55IHRocm93biB2YWx1ZS5cbiAqXG4gKiAtIElucHV0VmFsaWRhdGlvbkVycm9yIOKGkiBwcmVzZXJ2ZXMgLmlzc3VlcyBhcnJheVxuICogLSBTdGFuZGFyZCBFcnJvciDihpIgcHJlc2VydmVzIC5uYW1lLCAubWVzc2FnZVxuICogLSBOb24tRXJyb3IgdGhyb3duIHZhbHVlcyDihpIgY29lcmNlcyB0byBzdHJpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RFcnJvckluZm8oZXJyb3I6IHVua25vd24pOiBTdHJ1Y3R1cmVkRXJyb3JJbmZvIHtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgSW5wdXRWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICBpc3N1ZXM6IGVycm9yLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiAoeyAuLi5pc3N1ZSwgcGF0aDogWy4uLmlzc3VlLnBhdGhdIH0pKSxcbiAgICAgIGNvZGU6ICdJTlBVVF9WQUxJREFUSU9OX0VSUk9SJyxcbiAgICAgIHJhdzogZXJyb3IsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgLy8gR3VhcmQgYWdhaW5zdCBhZHZlcnNhcmlhbCBlcnJvcnMgd2l0aCB0aHJvd2luZyBnZXR0ZXJzIG9uIC5tZXNzYWdlLy5uYW1lLy5jb2RlXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGluZm86IFN0cnVjdHVyZWRFcnJvckluZm8gPSB7XG4gICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgIG5hbWU6IGVycm9yLm5hbWUsXG4gICAgICAgIHJhdzogZXJyb3IsXG4gICAgICB9O1xuXG4gICAgICAvLyBQcmVzZXJ2ZSAuY29kZSBpZiBwcmVzZW50IChjb21tb24gTm9kZS5qcyBwYXR0ZXJuLCBlLmcuIEVOT0VOVClcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG1heWJlQ29kZSA9IChlcnJvciBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5jb2RlO1xuICAgICAgICBpZiAodHlwZW9mIG1heWJlQ29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpbmZvLmNvZGUgPSBtYXliZUNvZGU7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvKiAuY29kZSBhY2Nlc3NvciB0aHJldyDigJQgc2tpcCBpdCAqL1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIC5tZXNzYWdlIG9yIC5uYW1lIGdldHRlciB0aHJldyDigJQgZmFsbCB0aHJvdWdoIHRvIHN0cmluZyBjb2VyY2lvblxuICAgIH1cbiAgfVxuXG4gIC8vIE5vbi1FcnJvciB0aHJvd24gdmFsdWUgKHN0cmluZywgbnVtYmVyLCBvYmplY3QsIGV0Yy4pXG4gIHRyeSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IFN0cmluZyhlcnJvciksXG4gICAgICByYXc6IGVycm9yLFxuICAgIH07XG4gIH0gY2F0Y2gge1xuICAgIC8vIFN0cmluZygpIGZhaWxlZCAoZS5nLiBudWxsLXByb3RvdHlwZSBvYmplY3QsIHRocm93aW5nIC50b1N0cmluZygpKVxuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlOiAnW3Vuc2VyaWFsaXphYmxlIGVycm9yXScsXG4gICAgICByYXc6IGVycm9yLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBGb3JtYXQgYSBTdHJ1Y3R1cmVkRXJyb3JJbmZvIGJhY2sgdG8gYSBodW1hbi1yZWFkYWJsZSBzdHJpbmcuXG4gKiBVc2UgdGhpcyBhdCByZW5kZXJpbmcgYm91bmRhcmllcyAobmFycmF0aXZlIG91dHB1dCwgbG9nIGxpbmVzKS5cbiAqIEluY2x1ZGVzIGZpZWxkLWxldmVsIGRldGFpbHMgd2hlbiBpc3N1ZXMgYXJlIHByZXNlbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFcnJvckluZm8oaW5mbzogU3RydWN0dXJlZEVycm9ySW5mbyk6IHN0cmluZyB7XG4gIGlmICghaW5mby5pc3N1ZXMgfHwgaW5mby5pc3N1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGluZm8ubWVzc2FnZTtcbiAgfVxuXG4gIGNvbnN0IGlzc3VlTGluZXMgPSBpbmZvLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiB7XG4gICAgY29uc3QgcGF0aCA9IGlzc3VlLnBhdGgubGVuZ3RoID4gMCA/IGlzc3VlLnBhdGguam9pbignLicpIDogJyhyb290KSc7XG4gICAgcmV0dXJuIGAgIC0gJHtwYXRofTogJHtpc3N1ZS5tZXNzYWdlfWA7XG4gIH0pO1xuXG4gIHJldHVybiBgJHtpbmZvLm1lc3NhZ2V9XFxuJHtpc3N1ZUxpbmVzLmpvaW4oJ1xcbicpfWA7XG59XG4iXX0=
|
|
@@ -29,6 +29,12 @@ class ChildrenExecutor {
|
|
|
29
29
|
// Narrative: capture the fan-out
|
|
30
30
|
const childDisplayNames = allChildren.map((c) => c.name);
|
|
31
31
|
this.deps.narrativeGenerator.onFork(node.name, childDisplayNames, traversalContext);
|
|
32
|
+
// Proposal #003: fire onStageExecuted for the fork parent AFTER
|
|
33
|
+
// the specialized event so consumers tracking "did this stage run"
|
|
34
|
+
// work uniformly. Fires BEFORE children execute — matching the
|
|
35
|
+
// "decision made" semantic (the fork's main work is the decision
|
|
36
|
+
// to fan out; children are separate stages with their own lifecycles).
|
|
37
|
+
this.deps.narrativeGenerator.onStageExecuted(node.name, node.description, traversalContext, 'fork');
|
|
32
38
|
const childPromises = allChildren.map((child) => {
|
|
33
39
|
const childBranchPath = branchPath || child.id;
|
|
34
40
|
const childContext = context.createChild(childBranchPath, child.id, child.name, child.id);
|
|
@@ -125,7 +131,10 @@ class ChildrenExecutor {
|
|
|
125
131
|
context.addFlowDebugMessage('selected', `Running ${selectedNames} (${selectedChildren.length} of ${children.length} matched)`, { count: selectedChildren.length, targetStage: selectedChildren.map((c) => c.name) });
|
|
126
132
|
// Narrative: capture the selection
|
|
127
133
|
const selectedDisplayNames = selectedChildren.map((c) => c.name);
|
|
128
|
-
|
|
134
|
+
const selectorName = context.stageName || 'selector';
|
|
135
|
+
this.deps.narrativeGenerator.onSelected(selectorName, selectedDisplayNames, children.length, traversalContext);
|
|
136
|
+
// Proposal #003: fire onStageExecuted AFTER the specialized event.
|
|
137
|
+
this.deps.narrativeGenerator.onStageExecuted(selectorName, undefined, traversalContext, 'selector');
|
|
129
138
|
const tempNode = {
|
|
130
139
|
name: 'selector-temp',
|
|
131
140
|
id: 'selector-temp',
|
|
@@ -135,4 +144,4 @@ class ChildrenExecutor {
|
|
|
135
144
|
}
|
|
136
145
|
}
|
|
137
146
|
exports.ChildrenExecutor = ChildrenExecutor;
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hpbGRyZW5FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL2hhbmRsZXJzL0NoaWxkcmVuRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUFHSCxtREFBcUQ7QUFRckQsTUFBYSxnQkFBZ0I7SUFDUDtJQUF5QztJQUE3RCxZQUFvQixJQUErQixFQUFVLFdBQXdDO1FBQWpGLFNBQUksR0FBSixJQUFJLENBQTJCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQTZCO0lBQUcsQ0FBQztJQUV6Rzs7O09BR0c7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQ3ZCLElBQTZCLEVBQzdCLE9BQXFCLEVBQ3JCLGVBQTBDLEVBQzFDLFVBQW1CLEVBQ25CLGdCQUFtQztRQUVuQyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBRXhDLGlDQUFpQztRQUNqQyxNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFcEYsTUFBTSxhQUFhLEdBQThCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6RSxNQUFNLGVBQWUsR0FBRyxVQUFVLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFD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QyxJQUFJLEVBQUUsZUFBZTtZQUNyQixFQUFFLEVBQUUsZUFBZTtZQUNuQixRQUFRLEVBQUUsZ0JBQWdCO1NBQzNCLENBQUM7UUFDRixPQUFPLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7Q0FDRjtBQTFKRCw0Q0EwSkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoaWxkcmVuRXhlY3V0b3Ig4oCUIFBhcmFsbGVsIGZhbi1vdXQgdmlhIFByb21pc2UuYWxsU2V0dGxlZC5cbiAqXG4gKiBSZXNwb25zaWJpbGl0aWVzOlxuICogLSBFeGVjdXRlIGFsbCBjaGlsZHJlbiBpbiBwYXJhbGxlbCAoZm9yayBwYXR0ZXJuKVxuICogLSBFeGVjdXRlIHNlbGVjdGVkIGNoaWxkcmVuIGJhc2VkIG9uIHNlbGVjdG9yIG91dHB1dCAobXVsdGktY2hvaWNlKVxuICogLSBIYW5kbGUgdGhyb3R0bGluZyBlcnJvciBmbGFnZ2luZyBmb3IgcmF0ZS1saW1pdGVkIG9wZXJhdGlvbnNcbiAqIC0gQWdncmVnYXRlIHJlc3VsdHMgaW50byB7IGNoaWxkSWQ6IHsgcmVzdWx0LCBpc0Vycm9yIH0gfVxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgeyBpc1BhdXNlU2lnbmFsIH0gZnJvbSAnLi4vLi4vcGF1c2UvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3RvciwgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgVHJhdmVyc2FsQ29udGV4dCB9IGZyb20gJy4uL25hcnJhdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEhhbmRsZXJEZXBzLCBOb2RlUmVzdWx0VHlwZSB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRXhlY3V0ZU5vZGVGbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGVOb2RlRm4gfTtcblxuZXhwb3J0IGNsYXNzIENoaWxkcmVuRXhlY3V0b3I8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGVwczogSGFuZGxlckRlcHM8VE91dCwgVFNjb3BlPiwgcHJpdmF0ZSBleGVjdXRlTm9kZTogRXhlY3V0ZU5vZGVGbjxUT3V0LCBUU2NvcGU+KSB7fVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGFsbCBjaGlsZHJlbiBpbiBwYXJhbGxlbC4gRWFjaCBjaGlsZCBjb21taXRzIG9uIHNldHRsZS5cbiAgICogVXNlcyBQcm9taXNlLmFsbFNldHRsZWQgdG8gZW5zdXJlIGFsbCBjaGlsZHJlbiBjb21wbGV0ZSBldmVuIGlmIHNvbWUgZmFpbC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVOb2RlQ2hpbGRyZW4oXG4gICAgbm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4sXG4gICAgY29udGV4dDogU3RhZ2VDb250ZXh0LFxuICAgIHBhcmVudEJyZWFrRmxhZz86IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoPzogc3RyaW5nLFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIE5vZGVSZXN1bHRUeXBlPj4ge1xuICAgIGxldCBicmVha0NvdW50ID0gMDtcbiAgICBjb25zdCB0b3RhbENoaWxkcmVuID0gbm9kZS5jaGlsZHJlbj8ubGVuZ3RoID8/IDA7XG4gICAgY29uc3QgYWxsQ2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuID8/IFtdO1xuXG4gICAgLy8gTmFycmF0aXZlOiBjYXB0dXJlIHRoZSBmYW4tb3V0XG4gICAgY29uc3QgY2hpbGREaXNwbGF5TmFtZXMgPSBhbGxDaGlsZHJlbi5tYXAoKGMpID0+IGMubmFtZSk7XG4gICAgdGhpcy5kZXBzLm5hcnJhdGl2ZUdlbmVyYXRvci5vbkZvcmsobm9kZS5uYW1lLCBjaGlsZERpc3BsYXlOYW1lcywgdHJhdmVyc2FsQ29udGV4dCk7XG5cbiAgICBjb25zdCBjaGlsZFByb21pc2VzOiBQcm9taXNlPE5vZGVSZXN1bHRUeXBlPltdID0gYWxsQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgY2hpbGRCcmFuY2hQYXRoID0gYnJhbmNoUGF0aCB8fCBjaGlsZC5pZDtcbiAgICAgIGNvbnN0IGNoaWxkQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlQ2hpbGQoY2hpbGRCcmFuY2hQYXRoIGFzIHN0cmluZywgY2hpbGQuaWQgYXMgc3RyaW5nLCBjaGlsZC5uYW1lLCBjaGlsZC5pZCk7XG4gICAgICBjb25zdCBjaGlsZEJyZWFrRmxhZyA9IHsgc2hvdWxkQnJlYWs6IGZhbHNlIH07XG5cbiAgICAgIGNvbnN0IHVwZGF0ZVBhcmVudEJyZWFrRmxhZyA9ICgpID0+IHtcbiAgICAgICAgaWYgKGNoaWxkQnJlYWtGbGFnLnNob3VsZEJyZWFrKSBicmVha0NvdW50ICs9IDE7XG4gICAgICAgIGlmIChwYXJlbnRCcmVha0ZsYWcgJiYgYnJlYWtDb3VudCA9PT0gdG90YWxDaGlsZHJlbikgcGFyZW50QnJlYWtGbGFnLnNob3VsZEJyZWFrID0gdHJ1ZTtcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGVOb2RlKGNoaWxkLCBjaGlsZENvbnRleHQsIGNoaWxkQnJlYWtGbGFnLCBjaGlsZEJyYW5jaFBhdGgpXG4gICAgICAgIC50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBjaGlsZENvbnRleHQuY29tbWl0KCk7XG4gICAgICAgICAgdXBkYXRlUGFyZW50QnJlYWtGbGFnKCk7XG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IGNoaWxkLmlkISwgcmVzdWx0LCBpc0Vycm9yOiBmYWxzZSB9O1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgLy8gUGF1c2VTaWduYWwgaXMgZXhwZWN0ZWQgY29udHJvbCBmbG93IOKAlCByZS10aHJvdyBpbW1lZGlhdGVseS5cbiAgICAgICAgICBpZiAoaXNQYXVzZVNpZ25hbChlcnJvcikpIHRocm93IGVycm9yO1xuICAgICAgICAgIGNoaWxkQ29udGV4dC5jb21taXQoKTtcbiAgICAgICAgICB1cGRhdGVQYXJlbnRCcmVha0ZsYWcoKTtcbiAgICAgICAgICB0aGlzLmRlcHMubG9nZ2VyLmluZm8oYFRSRUUgUElQRUxJTkU6IGV4ZWN1dGVOb2RlQ2hpbGRyZW4gLSBFcnJvciBmb3IgaWQ6ICR7Y2hpbGQ/LmlkfWAsIHsgZXJyb3IgfSk7XG4gICAgICAgICAgaWYgKHRoaXMuZGVwcy50aHJvdHRsaW5nRXJyb3JDaGVja2VyICYmIHRoaXMuZGVwcy50aHJvdHRsaW5nRXJyb3JDaGVja2VyKGVycm9yKSkge1xuICAgICAgICAgICAgY2hpbGRDb250ZXh0LnVwZGF0ZU9iamVjdChbJ21vbml0b3InXSwgJ2lzVGhyb3R0bGVkJywgdHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7IGlkOiBjaGlsZC5pZCEsIHJlc3VsdDogZXJyb3IsIGlzRXJyb3I6IHRydWUgfTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjaGlsZHJlblJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIE5vZGVSZXN1bHRUeXBlPiA9IHt9O1xuXG4gICAgaWYgKG5vZGUuZmFpbEZhc3QpIHtcbiAgICAgIC8vIEZhaWwtZmFzdDogZmlyc3QgY2hpbGQgZXJyb3IgcmVqZWN0cyBpbW1lZGlhdGVseSAodW53cmFwcGVkKVxuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBhbGxDaGlsZHJlbi5tYXAoKGNoaWxkLCBpKSA9PlxuICAgICAgICAgIGNoaWxkUHJvbWlzZXNbaV0udGhlbigocikgPT4ge1xuICAgICAgICAgICAgaWYgKHIuaXNFcnJvcikgdGhyb3cgci5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHsgaWQsIHJlc3VsdCwgaXNFcnJvciB9IG9mIHJlc3VsdHMpIHtcbiAgICAgICAgY2hpbGRyZW5SZXN1bHRzW2lkXSA9IHsgaWQsIHJlc3VsdCwgaXNFcnJvcjogaXNFcnJvciA/PyBmYWxzZSB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBEZWZhdWx0OiBydW4gYWxsIGNoaWxkcmVuIHRvIGNvbXBsZXRpb24gZXZlbiBpZiBzb21lIGZhaWxcbiAgICAgIGNvbnN0IHNldHRsZWQgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoY2hpbGRQcm9taXNlcyk7XG4gICAgICBsZXQgcGF1c2VTaWduYWw6IHVua25vd247XG4gICAgICBzZXR0bGVkLmZvckVhY2goKHMpID0+IHtcbiAgICAgICAgaWYgKHMuc3RhdHVzID09PSAnZnVsZmlsbGVkJykge1xuICAgICAgICAgIGNvbnN0IHsgaWQsIHJlc3VsdCwgaXNFcnJvciB9ID0gcy52YWx1ZTtcbiAgICAgICAgICBjaGlsZHJlblJlc3VsdHNbaWRdID0geyBpZCwgcmVzdWx0LCBpc0Vycm9yOiBpc0Vycm9yID8/IGZhbHNlIH07XG4gICAgICAgIH0gZWxzZSBpZiAoaXNQYXVzZVNpZ25hbChzLnJlYXNvbikpIHtcbiAgICAgICAgICAvLyBQYXVzZVNpZ25hbCBmcm9tIGEgY2hpbGQg4oCUIHJlLXRocm93IGFmdGVyIGFsbCBjaGlsZHJlbiBzZXR0bGUuXG4gICAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3Qgc2lnbmFsIGlmIG11bHRpcGxlIGNoaWxkcmVuIHBhdXNlLlxuICAgICAgICAgIHBhdXNlU2lnbmFsID8/PSBzLnJlYXNvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRlcHMubG9nZ2VyLmVycm9yKGBFeGVjdXRpb24gZmFpbGVkOiAke3MucmVhc29ufWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIC8vIFJlLXRocm93IFBhdXNlU2lnbmFsIGFmdGVyIGFsbCBjaGlsZHJlbiBoYXZlIHNldHRsZWRcbiAgICAgIGlmIChwYXVzZVNpZ25hbCkgdGhyb3cgcGF1c2VTaWduYWw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkcmVuUmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHNlbGVjdGVkIGNoaWxkcmVuIGJhc2VkIG9uIHNlbGVjdG9yIHJlc3VsdC5cbiAgICogVmFsaWRhdGVzIElEcywgcmVjb3JkcyBzZWxlY3Rpb24gaW5mbywgdGhlbiBkZWxlZ2F0ZXMgdG8gZXhlY3V0ZU5vZGVDaGlsZHJlbi5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVTZWxlY3RlZENoaWxkcmVuKFxuICAgIHNlbGVjdG9yOiBTZWxlY3RvcixcbiAgICBjaGlsZHJlbjogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT5bXSxcbiAgICBpbnB1dDogYW55LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcsXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTm9kZVJlc3VsdFR5cGU+PiB7XG4gICAgY29uc3Qgc2VsZWN0b3JSZXN1bHQgPSBhd2FpdCBzZWxlY3RvcihpbnB1dCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBBcnJheS5pc0FycmF5KHNlbGVjdG9yUmVzdWx0KSA/IHNlbGVjdG9yUmVzdWx0IDogW3NlbGVjdG9yUmVzdWx0XTtcblxuICAgIGNvbnRleHQuYWRkTG9nKCdzZWxlY3RlZENoaWxkSWRzJywgc2VsZWN0ZWRJZHMpO1xuICAgIGNvbnRleHQuYWRkTG9nKCdzZWxlY3RvclBhdHRlcm4nLCAnbXVsdGktY2hvaWNlJyk7XG5cbiAgICBpZiAoc2VsZWN0ZWRJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250ZXh0LmFkZExvZygnc2tpcHBlZEFsbENoaWxkcmVuJywgdHJ1ZSk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWRDaGlsZHJlbiA9IGNoaWxkcmVuLmZpbHRlcigoYykgPT4gc2VsZWN0ZWRJZHMuaW5jbHVkZXMoYy5pZCEpKTtcblxuICAgIC8vIFZhbGlkYXRlIGFsbCBJRHMgZXhpc3QgKGZhaWwgZmFzdClcbiAgICBpZiAoc2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGggIT09IHNlbGVjdGVkSWRzLmxlbmd0aCkge1xuICAgICAgY29uc3QgY2hpbGRJZHMgPSBjaGlsZHJlbi5tYXAoKGMpID0+IGMuaWQpO1xuICAgICAgY29uc3QgbWlzc2luZyA9IHNlbGVjdGVkSWRzLmZpbHRlcigoaWQpID0+ICFjaGlsZElkcy5pbmNsdWRlcyhpZCkpO1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYFNlbGVjdG9yIHJldHVybmVkIHVua25vd24gY2hpbGQgSURzOiAke21pc3Npbmcuam9pbignLCAnKX0uIEF2YWlsYWJsZTogJHtjaGlsZElkcy5qb2luKFxuICAgICAgICAnLCAnLFxuICAgICAgKX1gO1xuICAgICAgdGhpcy5kZXBzLmxvZ2dlci5lcnJvcihgRXJyb3IgaW4gcGlwZWxpbmUgKCR7YnJhbmNoUGF0aH0pOmAsIHsgZXJyb3I6IGVycm9yTWVzc2FnZSB9KTtcbiAgICAgIGNvbnRleHQuYWRkRXJyb3IoJ3NlbGVjdG9yRXJyb3InLCBlcnJvck1lc3NhZ2UpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2tpcHBlZElkcyA9IGNoaWxkcmVuLmZpbHRlcigoYykgPT4gIXNlbGVjdGVkSWRzLmluY2x1ZGVzKGMuaWQhKSkubWFwKChjKSA9PiBjLmlkKTtcbiAgICBpZiAoc2tpcHBlZElkcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb250ZXh0LmFkZExvZygnc2tpcHBlZENoaWxkSWRzJywgc2tpcHBlZElkcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWROYW1lcyA9IHNlbGVjdGVkQ2hpbGRyZW4ubWFwKChjKSA9PiBjLm5hbWUpLmpvaW4oJywgJyk7XG4gICAgY29udGV4dC5hZGRGbG93RGVidWdNZXNzYWdlKFxuICAgICAgJ3NlbGVjdGVkJyxcbiAgICAgIGBSdW5uaW5nICR7c2VsZWN0ZWROYW1lc30gKCR7c2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGh9IG9mICR7Y2hpbGRyZW4ubGVuZ3RofSBtYXRjaGVkKWAsXG4gICAgICB7IGNvdW50OiBzZWxlY3RlZENoaWxkcmVuLmxlbmd0aCwgdGFyZ2V0U3RhZ2U6IHNlbGVjdGVkQ2hpbGRyZW4ubWFwKChjKSA9PiBjLm5hbWUpIH0sXG4gICAgKTtcblxuICAgIC8vIE5hcnJhdGl2ZTogY2FwdHVyZSB0aGUgc2VsZWN0aW9uXG4gICAgY29uc3Qgc2VsZWN0ZWREaXNwbGF5TmFtZXMgPSBzZWxlY3RlZENoaWxkcmVuLm1hcCgoYykgPT4gYy5uYW1lKTtcbiAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uU2VsZWN0ZWQoXG4gICAgICBjb250ZXh0LnN0YWdlTmFtZSB8fCAnc2VsZWN0b3InLFxuICAgICAgc2VsZWN0ZWREaXNwbGF5TmFtZXMsXG4gICAgICBjaGlsZHJlbi5sZW5ndGgsXG4gICAgICB0cmF2ZXJzYWxDb250ZXh0LFxuICAgICk7XG5cbiAgICBjb25zdCB0ZW1wTm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4gPSB7XG4gICAgICBuYW1lOiAnc2VsZWN0b3ItdGVtcCcsXG4gICAgICBpZDogJ3NlbGVjdG9yLXRlbXAnLFxuICAgICAgY2hpbGRyZW46IHNlbGVjdGVkQ2hpbGRyZW4sXG4gICAgfTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlTm9kZUNoaWxkcmVuKHRlbXBOb2RlLCBjb250ZXh0LCB1bmRlZmluZWQsIGJyYW5jaFBhdGgsIHRyYXZlcnNhbENvbnRleHQpO1xuICB9XG59XG4iXX0=
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hpbGRyZW5FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZW5naW5lL2hhbmRsZXJzL0NoaWxkcmVuRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUFHSCxtREFBcUQ7QUFRckQsTUFBYSxnQkFBZ0I7SUFDUDtJQUF5QztJQUE3RCxZQUFvQixJQUErQixFQUFVLFdBQXdDO1FBQWpGLFNBQUksR0FBSixJQUFJLENBQTJCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQTZCO0lBQUcsQ0FBQztJQUV6Rzs7O09BR0c7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQ3ZCLElBQTZCLEVBQzdCLE9BQXFCLEVBQ3JCLGVBQTBDLEVBQzFDLFVBQW1CLEVBQ25CLGdCQUFtQztRQUVuQyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1FBRXhDLGlDQUFpQztRQUNqQyxNQUFNLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDcEYsZ0VBQWdFO1FBQ2hFLG1FQUFtRTtRQUNuRSwrREFBK0Q7UUFDL0QsaUVBQWlFO1FBQ2pFLHVFQUF1RTtRQUN2RSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFcEcsTUFBTSxhQUFhLEdBQThCLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN6RSxNQUFNLGVBQWUsR0FBRyxVQUFVLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGVBQXlCLEVBQUUsS0FBSyxDQUFDLEVBQVksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5RyxNQUFNLGNBQWMsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUU5QyxNQUFNLHFCQUFxQixHQUFHLEdBQUcsRUFBRTtnQkFDakMsSUFBSSxjQUFjLENBQUMsV0FBVztvQkFBRSxVQUFVLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLGVBQWUsSUFBSSxVQUFVLEtBQUssYUFBYTtvQkFBRSxlQUFlLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUMxRixDQUFDLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDO2lCQUMxRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDZixZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3RCLHFCQUFxQixFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ25ELENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZiwrREFBK0Q7Z0JBQy9ELElBQUksSUFBQSx3QkFBYSxFQUFDLEtBQUssQ0FBQztvQkFBRSxNQUFNLEtBQUssQ0FBQztnQkFDdEMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixxQkFBcUIsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0RBQXNELEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3BHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ2hGLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzlELENBQUM7Z0JBQ0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLGVBQWUsR0FBbUMsRUFBRSxDQUFDO1FBRTNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLCtEQUErRDtZQUMvRCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQy9CLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDM0IsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsQ0FBQyxPQUFPO29CQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQztnQkFDOUIsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7WUFDRixLQUFLLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM5QyxlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLENBQUM7WUFDbEUsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sNERBQTREO1lBQzVELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4RCxJQUFJLFdBQW9CLENBQUM7WUFDekIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNwQixJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFFLENBQUM7b0JBQzdCLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7b0JBQ3hDLGVBQWUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDbEUsQ0FBQztxQkFBTSxJQUFJLElBQUEsd0JBQWEsRUFBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDbkMsaUVBQWlFO29CQUNqRSxvREFBb0Q7b0JBQ3BELFdBQVcsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUMzQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDMUQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsdURBQXVEO1lBQ3ZELElBQUksV0FBVztnQkFBRSxNQUFNLFdBQVcsQ0FBQztRQUNyQyxDQUFDO1FBRUQsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyx1QkFBdUIsQ0FDM0IsUUFBa0IsRUFDbEIsUUFBbUMsRUFDbkMsS0FBVSxFQUNWLE9BQXFCLEVBQ3JCLFVBQWtCLEVBQ2xCLGdCQUFtQztRQUVuQyxNQUFNLGNBQWMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdEYsT0FBTyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNoRCxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRWxELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzNDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRyxDQUFDLENBQUMsQ0FBQztRQUU3RSxxQ0FBcUM7UUFDckMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25ELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzQyxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNuRSxNQUFNLFlBQVksR0FBRyx3Q0FBd0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLFFBQVEsQ0FBQyxJQUFJLENBQzFHLElBQUksQ0FDTCxFQUFFLENBQUM7WUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLFVBQVUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7WUFDdEYsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckUsT0FBTyxDQUFDLG1CQUFtQixDQUN6QixVQUFVLEVBQ1YsV0FBVyxhQUFhLEtBQUssZ0JBQWdCLENBQUMsTUFBTSxPQUFPLFFBQVEsQ0FBQyxNQUFNLFdBQVcsRUFDckYsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNyRixDQUFDO1FBRUYsbUNBQW1DO1FBQ25DLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxVQUFVLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMvRyxtRUFBbUU7UUFDbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVwRyxNQUFNLFFBQVEsR0FBNEI7WUFDeEMsSUFBSSxFQUFFLGVBQWU7WUFDckIsRUFBRSxFQUFFLGVBQWU7WUFDbkIsUUFBUSxFQUFFLGdCQUFnQjtTQUMzQixDQUFDO1FBQ0YsT0FBTyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNwRyxDQUFDO0NBQ0Y7QUE5SkQsNENBOEpDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGlsZHJlbkV4ZWN1dG9yIOKAlCBQYXJhbGxlbCBmYW4tb3V0IHZpYSBQcm9taXNlLmFsbFNldHRsZWQuXG4gKlxuICogUmVzcG9uc2liaWxpdGllczpcbiAqIC0gRXhlY3V0ZSBhbGwgY2hpbGRyZW4gaW4gcGFyYWxsZWwgKGZvcmsgcGF0dGVybilcbiAqIC0gRXhlY3V0ZSBzZWxlY3RlZCBjaGlsZHJlbiBiYXNlZCBvbiBzZWxlY3RvciBvdXRwdXQgKG11bHRpLWNob2ljZSlcbiAqIC0gSGFuZGxlIHRocm90dGxpbmcgZXJyb3IgZmxhZ2dpbmcgZm9yIHJhdGUtbGltaXRlZCBvcGVyYXRpb25zXG4gKiAtIEFnZ3JlZ2F0ZSByZXN1bHRzIGludG8geyBjaGlsZElkOiB7IHJlc3VsdCwgaXNFcnJvciB9IH1cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHsgaXNQYXVzZVNpZ25hbCB9IGZyb20gJy4uLy4uL3BhdXNlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU2VsZWN0b3IsIFN0YWdlTm9kZSB9IGZyb20gJy4uL2dyYXBoL1N0YWdlTm9kZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFRyYXZlcnNhbENvbnRleHQgfSBmcm9tICcuLi9uYXJyYXRpdmUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBIYW5kbGVyRGVwcywgTm9kZVJlc3VsdFR5cGUgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEV4ZWN1dGVOb2RlRm4gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IHR5cGUgeyBFeGVjdXRlTm9kZUZuIH07XG5cbmV4cG9ydCBjbGFzcyBDaGlsZHJlbkV4ZWN1dG9yPFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlcHM6IEhhbmRsZXJEZXBzPFRPdXQsIFRTY29wZT4sIHByaXZhdGUgZXhlY3V0ZU5vZGU6IEV4ZWN1dGVOb2RlRm48VE91dCwgVFNjb3BlPikge31cblxuICAvKipcbiAgICogRXhlY3V0ZSBhbGwgY2hpbGRyZW4gaW4gcGFyYWxsZWwuIEVhY2ggY2hpbGQgY29tbWl0cyBvbiBzZXR0bGUuXG4gICAqIFVzZXMgUHJvbWlzZS5hbGxTZXR0bGVkIHRvIGVuc3VyZSBhbGwgY2hpbGRyZW4gY29tcGxldGUgZXZlbiBpZiBzb21lIGZhaWwuXG4gICAqL1xuICBhc3luYyBleGVjdXRlTm9kZUNoaWxkcmVuKFxuICAgIG5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBwYXJlbnRCcmVha0ZsYWc/OiB7IHNob3VsZEJyZWFrOiBib29sZWFuIH0sXG4gICAgYnJhbmNoUGF0aD86IHN0cmluZyxcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBOb2RlUmVzdWx0VHlwZT4+IHtcbiAgICBsZXQgYnJlYWtDb3VudCA9IDA7XG4gICAgY29uc3QgdG90YWxDaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCA/PyAwO1xuICAgIGNvbnN0IGFsbENoaWxkcmVuID0gbm9kZS5jaGlsZHJlbiA/PyBbXTtcblxuICAgIC8vIE5hcnJhdGl2ZTogY2FwdHVyZSB0aGUgZmFuLW91dFxuICAgIGNvbnN0IGNoaWxkRGlzcGxheU5hbWVzID0gYWxsQ2hpbGRyZW4ubWFwKChjKSA9PiBjLm5hbWUpO1xuICAgIHRoaXMuZGVwcy5uYXJyYXRpdmVHZW5lcmF0b3Iub25Gb3JrKG5vZGUubmFtZSwgY2hpbGREaXNwbGF5TmFtZXMsIHRyYXZlcnNhbENvbnRleHQpO1xuICAgIC8vIFByb3Bvc2FsICMwMDM6IGZpcmUgb25TdGFnZUV4ZWN1dGVkIGZvciB0aGUgZm9yayBwYXJlbnQgQUZURVJcbiAgICAvLyB0aGUgc3BlY2lhbGl6ZWQgZXZlbnQgc28gY29uc3VtZXJzIHRyYWNraW5nIFwiZGlkIHRoaXMgc3RhZ2UgcnVuXCJcbiAgICAvLyB3b3JrIHVuaWZvcm1seS4gRmlyZXMgQkVGT1JFIGNoaWxkcmVuIGV4ZWN1dGUg4oCUIG1hdGNoaW5nIHRoZVxuICAgIC8vIFwiZGVjaXNpb24gbWFkZVwiIHNlbWFudGljICh0aGUgZm9yaydzIG1haW4gd29yayBpcyB0aGUgZGVjaXNpb25cbiAgICAvLyB0byBmYW4gb3V0OyBjaGlsZHJlbiBhcmUgc2VwYXJhdGUgc3RhZ2VzIHdpdGggdGhlaXIgb3duIGxpZmVjeWNsZXMpLlxuICAgIHRoaXMuZGVwcy5uYXJyYXRpdmVHZW5lcmF0b3Iub25TdGFnZUV4ZWN1dGVkKG5vZGUubmFtZSwgbm9kZS5kZXNjcmlwdGlvbiwgdHJhdmVyc2FsQ29udGV4dCwgJ2ZvcmsnKTtcblxuICAgIGNvbnN0IGNoaWxkUHJvbWlzZXM6IFByb21pc2U8Tm9kZVJlc3VsdFR5cGU+W10gPSBhbGxDaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICBjb25zdCBjaGlsZEJyYW5jaFBhdGggPSBicmFuY2hQYXRoIHx8IGNoaWxkLmlkO1xuICAgICAgY29uc3QgY2hpbGRDb250ZXh0ID0gY29udGV4dC5jcmVhdGVDaGlsZChjaGlsZEJyYW5jaFBhdGggYXMgc3RyaW5nLCBjaGlsZC5pZCBhcyBzdHJpbmcsIGNoaWxkLm5hbWUsIGNoaWxkLmlkKTtcbiAgICAgIGNvbnN0IGNoaWxkQnJlYWtGbGFnID0geyBzaG91bGRCcmVhazogZmFsc2UgfTtcblxuICAgICAgY29uc3QgdXBkYXRlUGFyZW50QnJlYWtGbGFnID0gKCkgPT4ge1xuICAgICAgICBpZiAoY2hpbGRCcmVha0ZsYWcuc2hvdWxkQnJlYWspIGJyZWFrQ291bnQgKz0gMTtcbiAgICAgICAgaWYgKHBhcmVudEJyZWFrRmxhZyAmJiBicmVha0NvdW50ID09PSB0b3RhbENoaWxkcmVuKSBwYXJlbnRCcmVha0ZsYWcuc2hvdWxkQnJlYWsgPSB0cnVlO1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0ZU5vZGUoY2hpbGQsIGNoaWxkQ29udGV4dCwgY2hpbGRCcmVha0ZsYWcsIGNoaWxkQnJhbmNoUGF0aClcbiAgICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGNoaWxkQ29udGV4dC5jb21taXQoKTtcbiAgICAgICAgICB1cGRhdGVQYXJlbnRCcmVha0ZsYWcoKTtcbiAgICAgICAgICByZXR1cm4geyBpZDogY2hpbGQuaWQhLCByZXN1bHQsIGlzRXJyb3I6IGZhbHNlIH07XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAvLyBQYXVzZVNpZ25hbCBpcyBleHBlY3RlZCBjb250cm9sIGZsb3cg4oCUIHJlLXRocm93IGltbWVkaWF0ZWx5LlxuICAgICAgICAgIGlmIChpc1BhdXNlU2lnbmFsKGVycm9yKSkgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgY2hpbGRDb250ZXh0LmNvbW1pdCgpO1xuICAgICAgICAgIHVwZGF0ZVBhcmVudEJyZWFrRmxhZygpO1xuICAgICAgICAgIHRoaXMuZGVwcy5sb2dnZXIuaW5mbyhgVFJFRSBQSVBFTElORTogZXhlY3V0ZU5vZGVDaGlsZHJlbiAtIEVycm9yIGZvciBpZDogJHtjaGlsZD8uaWR9YCwgeyBlcnJvciB9KTtcbiAgICAgICAgICBpZiAodGhpcy5kZXBzLnRocm90dGxpbmdFcnJvckNoZWNrZXIgJiYgdGhpcy5kZXBzLnRocm90dGxpbmdFcnJvckNoZWNrZXIoZXJyb3IpKSB7XG4gICAgICAgICAgICBjaGlsZENvbnRleHQudXBkYXRlT2JqZWN0KFsnbW9uaXRvciddLCAnaXNUaHJvdHRsZWQnLCB0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IGNoaWxkLmlkISwgcmVzdWx0OiBlcnJvciwgaXNFcnJvcjogdHJ1ZSB9O1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGNoaWxkcmVuUmVzdWx0czogUmVjb3JkPHN0cmluZywgTm9kZVJlc3VsdFR5cGU+ID0ge307XG5cbiAgICBpZiAobm9kZS5mYWlsRmFzdCkge1xuICAgICAgLy8gRmFpbC1mYXN0OiBmaXJzdCBjaGlsZCBlcnJvciByZWplY3RzIGltbWVkaWF0ZWx5ICh1bndyYXBwZWQpXG4gICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIGFsbENoaWxkcmVuLm1hcCgoY2hpbGQsIGkpID0+XG4gICAgICAgICAgY2hpbGRQcm9taXNlc1tpXS50aGVuKChyKSA9PiB7XG4gICAgICAgICAgICBpZiAoci5pc0Vycm9yKSB0aHJvdyByLnJlc3VsdDtcbiAgICAgICAgICAgIHJldHVybiByO1xuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgeyBpZCwgcmVzdWx0LCBpc0Vycm9yIH0gb2YgcmVzdWx0cykge1xuICAgICAgICBjaGlsZHJlblJlc3VsdHNbaWRdID0geyBpZCwgcmVzdWx0LCBpc0Vycm9yOiBpc0Vycm9yID8/IGZhbHNlIH07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIERlZmF1bHQ6IHJ1biBhbGwgY2hpbGRyZW4gdG8gY29tcGxldGlvbiBldmVuIGlmIHNvbWUgZmFpbFxuICAgICAgY29uc3Qgc2V0dGxlZCA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChjaGlsZFByb21pc2VzKTtcbiAgICAgIGxldCBwYXVzZVNpZ25hbDogdW5rbm93bjtcbiAgICAgIHNldHRsZWQuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICBpZiAocy5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKSB7XG4gICAgICAgICAgY29uc3QgeyBpZCwgcmVzdWx0LCBpc0Vycm9yIH0gPSBzLnZhbHVlO1xuICAgICAgICAgIGNoaWxkcmVuUmVzdWx0c1tpZF0gPSB7IGlkLCByZXN1bHQsIGlzRXJyb3I6IGlzRXJyb3IgPz8gZmFsc2UgfTtcbiAgICAgICAgfSBlbHNlIGlmIChpc1BhdXNlU2lnbmFsKHMucmVhc29uKSkge1xuICAgICAgICAgIC8vIFBhdXNlU2lnbmFsIGZyb20gYSBjaGlsZCDigJQgcmUtdGhyb3cgYWZ0ZXIgYWxsIGNoaWxkcmVuIHNldHRsZS5cbiAgICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBzaWduYWwgaWYgbXVsdGlwbGUgY2hpbGRyZW4gcGF1c2UuXG4gICAgICAgICAgcGF1c2VTaWduYWwgPz89IHMucmVhc29uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGVwcy5sb2dnZXIuZXJyb3IoYEV4ZWN1dGlvbiBmYWlsZWQ6ICR7cy5yZWFzb259YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy8gUmUtdGhyb3cgUGF1c2VTaWduYWwgYWZ0ZXIgYWxsIGNoaWxkcmVuIGhhdmUgc2V0dGxlZFxuICAgICAgaWYgKHBhdXNlU2lnbmFsKSB0aHJvdyBwYXVzZVNpZ25hbDtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hpbGRyZW5SZXN1bHRzO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgc2VsZWN0ZWQgY2hpbGRyZW4gYmFzZWQgb24gc2VsZWN0b3IgcmVzdWx0LlxuICAgKiBWYWxpZGF0ZXMgSURzLCByZWNvcmRzIHNlbGVjdGlvbiBpbmZvLCB0aGVuIGRlbGVnYXRlcyB0byBleGVjdXRlTm9kZUNoaWxkcmVuLlxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZVNlbGVjdGVkQ2hpbGRyZW4oXG4gICAgc2VsZWN0b3I6IFNlbGVjdG9yLFxuICAgIGNoaWxkcmVuOiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPltdLFxuICAgIGlucHV0OiBhbnksXG4gICAgY29udGV4dDogU3RhZ2VDb250ZXh0LFxuICAgIGJyYW5jaFBhdGg6IHN0cmluZyxcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBOb2RlUmVzdWx0VHlwZT4+IHtcbiAgICBjb25zdCBzZWxlY3RvclJlc3VsdCA9IGF3YWl0IHNlbGVjdG9yKGlucHV0KTtcbiAgICBjb25zdCBzZWxlY3RlZElkcyA9IEFycmF5LmlzQXJyYXkoc2VsZWN0b3JSZXN1bHQpID8gc2VsZWN0b3JSZXN1bHQgOiBbc2VsZWN0b3JSZXN1bHRdO1xuXG4gICAgY29udGV4dC5hZGRMb2coJ3NlbGVjdGVkQ2hpbGRJZHMnLCBzZWxlY3RlZElkcyk7XG4gICAgY29udGV4dC5hZGRMb2coJ3NlbGVjdG9yUGF0dGVybicsICdtdWx0aS1jaG9pY2UnKTtcblxuICAgIGlmIChzZWxlY3RlZElkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnRleHQuYWRkTG9nKCdza2lwcGVkQWxsQ2hpbGRyZW4nLCB0cnVlKTtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZENoaWxkcmVuID0gY2hpbGRyZW4uZmlsdGVyKChjKSA9PiBzZWxlY3RlZElkcy5pbmNsdWRlcyhjLmlkISkpO1xuXG4gICAgLy8gVmFsaWRhdGUgYWxsIElEcyBleGlzdCAoZmFpbCBmYXN0KVxuICAgIGlmIChzZWxlY3RlZENoaWxkcmVuLmxlbmd0aCAhPT0gc2VsZWN0ZWRJZHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBjaGlsZElkcyA9IGNoaWxkcmVuLm1hcCgoYykgPT4gYy5pZCk7XG4gICAgICBjb25zdCBtaXNzaW5nID0gc2VsZWN0ZWRJZHMuZmlsdGVyKChpZCkgPT4gIWNoaWxkSWRzLmluY2x1ZGVzKGlkKSk7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgU2VsZWN0b3IgcmV0dXJuZWQgdW5rbm93biBjaGlsZCBJRHM6ICR7bWlzc2luZy5qb2luKCcsICcpfS4gQXZhaWxhYmxlOiAke2NoaWxkSWRzLmpvaW4oXG4gICAgICAgICcsICcsXG4gICAgICApfWA7XG4gICAgICB0aGlzLmRlcHMubG9nZ2VyLmVycm9yKGBFcnJvciBpbiBwaXBlbGluZSAoJHticmFuY2hQYXRofSk6YCwgeyBlcnJvcjogZXJyb3JNZXNzYWdlIH0pO1xuICAgICAgY29udGV4dC5hZGRFcnJvcignc2VsZWN0b3JFcnJvcicsIGVycm9yTWVzc2FnZSk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICB9XG5cbiAgICBjb25zdCBza2lwcGVkSWRzID0gY2hpbGRyZW4uZmlsdGVyKChjKSA9PiAhc2VsZWN0ZWRJZHMuaW5jbHVkZXMoYy5pZCEpKS5tYXAoKGMpID0+IGMuaWQpO1xuICAgIGlmIChza2lwcGVkSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnRleHQuYWRkTG9nKCdza2lwcGVkQ2hpbGRJZHMnLCBza2lwcGVkSWRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZE5hbWVzID0gc2VsZWN0ZWRDaGlsZHJlbi5tYXAoKGMpID0+IGMubmFtZSkuam9pbignLCAnKTtcbiAgICBjb250ZXh0LmFkZEZsb3dEZWJ1Z01lc3NhZ2UoXG4gICAgICAnc2VsZWN0ZWQnLFxuICAgICAgYFJ1bm5pbmcgJHtzZWxlY3RlZE5hbWVzfSAoJHtzZWxlY3RlZENoaWxkcmVuLmxlbmd0aH0gb2YgJHtjaGlsZHJlbi5sZW5ndGh9IG1hdGNoZWQpYCxcbiAgICAgIHsgY291bnQ6IHNlbGVjdGVkQ2hpbGRyZW4ubGVuZ3RoLCB0YXJnZXRTdGFnZTogc2VsZWN0ZWRDaGlsZHJlbi5tYXAoKGMpID0+IGMubmFtZSkgfSxcbiAgICApO1xuXG4gICAgLy8gTmFycmF0aXZlOiBjYXB0dXJlIHRoZSBzZWxlY3Rpb25cbiAgICBjb25zdCBzZWxlY3RlZERpc3BsYXlOYW1lcyA9IHNlbGVjdGVkQ2hpbGRyZW4ubWFwKChjKSA9PiBjLm5hbWUpO1xuICAgIGNvbnN0IHNlbGVjdG9yTmFtZSA9IGNvbnRleHQuc3RhZ2VOYW1lIHx8ICdzZWxlY3Rvcic7XG4gICAgdGhpcy5kZXBzLm5hcnJhdGl2ZUdlbmVyYXRvci5vblNlbGVjdGVkKHNlbGVjdG9yTmFtZSwgc2VsZWN0ZWREaXNwbGF5TmFtZXMsIGNoaWxkcmVuLmxlbmd0aCwgdHJhdmVyc2FsQ29udGV4dCk7XG4gICAgLy8gUHJvcG9zYWwgIzAwMzogZmlyZSBvblN0YWdlRXhlY3V0ZWQgQUZURVIgdGhlIHNwZWNpYWxpemVkIGV2ZW50LlxuICAgIHRoaXMuZGVwcy5uYXJyYXRpdmVHZW5lcmF0b3Iub25TdGFnZUV4ZWN1dGVkKHNlbGVjdG9yTmFtZSwgdW5kZWZpbmVkLCB0cmF2ZXJzYWxDb250ZXh0LCAnc2VsZWN0b3InKTtcblxuICAgIGNvbnN0IHRlbXBOb2RlOiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPiA9IHtcbiAgICAgIG5hbWU6ICdzZWxlY3Rvci10ZW1wJyxcbiAgICAgIGlkOiAnc2VsZWN0b3ItdGVtcCcsXG4gICAgICBjaGlsZHJlbjogc2VsZWN0ZWRDaGlsZHJlbixcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVOb2RlQ2hpbGRyZW4odGVtcE5vZGUsIGNvbnRleHQsIHVuZGVmaW5lZCwgYnJhbmNoUGF0aCwgdHJhdmVyc2FsQ29udGV4dCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -19,7 +19,7 @@ class DeciderHandler {
|
|
|
19
19
|
* The stage function IS the decider — its return value is the branch ID.
|
|
20
20
|
* Execution order: runStage(fn) → commit → resolve child → log → executeNode(child).
|
|
21
21
|
*/
|
|
22
|
-
async handleScopeBased(node, stageFunc, context, breakFlag, branchPath, runStage, executeNode,
|
|
22
|
+
async handleScopeBased(node, stageFunc, context, breakFlag, branchPath, runStage, executeNode, traversalContext) {
|
|
23
23
|
const breakFn = () => (breakFlag.shouldBreak = true);
|
|
24
24
|
let branchId;
|
|
25
25
|
let decisionEvidence;
|
|
@@ -41,17 +41,12 @@ class DeciderHandler {
|
|
|
41
41
|
throw error;
|
|
42
42
|
}
|
|
43
43
|
context.commit();
|
|
44
|
-
callExtractor(node, context, getStagePath(node, branchPath, context.stageName), undefined, {
|
|
45
|
-
type: 'stageExecutionError',
|
|
46
|
-
message: error.toString(),
|
|
47
|
-
});
|
|
48
44
|
this.deps.logger.error(`Error in pipeline (${branchPath}) stage [${node.name}]:`, { error });
|
|
49
45
|
context.addError('stageExecutionError', error.toString());
|
|
50
46
|
this.deps.narrativeGenerator.onError(node.name, error.toString(), error, traversalContext);
|
|
51
47
|
throw error;
|
|
52
48
|
}
|
|
53
49
|
context.commit();
|
|
54
|
-
callExtractor(node, context, getStagePath(node, branchPath, context.stageName), branchId);
|
|
55
50
|
if (breakFlag.shouldBreak) {
|
|
56
51
|
return branchId;
|
|
57
52
|
}
|
|
@@ -89,6 +84,9 @@ class DeciderHandler {
|
|
|
89
84
|
rationale: rationale || `returned branchId: ${branchId}`,
|
|
90
85
|
});
|
|
91
86
|
this.deps.narrativeGenerator.onDecision(node.name, chosen.name, rationale, node.description, traversalContext, decisionEvidence);
|
|
87
|
+
// Proposal #003: fire onStageExecuted AFTER the specialized event
|
|
88
|
+
// so consumers tracking "did this stage run" work uniformly.
|
|
89
|
+
this.deps.narrativeGenerator.onStageExecuted(node.name, node.description, traversalContext, 'decider');
|
|
92
90
|
const branchContext = context.createChild(branchPath, chosen.id, chosen.name, chosen.id);
|
|
93
91
|
try {
|
|
94
92
|
return await executeNode(chosen, branchContext, breakFlag, branchPath);
|
|
@@ -105,4 +103,4 @@ class DeciderHandler {
|
|
|
105
103
|
}
|
|
106
104
|
}
|
|
107
105
|
exports.DeciderHandler = DeciderHandler;
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjaWRlckhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9oYW5kbGVycy9EZWNpZGVySGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7OztBQUdILG9EQUF3RDtBQUV4RCxtREFBcUQ7QUFRckQsTUFBYSxjQUFjO0lBQ0k7SUFBN0IsWUFBNkIsSUFBK0I7UUFBL0IsU0FBSSxHQUFKLElBQUksQ0FBMkI7SUFBRyxDQUFDO0lBRWhFOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLElBQTZCLEVBQzdCLFNBQXNDLEVBQ3RDLE9BQXFCLEVBQ3JCLFNBQW1DLEVBQ25DLFVBQThCLEVBQzlCLFFBQWtDLEVBQ2xDLFdBQXdDLEVBQ3hDLGFBQTRDLEVBQzVDLFlBQTBDLEVBQzFDLGdCQUFtQztRQUVuQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFckQsSUFBSSxRQUFnQixDQUFDO1FBQ3JCLElBQUksZ0JBQThDLENBQUM7UUFDbkQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdEUsOERBQThEO1lBQzlELElBQUksV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQXFCLEVBQUUsMEJBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQzFHLFFBQVEsR0FBSSxXQUFtQixDQUFDLE1BQU0sQ0FBQztnQkFDdkMsZ0JBQWdCLEdBQUksV0FBbUIsQ0FBQyxRQUFRLENBQUM7WUFDbkQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakMsQ0FB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Q0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFqSEQsd0NBaUhDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWNpZGVySGFuZGxlciDigJQgU2luZ2xlLWNob2ljZSBjb25kaXRpb25hbCBicmFuY2hpbmcuXG4gKlxuICogSGFuZGxlcyBzY29wZS1iYXNlZCBkZWNpZGVycyAoc3RhZ2UgSVMgdGhlIGRlY2lkZXIsIHJldHVybnMgYnJhbmNoIElEKS5cbiAqIExvZ3MgZmxvdyBjb250cm9sIGRlY2lzaW9ucyBhbmQgbmFycmF0aXZlIHNlbnRlbmNlcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IERlY2lzaW9uRXZpZGVuY2UgfSBmcm9tICcuLi8uLi9kZWNpZGUvdHlwZXMuanMnO1xuaW1wb3J0IHsgREVDSVNJT05fUkVTVUxUIH0gZnJvbSAnLi4vLi4vZGVjaWRlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgeyBpc1BhdXNlU2lnbmFsIH0gZnJvbSAnLi4vLi4vcGF1c2UvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9ncmFwaC9TdGFnZU5vZGUuanMnO1xuaW1wb3J0IHR5cGUgeyBUcmF2ZXJzYWxDb250ZXh0IH0gZnJvbSAnLi4vbmFycmF0aXZlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgSGFuZGxlckRlcHMsIFN0YWdlRnVuY3Rpb24gfSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IENhbGxFeHRyYWN0b3JGbiwgRXhlY3V0ZU5vZGVGbiwgR2V0U3RhZ2VQYXRoRm4sIFJ1blN0YWdlRm4gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IHR5cGUgeyBDYWxsRXh0cmFjdG9yRm4sIEV4ZWN1dGVOb2RlRm4sIEdldFN0YWdlUGF0aEZuLCBSdW5TdGFnZUZuIH07XG5cbmV4cG9ydCBjbGFzcyBEZWNpZGVySGFuZGxlcjxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkZXBzOiBIYW5kbGVyRGVwczxUT3V0LCBUU2NvcGU+KSB7fVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYSBzY29wZS1iYXNlZCBkZWNpZGVyIChjcmVhdGVkIHZpYSBhZGREZWNpZGVyRnVuY3Rpb24pLlxuICAgKiBUaGUgc3RhZ2UgZnVuY3Rpb24gSVMgdGhlIGRlY2lkZXIg4oCUIGl0cyByZXR1cm4gdmFsdWUgaXMgdGhlIGJyYW5jaCBJRC5cbiAgICogRXhlY3V0aW9uIG9yZGVyOiBydW5TdGFnZShmbikg4oaSIGNvbW1pdCDihpIgcmVzb2x2ZSBjaGlsZCDihpIgbG9nIOKGkiBleGVjdXRlTm9kZShjaGlsZCkuXG4gICAqL1xuICBhc3luYyBoYW5kbGVTY29wZUJhc2VkKFxuICAgIG5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIHN0YWdlRnVuYzogU3RhZ2VGdW5jdGlvbjxUT3V0LCBUU2NvcGU+LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmVha0ZsYWc6IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcnVuU3RhZ2U6IFJ1blN0YWdlRm48VE91dCwgVFNjb3BlPixcbiAgICBleGVjdXRlTm9kZTogRXhlY3V0ZU5vZGVGbjxUT3V0LCBUU2NvcGU+LFxuICAgIGNhbGxFeHRyYWN0b3I6IENhbGxFeHRyYWN0b3JGbjxUT3V0LCBUU2NvcGU+LFxuICAgIGdldFN0YWdlUGF0aDogR2V0U3RhZ2VQYXRoRm48VE91dCwgVFNjb3BlPixcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBicmVha0ZuID0gKCkgPT4gKGJyZWFrRmxhZy5zaG91bGRCcmVhayA9IHRydWUpO1xuXG4gICAgbGV0IGJyYW5jaElkOiBzdHJpbmc7XG4gICAgbGV0IGRlY2lzaW9uRXZpZGVuY2U6IERlY2lzaW9uRXZpZGVuY2UgfCB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YWdlT3V0cHV0ID0gYXdhaXQgcnVuU3RhZ2Uobm9kZSwgc3RhZ2VGdW5jLCBjb250ZXh0LCBicmVha0ZuKTtcbiAgICAgIC8vIERldGVjdCBEZWNpc2lvblJlc3VsdCBmcm9tIGRlY2lkZSgpIGhlbHBlciB2aWEgU3ltYm9sIGJyYW5kXG4gICAgICBpZiAoc3RhZ2VPdXRwdXQgJiYgdHlwZW9mIHN0YWdlT3V0cHV0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmhhcyhzdGFnZU91dHB1dCBhcyBvYmplY3QsIERFQ0lTSU9OX1JFU1VMVCkpIHtcbiAgICAgICAgYnJhbmNoSWQgPSAoc3RhZ2VPdXRwdXQgYXMgYW55KS5icmFuY2g7XG4gICAgICAgIGRlY2lzaW9uRXZpZGVuY2UgPSAoc3RhZ2VPdXRwdXQgYXMgYW55KS5ldmlkZW5jZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyYW5jaElkID0gU3RyaW5nKHN0YWdlT3V0cHV0KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAvLyBQYXVzZVNpZ25hbCBpcyBleHBlY3RlZCBjb250cm9sIGZsb3cg4oCUIGNvbW1pdCBhbmQgcmUtdGhyb3cgd2l0aG91dCBlcnJvciBsb2dnaW5nLlxuICAgICAgaWYgKGlzUGF1c2VTaWduYWwoZXJyb3IpKSB7XG4gICAgICAgIGNvbnRleHQuY29tbWl0KCk7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgY29udGV4dC5jb21taXQoKTtcbiAgICAgIGNhbGxFeHRyYWN0b3Iobm9kZSwgY29udGV4dCwgZ2V0U3RhZ2VQYXRoKG5vZGUsIGJyYW5jaFBhdGgsIGNvbnRleHQuc3RhZ2VOYW1lKSwgdW5kZWZpbmVkLCB7XG4gICAgICAgIHR5cGU6ICdzdGFnZUV4ZWN1dGlvbkVycm9yJyxcbiAgICAgICAgbWVzc2FnZTogZXJyb3IudG9TdHJpbmcoKSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kZXBzLmxvZ2dlci5lcnJvcihgRXJyb3IgaW4gcGlwZWxpbmUgKCR7YnJhbmNoUGF0aH0pIHN0YWdlIFske25vZGUubmFtZX1dOmAsIHsgZXJyb3IgfSk7XG4gICAgICBjb250ZXh0LmFkZEVycm9yKCdzdGFnZUV4ZWN1dGlvbkVycm9yJywgZXJyb3IudG9TdHJpbmcoKSk7XG4gICAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uRXJyb3Iobm9kZS5uYW1lLCBlcnJvci50b1N0cmluZygpLCBlcnJvciwgdHJhdmVyc2FsQ29udGV4dCk7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBjb250ZXh0LmNvbW1pdCgpO1xuICAgIGNhbGxFeHRyYWN0b3Iobm9kZSwgY29udGV4dCwgZ2V0U3RhZ2VQYXRoKG5vZGUsIGJyYW5jaFBhdGgsIGNvbnRleHQuc3RhZ2VOYW1lKSwgYnJhbmNoSWQpO1xuXG4gICAgaWYgKGJyZWFrRmxhZy5zaG91bGRCcmVhaykge1xuICAgICAgcmV0dXJuIGJyYW5jaElkO1xuICAgIH1cblxuICAgIC8vIFJlc29sdmUgY2hpbGQgYnkgbWF0Y2hpbmcgYnJhbmNoIElEIGFnYWluc3Qgbm9kZS5jaGlsZHJlbi5cbiAgICAvLyBNYXRjaCBicmFuY2hJZCBmaXJzdCAob3JpZ2luYWwgdW5wcmVmaXhlZCBJRCksIGZhbGwgYmFjayB0byBpZCBmb3IgYmFja3dhcmQgY29tcGF0LlxuICAgIGNvbnN0IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbiBhcyBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPltdO1xuICAgIGxldCBjaG9zZW4gPSBjaGlsZHJlbi5maW5kKChjaGlsZCkgPT4gKGNoaWxkLmJyYW5jaElkID8/IGNoaWxkLmlkKSA9PT0gYnJhbmNoSWQpO1xuXG4gICAgLy8gRmFsbCBiYWNrIHRvIGRlZmF1bHQgYnJhbmNoXG4gICAgaWYgKCFjaG9zZW4pIHtcbiAgICAgIGNvbnN0IGRlZmF1bHRDaGlsZCA9IGNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiAoY2hpbGQuYnJhbmNoSWQgPz8gY2hpbGQuaWQpID09PSAnZGVmYXVsdCcpO1xuICAgICAgaWYgKGRlZmF1bHRDaGlsZCkge1xuICAgICAgICBjaG9zZW4gPSBkZWZhdWx0Q2hpbGQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgU2NvcGUtYmFzZWQgZGVjaWRlciAnJHtub2RlLm5hbWV9JyByZXR1cm5lZCBicmFuY2ggSUQgJyR7YnJhbmNoSWR9JyB3aGljaCBkb2Vzbid0IG1hdGNoIGFueSBjaGlsZCBhbmQgbm8gZGVmYXVsdCBicmFuY2ggaXMgc2V0YDtcbiAgICAgICAgY29udGV4dC5hZGRFcnJvcignZGVjaWRlckVycm9yJywgZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2hvc2VuTmFtZSA9IGNob3Nlbi5uYW1lO1xuICAgIGNvbnN0IHdhc0RlZmF1bHQgPSAoY2hvc2VuLmJyYW5jaElkID8/IGNob3Nlbi5pZCkgIT09IGJyYW5jaElkO1xuICAgIGNvbnN0IHJhdGlvbmFsZSA9IGNvbnRleHQuZGVidWc/LmxvZ0NvbnRleHQ/LmRlY2lkZXJSYXRpb25hbGUgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIGxldCBicmFuY2hSZWFzb246IHN0cmluZztcbiAgICBpZiAod2FzRGVmYXVsdCkge1xuICAgICAgYnJhbmNoUmVhc29uID0gYFJldHVybmVkICcke2JyYW5jaElkfScgKG5vIG1hdGNoKSwgZmVsbCBiYWNrIHRvIGRlZmF1bHQg4oaSICR7Y2hvc2VuTmFtZX0gcGF0aC5gO1xuICAgIH0gZWxzZSBpZiAocmF0aW9uYWxlKSB7XG4gICAgICBicmFuY2hSZWFzb24gPSBgQmFzZWQgb246ICR7cmF0aW9uYWxlfSDihpIgY2hvc2UgJHtjaG9zZW5OYW1lfSBwYXRoLmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJyYW5jaFJlYXNvbiA9IGBFdmFsdWF0ZWQgc2NvcGUgYW5kIHJldHVybmVkICcke2JyYW5jaElkfScg4oaSIGNob3NlICR7Y2hvc2VuTmFtZX0gcGF0aC5gO1xuICAgIH1cbiAgICBjb250ZXh0LmFkZEZsb3dEZWJ1Z01lc3NhZ2UoJ2JyYW5jaCcsIGJyYW5jaFJlYXNvbiwge1xuICAgICAgdGFyZ2V0U3RhZ2U6IGNob3Nlbi5uYW1lLFxuICAgICAgcmF0aW9uYWxlOiByYXRpb25hbGUgfHwgYHJldHVybmVkIGJyYW5jaElkOiAke2JyYW5jaElkfWAsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uRGVjaXNpb24oXG4gICAgICBub2RlLm5hbWUsXG4gICAgICBjaG9zZW4ubmFtZSxcbiAgICAgIHJhdGlvbmFsZSxcbiAgICAgIG5vZGUuZGVzY3JpcHRpb24sXG4gICAgICB0cmF2ZXJzYWxDb250ZXh0LFxuICAgICAgZGVjaXNpb25FdmlkZW5jZSxcbiAgICApO1xuXG4gICAgY29uc3QgYnJhbmNoQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlQ2hpbGQoYnJhbmNoUGF0aCBhcyBzdHJpbmcsIGNob3Nlbi5pZCwgY2hvc2VuLm5hbWUsIGNob3Nlbi5pZCk7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGV4ZWN1dGVOb2RlKGNob3NlbiwgYnJhbmNoQ29udGV4dCwgYnJlYWtGbGFnLCBicmFuY2hQYXRoKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgLy8gU3RhbXAgaW52b2tlciBjb250ZXh0IG9uIFBhdXNlU2lnbmFsIGR1cmluZyBidWJibGUtdXAuXG4gICAgICAvLyBUaGUgZGVjaWRlciAobm9kZSkgaXMgdGhlIGludm9rZXI7IGl0cyAubmV4dCBpcyB0aGUgY29udGludWF0aW9uIHRhcmdldC5cbiAgICAgIGlmIChpc1BhdXNlU2lnbmFsKGVycm9yKSkge1xuICAgICAgICBlcnJvci5zZXRJbnZva2VyKG5vZGUuaWQhLCBub2RlLm5leHQ/LmlkKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjaWRlckhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9oYW5kbGVycy9EZWNpZGVySGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7OztBQUdILG9EQUF3RDtBQUV4RCxtREFBcUQ7QUFRckQsTUFBYSxjQUFjO0lBQ0k7SUFBN0IsWUFBNkIsSUFBK0I7UUFBL0IsU0FBSSxHQUFKLElBQUksQ0FBMkI7SUFBRyxDQUFDO0lBRWhFOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLElBQTZCLEVBQzdCLFNBQXNDLEVBQ3RDLE9BQXFCLEVBQ3JCLFNBQW1DLEVBQ25DLFVBQThCLEVBQzlCLFFBQWtDLEVBQ2xDLFdBQXdDLEVBQ3hDLGdCQUFtQztRQUVuQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFckQsSUFBSSxRQUFnQixDQUFDO1FBQ3JCLElBQUksZ0JBQThDLENBQUM7UUFDbkQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdEUsOERBQThEO1lBQzlELElBQUksV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQXFCLEVBQUUsMEJBQWUsQ0FBQyxFQUFFLENBQUM7Z0JBQzFHLFFBQVEsR0FBSSxXQUFtQixDQUFDLE1BQU0sQ0FBQztnQkFDdkMsZ0JBQWdCLEdBQUksV0FBbUIsQ0FBQyxRQUFRLENBQUM7WUFDbkQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLG9GQUFvRjtZQUNwRixJQUFJLElBQUEsd0JBQWEsRUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN6QixPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUNELE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLFVBQVUsWUFBWSxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzdGLE9BQU8sQ0FBQyxRQUFRLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDM0YsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWpCLElBQUksU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFFRCw2REFBNkQ7UUFDN0Qsc0ZBQXNGO1FBQ3RGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFxQyxDQUFDO1FBQzVELElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7UUFFakYsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDMUYsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxHQUFHLFlBQVksQ0FBQztZQUN4QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxZQUFZLEdBQUcsd0JBQXdCLElBQUksQ0FBQyxJQUFJLHlCQUF5QixRQUFRLDhEQUE4RCxDQUFDO2dCQUN0SixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDL0IsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxRQUFRLENBQUM7UUFDL0QsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsZ0JBQXNDLENBQUM7UUFDcEYsSUFBSSxZQUFvQixDQUFDO1FBQ3pCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixZQUFZLEdBQUcsYUFBYSxRQUFRLHdDQUF3QyxVQUFVLFFBQVEsQ0FBQztRQUNqRyxDQUFDO2FBQU0sSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNyQixZQUFZLEdBQUcsYUFBYSxTQUFTLFlBQVksVUFBVSxRQUFRLENBQUM7UUFDdEUsQ0FBQzthQUFNLENBQUM7WUFDTixZQUFZLEdBQUcsaUNBQWlDLFFBQVEsYUFBYSxVQUFVLFFBQVEsQ0FBQztRQUMxRixDQUFDO1FBQ0QsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUU7WUFDbEQsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ3hCLFNBQVMsRUFBRSxTQUFTLElBQUksc0JBQXNCLFFBQVEsRUFBRTtTQUN6RCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FDckMsSUFBSSxDQUFDLElBQUksRUFDVCxNQUFNLENBQUMsSUFBSSxFQUNYLFNBQVMsRUFDVCxJQUFJLENBQUMsV0FBVyxFQUNoQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLENBQ2pCLENBQUM7UUFDRixrRUFBa0U7UUFDbEUsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV2RyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQW9CLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVuRyxJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFBQyxPQUFPLEtBQWMsRUFBRSxDQUFDO1lBQ3hCLHlEQUF5RDtZQUN6RCwyRUFBMkU7WUFDM0UsSUFBSSxJQUFBLHdCQUFhLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzFDLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUNELE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTdHRCx3Q0E2R0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlY2lkZXJIYW5kbGVyIOKAlCBTaW5nbGUtY2hvaWNlIGNvbmRpdGlvbmFsIGJyYW5jaGluZy5cbiAqXG4gKiBIYW5kbGVzIHNjb3BlLWJhc2VkIGRlY2lkZXJzIChzdGFnZSBJUyB0aGUgZGVjaWRlciwgcmV0dXJucyBicmFuY2ggSUQpLlxuICogTG9ncyBmbG93IGNvbnRyb2wgZGVjaXNpb25zIGFuZCBuYXJyYXRpdmUgc2VudGVuY2VzLlxuICovXG5cbmltcG9ydCB0eXBlIHsgRGVjaXNpb25FdmlkZW5jZSB9IGZyb20gJy4uLy4uL2RlY2lkZS90eXBlcy5qcyc7XG5pbXBvcnQgeyBERUNJU0lPTl9SRVNVTFQgfSBmcm9tICcuLi8uLi9kZWNpZGUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZUNvbnRleHQgfSBmcm9tICcuLi8uLi9tZW1vcnkvU3RhZ2VDb250ZXh0LmpzJztcbmltcG9ydCB7IGlzUGF1c2VTaWduYWwgfSBmcm9tICcuLi8uLi9wYXVzZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YWdlTm9kZSB9IGZyb20gJy4uL2dyYXBoL1N0YWdlTm9kZS5qcyc7XG5pbXBvcnQgdHlwZSB7IFRyYXZlcnNhbENvbnRleHQgfSBmcm9tICcuLi9uYXJyYXRpdmUvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBIYW5kbGVyRGVwcywgU3RhZ2VGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgRXhlY3V0ZU5vZGVGbiwgUnVuU3RhZ2VGbiB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGVOb2RlRm4sIFJ1blN0YWdlRm4gfTtcblxuZXhwb3J0IGNsYXNzIERlY2lkZXJIYW5kbGVyPFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRlcHM6IEhhbmRsZXJEZXBzPFRPdXQsIFRTY29wZT4pIHt9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhIHNjb3BlLWJhc2VkIGRlY2lkZXIgKGNyZWF0ZWQgdmlhIGFkZERlY2lkZXJGdW5jdGlvbikuXG4gICAqIFRoZSBzdGFnZSBmdW5jdGlvbiBJUyB0aGUgZGVjaWRlciDigJQgaXRzIHJldHVybiB2YWx1ZSBpcyB0aGUgYnJhbmNoIElELlxuICAgKiBFeGVjdXRpb24gb3JkZXI6IHJ1blN0YWdlKGZuKSDihpIgY29tbWl0IOKGkiByZXNvbHZlIGNoaWxkIOKGkiBsb2cg4oaSIGV4ZWN1dGVOb2RlKGNoaWxkKS5cbiAgICovXG4gIGFzeW5jIGhhbmRsZVNjb3BlQmFzZWQoXG4gICAgbm9kZTogU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT4sXG4gICAgc3RhZ2VGdW5jOiBTdGFnZUZ1bmN0aW9uPFRPdXQsIFRTY29wZT4sXG4gICAgY29udGV4dDogU3RhZ2VDb250ZXh0LFxuICAgIGJyZWFrRmxhZzogeyBzaG91bGRCcmVhazogYm9vbGVhbiB9LFxuICAgIGJyYW5jaFBhdGg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBydW5TdGFnZTogUnVuU3RhZ2VGbjxUT3V0LCBUU2NvcGU+LFxuICAgIGV4ZWN1dGVOb2RlOiBFeGVjdXRlTm9kZUZuPFRPdXQsIFRTY29wZT4sXG4gICAgdHJhdmVyc2FsQ29udGV4dD86IFRyYXZlcnNhbENvbnRleHQsXG4gICk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgYnJlYWtGbiA9ICgpID0+IChicmVha0ZsYWcuc2hvdWxkQnJlYWsgPSB0cnVlKTtcblxuICAgIGxldCBicmFuY2hJZDogc3RyaW5nO1xuICAgIGxldCBkZWNpc2lvbkV2aWRlbmNlOiBEZWNpc2lvbkV2aWRlbmNlIHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGFnZU91dHB1dCA9IGF3YWl0IHJ1blN0YWdlKG5vZGUsIHN0YWdlRnVuYywgY29udGV4dCwgYnJlYWtGbik7XG4gICAgICAvLyBEZXRlY3QgRGVjaXNpb25SZXN1bHQgZnJvbSBkZWNpZGUoKSBoZWxwZXIgdmlhIFN5bWJvbCBicmFuZFxuICAgICAgaWYgKHN0YWdlT3V0cHV0ICYmIHR5cGVvZiBzdGFnZU91dHB1dCA9PT0gJ29iamVjdCcgJiYgUmVmbGVjdC5oYXMoc3RhZ2VPdXRwdXQgYXMgb2JqZWN0LCBERUNJU0lPTl9SRVNVTFQpKSB7XG4gICAgICAgIGJyYW5jaElkID0gKHN0YWdlT3V0cHV0IGFzIGFueSkuYnJhbmNoO1xuICAgICAgICBkZWNpc2lvbkV2aWRlbmNlID0gKHN0YWdlT3V0cHV0IGFzIGFueSkuZXZpZGVuY2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBicmFuY2hJZCA9IFN0cmluZyhzdGFnZU91dHB1dCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgLy8gUGF1c2VTaWduYWwgaXMgZXhwZWN0ZWQgY29udHJvbCBmbG93IOKAlCBjb21taXQgYW5kIHJlLXRocm93IHdpdGhvdXQgZXJyb3IgbG9nZ2luZy5cbiAgICAgIGlmIChpc1BhdXNlU2lnbmFsKGVycm9yKSkge1xuICAgICAgICBjb250ZXh0LmNvbW1pdCgpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIGNvbnRleHQuY29tbWl0KCk7XG4gICAgICB0aGlzLmRlcHMubG9nZ2VyLmVycm9yKGBFcnJvciBpbiBwaXBlbGluZSAoJHticmFuY2hQYXRofSkgc3RhZ2UgWyR7bm9kZS5uYW1lfV06YCwgeyBlcnJvciB9KTtcbiAgICAgIGNvbnRleHQuYWRkRXJyb3IoJ3N0YWdlRXhlY3V0aW9uRXJyb3InLCBlcnJvci50b1N0cmluZygpKTtcbiAgICAgIHRoaXMuZGVwcy5uYXJyYXRpdmVHZW5lcmF0b3Iub25FcnJvcihub2RlLm5hbWUsIGVycm9yLnRvU3RyaW5nKCksIGVycm9yLCB0cmF2ZXJzYWxDb250ZXh0KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnRleHQuY29tbWl0KCk7XG5cbiAgICBpZiAoYnJlYWtGbGFnLnNob3VsZEJyZWFrKSB7XG4gICAgICByZXR1cm4gYnJhbmNoSWQ7XG4gICAgfVxuXG4gICAgLy8gUmVzb2x2ZSBjaGlsZCBieSBtYXRjaGluZyBicmFuY2ggSUQgYWdhaW5zdCBub2RlLmNoaWxkcmVuLlxuICAgIC8vIE1hdGNoIGJyYW5jaElkIGZpcnN0IChvcmlnaW5hbCB1bnByZWZpeGVkIElEKSwgZmFsbCBiYWNrIHRvIGlkIGZvciBiYWNrd2FyZCBjb21wYXQuXG4gICAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuIGFzIFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+W107XG4gICAgbGV0IGNob3NlbiA9IGNoaWxkcmVuLmZpbmQoKGNoaWxkKSA9PiAoY2hpbGQuYnJhbmNoSWQgPz8gY2hpbGQuaWQpID09PSBicmFuY2hJZCk7XG5cbiAgICAvLyBGYWxsIGJhY2sgdG8gZGVmYXVsdCBicmFuY2hcbiAgICBpZiAoIWNob3Nlbikge1xuICAgICAgY29uc3QgZGVmYXVsdENoaWxkID0gY2hpbGRyZW4uZmluZCgoY2hpbGQpID0+IChjaGlsZC5icmFuY2hJZCA/PyBjaGlsZC5pZCkgPT09ICdkZWZhdWx0Jyk7XG4gICAgICBpZiAoZGVmYXVsdENoaWxkKSB7XG4gICAgICAgIGNob3NlbiA9IGRlZmF1bHRDaGlsZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBTY29wZS1iYXNlZCBkZWNpZGVyICcke25vZGUubmFtZX0nIHJldHVybmVkIGJyYW5jaCBJRCAnJHticmFuY2hJZH0nIHdoaWNoIGRvZXNuJ3QgbWF0Y2ggYW55IGNoaWxkIGFuZCBubyBkZWZhdWx0IGJyYW5jaCBpcyBzZXRgO1xuICAgICAgICBjb250ZXh0LmFkZEVycm9yKCdkZWNpZGVyRXJyb3InLCBlcnJvck1lc3NhZ2UpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjaG9zZW5OYW1lID0gY2hvc2VuLm5hbWU7XG4gICAgY29uc3Qgd2FzRGVmYXVsdCA9IChjaG9zZW4uYnJhbmNoSWQgPz8gY2hvc2VuLmlkKSAhPT0gYnJhbmNoSWQ7XG4gICAgY29uc3QgcmF0aW9uYWxlID0gY29udGV4dC5kZWJ1Zz8ubG9nQ29udGV4dD8uZGVjaWRlclJhdGlvbmFsZSBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgbGV0IGJyYW5jaFJlYXNvbjogc3RyaW5nO1xuICAgIGlmICh3YXNEZWZhdWx0KSB7XG4gICAgICBicmFuY2hSZWFzb24gPSBgUmV0dXJuZWQgJyR7YnJhbmNoSWR9JyAobm8gbWF0Y2gpLCBmZWxsIGJhY2sgdG8gZGVmYXVsdCDihpIgJHtjaG9zZW5OYW1lfSBwYXRoLmA7XG4gICAgfSBlbHNlIGlmIChyYXRpb25hbGUpIHtcbiAgICAgIGJyYW5jaFJlYXNvbiA9IGBCYXNlZCBvbjogJHtyYXRpb25hbGV9IOKGkiBjaG9zZSAke2Nob3Nlbk5hbWV9IHBhdGguYDtcbiAgICB9IGVsc2Uge1xuICAgICAgYnJhbmNoUmVhc29uID0gYEV2YWx1YXRlZCBzY29wZSBhbmQgcmV0dXJuZWQgJyR7YnJhbmNoSWR9JyDihpIgY2hvc2UgJHtjaG9zZW5OYW1lfSBwYXRoLmA7XG4gICAgfVxuICAgIGNvbnRleHQuYWRkRmxvd0RlYnVnTWVzc2FnZSgnYnJhbmNoJywgYnJhbmNoUmVhc29uLCB7XG4gICAgICB0YXJnZXRTdGFnZTogY2hvc2VuLm5hbWUsXG4gICAgICByYXRpb25hbGU6IHJhdGlvbmFsZSB8fCBgcmV0dXJuZWQgYnJhbmNoSWQ6ICR7YnJhbmNoSWR9YCxcbiAgICB9KTtcblxuICAgIHRoaXMuZGVwcy5uYXJyYXRpdmVHZW5lcmF0b3Iub25EZWNpc2lvbihcbiAgICAgIG5vZGUubmFtZSxcbiAgICAgIGNob3Nlbi5uYW1lLFxuICAgICAgcmF0aW9uYWxlLFxuICAgICAgbm9kZS5kZXNjcmlwdGlvbixcbiAgICAgIHRyYXZlcnNhbENvbnRleHQsXG4gICAgICBkZWNpc2lvbkV2aWRlbmNlLFxuICAgICk7XG4gICAgLy8gUHJvcG9zYWwgIzAwMzogZmlyZSBvblN0YWdlRXhlY3V0ZWQgQUZURVIgdGhlIHNwZWNpYWxpemVkIGV2ZW50XG4gICAgLy8gc28gY29uc3VtZXJzIHRyYWNraW5nIFwiZGlkIHRoaXMgc3RhZ2UgcnVuXCIgd29yayB1bmlmb3JtbHkuXG4gICAgdGhpcy5kZXBzLm5hcnJhdGl2ZUdlbmVyYXRvci5vblN0YWdlRXhlY3V0ZWQobm9kZS5uYW1lLCBub2RlLmRlc2NyaXB0aW9uLCB0cmF2ZXJzYWxDb250ZXh0LCAnZGVjaWRlcicpO1xuXG4gICAgY29uc3QgYnJhbmNoQ29udGV4dCA9IGNvbnRleHQuY3JlYXRlQ2hpbGQoYnJhbmNoUGF0aCBhcyBzdHJpbmcsIGNob3Nlbi5pZCwgY2hvc2VuLm5hbWUsIGNob3Nlbi5pZCk7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGV4ZWN1dGVOb2RlKGNob3NlbiwgYnJhbmNoQ29udGV4dCwgYnJlYWtGbGFnLCBicmFuY2hQYXRoKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgLy8gU3RhbXAgaW52b2tlciBjb250ZXh0IG9uIFBhdXNlU2lnbmFsIGR1cmluZyBidWJibGUtdXAuXG4gICAgICAvLyBUaGUgZGVjaWRlciAobm9kZSkgaXMgdGhlIGludm9rZXI7IGl0cyAubmV4dCBpcyB0aGUgY29udGludWF0aW9uIHRhcmdldC5cbiAgICAgIGlmIChpc1BhdXNlU2lnbmFsKGVycm9yKSkge1xuICAgICAgICBlcnJvci5zZXRJbnZva2VyKG5vZGUuaWQhLCBub2RlLm5leHQ/LmlkKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -13,7 +13,7 @@ exports.RuntimeStructureManager = exports.computeNodeType = void 0;
|
|
|
13
13
|
const detectCircular_js_1 = require("../../scope/detectCircular.js");
|
|
14
14
|
/**
|
|
15
15
|
* Compute the node type from node properties.
|
|
16
|
-
*
|
|
16
|
+
* Used by RuntimeStructureManager for serialization.
|
|
17
17
|
*/
|
|
18
18
|
function computeNodeType(node) {
|
|
19
19
|
// Loop back-edge nodes are spec stubs — they are not executable stages.
|
|
@@ -193,4 +193,4 @@ class RuntimeStructureManager {
|
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
exports.RuntimeStructureManager = RuntimeStructureManager;
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVudGltZVN0cnVjdHVyZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9oYW5kbGVycy9SdW50aW1lU3RydWN0dXJlTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7OztBQUVILHFFQUEwRDtBQUkxRDs7O0dBR0c7QUFDSCxTQUFnQixlQUFlLENBQzdCLElBQWU7SUFFZix3RUFBd0U7SUFDeEUsb0ZBQW9GO0lBQ3BGLElBQUksSUFBSSxDQUFDLFNBQVM7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNsQyxJQUFJLElBQUksQ0FBQyxhQUFhO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDekMsSUFBSSxJQUFJLENBQUMsVUFBVTtRQUFFLE9BQU8sVUFBVSxDQUFDO0lBQ3ZDLHVGQUF1RjtJQUN2RixzRkFBc0Y7SUFDdEYsd0ZBQXdGO0lBQ3hGLGlFQUFpRTtJQUNqRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzlELElBQUksSUFBSSxDQUFDLFdBQVc7UUFBRSxPQUFPLFdBQVcsQ0FBQztJQUV6QyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQjtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBRXBGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFuQkQsMENBbUJDO0FBRUQsTUFBYSx1QkFBdUI7SUFDMUIsd0JBQXdCLENBQStCO0lBQ3ZELGdCQUFnQixHQUE2QyxJQUFJLEdBQUcsRUFBRSxD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QVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsNERBQTREO0lBQzVELG9CQUFvQixDQUFDLE1BQWMsRUFBRSxLQUFhO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCO1lBQUUsT0FBTztRQUMzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUMzQixhQUFhLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QyxDQUFDOztBQS9MSCwwREFnTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyIOKAlCBNdXRhYmxlIHN0cnVjdHVyZSB0cmFja2luZyBmb3IgdmlzdWFsaXphdGlvbi5cbiAqXG4gKiBEdXJpbmcgZXhlY3V0aW9uLCBkeW5hbWljIGV2ZW50cyAobmV3IGNoaWxkcmVuLCBzdWJmbG93cywgbmV4dCBjaGFpbnMsXG4gKiBsb29wIGl0ZXJhdGlvbnMpIG1vZGlmeSB0aGUgcGlwZWxpbmUuIFRoaXMgbWFuYWdlciBrZWVwcyBhIHNlcmlhbGl6ZWRcbiAqIHN0cnVjdHVyZSBpbiBzeW5jIHNvIGNvbnN1bWVycyBnZXQgdGhlIGNvbXBsZXRlIHBpY3R1cmUuXG4gKlxuICogRGVlcC1jbG9uZXMgYnVpbGQtdGltZSBzdHJ1Y3R1cmUgYXQgaW5pdCwgdGhlbiBtYWludGFpbnMgTygxKSBsb29rdXAgbWFwLlxuICovXG5cbmltcG9ydCB7IGlzRGV2TW9kZSB9IGZyb20gJy4uLy4uL3Njb3BlL2RldGVjdENpcmN1bGFyLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKipcbiAqIENvbXB1dGUgdGhlIG5vZGUgdHlwZSBmcm9tIG5vZGUgcHJvcGVydGllcy5cbiAqIFNoYXJlZCBieSBSdW50aW1lU3RydWN0dXJlTWFuYWdlciAoc2VyaWFsaXphdGlvbikgYW5kIEV4dHJhY3RvclJ1bm5lciAobWV0YWRhdGEpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZU5vZGVUeXBlKFxuICBub2RlOiBTdGFnZU5vZGUsXG4pOiAnc3RhZ2UnIHwgJ2RlY2lkZXInIHwgJ3NlbGVjdG9yJyB8ICdmb3JrJyB8ICdzdHJlYW1pbmcnIHwgJ3N1YmZsb3cnIHwgJ2xvb3AnIHtcbiAgLy8gTG9vcCBiYWNrLWVkZ2Ugbm9kZXMgYXJlIHNwZWMgc3R1YnMg4oCUIHRoZXkgYXJlIG5vdCBleGVjdXRhYmxlIHN0YWdlcy5cbiAgLy8gKFJ1bnRpbWU6IFN0YWdlTm9kZS5pc0xvb3BSZWY7IFNwZWM6IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZS5pc0xvb3BSZWZlcmVuY2UpXG4gIGlmIChub2RlLmlzTG9vcFJlZikgcmV0dXJuICdsb29wJztcbiAgaWYgKG5vZGUuaXNTdWJmbG93Um9vdCkgcmV0dXJuICdzdWJmbG93JztcbiAgaWYgKG5vZGUuc2VsZWN0b3JGbikgcmV0dXJuICdzZWxlY3Rvcic7XG4gIC8vIG5leHROb2RlU2VsZWN0b3IgaXMgYW4gb3V0cHV0LWJhc2VkIHJvdXRpbmcgZnVuY3Rpb24gKG5vdCBzY29wZS1iYXNlZCksIGdyb3VwZWQgd2l0aFxuICAvLyBkZWNpZGVyRm4gYXMgJ2RlY2lkZXInIHJhdGhlciB0aGFuICdzZWxlY3RvcicuIFRoZSB0d28gYnJhbmNoZXMgZGlmZmVyIGluIHdoYXQgdGhleVxuICAvLyByZWFkIChvdXRwdXQgdnMgc2NvcGUpIGJ1dCBib3RoIHJlcHJlc2VudCBhIGNvbmRpdGlvbmFsIGJyYW5jaCBkZWNpc2lvbi4gUmV2aXNpdCBpbiBhXG4gIC8vIGZ1dHVyZSBjbGVhbnVwIG9uY2UgdGhlIGRpc3RpbmN0aW9uIGlzIHVzZXItdmlzaWJsZSBpbiB0aGUgVUkuXG4gIGlmIChub2RlLm5leHROb2RlU2VsZWN0b3IgfHwgbm9kZS5kZWNpZGVyRm4pIHJldHVybiAnZGVjaWRlcic7XG4gIGlmIChub2RlLmlzU3RyZWFtaW5nKSByZXR1cm4gJ3N0cmVhbWluZyc7XG5cbiAgY29uc3QgaGFzRHluYW1pY0NoaWxkcmVuID0gQm9vbGVhbihub2RlLmNoaWxkcmVuPy5sZW5ndGggJiYgIW5vZGUubmV4dE5vZGVTZWxlY3RvciAmJiBub2RlLmZuKTtcbiAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwICYmICFoYXNEeW5hbWljQ2hpbGRyZW4pIHJldHVybiAnZm9yayc7XG5cbiAgcmV0dXJuICdzdGFnZSc7XG59XG5cbmV4cG9ydCBjbGFzcyBSdW50aW1lU3RydWN0dXJlTWFuYWdlciB7XG4gIHByaXZhdGUgcnVudGltZVBpcGVsaW5lU3RydWN0dXJlPzogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlO1xuICBwcml2YXRlIHN0cnVjdHVyZU5vZGVNYXA6IE1hcDxzdHJpbmcsIFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZT4gPSBuZXcgTWFwKCk7XG5cbiAgLyoqIEluaXRpYWxpemUgZnJvbSBidWlsZC10aW1lIHN0cnVjdHVyZS4gRGVlcC1jbG9uZXMgdmlhIEpTT04gcm91bmQtdHJpcC4gKi9cbiAgaW5pdChidWlsZFRpbWVTdHJ1Y3R1cmU/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUpOiB2b2lkIHtcbiAgICBpZiAoIWJ1aWxkVGltZVN0cnVjdHVyZSkgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnJ1bnRpbWVQaXBlbGluZVN0cnVjdHVyZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYnVpbGRUaW1lU3RydWN0dXJlKSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBOb24tc2VyaWFsaXphYmxlIGJ1aWxkLXRpbWUgc3RydWN0dXJlIOKAlCBza2lwIHJ1bnRpbWUgdHJhY2tpbmcgZ3JhY2VmdWxseS5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5idWlsZE5vZGVNYXAodGhpcy5ydW50aW1lUGlwZWxpbmVTdHJ1Y3R1cmUhKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBjdXJyZW50IHJ1bnRpbWUgc3RydWN0dXJlIChtdXRhdGVkIGR1cmluZyBleGVjdXRpb24pLiAqL1xuICBnZXRTdHJ1Y3R1cmUoKTogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ydW50aW1lUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBNQVhfTk9ERV9NQVBfREVQVEggPSA1MDA7XG5cbiAgLyoqIFJlY3Vyc2l2ZWx5IHJlZ2lzdGVycyBhbGwgbm9kZXMgaW4gdGhlIE8oMSkgbG9va3VwIG1hcC4gKi9cbiAgcHJpdmF0ZSBidWlsZE5vZGVNYXAobm9kZTogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLCBkZXB0aCA9IDApOiB2b2lkIHtcbiAgICBpZiAoZGVwdGggPiBSdW50aW1lU3RydWN0dXJlTWFuYWdlci5NQVhfTk9ERV9NQVBfREVQVEgpIHtcbiAgICAgIC8vIEd1YXJkIGFnYWluc3QgcGF0aG9sb2dpY2FsbHkgZGVlcCBvciBjeWNsaWMgc3RydWN0dXJlcyBpbmplY3RlZCBpbnRvIGJ1aWxkVGltZVN0cnVjdHVyZS5cbiAgICAgIC8vIE5vcm1hbCBidWlsZGVyLXByb2R1Y2VkIGNoYXJ0cyBhcmUgbmF0dXJhbGx5IGJvdW5kZWQgd2VsbCBiZWxvdyB0aGlzIGxpbWl0LlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0cnVjdHVyZU5vZGVNYXAuc2V0KG5vZGUuaWQsIG5vZGUpO1xuXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIGZvciAoY29uc3QgY2hpbGQgb2Ygbm9kZS5jaGlsZHJlbikge1xuICAgICAgICB0aGlzLmJ1aWxkTm9kZU1hcChjaGlsZCwgZGVwdGggKyAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG5vZGUubmV4dCkge1xuICAgICAgdGhpcy5idWlsZE5vZGVNYXAobm9kZS5uZXh0LCBkZXB0aCArIDEpO1xuICAgIH1cbiAgICBpZiAobm9kZS5zdWJmbG93U3RydWN0dXJlKSB7XG4gICAgICB0aGlzLmJ1aWxkTm9kZU1hcChub2RlLnN1YmZsb3dTdHJ1Y3R1cmUsIGRlcHRoICsgMSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIENvbnZlcnQgYSBydW50aW1lIFN0YWdlTm9kZSBpbnRvIGEgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlIG5vZGUuICovXG4gIHN0YWdlTm9kZVRvU3RydWN0dXJlKG5vZGU6IFN0YWdlTm9kZSk6IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZSB7XG4gICAgY29uc3Qgc3RydWN0dXJlOiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUgPSB7XG4gICAgICBuYW1lOiBub2RlLm5hbWUsXG4gICAgICBpZDogbm9kZS5pZCxcbiAgICAgIHR5cGU6IGNvbXB1dGVOb2RlVHlwZShub2RlKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBub2RlLmRlc2NyaXB0aW9uLFxuICAgIH07XG5cbiAgICBpZiAobm9kZS5pc1N0cmVhbWluZykge1xuICAgICAgc3RydWN0dXJlLmlzU3RyZWFtaW5nID0gdHJ1ZTtcbiAgICAgIHN0cnVjdHVyZS5zdHJlYW1JZCA9IG5vZGUuc3RyZWFtSWQ7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUuaXNTdWJmbG93Um9vdCkge1xuICAgICAgc3RydWN0dXJlLmlzU3ViZmxvd1Jvb3QgPSB0cnVlO1xuICAgICAgc3RydWN0dXJlLnN1YmZsb3dJZCA9IG5vZGUuc3ViZmxvd0lkO1xuICAgICAgc3RydWN0dXJlLnN1YmZsb3dOYW1lID0gbm9kZS5zdWJmbG93TmFtZTtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5kZWNpZGVyRm4pIHtcbiAgICAgIHN0cnVjdHVyZS5oYXNEZWNpZGVyID0gdHJ1ZTtcbiAgICAgIHN0cnVjdHVyZS5icmFuY2hJZHMgPSBub2RlLmNoaWxkcmVuPy5tYXAoKGMpID0+IGMuaWQpO1xuICAgIH1cblxuICAgIGlmIChub2RlLnNlbGVjdG9yRm4gfHwgbm9kZS5uZXh0Tm9kZVNlbGVjdG9yKSB7XG4gICAgICBzdHJ1Y3R1cmUuaGFzU2VsZWN0b3IgPSB0cnVlO1xuICAgICAgc3RydWN0dXJlLmJyYW5jaElkcyA9IG5vZGUuY2hpbGRyZW4/Lm1hcCgoYykgPT4gYy5pZCk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgc3RydWN0dXJlLmNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbi5tYXAoKGMpID0+IHRoaXMuc3RhZ2VOb2RlVG9TdHJ1Y3R1cmUoYykpO1xuICAgIH1cblxuICAgIGlmIChub2RlLm5leHQpIHtcbiAgICAgIHN0cnVjdHVyZS5uZXh0ID0gdGhpcy5zdGFnZU5vZGVUb1N0cnVjdHVyZShub2RlLm5leHQpO1xuICAgIH1cblxuICAgIGlmIChub2RlLnN1YmZsb3dEZWY/LmJ1aWxkVGltZVN0cnVjdHVyZSkge1xuICAgICAgc3RydWN0dXJlLnN1YmZsb3dTdHJ1Y3R1cmUgPSBub2RlLnN1YmZsb3dEZWYuYnVpbGRUaW1lU3RydWN0dXJlIGFzIFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RydWN0dXJlO1xuICB9XG5cbiAgLyoqIFVwZGF0ZSBzdHJ1Y3R1cmUgd2hlbiBkeW5hbWljIGNoaWxkcmVuIGFyZSBkaXNjb3ZlcmVkIGF0IHJ1bnRpbWUuICovXG4gIHVwZGF0ZUR5bmFtaWNDaGlsZHJlbihcbiAgICBwYXJlbnROb2RlSWQ6IHN0cmluZyxcbiAgICBkeW5hbWljQ2hpbGRyZW46IFN0YWdlTm9kZVtdLFxuICAgIGhhc1NlbGVjdG9yPzogYm9vbGVhbixcbiAgICBoYXNEZWNpZGVyPzogYm9vbGVhbixcbiAgKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJ1bnRpbWVQaXBlbGluZVN0cnVjdHVyZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgcGFyZW50U3RydWN0dXJlID0gdGhpcy5zdHJ1Y3R1cmVOb2RlTWFwLmdldChwYXJlbnROb2RlSWQpO1xuICAgIGlmICghcGFyZW50U3RydWN0dXJlKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbZm9vdHByaW50XSBSdW50aW1lU3RydWN0dXJlTWFuYWdlcjogbm9kZSAnJHtwYXJlbnROb2RlSWR9JyBub3QgZm91bmQgaW4gc3RydWN0dXJlIG1hcCDigJQgc25hcHNob3QgdmlzdWFsaXphdGlvbiBtYXkgYmUgaW5jb21wbGV0ZWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGRTdHJ1Y3R1cmVzID0gZHluYW1pY0NoaWxkcmVuLm1hcCgoY2hpbGQpID0+IHRoaXMuc3RhZ2VOb2RlVG9TdHJ1Y3R1cmUoY2hpbGQpKTtcbiAgICBwYXJlbnRTdHJ1Y3R1cmUuY2hpbGRyZW4gPSBjaGlsZFN0cnVjdHVyZXM7XG5cbiAgICBmb3IgKGNvbnN0IGNoaWxkU3RydWN0dXJlIG9mIGNoaWxkU3RydWN0dXJlcykge1xuICAgICAgdGhpcy5idWlsZE5vZGVNYXAoY2hpbGRTdHJ1Y3R1cmUpO1xuICAgIH1cblxuICAgIGlmIChoYXNTZWxlY3Rvcikge1xuICAgICAgcGFyZW50U3RydWN0dXJlLmhhc1NlbGVjdG9yID0gdHJ1ZTtcbiAgICAgIHBhcmVudFN0cnVjdHVyZS5icmFuY2hJZHMgPSBjaGlsZFN0cnVjdHVyZXMubWFwKChjKSA9PiBjLmlkKTtcbiAgICB9XG5cbiAgICBpZiAoaGFzRGVjaWRlcikge1xuICAgICAgcGFyZW50U3RydWN0dXJlLmhhc0RlY2lkZXIgPSB0cnVlO1xuICAgICAgcGFyZW50U3RydWN0dXJlLmJyYW5jaElkcyA9IGNoaWxkU3RydWN0dXJlcy5tYXAoKGMpID0+IGMuaWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBVcGRhdGUgc3RydWN0dXJlIHdoZW4gYSBkeW5hbWljIHN1YmZsb3cgaXMgcmVnaXN0ZXJlZCBhdCBydW50aW1lLiAqL1xuICB1cGRhdGVEeW5hbWljU3ViZmxvdyhcbiAgICBtb3VudE5vZGVJZDogc3RyaW5nLFxuICAgIHN1YmZsb3dJZDogc3RyaW5nLFxuICAgIHN1YmZsb3dOYW1lPzogc3RyaW5nLFxuICAgIHN1YmZsb3dCdWlsZFRpbWVTdHJ1Y3R1cmU/OiB1bmtub3duLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucnVudGltZVBpcGVsaW5lU3RydWN0dXJlKSByZXR1cm47XG5cbiAgICBjb25zdCBtb3VudFN0cnVjdHVyZSA9IHRoaXMuc3RydWN0dXJlTm9kZU1hcC5nZXQobW91bnROb2RlSWQpO1xuICAgIGlmICghbW91bnRTdHJ1Y3R1cmUpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFtmb290cHJpbnRdIFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyOiBub2RlICcke21vdW50Tm9kZUlkfScgbm90IGZvdW5kIGluIHN0cnVjdHVyZSBtYXAg4oCUIHNuYXBzaG90IHZpc3VhbGl6YXRpb24gbWF5IGJlIGluY29tcGxldGVgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1vdW50U3RydWN0dXJlLmlzU3ViZmxvd1Jvb3QgPSB0cnVlO1xuICAgIG1vdW50U3RydWN0dXJlLnN1YmZsb3dJZCA9IHN1YmZsb3dJZDtcblxuICAgIGlmIChzdWJmbG93TmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBtb3VudFN0cnVjdHVyZS5zdWJmbG93TmFtZSA9IHN1YmZsb3dOYW1lO1xuICAgIH1cblxuICAgIGlmIChzdWJmbG93QnVpbGRUaW1lU3RydWN0dXJlKSB7XG4gICAgICAvLyBEZWVwLWNvcHkgdG8gcHJldmVudCBleHRlcm5hbCBtdXRhdGlvbiBvZiB0aGUgc3RvcmVkIHN0cnVjdHVyZVxuICAgICAgdHJ5IHtcbiAgICAgICAgbW91bnRTdHJ1Y3R1cmUuc3ViZmxvd1N0cnVjdHVyZSA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoc3ViZmxvd0J1aWxkVGltZVN0cnVjdHVyZSksXG4gICAgICAgICkgYXMgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlO1xuICAgICAgICB0aGlzLmJ1aWxkTm9kZU1hcChtb3VudFN0cnVjdHVyZS5zdWJmbG93U3RydWN0dXJlKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyBOb24tc2VyaWFsaXphYmxlIHN1YmZsb3cgc3RydWN0dXJlIOKAlCBza2lwIHN1YmZsb3cgc3RydWN0dXJlIHRyYWNraW5nIGdyYWNlZnVsbHkuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIFVwZGF0ZSBzdHJ1Y3R1cmUgd2hlbiBhIGR5bmFtaWMgbmV4dCBjaGFpbiBpcyBkaXNjb3ZlcmVkIGF0IHJ1bnRpbWUuICovXG4gIHVwZGF0ZUR5bmFtaWNOZXh0KGN1cnJlbnROb2RlSWQ6IHN0cmluZywgZHluYW1pY05leHQ6IFN0YWdlTm9kZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ydW50aW1lUGlwZWxpbmVTdHJ1Y3R1cmUpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRTdHJ1Y3R1cmUgPSB0aGlzLnN0cnVjdHVyZU5vZGVNYXAuZ2V0KGN1cnJlbnROb2RlSWQpO1xuICAgIGlmICghY3VycmVudFN0cnVjdHVyZSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgW2Zvb3RwcmludF0gUnVudGltZVN0cnVjdHVyZU1hbmFnZXI6IG5vZGUgJyR7Y3VycmVudE5vZGVJZH0nIG5vdCBmb3VuZCBpbiBzdHJ1Y3R1cmUgbWFwIOKAlCBzbmFwc2hvdCB2aXN1YWxpemF0aW9uIG1heSBiZSBpbmNvbXBsZXRlYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0U3RydWN0dXJlID0gdGhpcy5zdGFnZU5vZGVUb1N0cnVjdHVyZShkeW5hbWljTmV4dCk7XG4gICAgY3VycmVudFN0cnVjdHVyZS5uZXh0ID0gbmV4dFN0cnVjdHVyZTtcbiAgICB0aGlzLmJ1aWxkTm9kZU1hcChuZXh0U3RydWN0dXJlKTtcbiAgfVxuXG4gIC8qKiBVcGRhdGUgdGhlIGl0ZXJhdGlvbiBjb3VudCBmb3IgYSBub2RlIChsb29wIHN1cHBvcnQpLiAqL1xuICB1cGRhdGVJdGVyYXRpb25Db3VudChub2RlSWQ6IHN0cmluZywgY291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5ydW50aW1lUGlwZWxpbmVTdHJ1Y3R1cmUpIHJldHVybjtcbiAgICBjb25zdCBub2RlU3RydWN0dXJlID0gdGhpcy5zdHJ1Y3R1cmVOb2RlTWFwLmdldChub2RlSWQpO1xuICAgIGlmICghbm9kZVN0cnVjdHVyZSkgcmV0dXJuO1xuICAgIG5vZGVTdHJ1Y3R1cmUuaXRlcmF0aW9uQ291bnQgPSBjb3VudDtcbiAgfVxufVxuIl19
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUnVudGltZVN0cnVjdHVyZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS9oYW5kbGVycy9SdW50aW1lU3RydWN0dXJlTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7O0dBUUc7OztBQUVILHFFQUEwRDtBQUkxRDs7O0dBR0c7QUFDSCxTQUFnQixlQUFlLENBQzdCLElBQWU7SUFFZix3RUFBd0U7SUFDeEUsb0ZBQW9GO0lBQ3BGLElBQUksSUFBSSxDQUFDLFNBQVM7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNsQyxJQUFJLElBQUksQ0FBQyxhQUFhO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDekMsSUFBSSxJQUFJLENBQUMsVUFBVTtRQUFFLE9BQU8sVUFBVSxDQUFDO0lBQ3ZDLHVGQUF1RjtJQUN2RixzRkFBc0Y7SUFDdEYsd0ZBQXdGO0lBQ3hGLGlFQUFpRTtJQUNqRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzlELElBQUksSUFBSSxDQUFDLFdBQVc7UUFBRSxPQUFPLFdBQVcsQ0FBQztJQUV6QyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0YsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQjtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBRXBGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFuQkQsMENBbUJDO0FBRUQsTUFBYSx1QkFBdUI7SUFDMUIsd0JBQXdCLENBQStCO0lBQ3ZELGdCQUFnQixHQUE2QyxJQUFJLEdBQUcsRUFBRSxD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QVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsNERBQTREO0lBQzVELG9CQUFvQixDQUFDLE1BQWMsRUFBRSxLQUFhO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCO1lBQUUsT0FBTztRQUMzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUMzQixhQUFhLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUN2QyxDQUFDOztBQS9MSCwwREFnTUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyIOKAlCBNdXRhYmxlIHN0cnVjdHVyZSB0cmFja2luZyBmb3IgdmlzdWFsaXphdGlvbi5cbiAqXG4gKiBEdXJpbmcgZXhlY3V0aW9uLCBkeW5hbWljIGV2ZW50cyAobmV3IGNoaWxkcmVuLCBzdWJmbG93cywgbmV4dCBjaGFpbnMsXG4gKiBsb29wIGl0ZXJhdGlvbnMpIG1vZGlmeSB0aGUgcGlwZWxpbmUuIFRoaXMgbWFuYWdlciBrZWVwcyBhIHNlcmlhbGl6ZWRcbiAqIHN0cnVjdHVyZSBpbiBzeW5jIHNvIGNvbnN1bWVycyBnZXQgdGhlIGNvbXBsZXRlIHBpY3R1cmUuXG4gKlxuICogRGVlcC1jbG9uZXMgYnVpbGQtdGltZSBzdHJ1Y3R1cmUgYXQgaW5pdCwgdGhlbiBtYWludGFpbnMgTygxKSBsb29rdXAgbWFwLlxuICovXG5cbmltcG9ydCB7IGlzRGV2TW9kZSB9IGZyb20gJy4uLy4uL3Njb3BlL2RldGVjdENpcmN1bGFyLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlIH0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG4vKipcbiAqIENvbXB1dGUgdGhlIG5vZGUgdHlwZSBmcm9tIG5vZGUgcHJvcGVydGllcy5cbiAqIFVzZWQgYnkgUnVudGltZVN0cnVjdHVyZU1hbmFnZXIgZm9yIHNlcmlhbGl6YXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlTm9kZVR5cGUoXG4gIG5vZGU6IFN0YWdlTm9kZSxcbik6ICdzdGFnZScgfCAnZGVjaWRlcicgfCAnc2VsZWN0b3InIHwgJ2ZvcmsnIHwgJ3N0cmVhbWluZycgfCAnc3ViZmxvdycgfCAnbG9vcCcge1xuICAvLyBMb29wIGJhY2stZWRnZSBub2RlcyBhcmUgc3BlYyBzdHVicyDigJQgdGhleSBhcmUgbm90IGV4ZWN1dGFibGUgc3RhZ2VzLlxuICAvLyAoUnVudGltZTogU3RhZ2VOb2RlLmlzTG9vcFJlZjsgU3BlYzogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlLmlzTG9vcFJlZmVyZW5jZSlcbiAgaWYgKG5vZGUuaXNMb29wUmVmKSByZXR1cm4gJ2xvb3AnO1xuICBpZiAobm9kZS5pc1N1YmZsb3dSb290KSByZXR1cm4gJ3N1YmZsb3cnO1xuICBpZiAobm9kZS5zZWxlY3RvckZuKSByZXR1cm4gJ3NlbGVjdG9yJztcbiAgLy8gbmV4dE5vZGVTZWxlY3RvciBpcyBhbiBvdXRwdXQtYmFzZWQgcm91dGluZyBmdW5jdGlvbiAobm90IHNjb3BlLWJhc2VkKSwgZ3JvdXBlZCB3aXRoXG4gIC8vIGRlY2lkZXJGbiBhcyAnZGVjaWRlcicgcmF0aGVyIHRoYW4gJ3NlbGVjdG9yJy4gVGhlIHR3byBicmFuY2hlcyBkaWZmZXIgaW4gd2hhdCB0aGV5XG4gIC8vIHJlYWQgKG91dHB1dCB2cyBzY29wZSkgYnV0IGJvdGggcmVwcmVzZW50IGEgY29uZGl0aW9uYWwgYnJhbmNoIGRlY2lzaW9uLiBSZXZpc2l0IGluIGFcbiAgLy8gZnV0dXJlIGNsZWFudXAgb25jZSB0aGUgZGlzdGluY3Rpb24gaXMgdXNlci12aXNpYmxlIGluIHRoZSBVSS5cbiAgaWYgKG5vZGUubmV4dE5vZGVTZWxlY3RvciB8fCBub2RlLmRlY2lkZXJGbikgcmV0dXJuICdkZWNpZGVyJztcbiAgaWYgKG5vZGUuaXNTdHJlYW1pbmcpIHJldHVybiAnc3RyZWFtaW5nJztcblxuICBjb25zdCBoYXNEeW5hbWljQ2hpbGRyZW4gPSBCb29sZWFuKG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCAmJiAhbm9kZS5uZXh0Tm9kZVNlbGVjdG9yICYmIG5vZGUuZm4pO1xuICBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDAgJiYgIWhhc0R5bmFtaWNDaGlsZHJlbikgcmV0dXJuICdmb3JrJztcblxuICByZXR1cm4gJ3N0YWdlJztcbn1cblxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyIHtcbiAgcHJpdmF0ZSBydW50aW1lUGlwZWxpbmVTdHJ1Y3R1cmU/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIHByaXZhdGUgc3RydWN0dXJlTm9kZU1hcDogTWFwPHN0cmluZywgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlPiA9IG5ldyBNYXAoKTtcblxuICAvKiogSW5pdGlhbGl6ZSBmcm9tIGJ1aWxkLXRpbWUgc3RydWN0dXJlLiBEZWVwLWNsb25lcyB2aWEgSlNPTiByb3VuZC10cmlwLiAqL1xuICBpbml0KGJ1aWxkVGltZVN0cnVjdHVyZT86IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZSk6IHZvaWQge1xuICAgIGlmICghYnVpbGRUaW1lU3RydWN0dXJlKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucnVudGltZVBpcGVsaW5lU3RydWN0dXJlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShidWlsZFRpbWVTdHJ1Y3R1cmUpKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIE5vbi1zZXJpYWxpemFibGUgYnVpbGQtdGltZSBzdHJ1Y3R1cmUg4oCUIHNraXAgcnVudGltZSB0cmFja2luZyBncmFjZWZ1bGx5LlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmJ1aWxkTm9kZU1hcCh0aGlzLnJ1bnRpbWVQaXBlbGluZVN0cnVjdHVyZSEpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgdGhlIGN1cnJlbnQgcnVudGltZSBzdHJ1Y3R1cmUgKG11dGF0ZWQgZHVyaW5nIGV4ZWN1dGlvbikuICovXG4gIGdldFN0cnVjdHVyZSgpOiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJ1bnRpbWVQaXBlbGluZVN0cnVjdHVyZTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE1BWF9OT0RFX01BUF9ERVBUSCA9IDUwMDtcblxuICAvKiogUmVjdXJzaXZlbHkgcmVnaXN0ZXJzIGFsbCBub2RlcyBpbiB0aGUgTygxKSBsb29rdXAgbWFwLiAqL1xuICBwcml2YXRlIGJ1aWxkTm9kZU1hcChub2RlOiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUsIGRlcHRoID0gMCk6IHZvaWQge1xuICAgIGlmIChkZXB0aCA+IFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyLk1BWF9OT0RFX01BUF9ERVBUSCkge1xuICAgICAgLy8gR3VhcmQgYWdhaW5zdCBwYXRob2xvZ2ljYWxseSBkZWVwIG9yIGN5Y2xpYyBzdHJ1Y3R1cmVzIGluamVjdGVkIGludG8gYnVpbGRUaW1lU3RydWN0dXJlLlxuICAgICAgLy8gTm9ybWFsIGJ1aWxkZXItcHJvZHVjZWQgY2hhcnRzIGFyZSBuYXR1cmFsbHkgYm91bmRlZCB3ZWxsIGJlbG93IHRoaXMgbGltaXQuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3RydWN0dXJlTm9kZU1hcC5zZXQobm9kZS5pZCwgbm9kZSk7XG5cbiAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBub2RlLmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuYnVpbGROb2RlTWFwKGNoaWxkLCBkZXB0aCArIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobm9kZS5uZXh0KSB7XG4gICAgICB0aGlzLmJ1aWxkTm9kZU1hcChub2RlLm5leHQsIGRlcHRoICsgMSk7XG4gICAgfVxuICAgIGlmIChub2RlLnN1YmZsb3dTdHJ1Y3R1cmUpIHtcbiAgICAgIHRoaXMuYnVpbGROb2RlTWFwKG5vZGUuc3ViZmxvd1N0cnVjdHVyZSwgZGVwdGggKyAxKTtcbiAgICB9XG4gIH1cblxuICAvKiogQ29udmVydCBhIHJ1bnRpbWUgU3RhZ2VOb2RlIGludG8gYSBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmUgbm9kZS4gKi9cbiAgc3RhZ2VOb2RlVG9TdHJ1Y3R1cmUobm9kZTogU3RhZ2VOb2RlKTogU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlIHtcbiAgICBjb25zdCBzdHJ1Y3R1cmU6IFNlcmlhbGl6ZWRQaXBlbGluZVN0cnVjdHVyZSA9IHtcbiAgICAgIG5hbWU6IG5vZGUubmFtZSxcbiAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgdHlwZTogY29tcHV0ZU5vZGVUeXBlKG5vZGUpLFxuICAgICAgZGVzY3JpcHRpb246IG5vZGUuZGVzY3JpcHRpb24sXG4gICAgfTtcblxuICAgIGlmIChub2RlLmlzU3RyZWFtaW5nKSB7XG4gICAgICBzdHJ1Y3R1cmUuaXNTdHJlYW1pbmcgPSB0cnVlO1xuICAgICAgc3RydWN0dXJlLnN0cmVhbUlkID0gbm9kZS5zdHJlYW1JZDtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5pc1N1YmZsb3dSb290KSB7XG4gICAgICBzdHJ1Y3R1cmUuaXNTdWJmbG93Um9vdCA9IHRydWU7XG4gICAgICBzdHJ1Y3R1cmUuc3ViZmxvd0lkID0gbm9kZS5zdWJmbG93SWQ7XG4gICAgICBzdHJ1Y3R1cmUuc3ViZmxvd05hbWUgPSBub2RlLnN1YmZsb3dOYW1lO1xuICAgIH1cblxuICAgIGlmIChub2RlLmRlY2lkZXJGbikge1xuICAgICAgc3RydWN0dXJlLmhhc0RlY2lkZXIgPSB0cnVlO1xuICAgICAgc3RydWN0dXJlLmJyYW5jaElkcyA9IG5vZGUuY2hpbGRyZW4/Lm1hcCgoYykgPT4gYy5pZCk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUuc2VsZWN0b3JGbiB8fCBub2RlLm5leHROb2RlU2VsZWN0b3IpIHtcbiAgICAgIHN0cnVjdHVyZS5oYXNTZWxlY3RvciA9IHRydWU7XG4gICAgICBzdHJ1Y3R1cmUuYnJhbmNoSWRzID0gbm9kZS5jaGlsZHJlbj8ubWFwKChjKSA9PiBjLmlkKTtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICBzdHJ1Y3R1cmUuY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuLm1hcCgoYykgPT4gdGhpcy5zdGFnZU5vZGVUb1N0cnVjdHVyZShjKSk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUubmV4dCkge1xuICAgICAgc3RydWN0dXJlLm5leHQgPSB0aGlzLnN0YWdlTm9kZVRvU3RydWN0dXJlKG5vZGUubmV4dCk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUuc3ViZmxvd0RlZj8uYnVpbGRUaW1lU3RydWN0dXJlKSB7XG4gICAgICBzdHJ1Y3R1cmUuc3ViZmxvd1N0cnVjdHVyZSA9IG5vZGUuc3ViZmxvd0RlZi5idWlsZFRpbWVTdHJ1Y3R1cmUgYXMgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlO1xuICAgIH1cblxuICAgIHJldHVybiBzdHJ1Y3R1cmU7XG4gIH1cblxuICAvKiogVXBkYXRlIHN0cnVjdHVyZSB3aGVuIGR5bmFtaWMgY2hpbGRyZW4gYXJlIGRpc2NvdmVyZWQgYXQgcnVudGltZS4gKi9cbiAgdXBkYXRlRHluYW1pY0NoaWxkcmVuKFxuICAgIHBhcmVudE5vZGVJZDogc3RyaW5nLFxuICAgIGR5bmFtaWNDaGlsZHJlbjogU3RhZ2VOb2RlW10sXG4gICAgaGFzU2VsZWN0b3I/OiBib29sZWFuLFxuICAgIGhhc0RlY2lkZXI/OiBib29sZWFuLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucnVudGltZVBpcGVsaW5lU3RydWN0dXJlKSByZXR1cm47XG5cbiAgICBjb25zdCBwYXJlbnRTdHJ1Y3R1cmUgPSB0aGlzLnN0cnVjdHVyZU5vZGVNYXAuZ2V0KHBhcmVudE5vZGVJZCk7XG4gICAgaWYgKCFwYXJlbnRTdHJ1Y3R1cmUpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFtmb290cHJpbnRdIFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyOiBub2RlICcke3BhcmVudE5vZGVJZH0nIG5vdCBmb3VuZCBpbiBzdHJ1Y3R1cmUgbWFwIOKAlCBzbmFwc2hvdCB2aXN1YWxpemF0aW9uIG1heSBiZSBpbmNvbXBsZXRlYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjaGlsZFN0cnVjdHVyZXMgPSBkeW5hbWljQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4gdGhpcy5zdGFnZU5vZGVUb1N0cnVjdHVyZShjaGlsZCkpO1xuICAgIHBhcmVudFN0cnVjdHVyZS5jaGlsZHJlbiA9IGNoaWxkU3RydWN0dXJlcztcblxuICAgIGZvciAoY29uc3QgY2hpbGRTdHJ1Y3R1cmUgb2YgY2hpbGRTdHJ1Y3R1cmVzKSB7XG4gICAgICB0aGlzLmJ1aWxkTm9kZU1hcChjaGlsZFN0cnVjdHVyZSk7XG4gICAgfVxuXG4gICAgaWYgKGhhc1NlbGVjdG9yKSB7XG4gICAgICBwYXJlbnRTdHJ1Y3R1cmUuaGFzU2VsZWN0b3IgPSB0cnVlO1xuICAgICAgcGFyZW50U3RydWN0dXJlLmJyYW5jaElkcyA9IGNoaWxkU3RydWN0dXJlcy5tYXAoKGMpID0+IGMuaWQpO1xuICAgIH1cblxuICAgIGlmIChoYXNEZWNpZGVyKSB7XG4gICAgICBwYXJlbnRTdHJ1Y3R1cmUuaGFzRGVjaWRlciA9IHRydWU7XG4gICAgICBwYXJlbnRTdHJ1Y3R1cmUuYnJhbmNoSWRzID0gY2hpbGRTdHJ1Y3R1cmVzLm1hcCgoYykgPT4gYy5pZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFVwZGF0ZSBzdHJ1Y3R1cmUgd2hlbiBhIGR5bmFtaWMgc3ViZmxvdyBpcyByZWdpc3RlcmVkIGF0IHJ1bnRpbWUuICovXG4gIHVwZGF0ZUR5bmFtaWNTdWJmbG93KFxuICAgIG1vdW50Tm9kZUlkOiBzdHJpbmcsXG4gICAgc3ViZmxvd0lkOiBzdHJpbmcsXG4gICAgc3ViZmxvd05hbWU/OiBzdHJpbmcsXG4gICAgc3ViZmxvd0J1aWxkVGltZVN0cnVjdHVyZT86IHVua25vd24sXG4gICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5ydW50aW1lUGlwZWxpbmVTdHJ1Y3R1cmUpIHJldHVybjtcblxuICAgIGNvbnN0IG1vdW50U3RydWN0dXJlID0gdGhpcy5zdHJ1Y3R1cmVOb2RlTWFwLmdldChtb3VudE5vZGVJZCk7XG4gICAgaWYgKCFtb3VudFN0cnVjdHVyZSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgW2Zvb3RwcmludF0gUnVudGltZVN0cnVjdHVyZU1hbmFnZXI6IG5vZGUgJyR7bW91bnROb2RlSWR9JyBub3QgZm91bmQgaW4gc3RydWN0dXJlIG1hcCDigJQgc25hcHNob3QgdmlzdWFsaXphdGlvbiBtYXkgYmUgaW5jb21wbGV0ZWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbW91bnRTdHJ1Y3R1cmUuaXNTdWJmbG93Um9vdCA9IHRydWU7XG4gICAgbW91bnRTdHJ1Y3R1cmUuc3ViZmxvd0lkID0gc3ViZmxvd0lkO1xuXG4gICAgaWYgKHN1YmZsb3dOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG1vdW50U3RydWN0dXJlLnN1YmZsb3dOYW1lID0gc3ViZmxvd05hbWU7XG4gICAgfVxuXG4gICAgaWYgKHN1YmZsb3dCdWlsZFRpbWVTdHJ1Y3R1cmUpIHtcbiAgICAgIC8vIERlZXAtY29weSB0byBwcmV2ZW50IGV4dGVybmFsIG11dGF0aW9uIG9mIHRoZSBzdG9yZWQgc3RydWN0dXJlXG4gICAgICB0cnkge1xuICAgICAgICBtb3VudFN0cnVjdHVyZS5zdWJmbG93U3RydWN0dXJlID0gSlNPTi5wYXJzZShcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShzdWJmbG93QnVpbGRUaW1lU3RydWN0dXJlKSxcbiAgICAgICAgKSBhcyBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gICAgICAgIHRoaXMuYnVpbGROb2RlTWFwKG1vdW50U3RydWN0dXJlLnN1YmZsb3dTdHJ1Y3R1cmUpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIE5vbi1zZXJpYWxpemFibGUgc3ViZmxvdyBzdHJ1Y3R1cmUg4oCUIHNraXAgc3ViZmxvdyBzdHJ1Y3R1cmUgdHJhY2tpbmcgZ3JhY2VmdWxseS5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogVXBkYXRlIHN0cnVjdHVyZSB3aGVuIGEgZHluYW1pYyBuZXh0IGNoYWluIGlzIGRpc2NvdmVyZWQgYXQgcnVudGltZS4gKi9cbiAgdXBkYXRlRHluYW1pY05leHQoY3VycmVudE5vZGVJZDogc3RyaW5nLCBkeW5hbWljTmV4dDogU3RhZ2VOb2RlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJ1bnRpbWVQaXBlbGluZVN0cnVjdHVyZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudFN0cnVjdHVyZSA9IHRoaXMuc3RydWN0dXJlTm9kZU1hcC5nZXQoY3VycmVudE5vZGVJZCk7XG4gICAgaWYgKCFjdXJyZW50U3RydWN0dXJlKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbZm9vdHByaW50XSBSdW50aW1lU3RydWN0dXJlTWFuYWdlcjogbm9kZSAnJHtjdXJyZW50Tm9kZUlkfScgbm90IGZvdW5kIGluIHN0cnVjdHVyZSBtYXAg4oCUIHNuYXBzaG90IHZpc3VhbGl6YXRpb24gbWF5IGJlIGluY29tcGxldGVgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRTdHJ1Y3R1cmUgPSB0aGlzLnN0YWdlTm9kZVRvU3RydWN0dXJlKGR5bmFtaWNOZXh0KTtcbiAgICBjdXJyZW50U3RydWN0dXJlLm5leHQgPSBuZXh0U3RydWN0dXJlO1xuICAgIHRoaXMuYnVpbGROb2RlTWFwKG5leHRTdHJ1Y3R1cmUpO1xuICB9XG5cbiAgLyoqIFVwZGF0ZSB0aGUgaXRlcmF0aW9uIGNvdW50IGZvciBhIG5vZGUgKGxvb3Agc3VwcG9ydCkuICovXG4gIHVwZGF0ZUl0ZXJhdGlvbkNvdW50KG5vZGVJZDogc3RyaW5nLCBjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJ1bnRpbWVQaXBlbGluZVN0cnVjdHVyZSkgcmV0dXJuO1xuICAgIGNvbnN0IG5vZGVTdHJ1Y3R1cmUgPSB0aGlzLnN0cnVjdHVyZU5vZGVNYXAuZ2V0KG5vZGVJZCk7XG4gICAgaWYgKCFub2RlU3RydWN0dXJlKSByZXR1cm47XG4gICAgbm9kZVN0cnVjdHVyZS5pdGVyYXRpb25Db3VudCA9IGNvdW50O1xuICB9XG59XG4iXX0=
|
|
@@ -23,7 +23,7 @@ class SelectorHandler {
|
|
|
23
23
|
* The stage function IS the selector — its return value contains branch IDs.
|
|
24
24
|
* Execution order: runStage(fn) → commit → resolve children → parallel execute.
|
|
25
25
|
*/
|
|
26
|
-
async handleScopeBased(node, stageFunc, context, breakFlag, branchPath, runStage, executeNode,
|
|
26
|
+
async handleScopeBased(node, stageFunc, context, breakFlag, branchPath, runStage, executeNode, traversalContext) {
|
|
27
27
|
const breakFn = () => (breakFlag.shouldBreak = true);
|
|
28
28
|
let selectedIds;
|
|
29
29
|
let selectionEvidence;
|
|
@@ -48,17 +48,12 @@ class SelectorHandler {
|
|
|
48
48
|
throw error;
|
|
49
49
|
}
|
|
50
50
|
context.commit();
|
|
51
|
-
callExtractor(node, context, getStagePath(node, branchPath, context.stageName), undefined, {
|
|
52
|
-
type: 'stageExecutionError',
|
|
53
|
-
message: error.toString(),
|
|
54
|
-
});
|
|
55
51
|
this.deps.logger.error(`Error in pipeline (${branchPath}) stage [${node.name}]:`, { error });
|
|
56
52
|
context.addError('stageExecutionError', error.toString());
|
|
57
53
|
this.deps.narrativeGenerator.onError(node.name, error.toString(), error, traversalContext);
|
|
58
54
|
throw error;
|
|
59
55
|
}
|
|
60
56
|
context.commit();
|
|
61
|
-
callExtractor(node, context, getStagePath(node, branchPath, context.stageName), selectedIds);
|
|
62
57
|
if (breakFlag.shouldBreak) {
|
|
63
58
|
return {};
|
|
64
59
|
}
|
|
@@ -71,6 +66,10 @@ class SelectorHandler {
|
|
|
71
66
|
targetStage: [],
|
|
72
67
|
});
|
|
73
68
|
this.deps.narrativeGenerator.onSelected(node.name, [], (node.children ?? []).length, traversalContext);
|
|
69
|
+
// Proposal #003: fire onStageExecuted even on zero-select path —
|
|
70
|
+
// the selector DID complete (it picked none); consumers tracking
|
|
71
|
+
// visited need the signal.
|
|
72
|
+
this.deps.narrativeGenerator.onStageExecuted(node.name, node.description, traversalContext, 'selector');
|
|
74
73
|
return {};
|
|
75
74
|
}
|
|
76
75
|
// Resolve children by matching selected IDs against node.children.
|
|
@@ -96,6 +95,9 @@ class SelectorHandler {
|
|
|
96
95
|
context.addFlowDebugMessage('selected', `Running ${selectedNames} (${selectedChildren.length} of ${children.length} matched)`, { count: selectedChildren.length, targetStage: selectedChildren.map((c) => c.name) });
|
|
97
96
|
const selectedDisplayNames = selectedChildren.map((c) => c.name);
|
|
98
97
|
this.deps.narrativeGenerator.onSelected(node.name, selectedDisplayNames, children.length, traversalContext, selectionEvidence);
|
|
98
|
+
// Proposal #003: fire onStageExecuted AFTER the specialized event
|
|
99
|
+
// so consumers tracking "did this stage run" work uniformly.
|
|
100
|
+
this.deps.narrativeGenerator.onStageExecuted(node.name, node.description, traversalContext, 'selector');
|
|
99
101
|
const tempNode = {
|
|
100
102
|
name: 'selector-temp',
|
|
101
103
|
id: 'selector-temp',
|
|
@@ -115,4 +117,4 @@ class SelectorHandler {
|
|
|
115
117
|
}
|
|
116
118
|
}
|
|
117
119
|
exports.SelectorHandler = SelectorHandler;
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0b3JIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvaGFuZGxlcnMvU2VsZWN0b3JIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOzs7QUFHSCxvREFBd0Q7QUFFeEQsbURBQXFEO0FBT3JELE1BQWEsZUFBZTtJQUVQO0lBQ0E7SUFGbkIsWUFDbUIsSUFBK0IsRUFDL0IsZ0JBQWdEO1FBRGhELFNBQUksR0FBSixJQUFJLENBQTJCO1FBQy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0M7SUFDaEUsQ0FBQztJQUVKOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLElBQTZCLEVBQzdCLFNBQXNDLEVBQ3RDLE9BQXFCLEVBQ3JCLFNBQW1DLEVBQ25DLFVBQThCLEVBQzlCLFFBQWtDLEVBQ2xDLFdBQXdDLEVBQ3hDLGFBQTRDLEVBQzVDLFlBQTBDLEVBQzFDLGdCQUFtQztRQUVuQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFckQsSUFBSSxXQUFxQixDQUFDO1FBQzFCLElBQUksaUJBQWdELENBQUM7UUFDckQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdEUsK0RBQStEO1lBQy9ELElBQ0UsV0FBVztnQkFDWCxPQUFPLFdBQVcsS0FBSyxRQUFRO2dCQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQXFCLEVBQUUsMEJBQWUsQ0FBQztnQkFDbkQsS0FBSyxDQUFDLE9BQU8sQ0FBRSxXQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUM1QyxDQUFDO2dCQUNELFdBQVcsR0FBSSxXQUFtQixDQUFDLFFBQVEsQ0FBQztnQkFDNUMs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REFBeUQ7WUFDekQsSUFBSSxJQUFBLHdCQUFhLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzFDLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUNELE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTVJRCwwQ0E0SUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNlbGVjdG9ySGFuZGxlciDigJQgTXVsdGktY2hvaWNlIGZpbHRlcmVkIGZhbi1vdXQuXG4gKlxuICogUmVzcG9uc2liaWxpdGllczpcbiAqIC0gRXhlY3V0ZSBzY29wZS1iYXNlZCBzZWxlY3RvciBub2RlcyAoc3RhZ2Ug4oaSIGNvbW1pdCDihpIgcmVzb2x2ZSBjaGlsZHJlbiDihpIgcGFyYWxsZWwgZXhlY3V0aW9uKVxuICogLSBUaGUgc2VsZWN0b3IgZnVuY3Rpb24gSVMgYSBzdGFnZTogcmVhZHMgc2NvcGUsIHJldHVybnMgc3RyaW5nW10gb2YgYnJhbmNoIElEc1xuICogLSBEZWxlZ2F0ZXMgcGFyYWxsZWwgZXhlY3V0aW9uIG9mIHNlbGVjdGVkIGNoaWxkcmVuIHRvIENoaWxkcmVuRXhlY3V0b3JcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNlbGVjdGlvbkV2aWRlbmNlIH0gZnJvbSAnLi4vLi4vZGVjaWRlL3R5cGVzLmpzJztcbmltcG9ydCB7IERFQ0lTSU9OX1JFU1VMVCB9IGZyb20gJy4uLy4uL2RlY2lkZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHsgaXNQYXVzZVNpZ25hbCB9IGZyb20gJy4uLy4uL3BhdXNlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgVHJhdmVyc2FsQ29udGV4dCB9IGZyb20gJy4uL25hcnJhdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEhhbmRsZXJEZXBzLCBOb2RlUmVzdWx0VHlwZSwgU3RhZ2VGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgQ2hpbGRyZW5FeGVjdXRvciB9IGZyb20gJy4vQ2hpbGRyZW5FeGVjdXRvci5qcyc7XG5pbXBvcnQgdHlwZSB7IENhbGxFeHRyYWN0b3JGbiwgRXhlY3V0ZU5vZGVGbiwgR2V0U3RhZ2VQYXRoRm4sIFJ1blN0YWdlRm4gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFNlbGVjdG9ySGFuZGxlcjxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXBzOiBIYW5kbGVyRGVwczxUT3V0LCBUU2NvcGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hpbGRyZW5FeGVjdXRvcjogQ2hpbGRyZW5FeGVjdXRvcjxUT3V0LCBUU2NvcGU+LFxuICApIHt9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhIHNjb3BlLWJhc2VkIHNlbGVjdG9yIG5vZGUgKGNyZWF0ZWQgdmlhIGFkZFNlbGVjdG9yRnVuY3Rpb24pLlxuICAgKiBUaGUgc3RhZ2UgZnVuY3Rpb24gSVMgdGhlIHNlbGVjdG9yIOKAlCBpdHMgcmV0dXJuIHZhbHVlIGNvbnRhaW5zIGJyYW5jaCBJRHMuXG4gICAqIEV4ZWN1dGlvbiBvcmRlcjogcnVuU3RhZ2UoZm4pIOKGkiBjb21taXQg4oaSIHJlc29sdmUgY2hpbGRyZW4g4oaSIHBhcmFsbGVsIGV4ZWN1dGUuXG4gICAqL1xuICBhc3luYyBoYW5kbGVTY29wZUJhc2VkKFxuICAgIG5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIHN0YWdlRnVuYzogU3RhZ2VGdW5jdGlvbjxUT3V0LCBUU2NvcGU+LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmVha0ZsYWc6IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcnVuU3RhZ2U6IFJ1blN0YWdlRm48VE91dCwgVFNjb3BlPixcbiAgICBleGVjdXRlTm9kZTogRXhlY3V0ZU5vZGVGbjxUT3V0LCBUU2NvcGU+LFxuICAgIGNhbGxFeHRyYWN0b3I6IENhbGxFeHRyYWN0b3JGbjxUT3V0LCBUU2NvcGU+LFxuICAgIGdldFN0YWdlUGF0aDogR2V0U3RhZ2VQYXRoRm48VE91dCwgVFNjb3BlPixcbiAgICB0cmF2ZXJzYWxDb250ZXh0PzogVHJhdmVyc2FsQ29udGV4dCxcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBOb2RlUmVzdWx0VHlwZT4+IHtcbiAgICBjb25zdCBicmVha0ZuID0gKCkgPT4gKGJyZWFrRmxhZy5zaG91bGRCcmVhayA9IHRydWUpO1xuXG4gICAgbGV0IHNlbGVjdGVkSWRzOiBzdHJpbmdbXTtcbiAgICBsZXQgc2VsZWN0aW9uRXZpZGVuY2U6IFNlbGVjdGlvbkV2aWRlbmNlIHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGFnZU91dHB1dCA9IGF3YWl0IHJ1blN0YWdlKG5vZGUsIHN0YWdlRnVuYywgY29udGV4dCwgYnJlYWtGbik7XG4gICAgICAvLyBEZXRlY3QgU2VsZWN0aW9uUmVzdWx0IGZyb20gc2VsZWN0KCkgaGVscGVyIHZpYSBTeW1ib2wgYnJhbmRcbiAgICAgIGlmIChcbiAgICAgICAgc3RhZ2VPdXRwdXQgJiZcbiAgICAgICAgdHlwZW9mIHN0YWdlT3V0cHV0ID09PSAnb2JqZWN0JyAmJlxuICAgICAgICBSZWZsZWN0LmhhcyhzdGFnZU91dHB1dCBhcyBvYmplY3QsIERFQ0lTSU9OX1JFU1VMVCkgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheSgoc3RhZ2VPdXRwdXQgYXMgYW55KS5icmFuY2hlcylcbiAgICAgICkge1xuICAgICAgICBzZWxlY3RlZElkcyA9IChzdGFnZU91dHB1dCBhcyBhbnkpLmJyYW5jaGVzO1xuICAgICAgICBzZWxlY3Rpb25FdmlkZW5jZSA9IChzdGFnZU91dHB1dCBhcyBhbnkpLmV2aWRlbmNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VsZWN0ZWRJZHMgPSBBcnJheS5pc0FycmF5KHN0YWdlT3V0cHV0KSA/IHN0YWdlT3V0cHV0Lm1hcChTdHJpbmcpIDogW1N0cmluZyhzdGFnZU91dHB1dCldO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIC8vIFBhdXNlU2lnbmFsIGlzIGV4cGVjdGVkIGNvbnRyb2wgZmxvdyDigJQgY29tbWl0IGFuZCByZS10aHJvdyB3aXRob3V0IGVycm9yIGxvZ2dpbmcuXG4gICAgICBpZiAoaXNQYXVzZVNpZ25hbChlcnJvcikpIHtcbiAgICAgICAgY29udGV4dC5jb21taXQoKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBjb250ZXh0LmNvbW1pdCgpO1xuICAgICAgY2FsbEV4dHJhY3Rvcihub2RlLCBjb250ZXh0LCBnZXRTdGFnZVBhdGgobm9kZSwgYnJhbmNoUGF0aCwgY29udGV4dC5zdGFnZU5hbWUpLCB1bmRlZmluZWQsIHtcbiAgICAgICAgdHlwZTogJ3N0YWdlRXhlY3V0aW9uRXJyb3InLFxuICAgICAgICBtZXNzYWdlOiBlcnJvci50b1N0cmluZygpLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmRlcHMubG9nZ2VyLmVycm9yKGBFcnJvciBpbiBwaXBlbGluZSAoJHticmFuY2hQYXRofSkgc3RhZ2UgWyR7bm9kZS5uYW1lfV06YCwgeyBlcnJvciB9KTtcbiAgICAgIGNvbnRleHQuYWRkRXJyb3IoJ3N0YWdlRXhlY3V0aW9uRXJyb3InLCBlcnJvci50b1N0cmluZygpKTtcbiAgICAgIHRoaXMuZGVwcy5uYXJyYXRpdmVHZW5lcmF0b3Iub25FcnJvcihub2RlLm5hbWUsIGVycm9yLnRvU3RyaW5nKCksIGVycm9yLCB0cmF2ZXJzYWxDb250ZXh0KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnRleHQuY29tbWl0KCk7XG4gICAgY2FsbEV4dHJhY3Rvcihub2RlLCBjb250ZXh0LCBnZXRTdGFnZVBhdGgobm9kZSwgYnJhbmNoUGF0aCwgY29udGV4dC5zdGFnZU5hbWUpLCBzZWxlY3RlZElkcyk7XG5cbiAgICBpZiAoYnJlYWtGbGFnLnNob3VsZEJyZWFrKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29udGV4dC5hZGRMb2coJ3NlbGVjdGVkQ2hpbGRJZHMnLCBzZWxlY3RlZElkcyk7XG4gICAgY29udGV4dC5hZGRMb2coJ3NlbGVjdG9yUGF0dGVybicsICdzY29wZS1iYXNlZC1tdWx0aS1jaG9pY2UnKTtcblxuICAgIGlmIChzZWxlY3RlZElkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnRleHQuYWRkTG9nKCdza2lwcGVkQWxsQ2hpbGRyZW4nLCB0cnVlKTtcbiAgICAgIGNvbnRleHQuYWRkRmxvd0RlYnVnTWVzc2FnZSgnc2VsZWN0ZWQnLCAnTm8gY2hpbGRyZW4gc2VsZWN0ZWQg4oCUIHNraXBwaW5nIGFsbCBicmFuY2hlcy4nLCB7XG4gICAgICAgIGNvdW50OiAwLFxuICAgICAgICB0YXJnZXRTdGFnZTogW10sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZGVwcy5uYXJyYXRpdmVHZW5lcmF0b3Iub25TZWxlY3RlZChub2RlLm5hbWUsIFtdLCAobm9kZS5jaGlsZHJlbiA/PyBbXSkubGVuZ3RoLCB0cmF2ZXJzYWxDb250ZXh0KTtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICAvLyBSZXNvbHZlIGNoaWxkcmVuIGJ5IG1hdGNoaW5nIHNlbGVjdGVkIElEcyBhZ2FpbnN0IG5vZGUuY2hpbGRyZW4uXG4gICAgLy8gTWF0Y2ggYnJhbmNoSWQgZmlyc3QgKG9yaWdpbmFsIHVucHJlZml4ZWQgSUQpLCBmYWxsIGJhY2sgdG8gaWQgZm9yIGJhY2t3YXJkIGNvbXBhdC5cbiAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4gYXMgU3RhZ2VOb2RlPFRPdXQsIFRTY29wZT5bXTtcbiAgICBjb25zdCBzZWxlY3RlZENoaWxkcmVuID0gY2hpbGRyZW4uZmlsdGVyKChjKSA9PiBzZWxlY3RlZElkcy5pbmNsdWRlcyhjLmJyYW5jaElkID8/IGMuaWQhKSk7XG5cbiAgICAvLyBWYWxpZGF0ZSBhbGwgSURzIGV4aXN0IChmYWlsIGZhc3QpXG4gICAgaWYgKHNlbGVjdGVkQ2hpbGRyZW4ubGVuZ3RoICE9PSBzZWxlY3RlZElkcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGNoaWxkSWRzID0gY2hpbGRyZW4ubWFwKChjKSA9PiBjLmJyYW5jaElkID8/IGMuaWQpO1xuICAgICAgY29uc3QgbWlzc2luZyA9IHNlbGVjdGVkSWRzLmZpbHRlcigoaWQpID0+ICFjaGlsZElkcy5pbmNsdWRlcyhpZCkpO1xuICAgICAgY29uc3QgZXJyb3JNZXNzYWdlID0gYFNjb3BlLWJhc2VkIHNlbGVjdG9yICcke25vZGUubmFtZX0nIHJldHVybmVkIHVua25vd24gY2hpbGQgSURzOiAke21pc3Npbmcuam9pbihcbiAgICAgICAgJywgJyxcbiAgICAgICl9LiBBdmFpbGFibGU6ICR7Y2hpbGRJZHMuam9pbignLCAnKX1gO1xuICAgICAgdGhpcy5kZXBzLmxvZ2dlci5lcnJvcihgRXJyb3IgaW4gcGlwZWxpbmUgKCR7YnJhbmNoUGF0aH0pOmAsIHsgZXJyb3I6IGVycm9yTWVzc2FnZSB9KTtcbiAgICAgIGNvbnRleHQuYWRkRXJyb3IoJ3NlbGVjdG9yRXJyb3InLCBlcnJvck1lc3NhZ2UpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2tpcHBlZElkcyA9IGNoaWxkcmVuXG4gICAgICAuZmlsdGVyKChjKSA9PiAhc2VsZWN0ZWRJZHMuaW5jbHVkZXMoYy5icmFuY2hJZCA/PyBjLmlkISkpXG4gICAgICAubWFwKChjKSA9PiBjLmJyYW5jaElkID8/IGMuaWQpO1xuICAgIGlmIChza2lwcGVkSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnRleHQuYWRkTG9nKCdza2lwcGVkQ2hpbGRJZHMnLCBza2lwcGVkSWRzKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZE5hbWVzID0gc2VsZWN0ZWRDaGlsZHJlbi5tYXAoKGMpID0+IGMubmFtZSkuam9pbignLCAnKTtcbiAgICBjb250ZXh0LmFkZEZsb3dEZWJ1Z01lc3NhZ2UoXG4gICAgICAnc2VsZWN0ZWQnLFxuICAgICAgYFJ1bm5pbmcgJHtzZWxlY3RlZE5hbWVzfSAoJHtzZWxlY3RlZENoaWxkcmVuLmxlbmd0aH0gb2YgJHtjaGlsZHJlbi5sZW5ndGh9IG1hdGNoZWQpYCxcbiAgICAgIHsgY291bnQ6IHNlbGVjdGVkQ2hpbGRyZW4ubGVuZ3RoLCB0YXJnZXRTdGFnZTogc2VsZWN0ZWRDaGlsZHJlbi5tYXAoKGMpID0+IGMubmFtZSkgfSxcbiAgICApO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWREaXNwbGF5TmFtZXMgPSBzZWxlY3RlZENoaWxkcmVuLm1hcCgoYykgPT4gYy5uYW1lKTtcbiAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uU2VsZWN0ZWQoXG4gICAgICBub2RlLm5hbWUsXG4gICAgICBzZWxlY3RlZERpc3BsYXlOYW1lcyxcbiAgICAgIGNoaWxkcmVuLmxlbmd0aCxcbiAgICAgIHRyYXZlcnNhbENvbnRleHQsXG4gICAgICBzZWxlY3Rpb25FdmlkZW5jZSxcbiAgICApO1xuXG4gICAgY29uc3QgdGVtcE5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+ID0ge1xuICAgICAgbmFtZTogJ3NlbGVjdG9yLXRlbXAnLFxuICAgICAgaWQ6ICdzZWxlY3Rvci10ZW1wJyxcbiAgICAgIGNoaWxkcmVuOiBzZWxlY3RlZENoaWxkcmVuLFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNoaWxkcmVuRXhlY3V0b3IuZXhlY3V0ZU5vZGVDaGlsZHJlbihcbiAgICAgICAgdGVtcE5vZGUsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgYnJhbmNoUGF0aCxcbiAgICAgICAgdHJhdmVyc2FsQ29udGV4dCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIC8vIFN0YW1wIGludm9rZXIgY29udGV4dCBvbiBQYXVzZVNpZ25hbCBkdXJpbmcgYnViYmxlLXVwLlxuICAgICAgaWYgKGlzUGF1c2VTaWduYWwoZXJyb3IpKSB7XG4gICAgICAgIGVycm9yLnNldEludm9rZXIobm9kZS5pZCEsIG5vZGUubmV4dD8uaWQpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0b3JIYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvaGFuZGxlcnMvU2VsZWN0b3JIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOzs7QUFHSCxvREFBd0Q7QUFFeEQsbURBQXFEO0FBT3JELE1BQWEsZUFBZTtJQUVQO0lBQ0E7SUFGbkIsWUFDbUIsSUFBK0IsRUFDL0IsZ0JBQWdEO1FBRGhELFNBQUksR0FBSixJQUFJLENBQTJCO1FBQy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0M7SUFDaEUsQ0FBQztJQUVKOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLElBQTZCLEVBQzdCLFNBQXNDLEVBQ3RDLE9BQXFCLEVBQ3JCLFNBQW1DLEVBQ25DLFVBQThCLEVBQzlCLFFBQWtDLEVBQ2xDLFdBQXdDLEVBQ3hDLGdCQUFtQztRQUVuQyxNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFckQsSUFBSSxXQUFxQixDQUFDO1FBQzFCLElBQUksaUJBQWdELENBQUM7UUFDckQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdEUsK0RBQStEO1lBQy9ELElBQ0UsV0FBVztnQkFDWCxPQUFPLFdBQVcsS0FBSyxRQUFRO2dCQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQXFCLEVBQUUsMEJBQWUsQ0FBQztnQkFDbkQsS0FBSyxDQUFDLE9BQU8sQ0FBRSxXQUFtQixDQUFDLFFBQVEsQ0FBQyxFQUM1QyxDQUFDO2dCQUNELFdBQVcsR0FBSSxXQUFtQixDQUFDLFFBQVEsQ0FBQztnQkFDNUMsaUJBQWlCLEdBQUksV0FBbUIsQ0FBQyxR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SUFBSSxJQUFBLHdCQUFhLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzFDLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUNELE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTVJRCwwQ0E0SUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNlbGVjdG9ySGFuZGxlciDigJQgTXVsdGktY2hvaWNlIGZpbHRlcmVkIGZhbi1vdXQuXG4gKlxuICogUmVzcG9uc2liaWxpdGllczpcbiAqIC0gRXhlY3V0ZSBzY29wZS1iYXNlZCBzZWxlY3RvciBub2RlcyAoc3RhZ2Ug4oaSIGNvbW1pdCDihpIgcmVzb2x2ZSBjaGlsZHJlbiDihpIgcGFyYWxsZWwgZXhlY3V0aW9uKVxuICogLSBUaGUgc2VsZWN0b3IgZnVuY3Rpb24gSVMgYSBzdGFnZTogcmVhZHMgc2NvcGUsIHJldHVybnMgc3RyaW5nW10gb2YgYnJhbmNoIElEc1xuICogLSBEZWxlZ2F0ZXMgcGFyYWxsZWwgZXhlY3V0aW9uIG9mIHNlbGVjdGVkIGNoaWxkcmVuIHRvIENoaWxkcmVuRXhlY3V0b3JcbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFNlbGVjdGlvbkV2aWRlbmNlIH0gZnJvbSAnLi4vLi4vZGVjaWRlL3R5cGVzLmpzJztcbmltcG9ydCB7IERFQ0lTSU9OX1JFU1VMVCB9IGZyb20gJy4uLy4uL2RlY2lkZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHsgaXNQYXVzZVNpZ25hbCB9IGZyb20gJy4uLy4uL3BhdXNlL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU3RhZ2VOb2RlIH0gZnJvbSAnLi4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcbmltcG9ydCB0eXBlIHsgVHJhdmVyc2FsQ29udGV4dCB9IGZyb20gJy4uL25hcnJhdGl2ZS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IEhhbmRsZXJEZXBzLCBOb2RlUmVzdWx0VHlwZSwgU3RhZ2VGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgQ2hpbGRyZW5FeGVjdXRvciB9IGZyb20gJy4vQ2hpbGRyZW5FeGVjdXRvci5qcyc7XG5pbXBvcnQgdHlwZSB7IEV4ZWN1dGVOb2RlRm4sIFJ1blN0YWdlRm4gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNsYXNzIFNlbGVjdG9ySGFuZGxlcjxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXBzOiBIYW5kbGVyRGVwczxUT3V0LCBUU2NvcGU+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hpbGRyZW5FeGVjdXRvcjogQ2hpbGRyZW5FeGVjdXRvcjxUT3V0LCBUU2NvcGU+LFxuICApIHt9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhIHNjb3BlLWJhc2VkIHNlbGVjdG9yIG5vZGUgKGNyZWF0ZWQgdmlhIGFkZFNlbGVjdG9yRnVuY3Rpb24pLlxuICAgKiBUaGUgc3RhZ2UgZnVuY3Rpb24gSVMgdGhlIHNlbGVjdG9yIOKAlCBpdHMgcmV0dXJuIHZhbHVlIGNvbnRhaW5zIGJyYW5jaCBJRHMuXG4gICAqIEV4ZWN1dGlvbiBvcmRlcjogcnVuU3RhZ2UoZm4pIOKGkiBjb21taXQg4oaSIHJlc29sdmUgY2hpbGRyZW4g4oaSIHBhcmFsbGVsIGV4ZWN1dGUuXG4gICAqL1xuICBhc3luYyBoYW5kbGVTY29wZUJhc2VkKFxuICAgIG5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+LFxuICAgIHN0YWdlRnVuYzogU3RhZ2VGdW5jdGlvbjxUT3V0LCBUU2NvcGU+LFxuICAgIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgICBicmVha0ZsYWc6IHsgc2hvdWxkQnJlYWs6IGJvb2xlYW4gfSxcbiAgICBicmFuY2hQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgcnVuU3RhZ2U6IFJ1blN0YWdlRm48VE91dCwgVFNjb3BlPixcbiAgICBleGVjdXRlTm9kZTogRXhlY3V0ZU5vZGVGbjxUT3V0LCBUU2NvcGU+LFxuICAgIHRyYXZlcnNhbENvbnRleHQ/OiBUcmF2ZXJzYWxDb250ZXh0LFxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIE5vZGVSZXN1bHRUeXBlPj4ge1xuICAgIGNvbnN0IGJyZWFrRm4gPSAoKSA9PiAoYnJlYWtGbGFnLnNob3VsZEJyZWFrID0gdHJ1ZSk7XG5cbiAgICBsZXQgc2VsZWN0ZWRJZHM6IHN0cmluZ1tdO1xuICAgIGxldCBzZWxlY3Rpb25FdmlkZW5jZTogU2VsZWN0aW9uRXZpZGVuY2UgfCB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YWdlT3V0cHV0ID0gYXdhaXQgcnVuU3RhZ2Uobm9kZSwgc3RhZ2VGdW5jLCBjb250ZXh0LCBicmVha0ZuKTtcbiAgICAgIC8vIERldGVjdCBTZWxlY3Rpb25SZXN1bHQgZnJvbSBzZWxlY3QoKSBoZWxwZXIgdmlhIFN5bWJvbCBicmFuZFxuICAgICAgaWYgKFxuICAgICAgICBzdGFnZU91dHB1dCAmJlxuICAgICAgICB0eXBlb2Ygc3RhZ2VPdXRwdXQgPT09ICdvYmplY3QnICYmXG4gICAgICAgIFJlZmxlY3QuaGFzKHN0YWdlT3V0cHV0IGFzIG9iamVjdCwgREVDSVNJT05fUkVTVUxUKSAmJlxuICAgICAgICBBcnJheS5pc0FycmF5KChzdGFnZU91dHB1dCBhcyBhbnkpLmJyYW5jaGVzKVxuICAgICAgKSB7XG4gICAgICAgIHNlbGVjdGVkSWRzID0gKHN0YWdlT3V0cHV0IGFzIGFueSkuYnJhbmNoZXM7XG4gICAgICAgIHNlbGVjdGlvbkV2aWRlbmNlID0gKHN0YWdlT3V0cHV0IGFzIGFueSkuZXZpZGVuY2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZWxlY3RlZElkcyA9IEFycmF5LmlzQXJyYXkoc3RhZ2VPdXRwdXQpID8gc3RhZ2VPdXRwdXQubWFwKFN0cmluZykgOiBbU3RyaW5nKHN0YWdlT3V0cHV0KV07XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgLy8gUGF1c2VTaWduYWwgaXMgZXhwZWN0ZWQgY29udHJvbCBmbG93IOKAlCBjb21taXQgYW5kIHJlLXRocm93IHdpdGhvdXQgZXJyb3IgbG9nZ2luZy5cbiAgICAgIGlmIChpc1BhdXNlU2lnbmFsKGVycm9yKSkge1xuICAgICAgICBjb250ZXh0LmNvbW1pdCgpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIGNvbnRleHQuY29tbWl0KCk7XG4gICAgICB0aGlzLmRlcHMubG9nZ2VyLmVycm9yKGBFcnJvciBpbiBwaXBlbGluZSAoJHticmFuY2hQYXRofSkgc3RhZ2UgWyR7bm9kZS5uYW1lfV06YCwgeyBlcnJvciB9KTtcbiAgICAgIGNvbnRleHQuYWRkRXJyb3IoJ3N0YWdlRXhlY3V0aW9uRXJyb3InLCBlcnJvci50b1N0cmluZygpKTtcbiAgICAgIHRoaXMuZGVwcy5uYXJyYXRpdmVHZW5lcmF0b3Iub25FcnJvcihub2RlLm5hbWUsIGVycm9yLnRvU3RyaW5nKCksIGVycm9yLCB0cmF2ZXJzYWxDb250ZXh0KTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGNvbnRleHQuY29tbWl0KCk7XG5cbiAgICBpZiAoYnJlYWtGbGFnLnNob3VsZEJyZWFrKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29udGV4dC5hZGRMb2coJ3NlbGVjdGVkQ2hpbGRJZHMnLCBzZWxlY3RlZElkcyk7XG4gICAgY29udGV4dC5hZGRMb2coJ3NlbGVjdG9yUGF0dGVybicsICdzY29wZS1iYXNlZC1tdWx0aS1jaG9pY2UnKTtcblxuICAgIGlmIChzZWxlY3RlZElkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnRleHQuYWRkTG9nKCdza2lwcGVkQWxsQ2hpbGRyZW4nLCB0cnVlKTtcbiAgICAgIGNvbnRleHQuYWRkRmxvd0RlYnVnTWVzc2FnZSgnc2VsZWN0ZWQnLCAnTm8gY2hpbGRyZW4gc2VsZWN0ZWQg4oCUIHNraXBwaW5nIGFsbCBicmFuY2hlcy4nLCB7XG4gICAgICAgIGNvdW50OiAwLFxuICAgICAgICB0YXJnZXRTdGFnZTogW10sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZGVwcy5uYXJyYXRpdmVHZW5lcmF0b3Iub25TZWxlY3RlZChub2RlLm5hbWUsIFtdLCAobm9kZS5jaGlsZHJlbiA/PyBbXSkubGVuZ3RoLCB0cmF2ZXJzYWxDb250ZXh0KTtcbiAgICAgIC8vIFByb3Bvc2FsICMwMDM6IGZpcmUgb25TdGFnZUV4ZWN1dGVkIGV2ZW4gb24gemVyby1zZWxlY3QgcGF0aCDigJRcbiAgICAgIC8vIHRoZSBzZWxlY3RvciBESUQgY29tcGxldGUgKGl0IHBpY2tlZCBub25lKTsgY29uc3VtZXJzIHRyYWNraW5nXG4gICAgICAvLyB2aXNpdGVkIG5lZWQgdGhlIHNpZ25hbC5cbiAgICAgIHRoaXMuZGVwcy5uYXJyYXRpdmVHZW5lcmF0b3Iub25TdGFnZUV4ZWN1dGVkKG5vZGUubmFtZSwgbm9kZS5kZXNjcmlwdGlvbiwgdHJhdmVyc2FsQ29udGV4dCwgJ3NlbGVjdG9yJyk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgLy8gUmVzb2x2ZSBjaGlsZHJlbiBieSBtYXRjaGluZyBzZWxlY3RlZCBJRHMgYWdhaW5zdCBub2RlLmNoaWxkcmVuLlxuICAgIC8vIE1hdGNoIGJyYW5jaElkIGZpcnN0IChvcmlnaW5hbCB1bnByZWZpeGVkIElEKSwgZmFsbCBiYWNrIHRvIGlkIGZvciBiYWNrd2FyZCBjb21wYXQuXG4gICAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmNoaWxkcmVuIGFzIFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+W107XG4gICAgY29uc3Qgc2VsZWN0ZWRDaGlsZHJlbiA9IGNoaWxkcmVuLmZpbHRlcigoYykgPT4gc2VsZWN0ZWRJZHMuaW5jbHVkZXMoYy5icmFuY2hJZCA/PyBjLmlkISkpO1xuXG4gICAgLy8gVmFsaWRhdGUgYWxsIElEcyBleGlzdCAoZmFpbCBmYXN0KVxuICAgIGlmIChzZWxlY3RlZENoaWxkcmVuLmxlbmd0aCAhPT0gc2VsZWN0ZWRJZHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBjaGlsZElkcyA9IGNoaWxkcmVuLm1hcCgoYykgPT4gYy5icmFuY2hJZCA/PyBjLmlkKTtcbiAgICAgIGNvbnN0IG1pc3NpbmcgPSBzZWxlY3RlZElkcy5maWx0ZXIoKGlkKSA9PiAhY2hpbGRJZHMuaW5jbHVkZXMoaWQpKTtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBTY29wZS1iYXNlZCBzZWxlY3RvciAnJHtub2RlLm5hbWV9JyByZXR1cm5lZCB1bmtub3duIGNoaWxkIElEczogJHttaXNzaW5nLmpvaW4oXG4gICAgICAgICcsICcsXG4gICAgICApfS4gQXZhaWxhYmxlOiAke2NoaWxkSWRzLmpvaW4oJywgJyl9YDtcbiAgICAgIHRoaXMuZGVwcy5sb2dnZXIuZXJyb3IoYEVycm9yIGluIHBpcGVsaW5lICgke2JyYW5jaFBhdGh9KTpgLCB7IGVycm9yOiBlcnJvck1lc3NhZ2UgfSk7XG4gICAgICBjb250ZXh0LmFkZEVycm9yKCdzZWxlY3RvckVycm9yJywgZXJyb3JNZXNzYWdlKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGNvbnN0IHNraXBwZWRJZHMgPSBjaGlsZHJlblxuICAgICAgLmZpbHRlcigoYykgPT4gIXNlbGVjdGVkSWRzLmluY2x1ZGVzKGMuYnJhbmNoSWQgPz8gYy5pZCEpKVxuICAgICAgLm1hcCgoYykgPT4gYy5icmFuY2hJZCA/PyBjLmlkKTtcbiAgICBpZiAoc2tpcHBlZElkcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb250ZXh0LmFkZExvZygnc2tpcHBlZENoaWxkSWRzJywgc2tpcHBlZElkcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWROYW1lcyA9IHNlbGVjdGVkQ2hpbGRyZW4ubWFwKChjKSA9PiBjLm5hbWUpLmpvaW4oJywgJyk7XG4gICAgY29udGV4dC5hZGRGbG93RGVidWdNZXNzYWdlKFxuICAgICAgJ3NlbGVjdGVkJyxcbiAgICAgIGBSdW5uaW5nICR7c2VsZWN0ZWROYW1lc30gKCR7c2VsZWN0ZWRDaGlsZHJlbi5sZW5ndGh9IG9mICR7Y2hpbGRyZW4ubGVuZ3RofSBtYXRjaGVkKWAsXG4gICAgICB7IGNvdW50OiBzZWxlY3RlZENoaWxkcmVuLmxlbmd0aCwgdGFyZ2V0U3RhZ2U6IHNlbGVjdGVkQ2hpbGRyZW4ubWFwKChjKSA9PiBjLm5hbWUpIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IHNlbGVjdGVkRGlzcGxheU5hbWVzID0gc2VsZWN0ZWRDaGlsZHJlbi5tYXAoKGMpID0+IGMubmFtZSk7XG4gICAgdGhpcy5kZXBzLm5hcnJhdGl2ZUdlbmVyYXRvci5vblNlbGVjdGVkKFxuICAgICAgbm9kZS5uYW1lLFxuICAgICAgc2VsZWN0ZWREaXNwbGF5TmFtZXMsXG4gICAgICBjaGlsZHJlbi5sZW5ndGgsXG4gICAgICB0cmF2ZXJzYWxDb250ZXh0LFxuICAgICAgc2VsZWN0aW9uRXZpZGVuY2UsXG4gICAgKTtcbiAgICAvLyBQcm9wb3NhbCAjMDAzOiBmaXJlIG9uU3RhZ2VFeGVjdXRlZCBBRlRFUiB0aGUgc3BlY2lhbGl6ZWQgZXZlbnRcbiAgICAvLyBzbyBjb25zdW1lcnMgdHJhY2tpbmcgXCJkaWQgdGhpcyBzdGFnZSBydW5cIiB3b3JrIHVuaWZvcm1seS5cbiAgICB0aGlzLmRlcHMubmFycmF0aXZlR2VuZXJhdG9yLm9uU3RhZ2VFeGVjdXRlZChub2RlLm5hbWUsIG5vZGUuZGVzY3JpcHRpb24sIHRyYXZlcnNhbENvbnRleHQsICdzZWxlY3RvcicpO1xuXG4gICAgY29uc3QgdGVtcE5vZGU6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+ID0ge1xuICAgICAgbmFtZTogJ3NlbGVjdG9yLXRlbXAnLFxuICAgICAgaWQ6ICdzZWxlY3Rvci10ZW1wJyxcbiAgICAgIGNoaWxkcmVuOiBzZWxlY3RlZENoaWxkcmVuLFxuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmNoaWxkcmVuRXhlY3V0b3IuZXhlY3V0ZU5vZGVDaGlsZHJlbihcbiAgICAgICAgdGVtcE5vZGUsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgYnJhbmNoUGF0aCxcbiAgICAgICAgdHJhdmVyc2FsQ29udGV4dCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIC8vIFN0YW1wIGludm9rZXIgY29udGV4dCBvbiBQYXVzZVNpZ25hbCBkdXJpbmcgYnViYmxlLXVwLlxuICAgICAgaWYgKGlzUGF1c2VTaWduYWwoZXJyb3IpKSB7XG4gICAgICAgIGVycm9yLnNldEludm9rZXIobm9kZS5pZCEsIG5vZGUubmV4dD8uaWQpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuIl19
|