propagate-cli 1.12.7 → 1.12.9
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/lib/abbreviations.js +10 -10
- package/lib/action/addDirectory.js +9 -9
- package/lib/action/addForcedDependencyRelation.js +13 -13
- package/lib/action/addIgnoredDependency.js +8 -8
- package/lib/action/help.js +51 -2
- package/lib/action/initialise.js +4 -4
- package/lib/action/listDirectories.js +12 -36
- package/lib/action/listForcedDependencyRelations.js +8 -8
- package/lib/action/listIgnoredDependencies.js +11 -34
- package/lib/action/propagate.js +19 -19
- package/lib/action/removeDirectory.js +11 -11
- package/lib/action/removeForcedDependencyRelation.js +11 -11
- package/lib/action/removeIgnoredDependency.js +11 -11
- package/lib/action/setShellCommands.js +13 -13
- package/lib/action/version.js +6 -6
- package/lib/changeDirectory.js +9 -9
- package/lib/commands.js +15 -15
- package/lib/configuration/version_1_10.js +6 -6
- package/lib/configuration/version_1_11.js +22 -22
- package/lib/configuration/version_1_3.js +5 -5
- package/lib/configuration/version_1_7.js +5 -5
- package/lib/configuration/version_1_9.js +9 -9
- package/lib/configuration.js +37 -75
- package/lib/constants.js +13 -13
- package/lib/defaults.js +12 -12
- package/lib/descriptions.js +20 -20
- package/lib/diff/map.js +62 -116
- package/lib/diff/semver.js +33 -78
- package/lib/diff/version.js +34 -76
- package/lib/diff.js +106 -196
- package/lib/main.js +20 -20
- package/lib/messages.js +45 -45
- package/lib/operation/checkDevDependencies.js +9 -9
- package/lib/operation/createDiffs.js +14 -37
- package/lib/operation/createReleaseGraph.js +9 -9
- package/lib/operation/createReleaseMap.js +5 -5
- package/lib/operation/createSubDirectoryMap.js +17 -41
- package/lib/operation/createSubDirectoryPath.js +6 -6
- package/lib/operation/dryRun.js +4 -4
- package/lib/operation/prompt/addDirectory.js +15 -15
- package/lib/operation/prompt/addForcedDependency.js +15 -15
- package/lib/operation/prompt/addForcedDependent.js +15 -15
- package/lib/operation/prompt/addIgnoredDependency.js +15 -15
- package/lib/operation/prompt/build.js +18 -18
- package/lib/operation/prompt/git.js +18 -18
- package/lib/operation/prompt/install.js +18 -18
- package/lib/operation/prompt/poll.js +18 -18
- package/lib/operation/prompt/publish.js +21 -21
- package/lib/operation/prompt/removeDirectory.js +14 -14
- package/lib/operation/prompt/removeForcedDependencyRelation.js +14 -14
- package/lib/operation/prompt/removeIgnoredDependency.js +14 -14
- package/lib/operation/prompt/save.js +21 -21
- package/lib/operation/prompt/setBuildShellCommands.js +15 -15
- package/lib/operation/prompt/setGitShellCommands.js +15 -15
- package/lib/operation/prompt/setInstallShellCommands.js +15 -15
- package/lib/operation/prompt/setPollShellCommands.js +15 -15
- package/lib/operation/prompt/setPublishShellCommands.js +15 -15
- package/lib/operation/propagateRelease.js +25 -25
- package/lib/operation/retrieveRelease.js +5 -5
- package/lib/operation/saveAndApplyDiff.js +14 -14
- package/lib/operation/saveAndApplyDiffs.js +4 -4
- package/lib/options.js +6 -6
- package/lib/prepare.js +6 -6
- package/lib/release.js +153 -234
- package/lib/releaseGraph.js +91 -148
- package/lib/releaseMap.js +52 -95
- package/lib/utilities/console.js +14 -38
- package/lib/utilities/dependency.js +4 -4
- package/lib/utilities/operation.js +10 -10
- package/lib/utilities/packageJSON.js +11 -11
- package/lib/utilities/path.js +3 -3
- package/lib/utilities/propagate.js +19 -19
- package/lib/utilities/shell.js +33 -33
- package/lib/utilities/terminal.js +2 -2
- package/lib/version.js +57 -114
- package/lib/versions.js +7 -7
- package/package.json +9 -4
- package/.swcrc +0 -5
package/lib/releaseGraph.js
CHANGED
|
@@ -8,159 +8,102 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return ReleaseGraph;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
throw new TypeError("Cannot call a class as a function");
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
function _defineProperties(target, props) {
|
|
18
|
-
for(var i = 0; i < props.length; i++){
|
|
19
|
-
var descriptor = props[i];
|
|
20
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
21
|
-
descriptor.configurable = true;
|
|
22
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
23
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
27
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
28
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
29
|
-
return Constructor;
|
|
30
|
-
}
|
|
31
|
-
var ReleaseGraph = /*#__PURE__*/ function() {
|
|
32
|
-
function ReleaseGraph(dependencyDirectedGraph, devDependencyDirectedGraph) {
|
|
33
|
-
_class_call_check(this, ReleaseGraph);
|
|
11
|
+
const _occamdirectedgraphs = require("occam-directed-graphs");
|
|
12
|
+
class ReleaseGraph {
|
|
13
|
+
constructor(dependencyDirectedGraph, devDependencyDirectedGraph){
|
|
34
14
|
this.dependencyDirectedGraph = dependencyDirectedGraph;
|
|
35
15
|
this.devDependencyDirectedGraph = devDependencyDirectedGraph;
|
|
36
16
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
{
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
17
|
+
getDependencyDirectedGraph() {
|
|
18
|
+
return this.dependencyDirectedGraph;
|
|
19
|
+
}
|
|
20
|
+
getDevDependencyDirectedGraph() {
|
|
21
|
+
return this.devDependencyDirectedGraph;
|
|
22
|
+
}
|
|
23
|
+
isCyclicDependencyPresent() {
|
|
24
|
+
const cyclesPresent = this.dependencyDirectedGraph.areCyclesPresent(), cyclicDependencyPresent = cyclesPresent; ///
|
|
25
|
+
return cyclicDependencyPresent;
|
|
26
|
+
}
|
|
27
|
+
isCyclicDevDependencyPresent() {
|
|
28
|
+
const cyclesPresent = this.devDependencyDirectedGraph.areCyclesPresent(), cyclicDevDependencyPresent = cyclesPresent; ///
|
|
29
|
+
return cyclicDevDependencyPresent;
|
|
30
|
+
}
|
|
31
|
+
getCyclicDependencySubDirectoryPaths() {
|
|
32
|
+
const firstCycle = this.dependencyDirectedGraph.getFirstCycle(), vertexNames = firstCycle.getVertexNames(), cyclicDependencySubDirectoryPaths = vertexNames; ///
|
|
33
|
+
return cyclicDependencySubDirectoryPaths;
|
|
34
|
+
}
|
|
35
|
+
getCyclicDevDependencySubDirectoryPaths() {
|
|
36
|
+
const firstCycle = this.devDependencyDirectedGraph.getFirstCycle(), vertexNames = firstCycle.getVertexNames(), cyclicDevDependencySubDirectoryPaths = vertexNames; ///
|
|
37
|
+
return cyclicDevDependencySubDirectoryPaths;
|
|
38
|
+
}
|
|
39
|
+
getOrderedDependencySubDirectoryPaths() {
|
|
40
|
+
const dependencyDirectedGraphOrderedVertexNames = this.dependencyDirectedGraph.getOrderedVertexNames(), orderedDependencySubDirectoryPaths = dependencyDirectedGraphOrderedVertexNames; ///
|
|
41
|
+
return orderedDependencySubDirectoryPaths;
|
|
42
|
+
}
|
|
43
|
+
getOrderedDevDependencySubDirectoryPaths() {
|
|
44
|
+
const dependencyDirectedGraphOrderedVertexNames = this.devDependencyDirectedGraph.getOrderedVertexNames(), orderedDevDependencySubDirectoryPaths = dependencyDirectedGraphOrderedVertexNames; ///
|
|
45
|
+
return orderedDevDependencySubDirectoryPaths;
|
|
46
|
+
}
|
|
47
|
+
retrieveDependentReleases(release, releaseMap) {
|
|
48
|
+
const subDirectoryPath = release.getSubDirectoryPath(), vertexName = subDirectoryPath, immediateSuccessorVertexNames = this.dependencyDirectedGraph.getImmediateSuccessorVertexNamesByVertexName(vertexName), dependentSubDirectoryPaths = immediateSuccessorVertexNames, dependentReleases = dependentSubDirectoryPaths.map((dependentSubDirectoryPath)=>{
|
|
49
|
+
const dependentRelease = releaseMap.retrieveRelease(dependentSubDirectoryPath);
|
|
50
|
+
return dependentRelease;
|
|
51
|
+
});
|
|
52
|
+
return dependentReleases;
|
|
53
|
+
}
|
|
54
|
+
retrieveDevDependentReleases(release, releaseMap) {
|
|
55
|
+
const subDirectoryPath = release.getSubDirectoryPath(), vertexName = subDirectoryPath, immediateSuccessorVertexNames = this.devDependencyDirectedGraph.getImmediateSuccessorVertexNamesByVertexName(vertexName), devDependentSubDirectoryPaths = immediateSuccessorVertexNames, devDependentReleases = devDependentSubDirectoryPaths.map((devDependentSubDirectoryPath)=>{
|
|
56
|
+
const devDependentRelease = releaseMap.retrieveRelease(devDependentSubDirectoryPath);
|
|
57
|
+
return devDependentRelease;
|
|
58
|
+
});
|
|
59
|
+
return devDependentReleases;
|
|
60
|
+
}
|
|
61
|
+
static fromReleaseMapSubDirectoryMapAndForcedDependencyRelations(releaseMap, subDirectoryMap, forcedDependencyRelations) {
|
|
62
|
+
const dependencyDirectedGraph = _occamdirectedgraphs.DirectedGraph.fromNothing(), devDependencyDirectedGraph = _occamdirectedgraphs.DirectedGraph.fromNothing(), releaseNames = releaseMap.getNames(), subDirectoryPaths = releaseMap.getSubDirectoryPaths(), nameToSubDirectoryPathMap = releaseMap.getNameToSubDirectoryPathMap(), vertexNames = subDirectoryPaths; ///
|
|
63
|
+
dependencyDirectedGraph.addVertexesByVertexNames(vertexNames);
|
|
64
|
+
devDependencyDirectedGraph.addVertexesByVertexNames(vertexNames);
|
|
65
|
+
subDirectoryPaths.forEach((subDirectoryPath)=>{
|
|
66
|
+
const release = releaseMap.retrieveRelease(subDirectoryPath), releaseDependencyNames = release.getDependencyNames(), releaseDevDependencyNames = release.getDevDependencyNames();
|
|
67
|
+
releaseDependencyNames.forEach((releaseDependencyName)=>{
|
|
68
|
+
const releaseNamesIncludesReleaseDependencyName = releaseNames.includes(releaseDependencyName);
|
|
69
|
+
if (releaseNamesIncludesReleaseDependencyName) {
|
|
70
|
+
const dependencySubDirectoryPath = nameToSubDirectoryPathMap[releaseDependencyName], sourceVertexName = dependencySubDirectoryPath, targetVertexName = subDirectoryPath; ///
|
|
71
|
+
dependencyDirectedGraph.addEdgeBySourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
releaseDevDependencyNames.forEach((releaseDevDependencyName)=>{
|
|
75
|
+
const releaseNamesIncludesReleaseDevDependencyName = releaseNames.includes(releaseDevDependencyName);
|
|
76
|
+
if (releaseNamesIncludesReleaseDevDependencyName) {
|
|
77
|
+
const devDependencySubDirectoryPath = nameToSubDirectoryPathMap[releaseDevDependencyName], sourceVertexName = devDependencySubDirectoryPath, targetVertexName = subDirectoryPath; ///
|
|
78
|
+
devDependencyDirectedGraph.addEdgeBySourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
forcedDependencyRelations.forEach((forcedDependencyRelation)=>{
|
|
83
|
+
const { dependent } = forcedDependencyRelation, dependentSubDirectoryName = dependent, dependentSubDirectoryPath = subDirectoryMap[dependentSubDirectoryName], dependentRelease = releaseMap.retrieveRelease(dependentSubDirectoryPath);
|
|
84
|
+
if (dependentRelease === null) {
|
|
85
|
+
console.log(`The '${dependent}' forced dependent does not exist.`);
|
|
86
|
+
return;
|
|
90
87
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var subDirectoryPath = release.getSubDirectoryPath(), vertexName = subDirectoryPath, immediateSuccessorVertexNames = this.dependencyDirectedGraph.getImmediateSuccessorVertexNamesByVertexName(vertexName), dependentSubDirectoryPaths = immediateSuccessorVertexNames, dependentReleases = dependentSubDirectoryPaths.map(function(dependentSubDirectoryPath) {
|
|
96
|
-
var dependentRelease = releaseMap.retrieveRelease(dependentSubDirectoryPath);
|
|
97
|
-
return dependentRelease;
|
|
98
|
-
});
|
|
99
|
-
return dependentReleases;
|
|
88
|
+
const { dependency } = forcedDependencyRelation, dependencySubDirectoryName = dependency, dependencySubDirectoryPath = subDirectoryMap[dependencySubDirectoryName], dependencyRelease = releaseMap.retrieveRelease(dependencySubDirectoryPath);
|
|
89
|
+
if (dependencyRelease === null) {
|
|
90
|
+
console.log(`The '${dependency}' forced dependency does not exist.`);
|
|
91
|
+
return;
|
|
100
92
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
var subDirectoryPath = release.getSubDirectoryPath(), vertexName = subDirectoryPath, immediateSuccessorVertexNames = this.devDependencyDirectedGraph.getImmediateSuccessorVertexNamesByVertexName(vertexName), devDependentSubDirectoryPaths = immediateSuccessorVertexNames, devDependentReleases = devDependentSubDirectoryPaths.map(function(devDependentSubDirectoryPath) {
|
|
106
|
-
var devDependentRelease = releaseMap.retrieveRelease(devDependentSubDirectoryPath);
|
|
107
|
-
return devDependentRelease;
|
|
108
|
-
});
|
|
109
|
-
return devDependentReleases;
|
|
93
|
+
const sourceVertexName = dependencySubDirectoryPath, targetVertexName = dependentSubDirectoryPath, devDependencyDirectedGraphEdgePresent = devDependencyDirectedGraph.isEdgePresentBySourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName), dependencyDirectedGraphEdgePresent = dependencyDirectedGraph.isEdgePresentBySourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName), devDependencyRelationPresent = devDependencyDirectedGraphEdgePresent, dependencyRelationPresent = dependencyDirectedGraphEdgePresent; ///
|
|
94
|
+
if (dependencyRelationPresent) {
|
|
95
|
+
console.log(`The '${dependency}' -> '${dependent}' dependency relation is present and therefore cannot be forced.`);
|
|
96
|
+
return;
|
|
110
97
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
key: "fromReleaseMapSubDirectoryMapAndForcedDependencyRelations",
|
|
115
|
-
value: function fromReleaseMapSubDirectoryMapAndForcedDependencyRelations(releaseMap, subDirectoryMap, forcedDependencyRelations) {
|
|
116
|
-
var dependencyDirectedGraph = _occamdirectedgraphs.DirectedGraph.fromNothing(), devDependencyDirectedGraph = _occamdirectedgraphs.DirectedGraph.fromNothing(), releaseNames = releaseMap.getNames(), subDirectoryPaths = releaseMap.getSubDirectoryPaths(), nameToSubDirectoryPathMap = releaseMap.getNameToSubDirectoryPathMap(), vertexNames = subDirectoryPaths; ///
|
|
117
|
-
dependencyDirectedGraph.addVertexesByVertexNames(vertexNames);
|
|
118
|
-
devDependencyDirectedGraph.addVertexesByVertexNames(vertexNames);
|
|
119
|
-
subDirectoryPaths.forEach(function(subDirectoryPath) {
|
|
120
|
-
var release = releaseMap.retrieveRelease(subDirectoryPath), releaseDependencyNames = release.getDependencyNames(), releaseDevDependencyNames = release.getDevDependencyNames();
|
|
121
|
-
releaseDependencyNames.forEach(function(releaseDependencyName) {
|
|
122
|
-
var releaseNamesIncludesReleaseDependencyName = releaseNames.includes(releaseDependencyName);
|
|
123
|
-
if (releaseNamesIncludesReleaseDependencyName) {
|
|
124
|
-
var dependencySubDirectoryPath = nameToSubDirectoryPathMap[releaseDependencyName], sourceVertexName = dependencySubDirectoryPath, targetVertexName = subDirectoryPath; ///
|
|
125
|
-
dependencyDirectedGraph.addEdgeBySourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName);
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
releaseDevDependencyNames.forEach(function(releaseDevDependencyName) {
|
|
129
|
-
var releaseNamesIncludesReleaseDevDependencyName = releaseNames.includes(releaseDevDependencyName);
|
|
130
|
-
if (releaseNamesIncludesReleaseDevDependencyName) {
|
|
131
|
-
var devDependencySubDirectoryPath = nameToSubDirectoryPathMap[releaseDevDependencyName], sourceVertexName = devDependencySubDirectoryPath, targetVertexName = subDirectoryPath; ///
|
|
132
|
-
devDependencyDirectedGraph.addEdgeBySourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName);
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
forcedDependencyRelations.forEach(function(forcedDependencyRelation) {
|
|
137
|
-
var dependent = forcedDependencyRelation.dependent, dependentSubDirectoryName = dependent, dependentSubDirectoryPath = subDirectoryMap[dependentSubDirectoryName], dependentRelease = releaseMap.retrieveRelease(dependentSubDirectoryPath);
|
|
138
|
-
if (dependentRelease === null) {
|
|
139
|
-
console.log("The '".concat(dependent, "' forced dependent does not exist."));
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
var dependency = forcedDependencyRelation.dependency, dependencySubDirectoryName = dependency, dependencySubDirectoryPath = subDirectoryMap[dependencySubDirectoryName], dependencyRelease = releaseMap.retrieveRelease(dependencySubDirectoryPath);
|
|
143
|
-
if (dependencyRelease === null) {
|
|
144
|
-
console.log("The '".concat(dependency, "' forced dependency does not exist."));
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
var sourceVertexName = dependencySubDirectoryPath, targetVertexName = dependentSubDirectoryPath, devDependencyDirectedGraphEdgePresent = devDependencyDirectedGraph.isEdgePresentBySourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName), dependencyDirectedGraphEdgePresent = dependencyDirectedGraph.isEdgePresentBySourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName), devDependencyRelationPresent = devDependencyDirectedGraphEdgePresent, dependencyRelationPresent = dependencyDirectedGraphEdgePresent; ///
|
|
148
|
-
if (dependencyRelationPresent) {
|
|
149
|
-
console.log("The '".concat(dependency, "' -> '").concat(dependent, "' dependency relation is present and therefore cannot be forced."));
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
if (!devDependencyRelationPresent) {
|
|
153
|
-
console.log("The '".concat(dependency, "' -> '").concat(dependent, "' developer dependency relation is not present and therefore cannot be forced."));
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
dependencyDirectedGraph.addEdgeBySourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName);
|
|
157
|
-
});
|
|
158
|
-
var releaseGraph = new ReleaseGraph(dependencyDirectedGraph, devDependencyDirectedGraph);
|
|
159
|
-
return releaseGraph;
|
|
98
|
+
if (!devDependencyRelationPresent) {
|
|
99
|
+
console.log(`The '${dependency}' -> '${dependent}' developer dependency relation is not present and therefore cannot be forced.`);
|
|
100
|
+
return;
|
|
160
101
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
102
|
+
dependencyDirectedGraph.addEdgeBySourceVertexNameAndTargetVertexName(sourceVertexName, targetVertexName);
|
|
103
|
+
});
|
|
104
|
+
const releaseGraph = new ReleaseGraph(dependencyDirectedGraph, devDependencyDirectedGraph);
|
|
105
|
+
return releaseGraph;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
165
108
|
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlR3JhcGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IERpcmVjdGVkR3JhcGggfSBmcm9tIFwib2NjYW0tZGlyZWN0ZWQtZ3JhcGhzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbGVhc2VHcmFwaCB7XG4gIGNvbnN0cnVjdG9yKGRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoLCBkZXZEZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaCkge1xuICAgIHRoaXMuZGVwZW5kZW5jeURpcmVjdGVkR3JhcGggPSBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaDtcbiAgICB0aGlzLmRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoID0gZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGg7XG4gIH1cblxuICBnZXREZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaDtcbiAgfVxuXG4gIGdldERldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoKCkge1xuICAgIHJldHVybiB0aGlzLmRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoO1xuICB9XG5cbiAgaXNDeWNsaWNEZXBlbmRlbmN5UHJlc2VudCgpIHtcbiAgICBjb25zdCBjeWNsZXNQcmVzZW50ID0gdGhpcy5kZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5hcmVDeWNsZXNQcmVzZW50KCksXG4gICAgICAgICAgY3ljbGljRGVwZW5kZW5jeVByZXNlbnQgPSBjeWNsZXNQcmVzZW50OyAgLy8vXG5cbiAgICByZXR1cm4gY3ljbGljRGVwZW5kZW5jeVByZXNlbnQ7XG4gIH1cblxuICBpc0N5Y2xpY0RldkRlcGVuZGVuY3lQcmVzZW50KCkge1xuICAgIGNvbnN0IGN5Y2xlc1ByZXNlbnQgPSB0aGlzLmRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoLmFyZUN5Y2xlc1ByZXNlbnQoKSxcbiAgICAgICAgICBjeWNsaWNEZXZEZXBlbmRlbmN5UHJlc2VudCA9IGN5Y2xlc1ByZXNlbnQ7ICAvLy9cblxuICAgIHJldHVybiBjeWNsaWNEZXZEZXBlbmRlbmN5UHJlc2VudDtcbiAgfVxuXG4gIGdldEN5Y2xpY0RlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocygpIHtcbiAgICBjb25zdCBmaXJzdEN5Y2xlID0gdGhpcy5kZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5nZXRGaXJzdEN5Y2xlKCksXG4gICAgICAgICAgdmVydGV4TmFtZXMgPSBmaXJzdEN5Y2xlLmdldFZlcnRleE5hbWVzKCksXG4gICAgICAgICAgY3ljbGljRGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzID0gdmVydGV4TmFtZXM7ICAvLy9cblxuICAgIHJldHVybiBjeWNsaWNEZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aHM7XG4gIH1cblxuICBnZXRDeWNsaWNEZXZEZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aHMoKSB7XG4gICAgY29uc3QgZmlyc3RDeWNsZSA9IHRoaXMuZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGguZ2V0Rmlyc3RDeWNsZSgpLFxuICAgICAgICAgIHZlcnRleE5hbWVzID0gZmlyc3RDeWNsZS5nZXRWZXJ0ZXhOYW1lcygpLFxuICAgICAgICAgIGN5Y2xpY0RldkRlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocyA9IHZlcnRleE5hbWVzOyAgLy8vXG5cbiAgICByZXR1cm4gY3ljbGljRGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzO1xuICB9XG5cbiAgZ2V0T3JkZXJlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocygpIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaE9yZGVyZWRWZXJ0ZXhOYW1lcyA9IHRoaXMuZGVwZW5kZW5jeURpcmVjdGVkR3JhcGguZ2V0T3JkZXJlZFZlcnRleE5hbWVzKCksXG4gICAgICAgICAgb3JkZXJlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocyA9IGRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoT3JkZXJlZFZlcnRleE5hbWVzOyAvLy9cblxuICAgIHJldHVybiBvcmRlcmVkRGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzO1xuICB9XG5cbiAgZ2V0T3JkZXJlZERldkRlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocygpIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaE9yZGVyZWRWZXJ0ZXhOYW1lcyA9IHRoaXMuZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGguZ2V0T3JkZXJlZFZlcnRleE5hbWVzKCksXG4gICAgICAgICAgb3JkZXJlZERldkRlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocyA9IGRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoT3JkZXJlZFZlcnRleE5hbWVzOyAvLy9cblxuICAgIHJldHVybiBvcmRlcmVkRGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzO1xuICB9XG5cbiAgcmV0cmlldmVEZXBlbmRlbnRSZWxlYXNlcyhyZWxlYXNlLCByZWxlYXNlTWFwKSB7XG4gICAgY29uc3Qgc3ViRGlyZWN0b3J5UGF0aCA9IHJlbGVhc2UuZ2V0U3ViRGlyZWN0b3J5UGF0aCgpLFxuICAgICAgICAgIHZlcnRleE5hbWUgPSBzdWJEaXJlY3RvcnlQYXRoLCAgLy8vXG4gICAgICAgICAgaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXMgPSB0aGlzLmRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoLmdldEltbWVkaWF0ZVN1Y2Nlc3NvclZlcnRleE5hbWVzQnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpLFxuICAgICAgICAgIGRlcGVuZGVudFN1YkRpcmVjdG9yeVBhdGhzID0gaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXMsXG4gICAgICAgICAgZGVwZW5kZW50UmVsZWFzZXMgPSBkZXBlbmRlbnRTdWJEaXJlY3RvcnlQYXRocy5tYXAoKGRlcGVuZGVudFN1YkRpcmVjdG9yeVBhdGgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlcGVuZGVudFJlbGVhc2UgPSByZWxlYXNlTWFwLnJldHJpZXZlUmVsZWFzZShkZXBlbmRlbnRTdWJEaXJlY3RvcnlQYXRoKTtcblxuICAgICAgICAgICAgcmV0dXJuIGRlcGVuZGVudFJlbGVhc2U7XG4gICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW50UmVsZWFzZXM7XG4gIH1cblxuICByZXRyaWV2ZURldkRlcGVuZGVudFJlbGVhc2VzKHJlbGVhc2UsIHJlbGVhc2VNYXApIHtcbiAgICBjb25zdCBzdWJEaXJlY3RvcnlQYXRoID0gcmVsZWFzZS5nZXRTdWJEaXJlY3RvcnlQYXRoKCksXG4gICAgICAgICAgdmVydGV4TmFtZSA9IHN1YkRpcmVjdG9yeVBhdGgsICAvLy9cbiAgICAgICAgICBpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lcyA9IHRoaXMuZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGguZ2V0SW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXNCeVZlcnRleE5hbWUodmVydGV4TmFtZSksXG4gICAgICAgICAgZGV2RGVwZW5kZW50U3ViRGlyZWN0b3J5UGF0aHMgPSBpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lcyxcbiAgICAgICAgICBkZXZEZXBlbmRlbnRSZWxlYXNlcyA9IGRldkRlcGVuZGVudFN1YkRpcmVjdG9yeVBhdGhzLm1hcCgoZGV2RGVwZW5kZW50U3ViRGlyZWN0b3J5UGF0aCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGV2RGVwZW5kZW50UmVsZWFzZSA9IHJlbGVhc2VNYXAucmV0cmlldmVSZWxlYXNlKGRldkRlcGVuZGVudFN1YkRpcmVjdG9yeVBhdGgpO1xuXG4gICAgICAgICAgICByZXR1cm4gZGV2RGVwZW5kZW50UmVsZWFzZTtcbiAgICAgICAgICB9KTtcblxuICAgIHJldHVybiBkZXZEZXBlbmRlbnRSZWxlYXNlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUmVsZWFzZU1hcFN1YkRpcmVjdG9yeU1hcEFuZEZvcmNlZERlcGVuZGVuY3lSZWxhdGlvbnMocmVsZWFzZU1hcCwgc3ViRGlyZWN0b3J5TWFwLCBmb3JjZWREZXBlbmRlbmN5UmVsYXRpb25zKSB7XG4gICAgY29uc3QgZGVwZW5kZW5jeURpcmVjdGVkR3JhcGggPSBEaXJlY3RlZEdyYXBoLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGggPSBEaXJlY3RlZEdyYXBoLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzID0gcmVsZWFzZU1hcC5nZXROYW1lcygpLFxuICAgICAgICAgIHN1YkRpcmVjdG9yeVBhdGhzID0gcmVsZWFzZU1hcC5nZXRTdWJEaXJlY3RvcnlQYXRocygpLFxuICAgICAgICAgIG5hbWVUb1N1YkRpcmVjdG9yeVBhdGhNYXAgPSByZWxlYXNlTWFwLmdldE5hbWVUb1N1YkRpcmVjdG9yeVBhdGhNYXAoKSxcbiAgICAgICAgICB2ZXJ0ZXhOYW1lcyA9IHN1YkRpcmVjdG9yeVBhdGhzOyAgLy8vXG5cbiAgICBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5hZGRWZXJ0ZXhlc0J5VmVydGV4TmFtZXModmVydGV4TmFtZXMpO1xuXG4gICAgZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGguYWRkVmVydGV4ZXNCeVZlcnRleE5hbWVzKHZlcnRleE5hbWVzKTtcblxuICAgIHN1YkRpcmVjdG9yeVBhdGhzLmZvckVhY2goKHN1YkRpcmVjdG9yeVBhdGgpID0+IHtcbiAgICAgIGNvbnN0IHJlbGVhc2UgPSByZWxlYXNlTWFwLnJldHJpZXZlUmVsZWFzZShzdWJEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgICAgIHJlbGVhc2VEZXBlbmRlbmN5TmFtZXMgPSByZWxlYXNlLmdldERlcGVuZGVuY3lOYW1lcygpLFxuICAgICAgICAgICAgcmVsZWFzZURldkRlcGVuZGVuY3lOYW1lcyA9IHJlbGVhc2UuZ2V0RGV2RGVwZW5kZW5jeU5hbWVzKCk7XG5cbiAgICAgIHJlbGVhc2VEZXBlbmRlbmN5TmFtZXMuZm9yRWFjaCgocmVsZWFzZURlcGVuZGVuY3lOYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZURlcGVuZGVuY3lOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VEZXBlbmRlbmN5TmFtZSk7XG5cbiAgICAgICAgaWYgKHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZURlcGVuZGVuY3lOYW1lKSB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGggPSBuYW1lVG9TdWJEaXJlY3RvcnlQYXRoTWFwW3JlbGVhc2VEZXBlbmRlbmN5TmFtZV0sXG4gICAgICAgICAgICAgICAgc291cmNlVmVydGV4TmFtZSA9IGRlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRoLCAgLy8vXG4gICAgICAgICAgICAgICAgdGFyZ2V0VmVydGV4TmFtZSA9IHN1YkRpcmVjdG9yeVBhdGg7ICAvLy9cblxuICAgICAgICAgIGRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoLmFkZEVkZ2VCeVNvdXJjZVZlcnRleE5hbWVBbmRUYXJnZXRWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUsIHRhcmdldFZlcnRleE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmVsZWFzZURldkRlcGVuZGVuY3lOYW1lcy5mb3JFYWNoKChyZWxlYXNlRGV2RGVwZW5kZW5jeU5hbWUpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlRGV2RGVwZW5kZW5jeU5hbWUgPSByZWxlYXNlTmFtZXMuaW5jbHVkZXMocmVsZWFzZURldkRlcGVuZGVuY3lOYW1lKTtcblxuICAgICAgICBpZiAocmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlRGV2RGVwZW5kZW5jeU5hbWUpIHtcbiAgICAgICAgICBjb25zdCBkZXZEZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aCA9IG5hbWVUb1N1YkRpcmVjdG9yeVBhdGhNYXBbcmVsZWFzZURldkRlcGVuZGVuY3lOYW1lXSxcbiAgICAgICAgICAgICAgICBzb3VyY2VWZXJ0ZXhOYW1lID0gZGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGgsICAvLy9cbiAgICAgICAgICAgICAgICB0YXJnZXRWZXJ0ZXhOYW1lID0gc3ViRGlyZWN0b3J5UGF0aDsgIC8vL1xuXG4gICAgICAgICAgZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGguYWRkRWRnZUJ5U291cmNlVmVydGV4TmFtZUFuZFRhcmdldFZlcnRleE5hbWUoc291cmNlVmVydGV4TmFtZSwgdGFyZ2V0VmVydGV4TmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZm9yY2VkRGVwZW5kZW5jeVJlbGF0aW9ucy5mb3JFYWNoKChmb3JjZWREZXBlbmRlbmN5UmVsYXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHsgZGVwZW5kZW50IH0gPSBmb3JjZWREZXBlbmRlbmN5UmVsYXRpb24sXG4gICAgICAgICAgICBkZXBlbmRlbnRTdWJEaXJlY3RvcnlOYW1lID0gZGVwZW5kZW50LCAvL1xuICAgICAgICAgICAgZGVwZW5kZW50U3ViRGlyZWN0b3J5UGF0aCA9IHN1YkRpcmVjdG9yeU1hcFtkZXBlbmRlbnRTdWJEaXJlY3RvcnlOYW1lXSwgLy8vXG4gICAgICAgICAgICBkZXBlbmRlbnRSZWxlYXNlID0gcmVsZWFzZU1hcC5yZXRyaWV2ZVJlbGVhc2UoZGVwZW5kZW50U3ViRGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgIGlmIChkZXBlbmRlbnRSZWxlYXNlID09PSBudWxsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBUaGUgJyR7ZGVwZW5kZW50fScgZm9yY2VkIGRlcGVuZGVudCBkb2VzIG5vdCBleGlzdC5gKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgZGVwZW5kZW5jeSB9ID0gZm9yY2VkRGVwZW5kZW5jeVJlbGF0aW9uLFxuICAgICAgICAgICAgZGVwZW5kZW5jeVN1YkRpcmVjdG9yeU5hbWUgPSBkZXBlbmRlbmN5LCAgLy8vXG4gICAgICAgICAgICBkZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aCA9IHN1YkRpcmVjdG9yeU1hcFtkZXBlbmRlbmN5U3ViRGlyZWN0b3J5TmFtZV0sICAvLy9cbiAgICAgICAgICAgIGRlcGVuZGVuY3lSZWxlYXNlID0gcmVsZWFzZU1hcC5yZXRyaWV2ZVJlbGVhc2UoZGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGgpO1xuXG4gICAgICBpZiAoZGVwZW5kZW5jeVJlbGVhc2UgPT09IG51bGwpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFRoZSAnJHtkZXBlbmRlbmN5fScgZm9yY2VkIGRlcGVuZGVuY3kgZG9lcyBub3QgZXhpc3QuYCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzb3VyY2VWZXJ0ZXhOYW1lID0gZGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGgsICAvLy9cbiAgICAgICAgICAgIHRhcmdldFZlcnRleE5hbWUgPSBkZXBlbmRlbnRTdWJEaXJlY3RvcnlQYXRoLCAvLy9cbiAgICAgICAgICAgIGRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoRWRnZVByZXNlbnQgPSBkZXZEZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5pc0VkZ2VQcmVzZW50QnlTb3VyY2VWZXJ0ZXhOYW1lQW5kVGFyZ2V0VmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoRWRnZVByZXNlbnQgPSBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5pc0VkZ2VQcmVzZW50QnlTb3VyY2VWZXJ0ZXhOYW1lQW5kVGFyZ2V0VmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKSxcbiAgICAgICAgICAgIGRldkRlcGVuZGVuY3lSZWxhdGlvblByZXNlbnQgPSBkZXZEZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaEVkZ2VQcmVzZW50LCAvLy9cbiAgICAgICAgICAgIGRlcGVuZGVuY3lSZWxhdGlvblByZXNlbnQgPSBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaEVkZ2VQcmVzZW50OyAvLy9cblxuICAgICAgaWYgKGRlcGVuZGVuY3lSZWxhdGlvblByZXNlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFRoZSAnJHtkZXBlbmRlbmN5fScgLT4gJyR7ZGVwZW5kZW50fScgZGVwZW5kZW5jeSByZWxhdGlvbiBpcyBwcmVzZW50IGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIGZvcmNlZC5gKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghZGV2RGVwZW5kZW5jeVJlbGF0aW9uUHJlc2VudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgVGhlICcke2RlcGVuZGVuY3l9JyAtPiAnJHtkZXBlbmRlbnR9JyBkZXZlbG9wZXIgZGVwZW5kZW5jeSByZWxhdGlvbiBpcyBub3QgcHJlc2VudCBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBmb3JjZWQuYCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5hZGRFZGdlQnlTb3VyY2VWZXJ0ZXhOYW1lQW5kVGFyZ2V0VmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlbGVhc2VHcmFwaCA9IG5ldyBSZWxlYXNlR3JhcGgoZGVwZW5kZW5jeURpcmVjdGVkR3JhcGgsIGRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoKTtcblxuICAgIHJldHVybiByZWxlYXNlR3JhcGg7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJSZWxlYXNlR3JhcGgiLCJkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaCIsImRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoIiwiZ2V0RGVwZW5kZW5jeURpcmVjdGVkR3JhcGgiLCJnZXREZXZEZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaCIsImlzQ3ljbGljRGVwZW5kZW5jeVByZXNlbnQiLCJjeWNsZXNQcmVzZW50IiwiYXJlQ3ljbGVzUHJlc2VudCIsImN5Y2xpY0RlcGVuZGVuY3lQcmVzZW50IiwiaXNDeWNsaWNEZXZEZXBlbmRlbmN5UHJlc2VudCIsImN5Y2xpY0RldkRlcGVuZGVuY3lQcmVzZW50IiwiZ2V0Q3ljbGljRGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzIiwiZmlyc3RDeWNsZSIsImdldEZpcnN0Q3ljbGUiLCJ2ZXJ0ZXhOYW1lcyIsImdldFZlcnRleE5hbWVzIiwiY3ljbGljRGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzIiwiZ2V0Q3ljbGljRGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzIiwiY3ljbGljRGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzIiwiZ2V0T3JkZXJlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocyIsImRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoT3JkZXJlZFZlcnRleE5hbWVzIiwiZ2V0T3JkZXJlZFZlcnRleE5hbWVzIiwib3JkZXJlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocyIsImdldE9yZGVyZWREZXZEZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aHMiLCJvcmRlcmVkRGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzIiwicmV0cmlldmVEZXBlbmRlbnRSZWxlYXNlcyIsInJlbGVhc2UiLCJyZWxlYXNlTWFwIiwic3ViRGlyZWN0b3J5UGF0aCIsImdldFN1YkRpcmVjdG9yeVBhdGgiLCJ2ZXJ0ZXhOYW1lIiwiaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXMiLCJnZXRJbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSIsImRlcGVuZGVudFN1YkRpcmVjdG9yeVBhdGhzIiwiZGVwZW5kZW50UmVsZWFzZXMiLCJtYXAiLCJkZXBlbmRlbnRTdWJEaXJlY3RvcnlQYXRoIiwiZGVwZW5kZW50UmVsZWFzZSIsInJldHJpZXZlUmVsZWFzZSIsInJldHJpZXZlRGV2RGVwZW5kZW50UmVsZWFzZXMiLCJkZXZEZXBlbmRlbnRTdWJEaXJlY3RvcnlQYXRocyIsImRldkRlcGVuZGVudFJlbGVhc2VzIiwiZGV2RGVwZW5kZW50U3ViRGlyZWN0b3J5UGF0aCIsImRldkRlcGVuZGVudFJlbGVhc2UiLCJmcm9tUmVsZWFzZU1hcFN1YkRpcmVjdG9yeU1hcEFuZEZvcmNlZERlcGVuZGVuY3lSZWxhdGlvbnMiLCJzdWJEaXJlY3RvcnlNYXAiLCJmb3JjZWREZXBlbmRlbmN5UmVsYXRpb25zIiwiRGlyZWN0ZWRHcmFwaCIsImZyb21Ob3RoaW5nIiwicmVsZWFzZU5hbWVzIiwiZ2V0TmFtZXMiLCJzdWJEaXJlY3RvcnlQYXRocyIsImdldFN1YkRpcmVjdG9yeVBhdGhzIiwibmFtZVRvU3ViRGlyZWN0b3J5UGF0aE1hcCIsImdldE5hbWVUb1N1YkRpcmVjdG9yeVBhdGhNYXAiLCJhZGRWZXJ0ZXhlc0J5VmVydGV4TmFtZXMiLCJmb3JFYWNoIiwicmVsZWFzZURlcGVuZGVuY3lOYW1lcyIsImdldERlcGVuZGVuY3lOYW1lcyIsInJlbGVhc2VEZXZEZXBlbmRlbmN5TmFtZXMiLCJnZXREZXZEZXBlbmRlbmN5TmFtZXMiLCJyZWxlYXNlRGVwZW5kZW5jeU5hbWUiLCJyZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VEZXBlbmRlbmN5TmFtZSIsImluY2x1ZGVzIiwiZGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGgiLCJzb3VyY2VWZXJ0ZXhOYW1lIiwidGFyZ2V0VmVydGV4TmFtZSIsImFkZEVkZ2VCeVNvdXJjZVZlcnRleE5hbWVBbmRUYXJnZXRWZXJ0ZXhOYW1lIiwicmVsZWFzZURldkRlcGVuZGVuY3lOYW1lIiwicmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlRGV2RGVwZW5kZW5jeU5hbWUiLCJkZXZEZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aCIsImZvcmNlZERlcGVuZGVuY3lSZWxhdGlvbiIsImRlcGVuZGVudCIsImRlcGVuZGVudFN1YkRpcmVjdG9yeU5hbWUiLCJjb25zb2xlIiwibG9nIiwiZGVwZW5kZW5jeSIsImRlcGVuZGVuY3lTdWJEaXJlY3RvcnlOYW1lIiwiZGVwZW5kZW5jeVJlbGVhc2UiLCJkZXZEZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaEVkZ2VQcmVzZW50IiwiaXNFZGdlUHJlc2VudEJ5U291cmNlVmVydGV4TmFtZUFuZFRhcmdldFZlcnRleE5hbWUiLCJkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaEVkZ2VQcmVzZW50IiwiZGV2RGVwZW5kZW5jeVJlbGF0aW9uUHJlc2VudCIsImRlcGVuZGVuY3lSZWxhdGlvblByZXNlbnQiLCJyZWxlYXNlR3JhcGgiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBSXFCQTs7O21DQUZTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVmLElBQUEsQUFBTUEsNkJBQU47YUFBTUEsYUFDUEMsdUJBQXVCLEVBQUVDLDBCQUEwQjtnQ0FENUNGO1FBRWpCLElBQUksQ0FBQ0MsdUJBQXVCLEdBQUdBO1FBQy9CLElBQUksQ0FBQ0MsMEJBQTBCLEdBQUdBOztrQkFIakJGOztZQU1uQkcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRix1QkFBdUI7WUFDckM7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLDBCQUEwQjtZQUN4Qzs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxnQkFBZ0IsSUFBSSxDQUFDTCx1QkFBdUIsQ0FBQ00sZ0JBQWdCLElBQzdEQywwQkFBMEJGLGVBQWdCLEdBQUc7Z0JBRW5ELE9BQU9FO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsSUFBTUgsZ0JBQWdCLElBQUksQ0FBQ0osMEJBQTBCLENBQUNLLGdCQUFnQixJQUNoRUcsNkJBQTZCSixlQUFnQixHQUFHO2dCQUV0RCxPQUFPSTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQU1DLGFBQWEsSUFBSSxDQUFDWCx1QkFBdUIsQ0FBQ1ksYUFBYSxJQUN2REMsY0FBY0Ys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
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlR3JhcGguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IERpcmVjdGVkR3JhcGggfSBmcm9tIFwib2NjYW0tZGlyZWN0ZWQtZ3JhcGhzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbGVhc2VHcmFwaCB7XG4gIGNvbnN0cnVjdG9yKGRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoLCBkZXZEZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaCkge1xuICAgIHRoaXMuZGVwZW5kZW5jeURpcmVjdGVkR3JhcGggPSBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaDtcbiAgICB0aGlzLmRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoID0gZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGg7XG4gIH1cblxuICBnZXREZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaDtcbiAgfVxuXG4gIGdldERldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoKCkge1xuICAgIHJldHVybiB0aGlzLmRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoO1xuICB9XG5cbiAgaXNDeWNsaWNEZXBlbmRlbmN5UHJlc2VudCgpIHtcbiAgICBjb25zdCBjeWNsZXNQcmVzZW50ID0gdGhpcy5kZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5hcmVDeWNsZXNQcmVzZW50KCksXG4gICAgICAgICAgY3ljbGljRGVwZW5kZW5jeVByZXNlbnQgPSBjeWNsZXNQcmVzZW50OyAgLy8vXG5cbiAgICByZXR1cm4gY3ljbGljRGVwZW5kZW5jeVByZXNlbnQ7XG4gIH1cblxuICBpc0N5Y2xpY0RldkRlcGVuZGVuY3lQcmVzZW50KCkge1xuICAgIGNvbnN0IGN5Y2xlc1ByZXNlbnQgPSB0aGlzLmRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoLmFyZUN5Y2xlc1ByZXNlbnQoKSxcbiAgICAgICAgICBjeWNsaWNEZXZEZXBlbmRlbmN5UHJlc2VudCA9IGN5Y2xlc1ByZXNlbnQ7ICAvLy9cblxuICAgIHJldHVybiBjeWNsaWNEZXZEZXBlbmRlbmN5UHJlc2VudDtcbiAgfVxuXG4gIGdldEN5Y2xpY0RlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocygpIHtcbiAgICBjb25zdCBmaXJzdEN5Y2xlID0gdGhpcy5kZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5nZXRGaXJzdEN5Y2xlKCksXG4gICAgICAgICAgdmVydGV4TmFtZXMgPSBmaXJzdEN5Y2xlLmdldFZlcnRleE5hbWVzKCksXG4gICAgICAgICAgY3ljbGljRGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzID0gdmVydGV4TmFtZXM7ICAvLy9cblxuICAgIHJldHVybiBjeWNsaWNEZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aHM7XG4gIH1cblxuICBnZXRDeWNsaWNEZXZEZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aHMoKSB7XG4gICAgY29uc3QgZmlyc3RDeWNsZSA9IHRoaXMuZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGguZ2V0Rmlyc3RDeWNsZSgpLFxuICAgICAgICAgIHZlcnRleE5hbWVzID0gZmlyc3RDeWNsZS5nZXRWZXJ0ZXhOYW1lcygpLFxuICAgICAgICAgIGN5Y2xpY0RldkRlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocyA9IHZlcnRleE5hbWVzOyAgLy8vXG5cbiAgICByZXR1cm4gY3ljbGljRGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzO1xuICB9XG5cbiAgZ2V0T3JkZXJlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocygpIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaE9yZGVyZWRWZXJ0ZXhOYW1lcyA9IHRoaXMuZGVwZW5kZW5jeURpcmVjdGVkR3JhcGguZ2V0T3JkZXJlZFZlcnRleE5hbWVzKCksXG4gICAgICAgICAgb3JkZXJlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocyA9IGRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoT3JkZXJlZFZlcnRleE5hbWVzOyAvLy9cblxuICAgIHJldHVybiBvcmRlcmVkRGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzO1xuICB9XG5cbiAgZ2V0T3JkZXJlZERldkRlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocygpIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaE9yZGVyZWRWZXJ0ZXhOYW1lcyA9IHRoaXMuZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGguZ2V0T3JkZXJlZFZlcnRleE5hbWVzKCksXG4gICAgICAgICAgb3JkZXJlZERldkRlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocyA9IGRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoT3JkZXJlZFZlcnRleE5hbWVzOyAvLy9cblxuICAgIHJldHVybiBvcmRlcmVkRGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzO1xuICB9XG5cbiAgcmV0cmlldmVEZXBlbmRlbnRSZWxlYXNlcyhyZWxlYXNlLCByZWxlYXNlTWFwKSB7XG4gICAgY29uc3Qgc3ViRGlyZWN0b3J5UGF0aCA9IHJlbGVhc2UuZ2V0U3ViRGlyZWN0b3J5UGF0aCgpLFxuICAgICAgICAgIHZlcnRleE5hbWUgPSBzdWJEaXJlY3RvcnlQYXRoLCAgLy8vXG4gICAgICAgICAgaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXMgPSB0aGlzLmRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoLmdldEltbWVkaWF0ZVN1Y2Nlc3NvclZlcnRleE5hbWVzQnlWZXJ0ZXhOYW1lKHZlcnRleE5hbWUpLFxuICAgICAgICAgIGRlcGVuZGVudFN1YkRpcmVjdG9yeVBhdGhzID0gaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXMsXG4gICAgICAgICAgZGVwZW5kZW50UmVsZWFzZXMgPSBkZXBlbmRlbnRTdWJEaXJlY3RvcnlQYXRocy5tYXAoKGRlcGVuZGVudFN1YkRpcmVjdG9yeVBhdGgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRlcGVuZGVudFJlbGVhc2UgPSByZWxlYXNlTWFwLnJldHJpZXZlUmVsZWFzZShkZXBlbmRlbnRTdWJEaXJlY3RvcnlQYXRoKTtcblxuICAgICAgICAgICAgcmV0dXJuIGRlcGVuZGVudFJlbGVhc2U7XG4gICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW50UmVsZWFzZXM7XG4gIH1cblxuICByZXRyaWV2ZURldkRlcGVuZGVudFJlbGVhc2VzKHJlbGVhc2UsIHJlbGVhc2VNYXApIHtcbiAgICBjb25zdCBzdWJEaXJlY3RvcnlQYXRoID0gcmVsZWFzZS5nZXRTdWJEaXJlY3RvcnlQYXRoKCksXG4gICAgICAgICAgdmVydGV4TmFtZSA9IHN1YkRpcmVjdG9yeVBhdGgsICAvLy9cbiAgICAgICAgICBpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lcyA9IHRoaXMuZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGguZ2V0SW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXNCeVZlcnRleE5hbWUodmVydGV4TmFtZSksXG4gICAgICAgICAgZGV2RGVwZW5kZW50U3ViRGlyZWN0b3J5UGF0aHMgPSBpbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lcyxcbiAgICAgICAgICBkZXZEZXBlbmRlbnRSZWxlYXNlcyA9IGRldkRlcGVuZGVudFN1YkRpcmVjdG9yeVBhdGhzLm1hcCgoZGV2RGVwZW5kZW50U3ViRGlyZWN0b3J5UGF0aCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGV2RGVwZW5kZW50UmVsZWFzZSA9IHJlbGVhc2VNYXAucmV0cmlldmVSZWxlYXNlKGRldkRlcGVuZGVudFN1YkRpcmVjdG9yeVBhdGgpO1xuXG4gICAgICAgICAgICByZXR1cm4gZGV2RGVwZW5kZW50UmVsZWFzZTtcbiAgICAgICAgICB9KTtcblxuICAgIHJldHVybiBkZXZEZXBlbmRlbnRSZWxlYXNlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tUmVsZWFzZU1hcFN1YkRpcmVjdG9yeU1hcEFuZEZvcmNlZERlcGVuZGVuY3lSZWxhdGlvbnMocmVsZWFzZU1hcCwgc3ViRGlyZWN0b3J5TWFwLCBmb3JjZWREZXBlbmRlbmN5UmVsYXRpb25zKSB7XG4gICAgY29uc3QgZGVwZW5kZW5jeURpcmVjdGVkR3JhcGggPSBEaXJlY3RlZEdyYXBoLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGggPSBEaXJlY3RlZEdyYXBoLmZyb21Ob3RoaW5nKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVzID0gcmVsZWFzZU1hcC5nZXROYW1lcygpLFxuICAgICAgICAgIHN1YkRpcmVjdG9yeVBhdGhzID0gcmVsZWFzZU1hcC5nZXRTdWJEaXJlY3RvcnlQYXRocygpLFxuICAgICAgICAgIG5hbWVUb1N1YkRpcmVjdG9yeVBhdGhNYXAgPSByZWxlYXNlTWFwLmdldE5hbWVUb1N1YkRpcmVjdG9yeVBhdGhNYXAoKSxcbiAgICAgICAgICB2ZXJ0ZXhOYW1lcyA9IHN1YkRpcmVjdG9yeVBhdGhzOyAgLy8vXG5cbiAgICBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5hZGRWZXJ0ZXhlc0J5VmVydGV4TmFtZXModmVydGV4TmFtZXMpO1xuXG4gICAgZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGguYWRkVmVydGV4ZXNCeVZlcnRleE5hbWVzKHZlcnRleE5hbWVzKTtcblxuICAgIHN1YkRpcmVjdG9yeVBhdGhzLmZvckVhY2goKHN1YkRpcmVjdG9yeVBhdGgpID0+IHtcbiAgICAgIGNvbnN0IHJlbGVhc2UgPSByZWxlYXNlTWFwLnJldHJpZXZlUmVsZWFzZShzdWJEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgICAgIHJlbGVhc2VEZXBlbmRlbmN5TmFtZXMgPSByZWxlYXNlLmdldERlcGVuZGVuY3lOYW1lcygpLFxuICAgICAgICAgICAgcmVsZWFzZURldkRlcGVuZGVuY3lOYW1lcyA9IHJlbGVhc2UuZ2V0RGV2RGVwZW5kZW5jeU5hbWVzKCk7XG5cbiAgICAgIHJlbGVhc2VEZXBlbmRlbmN5TmFtZXMuZm9yRWFjaCgocmVsZWFzZURlcGVuZGVuY3lOYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZURlcGVuZGVuY3lOYW1lID0gcmVsZWFzZU5hbWVzLmluY2x1ZGVzKHJlbGVhc2VEZXBlbmRlbmN5TmFtZSk7XG5cbiAgICAgICAgaWYgKHJlbGVhc2VOYW1lc0luY2x1ZGVzUmVsZWFzZURlcGVuZGVuY3lOYW1lKSB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGggPSBuYW1lVG9TdWJEaXJlY3RvcnlQYXRoTWFwW3JlbGVhc2VEZXBlbmRlbmN5TmFtZV0sXG4gICAgICAgICAgICAgICAgc291cmNlVmVydGV4TmFtZSA9IGRlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRoLCAgLy8vXG4gICAgICAgICAgICAgICAgdGFyZ2V0VmVydGV4TmFtZSA9IHN1YkRpcmVjdG9yeVBhdGg7ICAvLy9cblxuICAgICAgICAgIGRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoLmFkZEVkZ2VCeVNvdXJjZVZlcnRleE5hbWVBbmRUYXJnZXRWZXJ0ZXhOYW1lKHNvdXJjZVZlcnRleE5hbWUsIHRhcmdldFZlcnRleE5hbWUpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmVsZWFzZURldkRlcGVuZGVuY3lOYW1lcy5mb3JFYWNoKChyZWxlYXNlRGV2RGVwZW5kZW5jeU5hbWUpID0+IHtcbiAgICAgICAgY29uc3QgcmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlRGV2RGVwZW5kZW5jeU5hbWUgPSByZWxlYXNlTmFtZXMuaW5jbHVkZXMocmVsZWFzZURldkRlcGVuZGVuY3lOYW1lKTtcblxuICAgICAgICBpZiAocmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlRGV2RGVwZW5kZW5jeU5hbWUpIHtcbiAgICAgICAgICBjb25zdCBkZXZEZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aCA9IG5hbWVUb1N1YkRpcmVjdG9yeVBhdGhNYXBbcmVsZWFzZURldkRlcGVuZGVuY3lOYW1lXSxcbiAgICAgICAgICAgICAgICBzb3VyY2VWZXJ0ZXhOYW1lID0gZGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGgsICAvLy9cbiAgICAgICAgICAgICAgICB0YXJnZXRWZXJ0ZXhOYW1lID0gc3ViRGlyZWN0b3J5UGF0aDsgIC8vL1xuXG4gICAgICAgICAgZGV2RGVwZW5kZW5jeURpcmVjdGVkR3JhcGguYWRkRWRnZUJ5U291cmNlVmVydGV4TmFtZUFuZFRhcmdldFZlcnRleE5hbWUoc291cmNlVmVydGV4TmFtZSwgdGFyZ2V0VmVydGV4TmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZm9yY2VkRGVwZW5kZW5jeVJlbGF0aW9ucy5mb3JFYWNoKChmb3JjZWREZXBlbmRlbmN5UmVsYXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHsgZGVwZW5kZW50IH0gPSBmb3JjZWREZXBlbmRlbmN5UmVsYXRpb24sXG4gICAgICAgICAgICBkZXBlbmRlbnRTdWJEaXJlY3RvcnlOYW1lID0gZGVwZW5kZW50LCAvL1xuICAgICAgICAgICAgZGVwZW5kZW50U3ViRGlyZWN0b3J5UGF0aCA9IHN1YkRpcmVjdG9yeU1hcFtkZXBlbmRlbnRTdWJEaXJlY3RvcnlOYW1lXSwgLy8vXG4gICAgICAgICAgICBkZXBlbmRlbnRSZWxlYXNlID0gcmVsZWFzZU1hcC5yZXRyaWV2ZVJlbGVhc2UoZGVwZW5kZW50U3ViRGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgIGlmIChkZXBlbmRlbnRSZWxlYXNlID09PSBudWxsKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBUaGUgJyR7ZGVwZW5kZW50fScgZm9yY2VkIGRlcGVuZGVudCBkb2VzIG5vdCBleGlzdC5gKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgZGVwZW5kZW5jeSB9ID0gZm9yY2VkRGVwZW5kZW5jeVJlbGF0aW9uLFxuICAgICAgICAgICAgZGVwZW5kZW5jeVN1YkRpcmVjdG9yeU5hbWUgPSBkZXBlbmRlbmN5LCAgLy8vXG4gICAgICAgICAgICBkZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aCA9IHN1YkRpcmVjdG9yeU1hcFtkZXBlbmRlbmN5U3ViRGlyZWN0b3J5TmFtZV0sICAvLy9cbiAgICAgICAgICAgIGRlcGVuZGVuY3lSZWxlYXNlID0gcmVsZWFzZU1hcC5yZXRyaWV2ZVJlbGVhc2UoZGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGgpO1xuXG4gICAgICBpZiAoZGVwZW5kZW5jeVJlbGVhc2UgPT09IG51bGwpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFRoZSAnJHtkZXBlbmRlbmN5fScgZm9yY2VkIGRlcGVuZGVuY3kgZG9lcyBub3QgZXhpc3QuYCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzb3VyY2VWZXJ0ZXhOYW1lID0gZGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGgsICAvLy9cbiAgICAgICAgICAgIHRhcmdldFZlcnRleE5hbWUgPSBkZXBlbmRlbnRTdWJEaXJlY3RvcnlQYXRoLCAvLy9cbiAgICAgICAgICAgIGRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoRWRnZVByZXNlbnQgPSBkZXZEZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5pc0VkZ2VQcmVzZW50QnlTb3VyY2VWZXJ0ZXhOYW1lQW5kVGFyZ2V0VmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKSxcbiAgICAgICAgICAgIGRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoRWRnZVByZXNlbnQgPSBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5pc0VkZ2VQcmVzZW50QnlTb3VyY2VWZXJ0ZXhOYW1lQW5kVGFyZ2V0VmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKSxcbiAgICAgICAgICAgIGRldkRlcGVuZGVuY3lSZWxhdGlvblByZXNlbnQgPSBkZXZEZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaEVkZ2VQcmVzZW50LCAvLy9cbiAgICAgICAgICAgIGRlcGVuZGVuY3lSZWxhdGlvblByZXNlbnQgPSBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaEVkZ2VQcmVzZW50OyAvLy9cblxuICAgICAgaWYgKGRlcGVuZGVuY3lSZWxhdGlvblByZXNlbnQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYFRoZSAnJHtkZXBlbmRlbmN5fScgLT4gJyR7ZGVwZW5kZW50fScgZGVwZW5kZW5jeSByZWxhdGlvbiBpcyBwcmVzZW50IGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIGZvcmNlZC5gKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghZGV2RGVwZW5kZW5jeVJlbGF0aW9uUHJlc2VudCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgVGhlICcke2RlcGVuZGVuY3l9JyAtPiAnJHtkZXBlbmRlbnR9JyBkZXZlbG9wZXIgZGVwZW5kZW5jeSByZWxhdGlvbiBpcyBub3QgcHJlc2VudCBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBmb3JjZWQuYCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaC5hZGRFZGdlQnlTb3VyY2VWZXJ0ZXhOYW1lQW5kVGFyZ2V0VmVydGV4TmFtZShzb3VyY2VWZXJ0ZXhOYW1lLCB0YXJnZXRWZXJ0ZXhOYW1lKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlbGVhc2VHcmFwaCA9IG5ldyBSZWxlYXNlR3JhcGgoZGVwZW5kZW5jeURpcmVjdGVkR3JhcGgsIGRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoKTtcblxuICAgIHJldHVybiByZWxlYXNlR3JhcGg7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJSZWxlYXNlR3JhcGgiLCJkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaCIsImRldkRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoIiwiZ2V0RGVwZW5kZW5jeURpcmVjdGVkR3JhcGgiLCJnZXREZXZEZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaCIsImlzQ3ljbGljRGVwZW5kZW5jeVByZXNlbnQiLCJjeWNsZXNQcmVzZW50IiwiYXJlQ3ljbGVzUHJlc2VudCIsImN5Y2xpY0RlcGVuZGVuY3lQcmVzZW50IiwiaXNDeWNsaWNEZXZEZXBlbmRlbmN5UHJlc2VudCIsImN5Y2xpY0RldkRlcGVuZGVuY3lQcmVzZW50IiwiZ2V0Q3ljbGljRGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzIiwiZmlyc3RDeWNsZSIsImdldEZpcnN0Q3ljbGUiLCJ2ZXJ0ZXhOYW1lcyIsImdldFZlcnRleE5hbWVzIiwiY3ljbGljRGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzIiwiZ2V0Q3ljbGljRGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzIiwiY3ljbGljRGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzIiwiZ2V0T3JkZXJlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocyIsImRlcGVuZGVuY3lEaXJlY3RlZEdyYXBoT3JkZXJlZFZlcnRleE5hbWVzIiwiZ2V0T3JkZXJlZFZlcnRleE5hbWVzIiwib3JkZXJlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlQYXRocyIsImdldE9yZGVyZWREZXZEZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aHMiLCJvcmRlcmVkRGV2RGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGhzIiwicmV0cmlldmVEZXBlbmRlbnRSZWxlYXNlcyIsInJlbGVhc2UiLCJyZWxlYXNlTWFwIiwic3ViRGlyZWN0b3J5UGF0aCIsImdldFN1YkRpcmVjdG9yeVBhdGgiLCJ2ZXJ0ZXhOYW1lIiwiaW1tZWRpYXRlU3VjY2Vzc29yVmVydGV4TmFtZXMiLCJnZXRJbW1lZGlhdGVTdWNjZXNzb3JWZXJ0ZXhOYW1lc0J5VmVydGV4TmFtZSIsImRlcGVuZGVudFN1YkRpcmVjdG9yeVBhdGhzIiwiZGVwZW5kZW50UmVsZWFzZXMiLCJtYXAiLCJkZXBlbmRlbnRTdWJEaXJlY3RvcnlQYXRoIiwiZGVwZW5kZW50UmVsZWFzZSIsInJldHJpZXZlUmVsZWFzZSIsInJldHJpZXZlRGV2RGVwZW5kZW50UmVsZWFzZXMiLCJkZXZEZXBlbmRlbnRTdWJEaXJlY3RvcnlQYXRocyIsImRldkRlcGVuZGVudFJlbGVhc2VzIiwiZGV2RGVwZW5kZW50U3ViRGlyZWN0b3J5UGF0aCIsImRldkRlcGVuZGVudFJlbGVhc2UiLCJmcm9tUmVsZWFzZU1hcFN1YkRpcmVjdG9yeU1hcEFuZEZvcmNlZERlcGVuZGVuY3lSZWxhdGlvbnMiLCJzdWJEaXJlY3RvcnlNYXAiLCJmb3JjZWREZXBlbmRlbmN5UmVsYXRpb25zIiwiRGlyZWN0ZWRHcmFwaCIsImZyb21Ob3RoaW5nIiwicmVsZWFzZU5hbWVzIiwiZ2V0TmFtZXMiLCJzdWJEaXJlY3RvcnlQYXRocyIsImdldFN1YkRpcmVjdG9yeVBhdGhzIiwibmFtZVRvU3ViRGlyZWN0b3J5UGF0aE1hcCIsImdldE5hbWVUb1N1YkRpcmVjdG9yeVBhdGhNYXAiLCJhZGRWZXJ0ZXhlc0J5VmVydGV4TmFtZXMiLCJmb3JFYWNoIiwicmVsZWFzZURlcGVuZGVuY3lOYW1lcyIsImdldERlcGVuZGVuY3lOYW1lcyIsInJlbGVhc2VEZXZEZXBlbmRlbmN5TmFtZXMiLCJnZXREZXZEZXBlbmRlbmN5TmFtZXMiLCJyZWxlYXNlRGVwZW5kZW5jeU5hbWUiLCJyZWxlYXNlTmFtZXNJbmNsdWRlc1JlbGVhc2VEZXBlbmRlbmN5TmFtZSIsImluY2x1ZGVzIiwiZGVwZW5kZW5jeVN1YkRpcmVjdG9yeVBhdGgiLCJzb3VyY2VWZXJ0ZXhOYW1lIiwidGFyZ2V0VmVydGV4TmFtZSIsImFkZEVkZ2VCeVNvdXJjZVZlcnRleE5hbWVBbmRUYXJnZXRWZXJ0ZXhOYW1lIiwicmVsZWFzZURldkRlcGVuZGVuY3lOYW1lIiwicmVsZWFzZU5hbWVzSW5jbHVkZXNSZWxlYXNlRGV2RGVwZW5kZW5jeU5hbWUiLCJkZXZEZXBlbmRlbmN5U3ViRGlyZWN0b3J5UGF0aCIsImZvcmNlZERlcGVuZGVuY3lSZWxhdGlvbiIsImRlcGVuZGVudCIsImRlcGVuZGVudFN1YkRpcmVjdG9yeU5hbWUiLCJjb25zb2xlIiwibG9nIiwiZGVwZW5kZW5jeSIsImRlcGVuZGVuY3lTdWJEaXJlY3RvcnlOYW1lIiwiZGVwZW5kZW5jeVJlbGVhc2UiLCJkZXZEZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaEVkZ2VQcmVzZW50IiwiaXNFZGdlUHJlc2VudEJ5U291cmNlVmVydGV4TmFtZUFuZFRhcmdldFZlcnRleE5hbWUiLCJkZXBlbmRlbmN5RGlyZWN0ZWRHcmFwaEVkZ2VQcmVzZW50IiwiZGV2RGVwZW5kZW5jeVJlbGF0aW9uUHJlc2VudCIsImRlcGVuZGVuY3lSZWxhdGlvblByZXNlbnQiLCJyZWxlYXNlR3JhcGgiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBcUJBOzs7cUNBRlM7QUFFZixNQUFNQTtJQUNuQixZQUFZQyx1QkFBdUIsRUFBRUMsMEJBQTBCLENBQUU7UUFDL0QsSUFBSSxDQUFDRCx1QkFBdUIsR0FBR0E7UUFDL0IsSUFBSSxDQUFDQywwQkFBMEIsR0FBR0E7SUFDcEM7SUFFQUMsNkJBQTZCO1FBQzNCLE9BQU8sSUFBSSxDQUFDRix1QkFBdUI7SUFDckM7SUFFQUcsZ0NBQWdDO1FBQzlCLE9BQU8sSUFBSSxDQUFDRiwwQkFBMEI7SUFDeEM7SUFFQUcsNEJBQTRCO1FBQzFCLE1BQU1DLGdCQUFnQixJQUFJLENBQUNMLHVCQUF1QixDQUFDTSxnQkFBZ0IsSUFDN0RDLDBCQUEwQkYsZUFBZ0IsR0FBRztRQUVuRCxPQUFPRTtJQUNUO0lBRUFDLCtCQUErQjtRQUM3QixNQUFNSCxnQkFBZ0IsSUFBSSxDQUFDSiwwQkFBMEIsQ0FBQ0ssZ0JBQWdCLElBQ2hFRyw2QkFBNkJKLGVBQWdCLEdBQUc7UUFFdEQsT0FBT0k7SUFDVDtJQUVBQyx1Q0FBdUM7UUFDckMsTUFBTUMsYUFBYSxJQUFJLENBQUNYLHVCQUF1QixDQUFDWSxhQUFhLElBQ3ZEQyxjQUFjRixXQUFXRyxjQUFjLElBQ3ZDQyxvQ0FBb0NGLGFBQWMsR0FBRztRQUUzRCxPQUFPRTtJQUNUO0lBRUFDLDBDQUEwQztRQUN4QyxNQUFNTCxhQUFhLElBQUksQ0FBQ1YsMEJBQTBCLENBQUNXLGFBQWEsSUFDMURDLGNBQWNGLFdBQVdHLGNBQWMsSUFDdkNHLHVDQUF1Q0osYUFBYyxHQUFHO1FBRTlELE9BQU9JO0lBQ1Q7SUFFQUMsd0NBQXdDO1FBQ3RDLE1BQU1DLDRDQUE0QyxJQUFJLENBQUNuQix1QkFBdUIsQ0FBQ29CLHFCQUFxQixJQUM5RkMscUNBQXFDRiwyQ0FBMkMsR0FBRztRQUV6RixPQUFPRTtJQUNUO0lBRUFDLDJDQUEyQztRQUN6QyxNQUFNSCw0Q0FBNEMsSUFBSSxDQUFDbEIsMEJBQTBCLENBQUNtQixxQkFBcUIsSUFDakdHLHdDQUF3Q0osMkNBQTJDLEdBQUc7UUFFNUYsT0FBT0k7SUFDVDtJQUVBQywwQkFBMEJDLE9BQU8sRUFBRUMsVUFBVSxFQUFFO1FBQzdDLE1BQU1DLG1CQUFtQkYsUUFBUUcsbUJBQW1CLElBQzlDQyxhQUFhRixrQkFDYkcsZ0NBQWdDLElBQUksQ0FBQzlCLHVCQUF1QixDQUFDK0IsNENBQTRDLENBQUNGLGFBQzFHRyw2QkFBNkJGLCtCQUM3Qkcsb0JBQW9CRCwyQkFBMkJFLEdBQUcsQ0FBQyxDQUFDQztZQUNsRCxNQUFNQyxtQkFBbUJWLFdBQVdXLGVBQWUsQ0FBQ0Y7WUFFcEQsT0FBT0M7UUFDVDtRQUVOLE9BQU9IO0lBQ1Q7SUFFQUssNkJBQTZCYixPQUFPLEVBQUVDLFVBQVUsRUFBRTtRQUNoRCxNQUFNQyxtQkFBbUJGLFFBQVFHLG1CQUFtQixJQUM5Q0MsYUFBYUYsa0JBQ2JHLGdDQUFnQyxJQUFJLENBQUM3QiwwQkFBMEIsQ0FBQzhCLDRDQUE0QyxDQUFDRixhQUM3R1UsZ0NBQWdDVCwrQkFDaENVLHVCQUF1QkQsOEJBQThCTCxHQUFHLENBQUMsQ0FBQ087WUFDeEQsTUFBTUMsc0JBQXNCaEIsV0FBV1csZUFBZSxDQUFDSTtZQUV2RCxPQUFPQztRQUNUO1FBRU4sT0FBT0Y7SUFDVDtJQUVBLE9BQU9HLDBEQUEwRGpCLFVBQVUsRUFBRWtCLGVBQWUsRUFBRUMseUJBQXlCLEVBQUU7UUFDdkgsTUFBTTdDLDBCQUEwQjhDLGtDQUFhLENBQUNDLFdBQVcsSUFDbkQ5Qyw2QkFBNkI2QyxrQ0FBYSxDQUFDQyxXQUFXLElBQ3REQyxlQUFldEIsV0FBV3VCLFFBQVEsSUFDbENDLG9CQUFvQnhCLFdBQVd5QixvQkFBb0IsSUFDbkRDLDRCQUE0QjFCLFdBQVcyQiw0QkFBNEIsSUFDbkV4QyxjQUFjcUMsbUJBQW9CLEdBQUc7UUFFM0NsRCx3QkFBd0JzRCx3QkFBd0IsQ0FBQ3pDO1FBRWpEWiwyQkFBMkJxRCx3QkFBd0IsQ0FBQ3pDO1FBRXBEcUMsa0JBQWtCSyxPQUFPLENBQUMsQ0FBQzVCO1lBQ3pCLE1BQU1GLFVBQVVDLFdBQVdXLGVBQWUsQ0FBQ1YsbUJBQ3JDNkIseUJBQXlCL0IsUUFBUWdDLGtCQUFrQixJQUNuREMsNEJBQTRCakMsUUFBUWtDLHFCQUFxQjtZQUUvREgsdUJBQXVCRCxPQUFPLENBQUMsQ0FBQ0s7Z0JBQzlCLE1BQU1DLDRDQUE0Q2IsYUFBYWMsUUFBUSxDQUFDRjtnQkFFeEUsSUFBSUMsMkNBQTJDO29CQUM3QyxNQUFNRSw2QkFBNkJYLHlCQUF5QixDQUFDUSxzQkFBc0IsRUFDN0VJLG1CQUFtQkQsNEJBQ25CRSxtQkFBbUJ0QyxrQkFBbUIsR0FBRztvQkFFL0MzQix3QkFBd0JrRSw0Q0FBNEMsQ0FBQ0Ysa0JBQWtCQztnQkFDekY7WUFDRjtZQUVBUCwwQkFBMEJILE9BQU8sQ0FBQyxDQUFDWTtnQkFDakMsTUFBTUMsK0NBQStDcEIsYUFBYWMsUUFBUSxDQUFDSztnQkFFM0UsSUFBSUMsOENBQThDO29CQUNoRCxNQUFNQyxnQ0FBZ0NqQix5QkFBeUIsQ0FBQ2UseUJBQXlCLEVBQ25GSCxtQkFBbUJLLCtCQUNuQkosbUJBQW1CdEMsa0JBQW1CLEdBQUc7b0JBRS9DMUIsMkJBQTJCaUUsNENBQTRDLENBQUNGLGtCQUFrQkM7Z0JBQzVGO1lBQ0Y7UUFDRjtRQUVBcEIsMEJBQTBCVSxPQUFPLENBQUMsQ0FBQ2U7WUFDakMsTUFBTSxFQUFFQyxTQUFTLEVBQUUsR0FBR0QsMEJBQ2hCRSw0QkFBNEJELFdBQzVCcEMsNEJBQTRCUyxlQUFlLENBQUM0QiwwQkFBMEIsRUFDdEVwQyxtQkFBbUJWLFdBQVdXLGVBQWUsQ0FBQ0Y7WUFFcEQsSUFBSUMscUJBQXFCLE1BQU07Z0JBQzdCcUMsUUFBUUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFSCxVQUFVLGtDQUFrQyxDQUFDO2dCQUVqRTtZQUNGO1lBRUEsTUFBTSxFQUFFSSxVQUFVLEVBQUUsR0FBR0wsMEJBQ2pCTSw2QkFBNkJELFlBQzdCWiw2QkFBNkJuQixlQUFlLENBQUNnQywyQkFBMkIsRUFDeEVDLG9CQUFvQm5ELFdBQVdXLGVBQWUsQ0FBQzBCO1lBRXJELElBQUljLHNCQUFzQixNQUFNO2dCQUM5QkosUUFBUUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFQyxXQUFXLG1DQUFtQyxDQUFDO2dCQUVuRTtZQUNGO1lBRUEsTUFBTVgsbUJBQW1CRCw0QkFDbkJFLG1CQUFtQjlCLDJCQUNuQjJDLHdDQUF3QzdFLDJCQUEyQjhFLGtEQUFrRCxDQUFDZixrQkFBa0JDLG1CQUN4SWUscUNBQXFDaEYsd0JBQXdCK0Usa0RBQWtELENBQUNmLGtCQUFrQkMsbUJBQ2xJZ0IsK0JBQStCSCx1Q0FDL0JJLDRCQUE0QkYsb0NBQW9DLEdBQUc7WUFFekUsSUFBSUUsMkJBQTJCO2dCQUM3QlQsUUFBUUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFQyxXQUFXLE1BQU0sRUFBRUosVUFBVSxnRUFBZ0UsQ0FBQztnQkFFbEg7WUFDRjtZQUVBLElBQUksQ0FBQ1UsOEJBQThCO2dCQUNqQ1IsUUFBUUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFQyxXQUFXLE1BQU0sRUFBRUosVUFBVSw4RUFBOEUsQ0FBQztnQkFFaEk7WUFDRjtZQUVBdkUsd0JBQXdCa0UsNENBQTRDLENBQUNGLGtCQUFrQkM7UUFDekY7UUFFQSxNQUFNa0IsZUFBZSxJQUFJcEYsYUFBYUMseUJBQXlCQztRQUUvRCxPQUFPa0Y7SUFDVDtBQUNGIn0=
|
package/lib/releaseMap.js
CHANGED
|
@@ -8,120 +8,77 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return ReleaseMap;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
function _class_call_check(instance, Constructor) {
|
|
14
|
-
if (!(instance instanceof Constructor)) {
|
|
15
|
-
throw new TypeError("Cannot call a class as a function");
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
function _defineProperties(target, props) {
|
|
19
|
-
for(var i = 0; i < props.length; i++){
|
|
20
|
-
var descriptor = props[i];
|
|
21
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
22
|
-
descriptor.configurable = true;
|
|
23
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
24
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
28
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
29
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
30
|
-
return Constructor;
|
|
31
|
-
}
|
|
11
|
+
const _necessary = require("necessary");
|
|
12
|
+
const _release = /*#__PURE__*/ _interop_require_default(require("./release"));
|
|
32
13
|
function _interop_require_default(obj) {
|
|
33
14
|
return obj && obj.__esModule ? obj : {
|
|
34
15
|
default: obj
|
|
35
16
|
};
|
|
36
17
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
_class_call_check(this, ReleaseMap);
|
|
18
|
+
const { prune } = _necessary.arrayUtilities;
|
|
19
|
+
class ReleaseMap {
|
|
20
|
+
constructor(map){
|
|
41
21
|
this.map = map;
|
|
42
22
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
var name = release.getName();
|
|
50
|
-
if (name !== null) {
|
|
51
|
-
names.push(name);
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
return names;
|
|
23
|
+
getNames() {
|
|
24
|
+
const names = [], releases = this.getReleases();
|
|
25
|
+
releases.forEach((release)=>{
|
|
26
|
+
const name = release.getName();
|
|
27
|
+
if (name !== null) {
|
|
28
|
+
names.push(name);
|
|
55
29
|
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
value: function getNameToSubDirectoryPathMap() {
|
|
74
|
-
var _this = this;
|
|
75
|
-
var nameToSubDirectoryPathMap = {}, subDirectoryPaths = this.getSubDirectoryPaths();
|
|
76
|
-
subDirectoryPaths.forEach(function(subDirectoryPath) {
|
|
77
|
-
var release = _this.retrieveRelease(subDirectoryPath), name = release.getName();
|
|
78
|
-
if (name !== null) {
|
|
79
|
-
nameToSubDirectoryPathMap[name] = subDirectoryPath;
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
return nameToSubDirectoryPathMap;
|
|
83
|
-
}
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
key: "retrieveRelease",
|
|
87
|
-
value: function retrieveRelease(subDirectoryPath) {
|
|
88
|
-
var release = this.map[subDirectoryPath] || null; ///
|
|
89
|
-
return release;
|
|
30
|
+
});
|
|
31
|
+
return names;
|
|
32
|
+
}
|
|
33
|
+
getReleases() {
|
|
34
|
+
const releases = Object.values(this.map);
|
|
35
|
+
return releases;
|
|
36
|
+
}
|
|
37
|
+
getSubDirectoryPaths() {
|
|
38
|
+
const subDirectoryPaths = Object.keys(this.map);
|
|
39
|
+
return subDirectoryPaths;
|
|
40
|
+
}
|
|
41
|
+
getNameToSubDirectoryPathMap() {
|
|
42
|
+
const nameToSubDirectoryPathMap = {}, subDirectoryPaths = this.getSubDirectoryPaths();
|
|
43
|
+
subDirectoryPaths.forEach((subDirectoryPath)=>{
|
|
44
|
+
const release = this.retrieveRelease(subDirectoryPath), name = release.getName();
|
|
45
|
+
if (name !== null) {
|
|
46
|
+
nameToSubDirectoryPathMap[name] = subDirectoryPath;
|
|
90
47
|
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
return releaseMap;
|
|
48
|
+
});
|
|
49
|
+
return nameToSubDirectoryPathMap;
|
|
50
|
+
}
|
|
51
|
+
retrieveRelease(subDirectoryPath) {
|
|
52
|
+
const release = this.map[subDirectoryPath] || null; ///
|
|
53
|
+
return release;
|
|
54
|
+
}
|
|
55
|
+
static fromSubDirectoryMapSubDirectoryNameAndIgnoredDependencies(subDirectoryMap, subDirectoryName, ignoredDependencies) {
|
|
56
|
+
const map = {}, subDirectoryPaths = subDirectoryPathsFromSubDirectoryMapSubDirectoryNameAndIgnoredDependencies(subDirectoryMap, subDirectoryName, ignoredDependencies);
|
|
57
|
+
subDirectoryPaths.forEach((subDirectoryPath)=>{
|
|
58
|
+
const release = _release.default.fromSubDirectoryPath(subDirectoryPath);
|
|
59
|
+
if (release !== null) {
|
|
60
|
+
map[subDirectoryPath] = release;
|
|
105
61
|
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
62
|
+
});
|
|
63
|
+
const releaseMap = new ReleaseMap(map);
|
|
64
|
+
return releaseMap;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
110
67
|
function subDirectoryPathsFromSubDirectoryMapSubDirectoryNameAndIgnoredDependencies(subDirectoryMap, subDirectoryName, ignoredDependencies) {
|
|
111
|
-
|
|
112
|
-
prune(ignoredDependencySubDirectoryNames,
|
|
68
|
+
const subDirectoryPaths = [], subDirectoryNames = Object.keys(subDirectoryMap), ignoredDependencySubDirectoryNames = ignoredDependencies; ///
|
|
69
|
+
prune(ignoredDependencySubDirectoryNames, (ignoredDependencySubDirectoryName)=>{
|
|
113
70
|
if (ignoredDependencySubDirectoryName !== subDirectoryName) {
|
|
114
71
|
return true;
|
|
115
72
|
}
|
|
116
73
|
});
|
|
117
|
-
subDirectoryNames.forEach(
|
|
118
|
-
|
|
74
|
+
subDirectoryNames.forEach((subDirectoryName)=>{
|
|
75
|
+
const ignoredDependencySubDirectoryNamesIncludesSubDirectoryName = ignoredDependencySubDirectoryNames.includes(subDirectoryName);
|
|
119
76
|
if (!ignoredDependencySubDirectoryNamesIncludesSubDirectoryName) {
|
|
120
|
-
|
|
77
|
+
const subDirectoryPath = subDirectoryMap[subDirectoryName]; ///
|
|
121
78
|
subDirectoryPaths.push(subDirectoryPath);
|
|
122
79
|
}
|
|
123
80
|
});
|
|
124
81
|
return subDirectoryPaths;
|
|
125
82
|
}
|
|
126
83
|
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlTWFwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IFJlbGVhc2UgZnJvbSBcIi4vcmVsZWFzZVwiO1xuXG5jb25zdCB7IHBydW5lIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVsZWFzZU1hcCB7XG4gIGNvbnN0cnVjdG9yKG1hcCkge1xuICAgIHRoaXMubWFwID0gbWFwO1xuICB9XG5cbiAgZ2V0TmFtZXMoKSB7XG4gICAgY29uc3QgbmFtZXMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlcyA9IHRoaXMuZ2V0UmVsZWFzZXMoKTtcblxuICAgIHJlbGVhc2VzLmZvckVhY2goKHJlbGVhc2UpID0+IHtcbiAgICAgIGNvbnN0IG5hbWUgPSByZWxlYXNlLmdldE5hbWUoKTtcblxuICAgICAgaWYgKG5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgbmFtZXMucHVzaChuYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBuYW1lcztcbiAgfVxuXG4gIGdldFJlbGVhc2VzKCkge1xuICAgIGNvbnN0IHJlbGVhc2VzID0gT2JqZWN0LnZhbHVlcyh0aGlzLm1hcCk7XG5cbiAgICByZXR1cm4gcmVsZWFzZXM7XG4gIH1cblxuICBnZXRTdWJEaXJlY3RvcnlQYXRocygpIHtcbiAgICBjb25zdCBzdWJEaXJlY3RvcnlQYXRocyA9IE9iamVjdC5rZXlzKHRoaXMubWFwKTtcblxuICAgIHJldHVybiBzdWJEaXJlY3RvcnlQYXRocztcbiAgfVxuXG4gIGdldE5hbWVUb1N1YkRpcmVjdG9yeVBhdGhNYXAoKSB7XG4gICAgY29uc3QgbmFtZVRvU3ViRGlyZWN0b3J5UGF0aE1hcCA9IHt9LFxuICAgICAgICAgIHN1YkRpcmVjdG9yeVBhdGhzID0gdGhpcy5nZXRTdWJEaXJlY3RvcnlQYXRocygpO1xuXG4gICAgc3ViRGlyZWN0b3J5UGF0aHMuZm9yRWFjaCgoc3ViRGlyZWN0b3J5UGF0aCkgPT4ge1xuICAgICAgY29uc3QgcmVsZWFzZSA9IHRoaXMucmV0cmlldmVSZWxlYXNlKHN1YkRpcmVjdG9yeVBhdGgpLFxuICAgICAgICAgICAgbmFtZSA9IHJlbGVhc2UuZ2V0TmFtZSgpO1xuXG4gICAgICBpZiAobmFtZSAhPT0gbnVsbCkge1xuICAgICAgICBuYW1lVG9TdWJEaXJlY3RvcnlQYXRoTWFwW25hbWVdID0gc3ViRGlyZWN0b3J5UGF0aDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBuYW1lVG9TdWJEaXJlY3RvcnlQYXRoTWFwO1xuICB9XG5cbiAgcmV0cmlldmVSZWxlYXNlKHN1YkRpcmVjdG9yeVBhdGgpIHtcbiAgICBjb25zdCByZWxlYXNlID0gdGhpcy5tYXBbc3ViRGlyZWN0b3J5UGF0aF0gfHwgbnVsbDsgIC8vL1xuXG4gICAgcmV0dXJuIHJlbGVhc2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbVN1YkRpcmVjdG9yeU1hcFN1YkRpcmVjdG9yeU5hbWVBbmRJZ25vcmVkRGVwZW5kZW5jaWVzKHN1YkRpcmVjdG9yeU1hcCwgc3ViRGlyZWN0b3J5TmFtZSwgaWdub3JlZERlcGVuZGVuY2llcykge1xuICAgIGNvbnN0IG1hcCA9IHt9LFxuICAgICAgICAgIHN1YkRpcmVjdG9yeVBhdGhzID0gc3ViRGlyZWN0b3J5UGF0aHNGcm9tU3ViRGlyZWN0b3J5TWFwU3ViRGlyZWN0b3J5TmFtZUFuZElnbm9yZWREZXBlbmRlbmNpZXMoc3ViRGlyZWN0b3J5TWFwLCBzdWJEaXJlY3RvcnlOYW1lLCBpZ25vcmVkRGVwZW5kZW5jaWVzKTtcblxuICAgIHN1YkRpcmVjdG9yeVBhdGhzLmZvckVhY2goKHN1YkRpcmVjdG9yeVBhdGgpID0+IHtcbiAgICAgIGNvbnN0IHJlbGVhc2UgPSBSZWxlYXNlLmZyb21TdWJEaXJlY3RvcnlQYXRoKHN1YkRpcmVjdG9yeVBhdGgpO1xuXG4gICAgICBpZiAocmVsZWFzZSAhPT0gbnVsbCkge1xuICAgICAgICBtYXBbc3ViRGlyZWN0b3J5UGF0aF0gPSByZWxlYXNlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVsZWFzZU1hcCA9IG5ldyBSZWxlYXNlTWFwKG1hcCk7XG5cbiAgICByZXR1cm4gcmVsZWFzZU1hcDtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdWJEaXJlY3RvcnlQYXRoc0Zyb21TdWJEaXJlY3RvcnlNYXBTdWJEaXJlY3RvcnlOYW1lQW5kSWdub3JlZERlcGVuZGVuY2llcyhzdWJEaXJlY3RvcnlNYXAsIHN1YkRpcmVjdG9yeU5hbWUsIGlnbm9yZWREZXBlbmRlbmNpZXMpIHtcbiAgY29uc3Qgc3ViRGlyZWN0b3J5UGF0aHMgPSBbXSxcbiAgICAgICAgc3ViRGlyZWN0b3J5TmFtZXMgPSBPYmplY3Qua2V5cyhzdWJEaXJlY3RvcnlNYXApLCAvLy9cbiAgICAgICAgaWdub3JlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlOYW1lcyA9IGlnbm9yZWREZXBlbmRlbmNpZXM7IC8vL1xuXG4gIHBydW5lKGlnbm9yZWREZXBlbmRlbmN5U3ViRGlyZWN0b3J5TmFtZXMsIChpZ25vcmVkRGVwZW5kZW5jeVN1YkRpcmVjdG9yeU5hbWUpID0+IHtcbiAgICBpZiAoaWdub3JlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlOYW1lICE9PSBzdWJEaXJlY3RvcnlOYW1lKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHN1YkRpcmVjdG9yeU5hbWVzLmZvckVhY2goKHN1YkRpcmVjdG9yeU5hbWUpID0+
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlTWFwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IFJlbGVhc2UgZnJvbSBcIi4vcmVsZWFzZVwiO1xuXG5jb25zdCB7IHBydW5lIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVsZWFzZU1hcCB7XG4gIGNvbnN0cnVjdG9yKG1hcCkge1xuICAgIHRoaXMubWFwID0gbWFwO1xuICB9XG5cbiAgZ2V0TmFtZXMoKSB7XG4gICAgY29uc3QgbmFtZXMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlcyA9IHRoaXMuZ2V0UmVsZWFzZXMoKTtcblxuICAgIHJlbGVhc2VzLmZvckVhY2goKHJlbGVhc2UpID0+IHtcbiAgICAgIGNvbnN0IG5hbWUgPSByZWxlYXNlLmdldE5hbWUoKTtcblxuICAgICAgaWYgKG5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgbmFtZXMucHVzaChuYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBuYW1lcztcbiAgfVxuXG4gIGdldFJlbGVhc2VzKCkge1xuICAgIGNvbnN0IHJlbGVhc2VzID0gT2JqZWN0LnZhbHVlcyh0aGlzLm1hcCk7XG5cbiAgICByZXR1cm4gcmVsZWFzZXM7XG4gIH1cblxuICBnZXRTdWJEaXJlY3RvcnlQYXRocygpIHtcbiAgICBjb25zdCBzdWJEaXJlY3RvcnlQYXRocyA9IE9iamVjdC5rZXlzKHRoaXMubWFwKTtcblxuICAgIHJldHVybiBzdWJEaXJlY3RvcnlQYXRocztcbiAgfVxuXG4gIGdldE5hbWVUb1N1YkRpcmVjdG9yeVBhdGhNYXAoKSB7XG4gICAgY29uc3QgbmFtZVRvU3ViRGlyZWN0b3J5UGF0aE1hcCA9IHt9LFxuICAgICAgICAgIHN1YkRpcmVjdG9yeVBhdGhzID0gdGhpcy5nZXRTdWJEaXJlY3RvcnlQYXRocygpO1xuXG4gICAgc3ViRGlyZWN0b3J5UGF0aHMuZm9yRWFjaCgoc3ViRGlyZWN0b3J5UGF0aCkgPT4ge1xuICAgICAgY29uc3QgcmVsZWFzZSA9IHRoaXMucmV0cmlldmVSZWxlYXNlKHN1YkRpcmVjdG9yeVBhdGgpLFxuICAgICAgICAgICAgbmFtZSA9IHJlbGVhc2UuZ2V0TmFtZSgpO1xuXG4gICAgICBpZiAobmFtZSAhPT0gbnVsbCkge1xuICAgICAgICBuYW1lVG9TdWJEaXJlY3RvcnlQYXRoTWFwW25hbWVdID0gc3ViRGlyZWN0b3J5UGF0aDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBuYW1lVG9TdWJEaXJlY3RvcnlQYXRoTWFwO1xuICB9XG5cbiAgcmV0cmlldmVSZWxlYXNlKHN1YkRpcmVjdG9yeVBhdGgpIHtcbiAgICBjb25zdCByZWxlYXNlID0gdGhpcy5tYXBbc3ViRGlyZWN0b3J5UGF0aF0gfHwgbnVsbDsgIC8vL1xuXG4gICAgcmV0dXJuIHJlbGVhc2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbVN1YkRpcmVjdG9yeU1hcFN1YkRpcmVjdG9yeU5hbWVBbmRJZ25vcmVkRGVwZW5kZW5jaWVzKHN1YkRpcmVjdG9yeU1hcCwgc3ViRGlyZWN0b3J5TmFtZSwgaWdub3JlZERlcGVuZGVuY2llcykge1xuICAgIGNvbnN0IG1hcCA9IHt9LFxuICAgICAgICAgIHN1YkRpcmVjdG9yeVBhdGhzID0gc3ViRGlyZWN0b3J5UGF0aHNGcm9tU3ViRGlyZWN0b3J5TWFwU3ViRGlyZWN0b3J5TmFtZUFuZElnbm9yZWREZXBlbmRlbmNpZXMoc3ViRGlyZWN0b3J5TWFwLCBzdWJEaXJlY3RvcnlOYW1lLCBpZ25vcmVkRGVwZW5kZW5jaWVzKTtcblxuICAgIHN1YkRpcmVjdG9yeVBhdGhzLmZvckVhY2goKHN1YkRpcmVjdG9yeVBhdGgpID0+IHtcbiAgICAgIGNvbnN0IHJlbGVhc2UgPSBSZWxlYXNlLmZyb21TdWJEaXJlY3RvcnlQYXRoKHN1YkRpcmVjdG9yeVBhdGgpO1xuXG4gICAgICBpZiAocmVsZWFzZSAhPT0gbnVsbCkge1xuICAgICAgICBtYXBbc3ViRGlyZWN0b3J5UGF0aF0gPSByZWxlYXNlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVsZWFzZU1hcCA9IG5ldyBSZWxlYXNlTWFwKG1hcCk7XG5cbiAgICByZXR1cm4gcmVsZWFzZU1hcDtcbiAgfVxufVxuXG5mdW5jdGlvbiBzdWJEaXJlY3RvcnlQYXRoc0Zyb21TdWJEaXJlY3RvcnlNYXBTdWJEaXJlY3RvcnlOYW1lQW5kSWdub3JlZERlcGVuZGVuY2llcyhzdWJEaXJlY3RvcnlNYXAsIHN1YkRpcmVjdG9yeU5hbWUsIGlnbm9yZWREZXBlbmRlbmNpZXMpIHtcbiAgY29uc3Qgc3ViRGlyZWN0b3J5UGF0aHMgPSBbXSxcbiAgICAgICAgc3ViRGlyZWN0b3J5TmFtZXMgPSBPYmplY3Qua2V5cyhzdWJEaXJlY3RvcnlNYXApLCAvLy9cbiAgICAgICAgaWdub3JlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlOYW1lcyA9IGlnbm9yZWREZXBlbmRlbmNpZXM7IC8vL1xuXG4gIHBydW5lKGlnbm9yZWREZXBlbmRlbmN5U3ViRGlyZWN0b3J5TmFtZXMsIChpZ25vcmVkRGVwZW5kZW5jeVN1YkRpcmVjdG9yeU5hbWUpID0+IHtcbiAgICBpZiAoaWdub3JlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlOYW1lICE9PSBzdWJEaXJlY3RvcnlOYW1lKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHN1YkRpcmVjdG9yeU5hbWVzLmZvckVhY2goKHN1YkRpcmVjdG9yeU5hbWUpID0+IHtcbiAgICBjb25zdCBpZ25vcmVkRGVwZW5kZW5jeVN1YkRpcmVjdG9yeU5hbWVzSW5jbHVkZXNTdWJEaXJlY3RvcnlOYW1lID0gaWdub3JlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlOYW1lcy5pbmNsdWRlcyhzdWJEaXJlY3RvcnlOYW1lKTtcblxuICAgIGlmICghaWdub3JlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlOYW1lc0luY2x1ZGVzU3ViRGlyZWN0b3J5TmFtZSkge1xuICAgICAgY29uc3Qgc3ViRGlyZWN0b3J5UGF0aCA9IHN1YkRpcmVjdG9yeU1hcFtzdWJEaXJlY3RvcnlOYW1lXTsgLy8vXG5cbiAgICAgIHN1YkRpcmVjdG9yeVBhdGhzLnB1c2goc3ViRGlyZWN0b3J5UGF0aCk7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gc3ViRGlyZWN0b3J5UGF0aHM7XG59XG4iXSwibmFtZXMiOlsiUmVsZWFzZU1hcCIsInBydW5lIiwiYXJyYXlVdGlsaXRpZXMiLCJtYXAiLCJnZXROYW1lcyIsIm5hbWVzIiwicmVsZWFzZXMiLCJnZXRSZWxlYXNlcyIsImZvckVhY2giLCJyZWxlYXNlIiwibmFtZSIsImdldE5hbWUiLCJwdXNoIiwiT2JqZWN0IiwidmFsdWVzIiwiZ2V0U3ViRGlyZWN0b3J5UGF0aHMiLCJzdWJEaXJlY3RvcnlQYXRocyIsImtleXMiLCJnZXROYW1lVG9TdWJEaXJlY3RvcnlQYXRoTWFwIiwibmFtZVRvU3ViRGlyZWN0b3J5UGF0aE1hcCIsInN1YkRpcmVjdG9yeVBhdGgiLCJyZXRyaWV2ZVJlbGVhc2UiLCJmcm9tU3ViRGlyZWN0b3J5TWFwU3ViRGlyZWN0b3J5TmFtZUFuZElnbm9yZWREZXBlbmRlbmNpZXMiLCJzdWJEaXJlY3RvcnlNYXAiLCJzdWJEaXJlY3RvcnlOYW1lIiwiaWdub3JlZERlcGVuZGVuY2llcyIsInN1YkRpcmVjdG9yeVBhdGhzRnJvbVN1YkRpcmVjdG9yeU1hcFN1YkRpcmVjdG9yeU5hbWVBbmRJZ25vcmVkRGVwZW5kZW5jaWVzIiwiUmVsZWFzZSIsImZyb21TdWJEaXJlY3RvcnlQYXRoIiwicmVsZWFzZU1hcCIsInN1YkRpcmVjdG9yeU5hbWVzIiwiaWdub3JlZERlcGVuZGVuY3lTdWJEaXJlY3RvcnlOYW1lcyIsImlnbm9yZWREZXBlbmRlbmN5U3ViRGlyZWN0b3J5TmFtZSIsImlnbm9yZWREZXBlbmRlbmN5U3ViRGlyZWN0b3J5TmFtZXNJbmNsdWRlc1N1YkRp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
|