@kontur.candy/tools 2.118.0 → 2.124.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/CHANGELOG.md +18 -4
- package/distr/Common/Funcs.js +10 -1
- package/distr/Common/ModelPath/ModelPath.js +5 -1
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackDevServerWorker/WebpackDevServerWorker.js +33 -18
- package/distr/Tools/src/CLICommands/BuildServer/ResourcesControllers/DevServers/WebpackInMemoryUtils/WebpackHybridFileSystem.js +9 -6
- package/distr/Tools/src/CLICommands/FormsHelper/FormsHelperController.js +2 -2
- package/distr/Tools/src/CandyCLI.js +4 -2
- package/distr/Tools/src/LocalServerFrontEndDist/favicon-16x16.png +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon-32x32.png +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/favicon.ico +0 -0
- package/distr/Tools/src/LocalServerFrontEndDist/index.html +8 -9
- package/distr/Tools/src/LocalServerFrontEndDist/index.js +35304 -27966
- package/distr/Tools/src/LocalServerFrontEndDist/index.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
1
|
-
<a name="2.
|
|
2
|
-
# [2.
|
|
1
|
+
<a name="2.124.0"></a>
|
|
2
|
+
# [2.124.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.123.0...release/tools/v2.124.0) (2021-11-28)
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
* **Tools:** Обновление библиотек ([74245a6](https://git.skbkontur.ru/ke/candy-utils/commit/74245a6))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* Теперь обязательный элемент или нет решается по schema rng ([c59fbb7](https://git.skbkontur.ru/ke/candy-utils/commit/c59fbb7)), see [#6120](https://yt.skbkontur.ru/issue/FS-6120)
|
|
13
|
+
* **Tools:** Forms helper использует Lab Grotesque K ([c023afd](https://git.skbkontur.ru/ke/candy-utils/commit/c023afd))
|
|
14
|
+
|
|
15
|
+
<a name="2.123.0"></a>
|
|
16
|
+
# [2.123.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.116.0...release/tools/v2.123.0) (2021-11-22)
|
|
17
|
+
|
|
18
|
+
<a name="2.122.0"></a>
|
|
19
|
+
# [2.122.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.116.0...release/tools/v2.122.0) (2021-11-21)
|
|
6
20
|
|
|
7
21
|
<a name="2.116.0"></a>
|
|
8
22
|
# [2.116.0](https://git.skbkontur.ru/ke/candy-utils/compare/release/tools/v2.115.0...release/tools/v2.116.0) (2021-11-18)
|
package/distr/Common/Funcs.js
CHANGED
|
@@ -3,4 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
6
|
+
exports.truePredicate = exports.falsePredicate = void 0;
|
|
7
|
+
|
|
8
|
+
const truePredicate = () => true;
|
|
9
|
+
|
|
10
|
+
exports.truePredicate = truePredicate;
|
|
11
|
+
|
|
12
|
+
const falsePredicate = () => false;
|
|
13
|
+
|
|
14
|
+
exports.falsePredicate = falsePredicate;
|
|
15
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL0NvbW1vbi9GdW5jcy50cyJdLCJuYW1lcyI6WyJ0cnVlUHJlZGljYXRlIiwiZmFsc2VQcmVkaWNhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFTyxNQUFNQSxhQUFhLEdBQUcsTUFBTSxJQUE1Qjs7OztBQUNBLE1BQU1DLGNBQWMsR0FBRyxNQUFNLEtBQTdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUHJlZGljYXRlPFQ+ID0gKHZhbHVlOiBUKSA9PiBib29sZWFuO1xuXG5leHBvcnQgY29uc3QgdHJ1ZVByZWRpY2F0ZSA9ICgpID0+IHRydWU7XG5leHBvcnQgY29uc3QgZmFsc2VQcmVkaWNhdGUgPSAoKSA9PiBmYWxzZTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uPFQ+ID0gKHZhbHVlOiBUKSA9PiB2b2lkO1xuIl19
|
|
@@ -412,6 +412,10 @@ class ModelPath {
|
|
|
412
412
|
return new ModelPath(this.tokens.map(x => x === PathTokens.each ? PathTokens.current : x), this.isAbsolute());
|
|
413
413
|
}
|
|
414
414
|
|
|
415
|
+
toEachIteration() {
|
|
416
|
+
return new ModelPath(this.tokens.map(x => x === PathTokens.current ? PathTokens.each : x), this.isAbsolute());
|
|
417
|
+
}
|
|
418
|
+
|
|
415
419
|
toAbsolute() {
|
|
416
420
|
if (!this.absolute) {
|
|
417
421
|
throw new Error(`Path '${this.toLegacyPath()} is not absolute'`);
|
|
@@ -538,4 +542,4 @@ class AbsoluteModelPath extends ModelPath {
|
|
|
538
542
|
}
|
|
539
543
|
|
|
540
544
|
exports.AbsoluteModelPath = AbsoluteModelPath;
|
|
541
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9Nb2RlbFBhdGgvTW9kZWxQYXRoLnRzIl0sIm5hbWVzIjpbIkVhY2hTeW1ib2wiLCJTeW1ib2wiLCJmb3IiLCJDdXJyZW50U3ltYm9sIiwiUGF0aFRva2VucyIsImlzTXVsdGlUb2tlbiIsInBhcnQiLCJlYWNoIiwiY3VycmVudCIsImlzU2ltcGxlVG9rZW4iLCJpc0luc3RhbmNlVG9rZW4iLCJ0ZXN0IiwiaXNNb2RlbFBhdGgiLCJwYXRoIiwiY29udmVydFRvTGVnYWN5UGF0aCIsInRvTGVnYWN5UGF0aCIsImNvbnZlcnRUb0Fic29sdXRNb2RlbFBhdGgiLCJBYnNvbHV0ZU1vZGVsUGF0aCIsImNyZWF0ZUFic29sdXRlRnJvbU1hc2siLCJBYnNvbHV0ZU1vZGVsRmllbGRQYXRoIiwiY29uc3RydWN0b3IiLCJmaWVsZE5hbWUiLCJmaWVsZCIsImlzRXF1YWxzIiwibW9kZWxQYXRoIiwiZWFjaEN1cnJlbnRDb2xsaXNpb24iLCJFYWNoQ3VycmVudENvbGxpc2lvbiIsIkFyZVNhbWUiLCJjcmVhdGVGcm9tU3RyaW5nIiwicGF0aFdpdGhGaWVsZE5hbWUiLCJlbmRzV2l0aCIsImNyZWF0ZUFic29sdXRlIiwicmVwbGFjZSIsImNyZWF0ZUZyb21NYXNrIiwibXVsdGlwbGljaXR5U3ltYm9sIiwiTW9kZWxQYXRoIiwicGF0aFBhcnRzIiwiYWJzb2x1dGUiLCJ0b2tlbnMiLCJsZWdhY3lQYXRoIiwiZmlsdGVyIiwieCIsImVtcHR5IiwiYnVpbGRlciIsImZvcmNlQWJzb2x1dGUiLCJNb2RlbFBhdGhCdWlsZGVyIiwicGFydFBhcnRTdHJpbmdzIiwic3BsaXQiLCJlbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5Iiwic3RhcnRzV2l0aCIsInNsaWNlIiwibWFwIiwiam9pbiIsInBhcnRzIiwicmVzdWx0UGFydHMiLCJqb2luSXRlbSIsInB1c2giLCJpc0Fic29sdXRlIiwiQXJyYXkiLCJpc0FycmF5Iiwic29tZSIsIkVycm9yIiwiZ2V0UGF0aFBhcnRzIiwiZ2V0UGF0aFBhcnRzQXNBcnJheSIsImdldFNpbXBsZVRva2Vuc1N0cmljdCIsInRva2VuIiwiZ2V0U2ltcGxlVG9rZW5zQXNBcnJheVN0cmljdCIsImpvaW5XaXRoIiwiaXNSZXNvbHZlZCIsImV2ZXJ5IiwicmVzb2x2ZUFsbCIsImluc3RhbmNlIiwiaXNDb250YWluSXRlcmF0aW9uIiwiaXNDb250YWluQ3VycmVudEl0ZXJhdGlvbiIsInRvU3RyaW5nIiwibGVuZ3RoIiwicGF0aFBhcnRUb1N0cmluZyIsIkl0ZXJhdG9yIiwiZnJvbSIsIkl0ZXJVdGlscyIsInppcCIsInQxIiwidDIiLCJnZXRIYXNoIiwiaGFzaCIsImN1cnJlbnRTdHIiLCJBcmVEaWZmZXJlbnQiLCJzdHJpbmdJbmRleCIsImNoYXJDb2RlQXQiLCJpc0luY2x1ZGVzIiwiaSIsImxlZnRQYXJ0IiwicmlnaHRQYXJ0IiwiaXNGaW5pdGUiLCJOdW1iZXIiLCJnZXRJdGVyYXRpb25SYW5rIiwiaXNFbXB0eSIsIm1hdGNoRm9yIiwiUGF0aE1hdGNoZXIiLCJtYXRjaCIsInNwbGl0QnlNdWx0aXBsaWNpdHkiLCJsYXN0U2ltcGxlUGFydHMiLCJhcHBlbmQiLCJ0b1BhdGgiLCJub3JtYWxpemUiLCJyZXN1bHRUb2tlbnMiLCJwYXRoUGFydCIsInBvcCIsInRvQ3VycmVudEl0ZXJhdGlvbiIsInRvQWJzb2x1dGUiLCJnZXRBbGxQYXJlbnRQYXRocyIsInJlc3VsdCIsInNraXBMYXN0IiwidHJpbUxhc3RTdGFySWZMYXN0VG9rZW4iLCJsYXN0SXRlbSIsImxhc3QiLCJ1bmRlZmluZWQiLCJnZXRQYXJlbnRQYXRoIiwidG9BYnNvbHV0ZVBhdGgiLCJhcHBseUluc3RhbmNlc0RpcnR5IiwiaW5zdGFuY2VzIiwiaW5zdGFuY2VDb3VudGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsVUFBVSxHQUFHQyxNQUFNLENB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Q0FBdEIsQ0FBdEIsQ0FBUDtBQUNIOztBQUNELFdBQU8sSUFBSWpDLGlCQUFKLENBQXNCNkIsZUFBdEIsQ0FBUDtBQUNIOztBQUUyQixTQUFkZixjQUFjLENBQUNsQixJQUFELEVBQWtDO0FBQzFELFVBQU1pQyxlQUFlLEdBQUdqQyxJQUFJLENBQUNrQyxLQUFMLENBQVcsR0FBWCxDQUF4QjtBQUNBLFNBQUtDLDhDQUFMLENBQW9ERixlQUFwRDs7QUFDQSxRQUFJakMsSUFBSSxDQUFDb0MsVUFBTCxDQUFnQixHQUFoQixDQUFKLEVBQTBCO0FBQ3RCLGFBQU8sSUFBSWhDLGlCQUFKLENBQXNCNkIsZUFBZSxDQUFDSSxLQUFoQixDQUFzQixDQUF0QixDQUF0QixDQUFQO0FBQ0g7O0FBQ0QsV0FBTyxJQUFJakMsaUJBQUosQ0FBc0I2QixlQUF0QixDQUFQO0FBQ0g7O0FBRU1xQixFQUFBQSxRQUFRLENBQUN0RCxJQUFELEVBQWlEO0FBQzVELFdBQU8sTUFBTXNELFFBQU4sQ0FBZXRELElBQWYsRUFBcUJnRyxVQUFyQixFQUFQO0FBQ0g7O0FBRU1RLEVBQUFBLGFBQWEsR0FBc0I7QUFDdEMsVUFBTU4sTUFBTSxHQUFHNUUsU0FBUyxDQUFDUSxPQUFWLENBQWtCLElBQWxCLENBQWY7O0FBQ0EsU0FBSyxNQUFNc0IsS0FBWCxJQUFvQmMseUJBQVVpQyxRQUFWLENBQW1CLEtBQUtsRCxZQUFMLEVBQW5CLEVBQXdDLENBQXhDLENBQXBCLEVBQWdFO0FBQzVEaUQsTUFBQUEsTUFBTSxDQUFDVCxNQUFQLENBQWNyQyxLQUFkO0FBQ0g7O0FBQ0QsV0FBTzhDLE1BQU0sQ0FBQ08sY0FBUCxFQUFQO0FBQ0g7O0FBRU1DLEVBQUFBLG1CQUFtQixDQUFDQyxTQUFELEVBQWtEO0FBQ3hFLFdBQU8sTUFBTUQsbUJBQU4sQ0FBMEJDLFNBQTFCLEVBQXFDWCxVQUFyQyxFQUFQO0FBQ0g7O0FBcEM0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpbmRpbmdQYXRoLCBWaWV3TW9kZWxGaWVsZE5hbWUgfSBmcm9tIFwiLi4vLi4vRW5naW5lL3NyYy9FbmdpbmUvQ29yZS9Db3JlVHlwZXNcIjtcbmltcG9ydCB7IGNvdW50LCBJdGVyVXRpbHMsIHJldmVyc2VBcnJheSB9IGZyb20gXCIuLi9JdGVyYWJsZVV0aWxzXCI7XG5pbXBvcnQgeyBlbnN1cmVBbmRHZXRTdHJpbmcsIHJlamVjdCB9IGZyb20gXCIuLi9UeXBpbmdVdGlsc1wiO1xuXG5pbXBvcnQgeyBFYWNoQ3VycmVudENvbGxpc2lvbiB9IGZyb20gXCIuL0VhY2hDdXJyZW50Q29sbGlzaW9uXCI7XG5pbXBvcnQgeyBNb2RlbFBhdGhCdWlsZGVyIH0gZnJvbSBcIi4vTW9kZWxQYXRoQnVpbGRlclwiO1xuaW1wb3J0IHsgUGF0aE1hdGNoZXIsIFBhdGhNYXRjaGluZyB9IGZyb20gXCIuL1BhdGhNYXRjaGVyXCI7XG5pbXBvcnQgeyBJRXF1YXRhYmxlIH0gZnJvbSBcIi4vSUVxdWF0YWJsZVwiO1xuXG5jb25zdCBFYWNoU3ltYm9sID0gU3ltYm9sLmZvcihcIl9fRUFDSF9fXCIpO1xuY29uc3QgQ3VycmVudFN5bWJvbCA9IFN5bWJvbC5mb3IoXCJfX0NVUlJFTlRfX1wiKTtcblxuZXhwb3J0IGNsYXNzIFBhdGhUb2tlbnMge1xuICAgIHB1YmxpYyBzdGF0aWMgZWFjaDogdHlwZW9mIEVhY2hTeW1ib2wgPSBFYWNoU3ltYm9sO1xuICAgIHB1YmxpYyBzdGF0aWMgY3VycmVudDogdHlwZW9mIEN1cnJlbnRTeW1ib2wgPSBDdXJyZW50U3ltYm9sO1xuXG4gICAgcHVibGljIHN0YXRpYyBpc011bHRpVG9rZW4ocGFydDogdW5kZWZpbmVkIHwgUGF0aFRva2VuKTogcGFydCBpcyB0eXBlb2YgRWFjaFN5bWJvbCB8IHR5cGVvZiBDdXJyZW50U3ltYm9sIHtcbiAgICAgICAgcmV0dXJuIHBhcnQgPT09IFBhdGhUb2tlbnMuZWFjaCB8fCBwYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpc1NpbXBsZVRva2VuKHBhcnQ6IHVuZGVmaW5lZCB8IFBhdGhUb2tlbik6IHBhcnQgaXMgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBwYXJ0ID09PSBcInN0cmluZ1wiO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNJbnN0YW5jZVRva2VuKHBhcnQ6IHVuZGVmaW5lZCB8IFBhdGhUb2tlbik6IHBhcnQgaXMgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBwYXJ0ID09PSBcInN0cmluZ1wiICYmIC9eXFxkKyQvaS50ZXN0KHBhcnQpO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgU2ltcGxlUGF0aFRva2VuID0gc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBQYXRoVG9rZW4gPSBTaW1wbGVQYXRoVG9rZW4gfCB0eXBlb2YgRWFjaFN5bWJvbCB8IHR5cGVvZiBDdXJyZW50U3ltYm9sO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNNb2RlbFBhdGgocGF0aDogQmluZGluZ1BhdGggfCBNb2RlbFBhdGgpOiBwYXRoIGlzIE1vZGVsUGF0aCB7XG4gICAgcmV0dXJuIHR5cGVvZiBwYXRoICE9PSBcInN0cmluZ1wiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFRvTGVnYWN5UGF0aChwYXRoOiBCaW5kaW5nUGF0aCB8IE1vZGVsUGF0aCk6IEJpbmRpbmdQYXRoIHtcbiAgICByZXR1cm4gaXNNb2RlbFBhdGgocGF0aCkgPyBwYXRoLnRvTGVnYWN5UGF0aCgpIDogcGF0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0Fic29sdXRNb2RlbFBhdGgocGF0aDogQmluZGluZ1BhdGggfCBBYnNvbHV0ZU1vZGVsUGF0aCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICByZXR1cm4gaXNNb2RlbFBhdGgocGF0aCkgPyBwYXRoIDogQWJzb2x1dGVNb2RlbFBhdGguY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhwYXRoLCBQYXRoVG9rZW5zLmVhY2gpO1xufVxuXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgcHVibGljIHJlYWRvbmx5IHBhdGg6IEFic29sdXRlTW9kZWxQYXRoO1xuICAgIHB1YmxpYyByZWFkb25seSBmaWVsZDogVmlld01vZGVsRmllbGROYW1lIHwgXCIkZXJyb3JDb3VudFwiIHwgXCIkd2FybmluZ0NvdW50XCI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aDogQWJzb2x1dGVNb2RlbFBhdGgsIGZpZWxkTmFtZTogVmlld01vZGVsRmllbGROYW1lIHwgXCIkZXJyb3JDb3VudFwiIHwgXCIkd2FybmluZ0NvdW50XCIpIHtcbiAgICAgICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICAgICAgdGhpcy5maWVsZCA9IGZpZWxkTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFcXVhbHMoXG4gICAgICAgIG1vZGVsUGF0aDogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCxcbiAgICAgICAgZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZVxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXRoLmlzRXF1YWxzKG1vZGVsUGF0aC5wYXRoLCBlYWNoQ3VycmVudENvbGxpc2lvbikgJiYgdGhpcy5maWVsZCA9PT0gbW9kZWxQYXRoLmZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbVN0cmluZyhwYXRoV2l0aEZpZWxkTmFtZTogc3RyaW5nKTogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kZXJyb3JDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJGVycm9yQ291bnRcIiwgXCJcIikpLFxuICAgICAgICAgICAgICAgIFwiJGVycm9yQ291bnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aFdpdGhGaWVsZE5hbWUuZW5kc1dpdGgoXCIuJHdhcm5pbmdDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJHdhcm5pbmdDb3VudFwiLCBcIlwiKSksXG4gICAgICAgICAgICAgICAgXCIkd2FybmluZ0NvdW50XCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlKHBhdGhXaXRoRmllbGROYW1lKSwgXCJ2YWx1ZVwiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZyb21NYXNrKHBhdGhXaXRoRmllbGROYW1lOiBzdHJpbmcsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogQWJzb2x1dGVNb2RlbEZpZWxkUGF0aCB7XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kZXJyb3JDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2soXG4gICAgICAgICAgICAgICAgICAgIHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJGVycm9yQ291bnRcIiwgXCJcIiksXG4gICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2l0eVN5bWJvbFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgXCIkZXJyb3JDb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoV2l0aEZpZWxkTmFtZS5lbmRzV2l0aChcIi4kd2FybmluZ0NvdW50XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxGaWVsZFBhdGgoXG4gICAgICAgICAgICAgICAgQWJzb2x1dGVNb2RlbFBhdGguY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhcbiAgICAgICAgICAgICAgICAgICAgcGF0aFdpdGhGaWVsZE5hbWUucmVwbGFjZShcIi4kd2FybmluZ0NvdW50XCIsIFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNpdHlTeW1ib2xcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIFwiJHdhcm5pbmdDb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChcbiAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2socGF0aFdpdGhGaWVsZE5hbWUsIG11bHRpcGxpY2l0eVN5bWJvbCksXG4gICAgICAgICAgICBcInZhbHVlXCJcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb2RlbFBhdGggaW1wbGVtZW50cyBJRXF1YXRhYmxlPE1vZGVsUGF0aD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9rZW5zOiByZWFkb25seSBQYXRoVG9rZW5bXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFic29sdXRlOiBib29sZWFuO1xuICAgIHByaXZhdGUgbGVnYWN5UGF0aDogdW5kZWZpbmVkIHwgc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhQYXJ0czogcmVhZG9ubHkgUGF0aFRva2VuW10sIGFic29sdXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudG9rZW5zID0gcGF0aFBhcnRzLmZpbHRlcih4ID0+IHggIT09IFwiXCIpO1xuICAgICAgICB0aGlzLmFic29sdXRlID0gYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChbXSwgZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYnVpbGRlcihmb3JjZUFic29sdXRlOiBib29sZWFuID0gZmFsc2UpOiBNb2RlbFBhdGhCdWlsZGVyIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGhCdWlsZGVyKGZvcmNlQWJzb2x1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbVN0cmluZyhwYXRoOiBzdHJpbmcsIGFic29sdXRlOiBib29sZWFuIHwgXCJhdXRvXCIpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCBwYXJ0UGFydFN0cmluZ3MgPSBwYXRoLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgdGhpcy5lbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5KHBhcnRQYXJ0U3RyaW5ncyk7XG4gICAgICAgIGlmIChhYnNvbHV0ZSA9PT0gXCJhdXRvXCIpIHtcbiAgICAgICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLnNsaWNlKDEpLCB0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFic29sdXRlICYmIHBhdGguc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLCBhYnNvbHV0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGcm9tTWFzayhwYXRoOiBzdHJpbmcsIGFic29sdXRlOiBib29sZWFuIHwgXCJhdXRvXCIsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIikubWFwKHggPT4gKHggPT09IFwiKlwiID8gbXVsdGlwbGljaXR5U3ltYm9sIDogeCkpO1xuICAgICAgICBpZiAoYWJzb2x1dGUgPT09IFwiYXV0b1wiKSB7XG4gICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhYnNvbHV0ZSAmJiBwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSksIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgYWJzb2x1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgam9pbiguLi5wYXJ0czogQXJyYXk8TW9kZWxQYXRoIHwgUGF0aFRva2VuIHwgUGF0aFRva2VuW10+KTogTW9kZWxQYXRoIHtcbiAgICAgICAgbGV0IGFic29sdXRlID0gZmFsc2U7XG4gICAgICAgIGxldCByZXN1bHRQYXJ0czogUGF0aFRva2VuW10gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBqb2luSXRlbSBvZiBwYXJ0cykge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBqb2luSXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goam9pbkl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChqb2luSXRlbSBpbnN0YW5jZW9mIE1vZGVsUGF0aCkge1xuICAgICAgICAgICAgICAgIGlmIChqb2luSXRlbS5pc0Fic29sdXRlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYWJzb2x1dGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRQYXJ0cyA9IFsuLi5qb2luSXRlbS50b2tlbnNdO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goLi4uam9pbkl0ZW0udG9rZW5zKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoam9pbkl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0UGFydHMucHVzaCguLi5qb2luSXRlbSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFBhdGhUb2tlbnMuaXNNdWx0aVRva2VuKGpvaW5JdGVtKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goam9pbkl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocmVzdWx0UGFydHMsIGFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhdGljIGVuc3VyZVBsYWluUGF0aFBhcnRzRG9lc05vdENvbnRhaW5NdWx0aXBsaWNpdHkocGFydHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIGlmIChwYXJ0cy5zb21lKHggPT4geCA9PT0gXCIqXCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3Qgbm90IGNvbnRhaW4gKiBzeW1ib2xcIik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGF0aFBhcnRzKCk6IEl0ZXJhYmxlPFBhdGhUb2tlbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhdGhQYXJ0c0FzQXJyYXkoKTogcmVhZG9ubHkgUGF0aFRva2VuW10ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljICpnZXRTaW1wbGVUb2tlbnNTdHJpY3QoKTogSXRlcmFibGU8U2ltcGxlUGF0aFRva2VuPiB7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdGhpcy50b2tlbnMpIHtcbiAgICAgICAgICAgIGlmICghUGF0aFRva2Vucy5pc1NpbXBsZVRva2VuKHRva2VuKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlBhdGggbXVzdCBub3QgY29udGFpbiBzcGVjIHRva2Vuc1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHlpZWxkIHRva2VuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNpbXBsZVRva2Vuc0FzQXJyYXlTdHJpY3QoKTogcmVhZG9ubHkgU2ltcGxlUGF0aFRva2VuW10ge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRoaXMudG9rZW5zKSB7XG4gICAgICAgICAgICBpZiAoIVBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3Qgbm90IGNvbnRhaW4gc3BlYyB0b2tlbnNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8g0J/RgNC+0LLQtdGA0LrQsCDQstGL0YjQtSDQs9Cw0YDQsNC10L3RgtC40YDRg9C10YIg0YfRgtC+INCx0YPQtNGD0YIg0YLQvtC70YzQutC+IFNpbXBsZVBhdGhUb2tlbi5cbiAgICAgICAgLy8g0JLRgdC1IG1hcCDQuCBmaWx0ZXIg0YPQsdGA0LDQvdGLINC00LvRjyDQv9GA0L7QuNC30LLQvtC00LjRgtC10LvRjNC90L7RgdGC0LhcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGpvaW5XaXRoKC4uLnBhdGg6IEFycmF5PE1vZGVsUGF0aCB8IFBhdGhUb2tlbj4pOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gTW9kZWxQYXRoLmpvaW4odGhpcywgLi4ucGF0aCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzUmVzb2x2ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2Vucy5ldmVyeShQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNvbHZlQWxsKGluc3RhbmNlOiBzdHJpbmcpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCB0b2tlbnMgPSB0aGlzLnRva2Vucy5tYXAodG9rZW4gPT4ge1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgodG9rZW5zLCB0aGlzLmFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDb250YWluSXRlcmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnMuc29tZSh4ID0+IHggPT09IFBhdGhUb2tlbnMuZWFjaCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQ29udGFpbkN1cnJlbnRJdGVyYXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2Vucy5zb21lKHggPT4geCA9PT0gUGF0aFRva2Vucy5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBYnNvbHV0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWJzb2x1dGU7XG4gICAgfVxuXG4gICAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodGhpcy5hYnNvbHV0ZSA/IFwiL1wiIDogXCJcIikgKyB0aGlzLnRva2Vucy5tYXAoeCA9PiB0aGlzLnBhdGhQYXJ0VG9TdHJpbmcoeCkpLmpvaW4oXCIvXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0xlZ2FjeVBhdGgoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGVnYWN5UGF0aCA/PyAodGhpcy5sZWdhY3lQYXRoID0gdGhpcy50b2tlbnMubWFwKHggPT4gdGhpcy5wYXRoUGFydFRvU3RyaW5nKHgpKS5qb2luKFwiL1wiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXF1YWxzKFxuICAgICAgICBtb2RlbFBhdGg6IE1vZGVsUGF0aCxcbiAgICAgICAgZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZVxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoZWFjaEN1cnJlbnRDb2xsaXNpb24gPT09IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZVNhbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRvTGVnYWN5UGF0aCgpID09PSBtb2RlbFBhdGgudG9MZWdhY3lQYXRoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHRoaXMuaXNBYnNvbHV0ZSgpID09PSBtb2RlbFBhdGguaXNBYnNvbHV0ZSgpICYmXG4gICAgICAgICAgICAgICAgSXRlcmF0b3IuZnJvbShJdGVyVXRpbHMuemlwKHRoaXMuZ2V0UGF0aFBhcnRzKCksIG1vZGVsUGF0aC5nZXRQYXRoUGFydHMoKSkpLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgICAoW3QxLCB0Ml0pID0+IHQxID09PSB0MlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGB0LXQs9C00LAg0YbQtdC70L7QtSDQv9C+0LvQvtC20LjRgtC10LvRjNC90L7QtSDQsdC10LfQt9C90LDQutC+0LLQvtC1IDMyLdCx0LjRgtC90L7QtSDRh9C40YHQu9C+XG4gICAgICovXG4gICAgcHVibGljIGdldEhhc2goZWFjaEN1cnJlbnRDb2xsaXNpb246IEVhY2hDdXJyZW50Q29sbGlzaW9uID0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlU2FtZSk6IG51bWJlciB7XG4gICAgICAgIGxldCBoYXNoID0gNTM4MTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiByZXZlcnNlQXJyYXkodGhpcy50b2tlbnMpKSB7XG4gICAgICAgICAgICBsZXQgY3VycmVudFN0cjogc3RyaW5nO1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50U3RyID0gdG9rZW47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChlYWNoQ3VycmVudENvbGxpc2lvbiA9PT0gRWFjaEN1cnJlbnRDb2xsaXNpb24uQXJlRGlmZmVyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdHIgPSB0b2tlbiA9PT0gUGF0aFRva2Vucy5lYWNoID8gXCIqXCIgOiBcIiFcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RyID0gXCIqXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHN0cmluZ0luZGV4ID0gY3VycmVudFN0ci5sZW5ndGg7XG4gICAgICAgICAgICB3aGlsZSAoc3RyaW5nSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICAgICAgICAgICAgIGhhc2ggPSAoaGFzaCAqIDMzKSBeIGN1cnJlbnRTdHIuY2hhckNvZGVBdCgtLXN0cmluZ0luZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qXG4gICAgICAgICAgICB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICAgICAgICAgSmF2YVNjcmlwdCBkb2VzIGJpdHdpc2Ugb3BlcmF0aW9ucyAobGlrZSBYT1IsIGFib3ZlKSBvbiAzMi1iaXQgc2lnbmVkXG4gICAgICAgICAgICBpbnRlZ2Vycy4gU2luY2Ugd2Ugd2FudCB0aGUgcmVzdWx0cyB0byBiZSBhbHdheXMgcG9zaXRpdmUsIGNvbnZlcnQgdGhlXG4gICAgICAgICAgICBzaWduZWQgaW50IHRvIGFuIHVuc2lnbmVkIGJ5IGRvaW5nIGFuIHVuc2lnbmVkIGJpdHNoaWZ0LlxuICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGhhc2ggPj4+IDA7XG4gICAgfVxuXG4gICAgcHVibGljIGlzSW5jbHVkZXMobW9kZWxQYXRoOiBNb2RlbFBhdGgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMudG9rZW5zLmxlbmd0aCAhPT0gbW9kZWxQYXRoLnRva2Vucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBsZWZ0UGFydCA9IHRoaXMudG9rZW5zW2ldO1xuICAgICAgICAgICAgY29uc3QgcmlnaHRQYXJ0ID0gbW9kZWxQYXRoLnRva2Vuc1tpXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbGVmdFBhcnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJpZ2h0UGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAobGVmdFBhcnQgIT09IHJpZ2h0UGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGxlZnRQYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQgfHwgbGVmdFBhcnQgPT09IFBhdGhUb2tlbnMuZWFjaCkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmlnaHRQYXJ0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNGaW5pdGUoTnVtYmVyKHJpZ2h0UGFydCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJpZ2h0UGFydCAhPT0gUGF0aFRva2Vucy5jdXJyZW50ICYmIHJpZ2h0UGFydCAhPT0gUGF0aFRva2Vucy5lYWNoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRJdGVyYXRpb25SYW5rKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjb3VudChJdGVyYXRvci5mcm9tKHRoaXMudG9rZW5zKS5maWx0ZXIoeCA9PiB4ID09PSBQYXRoVG9rZW5zLmVhY2gpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zLmxlbmd0aCA9PT0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWF0Y2hGb3IobW9kZWxQYXRoOiBNb2RlbFBhdGgpOiBQYXRoTWF0Y2hpbmcge1xuICAgICAgICBpZiAoIXRoaXMuaXNBYnNvbHV0ZSgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBtYXRjaCBub24gYWJzb2x1dGUgcGF0aCAnJHt0aGlzLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbW9kZWxQYXRoLmlzQWJzb2x1dGUoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgbWF0Y2ggbm9uIGFic29sdXRlIHBhdGggJyR7bW9kZWxQYXRoLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBQYXRoTWF0Y2hlci5tYXRjaCh0aGlzLnRva2VucywgbW9kZWxQYXRoLnRva2Vucyk7XG4gICAgfVxuXG4gICAgcHVibGljICpzcGxpdEJ5TXVsdGlwbGljaXR5KCk6IEl0ZXJhYmxlPE1vZGVsUGF0aCB8IHR5cGVvZiBFYWNoU3ltYm9sIHwgdHlwZW9mIEN1cnJlbnRTeW1ib2w+IHtcbiAgICAgICAgbGV0IGxhc3RTaW1wbGVQYXJ0cyA9IE1vZGVsUGF0aC5idWlsZGVyKHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0aGlzLnRva2Vucykge1xuICAgICAgICAgICAgaWYgKFBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICBsYXN0U2ltcGxlUGFydHMuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFsYXN0U2ltcGxlUGFydHMuZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgeWllbGQgbGFzdFNpbXBsZVBhcnRzLnRvUGF0aCgpO1xuICAgICAgICAgICAgICAgICAgICBsYXN0U2ltcGxlUGFydHMgPSBNb2RlbFBhdGguYnVpbGRlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB5aWVsZCB0b2tlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWxhc3RTaW1wbGVQYXJ0cy5lbXB0eSkge1xuICAgICAgICAgICAgeWllbGQgbGFzdFNpbXBsZVBhcnRzLnRvUGF0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5vcm1hbGl6ZSgpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCByZXN1bHRUb2tlbnM6IFBhdGhUb2tlbltdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgcGF0aFBhcnQgb2YgdGhpcy50b2tlbnMpIHtcbiAgICAgICAgICAgIGlmIChwYXRoUGFydCA9PT0gXCIuLlwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHRUb2tlbnMucG9wKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNBYnNvbHV0ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggaXMgaW52YWxpZCAnJHt0aGlzLnRvU3RyaW5nKCl9J2ApO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0VG9rZW5zLnB1c2goXCIuLlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhdGhQYXJ0ID09PSBcIi5cIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0VG9rZW5zLnB1c2gocGF0aFBhcnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHJlc3VsdFRva2VucywgdGhpcy5pc0Fic29sdXRlKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBzdW1tYXJ5INCh0L/QtdGG0LjRhNC40LrQsNGC0L7RgNGLINC80L3QvtC20LXRgdGC0LLQtdC90L3QvtGB0YLQuCBFYWNoINC30LDQvNC10L3Rj9C10YIg0L3QsCBDdXJyZW50XG4gICAgICovXG4gICAgcHVibGljIHRvQ3VycmVudEl0ZXJhdGlvbigpOiBNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChcbiAgICAgICAgICAgIHRoaXMudG9rZW5zLm1hcCh4ID0+ICh4ID09PSBQYXRoVG9rZW5zLmVhY2ggPyBQYXRoVG9rZW5zLmN1cnJlbnQgOiB4KSksXG4gICAgICAgICAgICB0aGlzLmlzQWJzb2x1dGUoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0Fic29sdXRlKCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgaWYgKCF0aGlzLmFic29sdXRlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggJyR7dGhpcy50b0xlZ2FjeVBhdGgoKX0gaXMgbm90IGFic29sdXRlJ2ApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgodGhpcy50b2tlbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyAqZ2V0QWxsUGFyZW50UGF0aHMoKTogSXRlcmFibGU8TW9kZWxQYXRoPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IE1vZGVsUGF0aC5idWlsZGVyKHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBJdGVyVXRpbHMuc2tpcExhc3QodGhpcy5nZXRQYXRoUGFydHMoKSwgMSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodG9rZW4pO1xuICAgICAgICAgICAgeWllbGQgcmVzdWx0LnRvUGF0aCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHRyaW1MYXN0U3RhcklmTGFzdFRva2VuKCk6IE1vZGVsUGF0aCB7XG4gICAgICAgIGNvbnN0IGxhc3RJdGVtID0gSXRlclV0aWxzLmxhc3QodGhpcy50b2tlbnMpO1xuICAgICAgICBpZiAobGFzdEl0ZW0gIT0gdW5kZWZpbmVkICYmIFBhdGhUb2tlbnMuaXNNdWx0aVRva2VuKGxhc3RJdGVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgodGhpcy50b2tlbnMuc2xpY2UoMCwgLTEpLCB0aGlzLmFic29sdXRlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UGFyZW50UGF0aCgpOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBNb2RlbFBhdGguYnVpbGRlcih0aGlzLmlzQWJzb2x1dGUoKSk7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgSXRlclV0aWxzLnNraXBMYXN0KHRoaXMuZ2V0UGF0aFBhcnRzKCksIDEpKSB7XG4gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvQWJzb2x1dGVQYXRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzOiBTaW1wbGVQYXRoVG9rZW5bXSk6IE1vZGVsUGF0aCB7XG4gICAgICAgIGlmICh0aGlzLmlzUmVzb2x2ZWQoKSB8fCBpbnN0YW5jZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuICAgICAgICBsZXQgaW5zdGFuY2VDb3VudGVyID0gMDtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTW9kZWxQYXRoLmJ1aWxkZXIoKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0aGlzLmdldFBhdGhQYXJ0cygpKSB7XG4gICAgICAgICAgICBpZiAoUGF0aFRva2Vucy5pc011bHRpVG9rZW4odG9rZW4pICYmIGluc3RhbmNlQ291bnRlciA8IGluc3RhbmNlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGluc3RhbmNlc1tpbnN0YW5jZUNvdW50ZXJdID8/IHJlamVjdCgpKTtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZUNvdW50ZXIrKztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0b2tlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdC50b0Fic29sdXRlUGF0aCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGF0aFBhcnRUb1N0cmluZyhwYXRoUGFydDogUGF0aFRva2VuKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXRoUGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHBhdGhQYXJ0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXRoUGFydCA9PT0gUGF0aFRva2Vucy5lYWNoKSB7XG4gICAgICAgICAgICByZXR1cm4gXCIqXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGhQYXJ0ID09PSBQYXRoVG9rZW5zLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBcIipcIjtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcGF0aCBwYXJ0IHNwZWNpZmllZDogJHtlbnN1cmVBbmRHZXRTdHJpbmcocGF0aFBhcnQpfWApO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFic29sdXRlTW9kZWxQYXRoIGV4dGVuZHMgTW9kZWxQYXRoIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aFBhcnRzOiByZWFkb25seSBQYXRoVG9rZW5bXSkge1xuICAgICAgICBzdXBlcihwYXRoUGFydHMsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlQWJzb2x1dGVGcm9tTWFzayhwYXRoOiBzdHJpbmcsIG11bHRpcGxpY2l0eVN5bWJvbDogUGF0aFRva2VuKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIikubWFwKHggPT4gKHggPT09IFwiKlwiID8gbXVsdGlwbGljaXR5U3ltYm9sIDogeCkpO1xuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUFic29sdXRlKHBhdGg6IHN0cmluZyk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIik7XG4gICAgICAgIHRoaXMuZW5zdXJlUGxhaW5QYXRoUGFydHNEb2VzTm90Q29udGFpbk11bHRpcGxpY2l0eShwYXJ0UGFydFN0cmluZ3MpO1xuICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgam9pbldpdGgocGF0aDogTW9kZWxQYXRoIHwgUGF0aFRva2VuKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gc3VwZXIuam9pbldpdGgocGF0aCkudG9BYnNvbHV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJlbnRQYXRoKCk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTW9kZWxQYXRoLmJ1aWxkZXIodHJ1ZSk7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgSXRlclV0aWxzLnNraXBMYXN0KHRoaXMuZ2V0UGF0aFBhcnRzKCksIDEpKSB7XG4gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvQWJzb2x1dGVQYXRoKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzOiBTaW1wbGVQYXRoVG9rZW5bXSk6IEFic29sdXRlTW9kZWxQYXRoIHtcbiAgICAgICAgcmV0dXJuIHN1cGVyLmFwcGx5SW5zdGFuY2VzRGlydHkoaW5zdGFuY2VzKS50b0Fic29sdXRlKCk7XG4gICAgfVxufVxuIl19
|
|
545
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL0NvbW1vbi9Nb2RlbFBhdGgvTW9kZWxQYXRoLnRzIl0sIm5hbWVzIjpbIkVhY2hTeW1ib2wiLCJTeW1ib2wiLCJmb3IiLCJDdXJyZW50U3ltYm9sIiwiUGF0aFRva2VucyIsImlzTXVsdGlUb2tlbiIsInBhcnQiLCJlYWNoIiwiY3VycmVudCIsImlzU2ltcGxlVG9rZW4iLCJpc0luc3RhbmNlVG9rZW4iLCJ0ZXN0IiwiaXNNb2RlbFBhdGgiLCJwYXRoIiwiY29udmVydFRvTGVnYWN5UGF0aCIsInRvTGVnYWN5UGF0aCIsImNvbnZlcnRUb0Fic29sdXRNb2RlbFBhdGgiLCJBYnNvbHV0ZU1vZGVsUGF0aCIsImNyZWF0ZUFic29sdXRlRnJvbU1hc2siLCJBYnNvbHV0ZU1vZGVsRmllbGRQYXRoIiwiY29uc3RydWN0b3IiLCJmaWVsZE5hbWUiLCJmaWVsZCIsImlzRXF1YWxzIiwibW9kZWxQYXRoIiwiZWFjaEN1cnJlbnRDb2xsaXNpb24iLCJFYWNoQ3VycmVudENvbGxpc2lvbiIsIkFyZVNhbWUiLCJjcmVhdGVGcm9tU3RyaW5nIiwicGF0aFdpdGhGaWVsZE5hbWUiLCJlbmRzV2l0aCIsImNyZWF0ZUFic29sdXRlIiwicmVwbGFjZSIsImNyZWF0ZUZyb21NYXNrIiwibXVsdGlwbGljaXR5U3ltYm9sIiwiTW9kZWxQYXRoIiwicGF0aFBhcnRzIiwiYWJzb2x1dGUiLCJ0b2tlbnMiLCJsZWdhY3lQYXRoIiwiZmlsdGVyIiwieCIsImVtcHR5IiwiYnVpbGRlciIsImZvcmNlQWJzb2x1dGUiLCJNb2RlbFBhdGhCdWlsZGVyIiwicGFydFBhcnRTdHJpbmdzIiwic3BsaXQiLCJlbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5Iiwic3RhcnRzV2l0aCIsInNsaWNlIiwibWFwIiwiam9pbiIsInBhcnRzIiwicmVzdWx0UGFydHMiLCJqb2luSXRlbSIsInB1c2giLCJpc0Fic29sdXRlIiwiQXJyYXkiLCJpc0FycmF5Iiwic29tZSIsIkVycm9yIiwiZ2V0UGF0aFBhcnRzIiwiZ2V0UGF0aFBhcnRzQXNBcnJheSIsImdldFNpbXBsZVRva2Vuc1N0cmljdCIsInRva2VuIiwiZ2V0U2ltcGxlVG9rZW5zQXNBcnJheVN0cmljdCIsImpvaW5XaXRoIiwiaXNSZXNvbHZlZCIsImV2ZXJ5IiwicmVzb2x2ZUFsbCIsImluc3RhbmNlIiwiaXNDb250YWluSXRlcmF0aW9uIiwiaXNDb250YWluQ3VycmVudEl0ZXJhdGlvbiIsInRvU3RyaW5nIiwibGVuZ3RoIiwicGF0aFBhcnRUb1N0cmluZyIsIkl0ZXJhdG9yIiwiZnJvbSIsIkl0ZXJVdGlscyIsInppcCIsInQxIiwidDIiLCJnZXRIYXNoIiwiaGFzaCIsImN1cnJlbnRTdHIiLCJBcmVEaWZmZXJlbnQiLCJzdHJpbmdJbmRleCIsImNoYXJDb2RlQXQiLCJpc0luY2x1ZGVzIiwiaSIsImxlZnRQYXJ0IiwicmlnaHRQYXJ0IiwiaXNGaW5pdGUiLCJOdW1iZXIiLCJnZXRJdGVyYXRpb25SYW5rIiwiaXNFbXB0eSIsIm1hdGNoRm9yIiwiUGF0aE1hdGNoZXIiLCJtYXRjaCIsInNwbGl0QnlNdWx0aXBsaWNpdHkiLCJsYXN0U2ltcGxlUGFydHMiLCJhcHBlbmQiLCJ0b1BhdGgiLCJub3JtYWxpemUiLCJyZXN1bHRUb2tlbnMiLCJwYXRoUGFydCIsInBvcCIsInRvQ3VycmVudEl0ZXJhdGlvbiIsInRvRWFjaEl0ZXJhdGlvbiIsInRvQWJzb2x1dGUiLCJnZXRBbGxQYXJlbnRQYXRocyIsInJlc3VsdCIsInNraXBMYXN0IiwidHJpbUxhc3RTdGFySWZMYXN0VG9rZW4iLCJsYXN0SXRlbSIsImxhc3QiLCJ1bmRlZmluZWQiLCJnZXRQYXJlbnRQYXRoIiwidG9BYnNvbHV0ZVBhdGgiLCJhcHBseUluc3RhbmNlc0RpcnR5IiwiaW5zdGFuY2VzIiwiaW5zdGFuY2VDb3VudGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEs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OztBQUNELFdBQU8rQyxNQUFNLENBQUNPLGNBQVAsRUFBUDtBQUNIOztBQUVNQyxFQUFBQSxtQkFBbUIsQ0FBQ0MsU0FBRCxFQUFrRDtBQUN4RSxXQUFPLE1BQU1ELG1CQUFOLENBQTBCQyxTQUExQixFQUFxQ1gsVUFBckMsRUFBUDtBQUNIOztBQXBDNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaW5kaW5nUGF0aCwgVmlld01vZGVsRmllbGROYW1lIH0gZnJvbSBcIi4uLy4uL0VuZ2luZS9zcmMvRW5naW5lL0NvcmUvQ29yZVR5cGVzXCI7XG5pbXBvcnQgeyBjb3VudCwgSXRlclV0aWxzLCByZXZlcnNlQXJyYXkgfSBmcm9tIFwiLi4vSXRlcmFibGVVdGlsc1wiO1xuaW1wb3J0IHsgZW5zdXJlQW5kR2V0U3RyaW5nLCByZWplY3QgfSBmcm9tIFwiLi4vVHlwaW5nVXRpbHNcIjtcblxuaW1wb3J0IHsgRWFjaEN1cnJlbnRDb2xsaXNpb24gfSBmcm9tIFwiLi9FYWNoQ3VycmVudENvbGxpc2lvblwiO1xuaW1wb3J0IHsgTW9kZWxQYXRoQnVpbGRlciB9IGZyb20gXCIuL01vZGVsUGF0aEJ1aWxkZXJcIjtcbmltcG9ydCB7IFBhdGhNYXRjaGVyLCBQYXRoTWF0Y2hpbmcgfSBmcm9tIFwiLi9QYXRoTWF0Y2hlclwiO1xuaW1wb3J0IHsgSUVxdWF0YWJsZSB9IGZyb20gXCIuL0lFcXVhdGFibGVcIjtcblxuY29uc3QgRWFjaFN5bWJvbCA9IFN5bWJvbC5mb3IoXCJfX0VBQ0hfX1wiKTtcbmNvbnN0IEN1cnJlbnRTeW1ib2wgPSBTeW1ib2wuZm9yKFwiX19DVVJSRU5UX19cIik7XG5cbmV4cG9ydCBjbGFzcyBQYXRoVG9rZW5zIHtcbiAgICBwdWJsaWMgc3RhdGljIGVhY2g6IHR5cGVvZiBFYWNoU3ltYm9sID0gRWFjaFN5bWJvbDtcbiAgICBwdWJsaWMgc3RhdGljIGN1cnJlbnQ6IHR5cGVvZiBDdXJyZW50U3ltYm9sID0gQ3VycmVudFN5bWJvbDtcblxuICAgIHB1YmxpYyBzdGF0aWMgaXNNdWx0aVRva2VuKHBhcnQ6IHVuZGVmaW5lZCB8IFBhdGhUb2tlbik6IHBhcnQgaXMgdHlwZW9mIEVhY2hTeW1ib2wgfCB0eXBlb2YgQ3VycmVudFN5bWJvbCB7XG4gICAgICAgIHJldHVybiBwYXJ0ID09PSBQYXRoVG9rZW5zLmVhY2ggfHwgcGFydCA9PT0gUGF0aFRva2Vucy5jdXJyZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNTaW1wbGVUb2tlbihwYXJ0OiB1bmRlZmluZWQgfCBQYXRoVG9rZW4pOiBwYXJ0IGlzIHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgcGFydCA9PT0gXCJzdHJpbmdcIjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzSW5zdGFuY2VUb2tlbihwYXJ0OiB1bmRlZmluZWQgfCBQYXRoVG9rZW4pOiBwYXJ0IGlzIHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgcGFydCA9PT0gXCJzdHJpbmdcIiAmJiAvXlxcZCskL2kudGVzdChwYXJ0KTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIFNpbXBsZVBhdGhUb2tlbiA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgUGF0aFRva2VuID0gU2ltcGxlUGF0aFRva2VuIHwgdHlwZW9mIEVhY2hTeW1ib2wgfCB0eXBlb2YgQ3VycmVudFN5bWJvbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9kZWxQYXRoKHBhdGg6IEJpbmRpbmdQYXRoIHwgTW9kZWxQYXRoKTogcGF0aCBpcyBNb2RlbFBhdGgge1xuICAgIHJldHVybiB0eXBlb2YgcGF0aCAhPT0gXCJzdHJpbmdcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0xlZ2FjeVBhdGgocGF0aDogQmluZGluZ1BhdGggfCBNb2RlbFBhdGgpOiBCaW5kaW5nUGF0aCB7XG4gICAgcmV0dXJuIGlzTW9kZWxQYXRoKHBhdGgpID8gcGF0aC50b0xlZ2FjeVBhdGgoKSA6IHBhdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9BYnNvbHV0TW9kZWxQYXRoKHBhdGg6IEJpbmRpbmdQYXRoIHwgQWJzb2x1dGVNb2RlbFBhdGgpOiBBYnNvbHV0ZU1vZGVsUGF0aCB7XG4gICAgcmV0dXJuIGlzTW9kZWxQYXRoKHBhdGgpID8gcGF0aCA6IEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2socGF0aCwgUGF0aFRva2Vucy5lYWNoKTtcbn1cblxuZXhwb3J0IGNsYXNzIEFic29sdXRlTW9kZWxGaWVsZFBhdGgge1xuICAgIHB1YmxpYyByZWFkb25seSBwYXRoOiBBYnNvbHV0ZU1vZGVsUGF0aDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmllbGQ6IFZpZXdNb2RlbEZpZWxkTmFtZSB8IFwiJGVycm9yQ291bnRcIiB8IFwiJHdhcm5pbmdDb3VudFwiO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGg6IEFic29sdXRlTW9kZWxQYXRoLCBmaWVsZE5hbWU6IFZpZXdNb2RlbEZpZWxkTmFtZSB8IFwiJGVycm9yQ291bnRcIiB8IFwiJHdhcm5pbmdDb3VudFwiKSB7XG4gICAgICAgIHRoaXMucGF0aCA9IHBhdGg7XG4gICAgICAgIHRoaXMuZmllbGQgPSBmaWVsZE5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRXF1YWxzKFxuICAgICAgICBtb2RlbFBhdGg6IEFic29sdXRlTW9kZWxGaWVsZFBhdGgsXG4gICAgICAgIGVhY2hDdXJyZW50Q29sbGlzaW9uOiBFYWNoQ3VycmVudENvbGxpc2lvbiA9IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZVNhbWVcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0aC5pc0VxdWFscyhtb2RlbFBhdGgucGF0aCwgZWFjaEN1cnJlbnRDb2xsaXNpb24pICYmIHRoaXMuZmllbGQgPT09IG1vZGVsUGF0aC5maWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZyb21TdHJpbmcocGF0aFdpdGhGaWVsZE5hbWU6IHN0cmluZyk6IEFic29sdXRlTW9kZWxGaWVsZFBhdGgge1xuICAgICAgICBpZiAocGF0aFdpdGhGaWVsZE5hbWUuZW5kc1dpdGgoXCIuJGVycm9yQ291bnRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChcbiAgICAgICAgICAgICAgICBBYnNvbHV0ZU1vZGVsUGF0aC5jcmVhdGVBYnNvbHV0ZShwYXRoV2l0aEZpZWxkTmFtZS5yZXBsYWNlKFwiLiRlcnJvckNvdW50XCIsIFwiXCIpKSxcbiAgICAgICAgICAgICAgICBcIiRlcnJvckNvdW50XCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGhXaXRoRmllbGROYW1lLmVuZHNXaXRoKFwiLiR3YXJuaW5nQ291bnRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChcbiAgICAgICAgICAgICAgICBBYnNvbHV0ZU1vZGVsUGF0aC5jcmVhdGVBYnNvbHV0ZShwYXRoV2l0aEZpZWxkTmFtZS5yZXBsYWNlKFwiLiR3YXJuaW5nQ291bnRcIiwgXCJcIikpLFxuICAgICAgICAgICAgICAgIFwiJHdhcm5pbmdDb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChBYnNvbHV0ZU1vZGVsUGF0aC5jcmVhdGVBYnNvbHV0ZShwYXRoV2l0aEZpZWxkTmFtZSksIFwidmFsdWVcIik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVGcm9tTWFzayhwYXRoV2l0aEZpZWxkTmFtZTogc3RyaW5nLCBtdWx0aXBsaWNpdHlTeW1ib2w6IFBhdGhUb2tlbik6IEFic29sdXRlTW9kZWxGaWVsZFBhdGgge1xuICAgICAgICBpZiAocGF0aFdpdGhGaWVsZE5hbWUuZW5kc1dpdGgoXCIuJGVycm9yQ291bnRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQWJzb2x1dGVNb2RlbEZpZWxkUGF0aChcbiAgICAgICAgICAgICAgICBBYnNvbHV0ZU1vZGVsUGF0aC5jcmVhdGVBYnNvbHV0ZUZyb21NYXNrKFxuICAgICAgICAgICAgICAgICAgICBwYXRoV2l0aEZpZWxkTmFtZS5yZXBsYWNlKFwiLiRlcnJvckNvdW50XCIsIFwiXCIpLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNpdHlTeW1ib2xcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIFwiJGVycm9yQ291bnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aFdpdGhGaWVsZE5hbWUuZW5kc1dpdGgoXCIuJHdhcm5pbmdDb3VudFwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsRmllbGRQYXRoKFxuICAgICAgICAgICAgICAgIEFic29sdXRlTW9kZWxQYXRoLmNyZWF0ZUFic29sdXRlRnJvbU1hc2soXG4gICAgICAgICAgICAgICAgICAgIHBhdGhXaXRoRmllbGROYW1lLnJlcGxhY2UoXCIuJHdhcm5pbmdDb3VudFwiLCBcIlwiKSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljaXR5U3ltYm9sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBcIiR3YXJuaW5nQ291bnRcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxGaWVsZFBhdGgoXG4gICAgICAgICAgICBBYnNvbHV0ZU1vZGVsUGF0aC5jcmVhdGVBYnNvbHV0ZUZyb21NYXNrKHBhdGhXaXRoRmllbGROYW1lLCBtdWx0aXBsaWNpdHlTeW1ib2wpLFxuICAgICAgICAgICAgXCJ2YWx1ZVwiXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgTW9kZWxQYXRoIGltcGxlbWVudHMgSUVxdWF0YWJsZTxNb2RlbFBhdGg+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRva2VuczogcmVhZG9ubHkgUGF0aFRva2VuW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBhYnNvbHV0ZTogYm9vbGVhbjtcbiAgICBwcml2YXRlIGxlZ2FjeVBhdGg6IHVuZGVmaW5lZCB8IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXRoUGFydHM6IHJlYWRvbmx5IFBhdGhUb2tlbltdLCBhYnNvbHV0ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnRva2VucyA9IHBhdGhQYXJ0cy5maWx0ZXIoeCA9PiB4ICE9PSBcIlwiKTtcbiAgICAgICAgdGhpcy5hYnNvbHV0ZSA9IGFic29sdXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZW1wdHkoKTogTW9kZWxQYXRoIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgoW10sIGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGJ1aWxkZXIoZm9yY2VBYnNvbHV0ZTogYm9vbGVhbiA9IGZhbHNlKTogTW9kZWxQYXRoQnVpbGRlciB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoQnVpbGRlcihmb3JjZUFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZUZyb21TdHJpbmcocGF0aDogc3RyaW5nLCBhYnNvbHV0ZTogYm9vbGVhbiB8IFwiYXV0b1wiKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcGFydFBhcnRTdHJpbmdzID0gcGF0aC5zcGxpdChcIi9cIik7XG4gICAgICAgIHRoaXMuZW5zdXJlUGxhaW5QYXRoUGFydHNEb2VzTm90Q29udGFpbk11bHRpcGxpY2l0eShwYXJ0UGFydFN0cmluZ3MpO1xuICAgICAgICBpZiAoYWJzb2x1dGUgPT09IFwiYXV0b1wiKSB7XG4gICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhYnNvbHV0ZSAmJiBwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSksIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncywgYWJzb2x1dGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlRnJvbU1hc2socGF0aDogc3RyaW5nLCBhYnNvbHV0ZTogYm9vbGVhbiB8IFwiYXV0b1wiLCBtdWx0aXBsaWNpdHlTeW1ib2w6IFBhdGhUb2tlbik6IE1vZGVsUGF0aCB7XG4gICAgICAgIGNvbnN0IHBhcnRQYXJ0U3RyaW5ncyA9IHBhdGguc3BsaXQoXCIvXCIpLm1hcCh4ID0+ICh4ID09PSBcIipcIiA/IG11bHRpcGxpY2l0eVN5bWJvbCA6IHgpKTtcbiAgICAgICAgaWYgKGFic29sdXRlID09PSBcImF1dG9cIikge1xuICAgICAgICAgICAgaWYgKHBhdGguc3RhcnRzV2l0aChcIi9cIikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3Muc2xpY2UoMSksIHRydWUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3MsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoYWJzb2x1dGUgJiYgcGF0aC5zdGFydHNXaXRoKFwiL1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgocGFydFBhcnRTdHJpbmdzLnNsaWNlKDEpLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3MsIGFic29sdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGpvaW4oLi4ucGFydHM6IEFycmF5PE1vZGVsUGF0aCB8IFBhdGhUb2tlbiB8IFBhdGhUb2tlbltdPik6IE1vZGVsUGF0aCB7XG4gICAgICAgIGxldCBhYnNvbHV0ZSA9IGZhbHNlO1xuICAgICAgICBsZXQgcmVzdWx0UGFydHM6IFBhdGhUb2tlbltdID0gW107XG4gICAgICAgIGZvciAoY29uc3Qgam9pbkl0ZW0gb2YgcGFydHMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygam9pbkl0ZW0gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRQYXJ0cy5wdXNoKGpvaW5JdGVtKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoam9pbkl0ZW0gaW5zdGFuY2VvZiBNb2RlbFBhdGgpIHtcbiAgICAgICAgICAgICAgICBpZiAoam9pbkl0ZW0uaXNBYnNvbHV0ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFic29sdXRlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0UGFydHMgPSBbLi4uam9pbkl0ZW0udG9rZW5zXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRQYXJ0cy5wdXNoKC4uLmpvaW5JdGVtLnRva2Vucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGpvaW5JdGVtKSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFBhcnRzLnB1c2goLi4uam9pbkl0ZW0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChQYXRoVG9rZW5zLmlzTXVsdGlUb2tlbihqb2luSXRlbSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRQYXJ0cy5wdXNoKGpvaW5JdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHJlc3VsdFBhcnRzLCBhYnNvbHV0ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHN0YXRpYyBlbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5KHBhcnRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAocGFydHMuc29tZSh4ID0+IHggPT09IFwiKlwiKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGF0aCBtdXN0IG5vdCBjb250YWluICogc3ltYm9sXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhdGhQYXJ0cygpOiBJdGVyYWJsZTxQYXRoVG9rZW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXRoUGFydHNBc0FycmF5KCk6IHJlYWRvbmx5IFBhdGhUb2tlbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyAqZ2V0U2ltcGxlVG9rZW5zU3RyaWN0KCk6IEl0ZXJhYmxlPFNpbXBsZVBhdGhUb2tlbj4ge1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRoaXMudG9rZW5zKSB7XG4gICAgICAgICAgICBpZiAoIVBhdGhUb2tlbnMuaXNTaW1wbGVUb2tlbih0b2tlbikpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJQYXRoIG11c3Qgbm90IGNvbnRhaW4gc3BlYyB0b2tlbnNcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB5aWVsZCB0b2tlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRTaW1wbGVUb2tlbnNBc0FycmF5U3RyaWN0KCk6IHJlYWRvbmx5IFNpbXBsZVBhdGhUb2tlbltdIHtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiB0aGlzLnRva2Vucykge1xuICAgICAgICAgICAgaWYgKCFQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4odG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUGF0aCBtdXN0IG5vdCBjb250YWluIHNwZWMgdG9rZW5zXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vINCf0YDQvtCy0LXRgNC60LAg0LLRi9GI0LUg0LPQsNGA0LDQtdC90YLQuNGA0YPQtdGCINGH0YLQviDQsdGD0LTRg9GCINGC0L7Qu9GM0LrQviBTaW1wbGVQYXRoVG9rZW4uXG4gICAgICAgIC8vINCS0YHQtSBtYXAg0LggZmlsdGVyINGD0LHRgNCw0L3RiyDQtNC70Y8g0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0YHRgtC4XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zO1xuICAgIH1cblxuICAgIHB1YmxpYyBqb2luV2l0aCguLi5wYXRoOiBBcnJheTxNb2RlbFBhdGggfCBQYXRoVG9rZW4+KTogTW9kZWxQYXRoIHtcbiAgICAgICAgcmV0dXJuIE1vZGVsUGF0aC5qb2luKHRoaXMsIC4uLnBhdGgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1Jlc29sdmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnMuZXZlcnkoUGF0aFRva2Vucy5pc1NpbXBsZVRva2VuKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzb2x2ZUFsbChpbnN0YW5jZTogc3RyaW5nKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgdG9rZW5zID0gdGhpcy50b2tlbnMubWFwKHRva2VuID0+IHtcbiAgICAgICAgICAgIGlmIChQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4odG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKHRva2VucywgdGhpcy5hYnNvbHV0ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQ29udGFpbkl0ZXJhdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9rZW5zLnNvbWUoeCA9PiB4ID09PSBQYXRoVG9rZW5zLmVhY2gpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0NvbnRhaW5DdXJyZW50SXRlcmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2tlbnMuc29tZSh4ID0+IHggPT09IFBhdGhUb2tlbnMuY3VycmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQWJzb2x1dGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFic29sdXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy50b2tlbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKHRoaXMuYWJzb2x1dGUgPyBcIi9cIiA6IFwiXCIpICsgdGhpcy50b2tlbnMubWFwKHggPT4gdGhpcy5wYXRoUGFydFRvU3RyaW5nKHgpKS5qb2luKFwiL1wiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9MZWdhY3lQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmxlZ2FjeVBhdGggPz8gKHRoaXMubGVnYWN5UGF0aCA9IHRoaXMudG9rZW5zLm1hcCh4ID0+IHRoaXMucGF0aFBhcnRUb1N0cmluZyh4KSkuam9pbihcIi9cIikpO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0VxdWFscyhcbiAgICAgICAgbW9kZWxQYXRoOiBNb2RlbFBhdGgsXG4gICAgICAgIGVhY2hDdXJyZW50Q29sbGlzaW9uOiBFYWNoQ3VycmVudENvbGxpc2lvbiA9IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZVNhbWVcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGVhY2hDdXJyZW50Q29sbGlzaW9uID09PSBFYWNoQ3VycmVudENvbGxpc2lvbi5BcmVTYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy50b0xlZ2FjeVBhdGgoKSA9PT0gbW9kZWxQYXRoLnRvTGVnYWN5UGF0aCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICB0aGlzLmlzQWJzb2x1dGUoKSA9PT0gbW9kZWxQYXRoLmlzQWJzb2x1dGUoKSAmJlxuICAgICAgICAgICAgICAgIEl0ZXJhdG9yLmZyb20oSXRlclV0aWxzLnppcCh0aGlzLmdldFBhdGhQYXJ0cygpLCBtb2RlbFBhdGguZ2V0UGF0aFBhcnRzKCkpKS5ldmVyeShcbiAgICAgICAgICAgICAgICAgICAgKFt0MSwgdDJdKSA9PiB0MSA9PT0gdDJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRgdC10LPQtNCwINGG0LXQu9C+0LUg0L/QvtC70L7QttC40YLQtdC70YzQvdC+0LUg0LHQtdC30LfQvdCw0LrQvtCy0L7QtSAzMi3QsdC40YLQvdC+0LUg0YfQuNGB0LvQvlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRIYXNoKGVhY2hDdXJyZW50Q29sbGlzaW9uOiBFYWNoQ3VycmVudENvbGxpc2lvbiA9IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZVNhbWUpOiBudW1iZXIge1xuICAgICAgICBsZXQgaGFzaCA9IDUzODE7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgcmV2ZXJzZUFycmF5KHRoaXMudG9rZW5zKSkge1xuICAgICAgICAgICAgbGV0IGN1cnJlbnRTdHI6IHN0cmluZztcbiAgICAgICAgICAgIGlmIChQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4odG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFN0ciA9IHRva2VuO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAoZWFjaEN1cnJlbnRDb2xsaXNpb24gPT09IEVhY2hDdXJyZW50Q29sbGlzaW9uLkFyZURpZmZlcmVudCkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50U3RyID0gdG9rZW4gPT09IFBhdGhUb2tlbnMuZWFjaCA/IFwiKlwiIDogXCIhXCI7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ciA9IFwiKlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBzdHJpbmdJbmRleCA9IGN1cnJlbnRTdHIubGVuZ3RoO1xuICAgICAgICAgICAgd2hpbGUgKHN0cmluZ0luZGV4KSB7XG4gICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcbiAgICAgICAgICAgICAgICBoYXNoID0gKGhhc2ggKiAzMykgXiBjdXJyZW50U3RyLmNoYXJDb2RlQXQoLS1zdHJpbmdJbmRleCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvKlxuICAgICAgICAgICAgdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWJpdHdpc2VcbiAgICAgICAgICAgIEphdmFTY3JpcHQgZG9lcyBiaXR3aXNlIG9wZXJhdGlvbnMgKGxpa2UgWE9SLCBhYm92ZSkgb24gMzItYml0IHNpZ25lZFxuICAgICAgICAgICAgaW50ZWdlcnMuIFNpbmNlIHdlIHdhbnQgdGhlIHJlc3VsdHMgdG8gYmUgYWx3YXlzIHBvc2l0aXZlLCBjb252ZXJ0IHRoZVxuICAgICAgICAgICAgc2lnbmVkIGludCB0byBhbiB1bnNpZ25lZCBieSBkb2luZyBhbiB1bnNpZ25lZCBiaXRzaGlmdC5cbiAgICAgICovXG4gICAgICAgIHJldHVybiBoYXNoID4+PiAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0luY2x1ZGVzKG1vZGVsUGF0aDogTW9kZWxQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnRva2Vucy5sZW5ndGggIT09IG1vZGVsUGF0aC50b2tlbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgbGVmdFBhcnQgPSB0aGlzLnRva2Vuc1tpXTtcbiAgICAgICAgICAgIGNvbnN0IHJpZ2h0UGFydCA9IG1vZGVsUGF0aC50b2tlbnNbaV07XG4gICAgICAgICAgICBpZiAodHlwZW9mIGxlZnRQYXJ0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByaWdodFBhcnQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxlZnRQYXJ0ICE9PSByaWdodFBhcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChsZWZ0UGFydCA9PT0gUGF0aFRva2Vucy5jdXJyZW50IHx8IGxlZnRQYXJ0ID09PSBQYXRoVG9rZW5zLmVhY2gpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJpZ2h0UGFydCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRmluaXRlKE51bWJlcihyaWdodFBhcnQpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyaWdodFBhcnQgIT09IFBhdGhUb2tlbnMuY3VycmVudCAmJiByaWdodFBhcnQgIT09IFBhdGhUb2tlbnMuZWFjaCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SXRlcmF0aW9uUmFuaygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gY291bnQoSXRlcmF0b3IuZnJvbSh0aGlzLnRva2VucykuZmlsdGVyKHggPT4geCA9PT0gUGF0aFRva2Vucy5lYWNoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRva2Vucy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgcHVibGljIG1hdGNoRm9yKG1vZGVsUGF0aDogTW9kZWxQYXRoKTogUGF0aE1hdGNoaW5nIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQWJzb2x1dGUoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgbWF0Y2ggbm9uIGFic29sdXRlIHBhdGggJyR7dGhpcy50b1N0cmluZygpfSdgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW1vZGVsUGF0aC5pc0Fic29sdXRlKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IG1hdGNoIG5vbiBhYnNvbHV0ZSBwYXRoICcke21vZGVsUGF0aC50b1N0cmluZygpfSdgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUGF0aE1hdGNoZXIubWF0Y2godGhpcy50b2tlbnMsIG1vZGVsUGF0aC50b2tlbnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyAqc3BsaXRCeU11bHRpcGxpY2l0eSgpOiBJdGVyYWJsZTxNb2RlbFBhdGggfCB0eXBlb2YgRWFjaFN5bWJvbCB8IHR5cGVvZiBDdXJyZW50U3ltYm9sPiB7XG4gICAgICAgIGxldCBsYXN0U2ltcGxlUGFydHMgPSBNb2RlbFBhdGguYnVpbGRlcih0aGlzLmlzQWJzb2x1dGUoKSk7XG4gICAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgdGhpcy50b2tlbnMpIHtcbiAgICAgICAgICAgIGlmIChQYXRoVG9rZW5zLmlzU2ltcGxlVG9rZW4odG9rZW4pKSB7XG4gICAgICAgICAgICAgICAgbGFzdFNpbXBsZVBhcnRzLmFwcGVuZCh0b2tlbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghbGFzdFNpbXBsZVBhcnRzLmVtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgIHlpZWxkIGxhc3RTaW1wbGVQYXJ0cy50b1BhdGgoKTtcbiAgICAgICAgICAgICAgICAgICAgbGFzdFNpbXBsZVBhcnRzID0gTW9kZWxQYXRoLmJ1aWxkZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgeWllbGQgdG9rZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFsYXN0U2ltcGxlUGFydHMuZW1wdHkpIHtcbiAgICAgICAgICAgIHlpZWxkIGxhc3RTaW1wbGVQYXJ0cy50b1BhdGgoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBub3JtYWxpemUoKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgcmVzdWx0VG9rZW5zOiBQYXRoVG9rZW5bXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHBhdGhQYXJ0IG9mIHRoaXMudG9rZW5zKSB7XG4gICAgICAgICAgICBpZiAocGF0aFBhcnQgPT09IFwiLi5cIikge1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0VG9rZW5zLnBvcCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQWJzb2x1dGUoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRoIGlzIGludmFsaWQgJyR7dGhpcy50b1N0cmluZygpfSdgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdFRva2Vucy5wdXNoKFwiLi5cIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYXRoUGFydCA9PT0gXCIuXCIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdFRva2Vucy5wdXNoKHBhdGhQYXJ0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aChyZXN1bHRUb2tlbnMsIHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAc3VtbWFyeSDQodC/0LXRhtC40YTQuNC60LDRgtC+0YDRiyDQvNC90L7QttC10YHRgtCy0LXQvdC90L7RgdGC0LggRWFjaCDQt9Cw0LzQtdC90Y/QtdGCINC90LAgQ3VycmVudFxuICAgICAqL1xuICAgIHB1YmxpYyB0b0N1cnJlbnRJdGVyYXRpb24oKTogTW9kZWxQYXRoIHtcbiAgICAgICAgcmV0dXJuIG5ldyBNb2RlbFBhdGgoXG4gICAgICAgICAgICB0aGlzLnRva2Vucy5tYXAoeCA9PiAoeCA9PT0gUGF0aFRva2Vucy5lYWNoID8gUGF0aFRva2Vucy5jdXJyZW50IDogeCkpLFxuICAgICAgICAgICAgdGhpcy5pc0Fic29sdXRlKClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdG9FYWNoSXRlcmF0aW9uKCk6IE1vZGVsUGF0aCB7XG4gICAgICAgIHJldHVybiBuZXcgTW9kZWxQYXRoKFxuICAgICAgICAgICAgdGhpcy50b2tlbnMubWFwKHggPT4gKHggPT09IFBhdGhUb2tlbnMuY3VycmVudCA/IFBhdGhUb2tlbnMuZWFjaCA6IHgpKSxcbiAgICAgICAgICAgIHRoaXMuaXNBYnNvbHV0ZSgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvQWJzb2x1dGUoKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICBpZiAoIXRoaXMuYWJzb2x1dGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUGF0aCAnJHt0aGlzLnRvTGVnYWN5UGF0aCgpfSBpcyBub3QgYWJzb2x1dGUnYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aCh0aGlzLnRva2Vucyk7XG4gICAgfVxuXG4gICAgcHVibGljICpnZXRBbGxQYXJlbnRQYXRocygpOiBJdGVyYWJsZTxNb2RlbFBhdGg+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTW9kZWxQYXRoLmJ1aWxkZXIodGhpcy5pc0Fic29sdXRlKCkpO1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIEl0ZXJVdGlscy5za2lwTGFzdCh0aGlzLmdldFBhdGhQYXJ0cygpLCAxKSkge1xuICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh0b2tlbik7XG4gICAgICAgICAgICB5aWVsZCByZXN1bHQudG9QYXRoKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdHJpbUxhc3RTdGFySWZMYXN0VG9rZW4oKTogTW9kZWxQYXRoIHtcbiAgICAgICAgY29uc3QgbGFzdEl0ZW0gPSBJdGVyVXRpbHMubGFzdCh0aGlzLnRva2Vucyk7XG4gICAgICAgIGlmIChsYXN0SXRlbSAhPSB1bmRlZmluZWQgJiYgUGF0aFRva2Vucy5pc011bHRpVG9rZW4obGFzdEl0ZW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1vZGVsUGF0aCh0aGlzLnRva2Vucy5zbGljZSgwLCAtMSksIHRoaXMuYWJzb2x1dGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQYXJlbnRQYXRoKCk6IE1vZGVsUGF0aCB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IE1vZGVsUGF0aC5idWlsZGVyKHRoaXMuaXNBYnNvbHV0ZSgpKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBJdGVyVXRpbHMuc2tpcExhc3QodGhpcy5nZXRQYXRoUGFydHMoKSwgMSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQudG9BYnNvbHV0ZVBhdGgoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXBwbHlJbnN0YW5jZXNEaXJ0eShpbnN0YW5jZXM6IFNpbXBsZVBhdGhUb2tlbltdKTogTW9kZWxQYXRoIHtcbiAgICAgICAgaWYgKHRoaXMuaXNSZXNvbHZlZCgpIHx8IGluc3RhbmNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGxldCBpbnN0YW5jZUNvdW50ZXIgPSAwO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBNb2RlbFBhdGguYnVpbGRlcigpO1xuICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHRoaXMuZ2V0UGF0aFBhcnRzKCkpIHtcbiAgICAgICAgICAgIGlmIChQYXRoVG9rZW5zLmlzTXVsdGlUb2tlbih0b2tlbikgJiYgaW5zdGFuY2VDb3VudGVyIDwgaW5zdGFuY2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaW5zdGFuY2VzW2luc3RhbmNlQ291bnRlcl0gPz8gcmVqZWN0KCkpO1xuICAgICAgICAgICAgICAgIGluc3RhbmNlQ291bnRlcisrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHRva2VuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvQWJzb2x1dGVQYXRoKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXRoUGFydFRvU3RyaW5nKHBhdGhQYXJ0OiBQYXRoVG9rZW4pOiBzdHJpbmcge1xuICAgICAgICBpZiAodHlwZW9mIHBhdGhQYXJ0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gcGF0aFBhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhdGhQYXJ0ID09PSBQYXRoVG9rZW5zLmVhY2gpIHtcbiAgICAgICAgICAgIHJldHVybiBcIipcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAocGF0aFBhcnQgPT09IFBhdGhUb2tlbnMuY3VycmVudCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiKlwiO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwYXRoIHBhcnQgc3BlY2lmaWVkOiAke2Vuc3VyZUFuZEdldFN0cmluZyhwYXRoUGFydCl9YCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWJzb2x1dGVNb2RlbFBhdGggZXh0ZW5kcyBNb2RlbFBhdGgge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXRoUGFydHM6IHJlYWRvbmx5IFBhdGhUb2tlbltdKSB7XG4gICAgICAgIHN1cGVyKHBhdGhQYXJ0cywgdHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVBYnNvbHV0ZUZyb21NYXNrKHBhdGg6IHN0cmluZywgbXVsdGlwbGljaXR5U3ltYm9sOiBQYXRoVG9rZW4pOiBNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCBwYXJ0UGFydFN0cmluZ3MgPSBwYXRoLnNwbGl0KFwiL1wiKS5tYXAoeCA9PiAoeCA9PT0gXCIqXCIgPyBtdWx0aXBsaWNpdHlTeW1ib2wgOiB4KSk7XG4gICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlQWJzb2x1dGUocGF0aDogc3RyaW5nKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCBwYXJ0UGFydFN0cmluZ3MgPSBwYXRoLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgdGhpcy5lbnN1cmVQbGFpblBhdGhQYXJ0c0RvZXNOb3RDb250YWluTXVsdGlwbGljaXR5KHBhcnRQYXJ0U3RyaW5ncyk7XG4gICAgICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFic29sdXRlTW9kZWxQYXRoKHBhcnRQYXJ0U3RyaW5ncy5zbGljZSgxKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBBYnNvbHV0ZU1vZGVsUGF0aChwYXJ0UGFydFN0cmluZ3MpO1xuICAgIH1cblxuICAgIHB1YmxpYyBqb2luV2l0aChwYXRoOiBNb2RlbFBhdGggfCBQYXRoVG9rZW4pOiBBYnNvbHV0ZU1vZGVsUGF0aCB7XG4gICAgICAgIHJldHVybiBzdXBlci5qb2luV2l0aChwYXRoKS50b0Fic29sdXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFBhcmVudFBhdGgoKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBNb2RlbFBhdGguYnVpbGRlcih0cnVlKTtcbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBJdGVyVXRpbHMuc2tpcExhc3QodGhpcy5nZXRQYXRoUGFydHMoKSwgMSkpIHtcbiAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodG9rZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQudG9BYnNvbHV0ZVBhdGgoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXBwbHlJbnN0YW5jZXNEaXJ0eShpbnN0YW5jZXM6IFNpbXBsZVBhdGhUb2tlbltdKTogQWJzb2x1dGVNb2RlbFBhdGgge1xuICAgICAgICByZXR1cm4gc3VwZXIuYXBwbHlJbnN0YW5jZXNEaXJ0eShpbnN0YW5jZXMpLnRvQWJzb2x1dGUoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -42,26 +42,41 @@ const engineWebpack = require(_path.default.join(process.cwd(), "node_modules",
|
|
|
42
42
|
|
|
43
43
|
const EngineWebpackDevServer = require(_path.default.join(process.cwd(), "node_modules", "webpack-dev-server"));
|
|
44
44
|
|
|
45
|
-
const devServerVersion = getVersion(_path.default.join(process.cwd(), "node_modules", "webpack-dev-server"));
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
45
|
+
const devServerVersion = getVersion(_path.default.join(process.cwd(), "node_modules", "webpack-dev-server"));
|
|
46
|
+
|
|
47
|
+
if (devServerVersion.startsWith("3")) {
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
49
|
+
const configs = require(_path.default.join(process.cwd(), webpackConfigFile))(webpackConfigEnv);
|
|
50
|
+
|
|
51
|
+
const compiler = engineWebpack(configs); // @ts-ignore
|
|
52
|
+
|
|
53
|
+
const server = new EngineWebpackDevServer(compiler, {
|
|
54
|
+
port: port,
|
|
55
|
+
disableHostCheck: true
|
|
56
|
+
});
|
|
57
|
+
server.listen(port);
|
|
58
|
+
process.send({
|
|
59
|
+
message: "Started"
|
|
60
|
+
});
|
|
61
|
+
} else {
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
63
|
+
const configs = require(_path.default.join(process.cwd(), webpackConfigFile))(webpackConfigEnv);
|
|
64
|
+
|
|
65
|
+
const compiler = engineWebpack(configs);
|
|
66
|
+
const server = new EngineWebpackDevServer({
|
|
67
|
+
port: port,
|
|
68
|
+
allowedHosts: "all"
|
|
69
|
+
}, compiler);
|
|
70
|
+
server.startCallback(() => {
|
|
71
|
+
// @ts-ignore
|
|
72
|
+
process.send({
|
|
73
|
+
message: "Started"
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
62
77
|
|
|
63
78
|
function getVersion(packageDir) {
|
|
64
79
|
const packageJson = JSON.parse((0, _fs.readFileSync)(_path.default.join(packageDir, "package.json"), "utf8"));
|
|
65
80
|
return `${packageJson["version"]}`;
|
|
66
81
|
}
|
|
67
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL1dlYnBhY2tEZXZTZXJ2ZXJXb3JrZXIvV2VicGFja0RldlNlcnZlcldvcmtlci50cyJdLCJuYW1lcyI6WyJ3ZWJwYWNrQ29uZmlnRmlsZSIsInByb2Nlc3MiLCJlbnYiLCJ3ZWJwYWNrV29ya2luZ0RpcmVjdG9yeSIsIndlYnBhY2tQb3J0IiwidW5kZWZpbmVkIiwiRXJyb3IiLCJwb3J0IiwicGFyc2VJbnQiLCJ3ZWJwYWNrQ29uZmlnRW52IiwiSlNPTiIsInBhcnNlIiwic2VuZCIsImNoZGlyIiwiZW5naW5lV2VicGFjayIsInJlcXVpcmUiLCJwYXRoIiwiam9pbiIsImN3ZCIsIkVuZ2luZVdlYnBhY2tEZXZTZXJ2ZXIiLCJkZXZTZXJ2ZXJWZXJzaW9uIiwiZ2V0VmVyc2lvbiIsInN0YXJ0c1dpdGgiLCJjb25maWdzIiwiY29tcGlsZXIiLCJzZXJ2ZXIiLCJkaXNhYmxlSG9zdENoZWNrIiwibGlzdGVuIiwibWVzc2FnZSIsImFsbG93ZWRIb3N0cyIsInN0YXJ0Q2FsbGJhY2siLCJwYWNrYWdlRGlyIiwicGFja2FnZUpzb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7QUFDQTs7OztBQUZBO0FBT0EsTUFBTUEsaUJBQWlCLEdBQUdDLE9BQU8sQ0FBQ0MsR0FBUixDQUFZRixpQkFBdEM7QUFDQSxNQUFNRyx1QkFBdUIsR0FBR0YsT0FBTyxDQUFDQyxHQUFSLENBQVlDLHVCQUE1Qzs7QUFDQSxJQUFJRixPQUFPLENBQUNDLEdBQVIsQ0FBWUUsV0FBWixJQUEyQkMsU0FBL0IsRUFBMEM7QUFDdEMsUUFBTSxJQUFJQyxLQUFKLENBQVUsNEJBQVYsQ0FBTjtBQUNIOztBQUVELE1BQU1DLElBQUksR0FBR0MsUUFBUSxDQUFDUCxPQUFPLENBQUNDLEdBQVIsQ0FBWUUsV0FBYixFQUEwQixFQUExQixDQUFyQixD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QUVDLFdBQVcsQ0FBQyxTQUFELENBQVksRUFBakM7QUFDSCIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlIG5vLXZhci1yZXF1aXJlcyBuby11bnNhZmUtYW55XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSBcImZzXCI7XG5cbmltcG9ydCB7IE11bHRpQ29tcGlsZXIgfSBmcm9tIFwid2VicGFja1wiO1xuaW1wb3J0IFdlYnBhY2tEZXZTZXJ2ZXIgZnJvbSBcIndlYnBhY2stZGV2LXNlcnZlclwiO1xuXG5jb25zdCB3ZWJwYWNrQ29uZmlnRmlsZSA9IHByb2Nlc3MuZW52LndlYnBhY2tDb25maWdGaWxlO1xuY29uc3Qgd2VicGFja1dvcmtpbmdEaXJlY3RvcnkgPSBwcm9jZXNzLmVudi53ZWJwYWNrV29ya2luZ0RpcmVjdG9yeTtcbmlmIChwcm9jZXNzLmVudi53ZWJwYWNrUG9ydCA9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTaG91bGQgc3BlY2lmeSB3ZWJwYWNrUG9ydFwiKTtcbn1cblxuY29uc3QgcG9ydCA9IHBhcnNlSW50KHByb2Nlc3MuZW52LndlYnBhY2tQb3J0LCAxMCk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuY29uc3Qgd2VicGFja0NvbmZpZ0VudjogYW55ID0gSlNPTi5wYXJzZShwcm9jZXNzLmVudi53ZWJwYWNrQ29uZmlnRW52IHx8IFwie31cIik7XG5cbmlmIChwcm9jZXNzLnNlbmQgPT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiU2hvdWxkIGNhbGwgdmlhIG5vZGUgZm9ya1wiKTtcbn1cblxuaWYgKHdlYnBhY2tXb3JraW5nRGlyZWN0b3J5ID09IHVuZGVmaW5lZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlNwZWNpZnkgd2VicGFja1dvcmtpbmdEaXJlY3RvcnlcIik7XG59XG5cbmlmICh3ZWJwYWNrQ29uZmlnRmlsZSA9PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJTcGVjaWZ5IHdlYnBhY2tDb25maWdGaWxlXCIpO1xufVxuXG5wcm9jZXNzLmNoZGlyKHdlYnBhY2tXb3JraW5nRGlyZWN0b3J5KTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbmNvbnN0IGVuZ2luZVdlYnBhY2sgPSByZXF1aXJlKHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcIm5vZGVfbW9kdWxlc1wiLCBcIndlYnBhY2tcIikpO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbmNvbnN0IEVuZ2luZVdlYnBhY2tEZXZTZXJ2ZXI6IHR5cGVvZiBXZWJwYWNrRGV2U2VydmVyID0gcmVxdWlyZShwYXRoLmpvaW4oXG4gICAgcHJvY2Vzcy5jd2QoKSxcbiAgICBcIm5vZGVfbW9kdWxlc1wiLFxuICAgIFwid2VicGFjay1kZXYtc2VydmVyXCJcbikpO1xuY29uc3QgZGV2U2VydmVyVmVyc2lvbiA9IGdldFZlcnNpb24ocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwibm9kZV9tb2R1bGVzXCIsIFwid2VicGFjay1kZXYtc2VydmVyXCIpKTtcbmlmIChkZXZTZXJ2ZXJWZXJzaW9uLnN0YXJ0c1dpdGgoXCIzXCIpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBjb25maWdzID0gcmVxdWlyZShwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgd2VicGFja0NvbmZpZ0ZpbGUpKSh3ZWJwYWNrQ29uZmlnRW52KTtcbiAgICBjb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IGVuZ2luZVdlYnBhY2soY29uZmlncyk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHNlcnZlcjogV2VicGFja0RldlNlcnZlciA9IG5ldyBFbmdpbmVXZWJwYWNrRGV2U2VydmVyKGNvbXBpbGVyLCB7XG4gICAgICAgIHBvcnQ6IHBvcnQsXG4gICAgICAgIGRpc2FibGVIb3N0Q2hlY2s6IHRydWUsXG4gICAgfSk7XG4gICAgc2VydmVyLmxpc3Rlbihwb3J0KTtcbiAgICBwcm9jZXNzLnNlbmQoeyBtZXNzYWdlOiBcIlN0YXJ0ZWRcIiB9KTtcbn0gZWxzZSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBjb25maWdzID0gcmVxdWlyZShwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgd2VicGFja0NvbmZpZ0ZpbGUpKSh3ZWJwYWNrQ29uZmlnRW52KTtcbiAgICBjb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IGVuZ2luZVdlYnBhY2soY29uZmlncyk7XG4gICAgY29uc3Qgc2VydmVyOiBXZWJwYWNrRGV2U2VydmVyID0gbmV3IEVuZ2luZVdlYnBhY2tEZXZTZXJ2ZXIoXG4gICAgICAgIHtcbiAgICAgICAgICAgIHBvcnQ6IHBvcnQsXG4gICAgICAgICAgICBhbGxvd2VkSG9zdHM6IFwiYWxsXCIsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBpbGVyXG4gICAgKTtcbiAgICBzZXJ2ZXIuc3RhcnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcHJvY2Vzcy5zZW5kKHsgbWVzc2FnZTogXCJTdGFydGVkXCIgfSk7XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJzaW9uKHBhY2thZ2VEaXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocGFja2FnZURpciwgXCJwYWNrYWdlLmpzb25cIiksIFwidXRmOFwiKSk7XG4gICAgcmV0dXJuIGAke3BhY2thZ2VKc29uW1widmVyc2lvblwiXX1gO1xufVxuIl19
|
|
@@ -187,15 +187,18 @@ class WebpackVirtualWatchFileSystemWatcher {
|
|
|
187
187
|
this.paused = true;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
|
|
191
|
-
return this.
|
|
190
|
+
getContextTimeInfoEntries() {
|
|
191
|
+
return this.getFileTimeInfoEntries();
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
|
|
194
|
+
getFileTimeInfoEntries() {
|
|
195
195
|
const times = new Map();
|
|
196
196
|
|
|
197
197
|
for (const file of this.files) {
|
|
198
|
-
times.set(file,
|
|
198
|
+
times.set(file, {
|
|
199
|
+
timestamp: this.virtualFs.statSync(file).mtimeMs,
|
|
200
|
+
safeTime: this.virtualFs.statSync(file).mtimeMs
|
|
201
|
+
});
|
|
199
202
|
}
|
|
200
203
|
|
|
201
204
|
return times;
|
|
@@ -206,10 +209,10 @@ class WebpackVirtualWatchFileSystemWatcher {
|
|
|
206
209
|
const files = filePaths.filter(filePath => this.files.includes(filePath)).sort();
|
|
207
210
|
const dirs = filePaths.filter(filePath => this.dirs.includes(filePath)).sort();
|
|
208
211
|
const missing = filePaths.filter(filePath => this.missing.includes(filePath)).sort();
|
|
209
|
-
const times = this.
|
|
212
|
+
const times = this.getFileTimeInfoEntries(); // @ts-ignore
|
|
210
213
|
|
|
211
214
|
this.callback(undefined, files, dirs, missing, times, times, new Set());
|
|
212
215
|
}
|
|
213
216
|
|
|
214
217
|
}
|
|
215
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL1dlYnBhY2tJbk1lbW9yeVV0aWxzL1dlYnBhY2tIeWJyaWRGaWxlU3lzdGVtLnRzIl0sIm5hbWVzIjpbIldlYnBhY2tIeWJyaWRGaWxlU3lzdGVtIiwiY29uc3RydWN0b3IiLCJwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5IiwiaW5uZXJJbnB1dEZpbGVTeXN0ZW0iLCJ2aXJ0dWFsRnMiLCJ3YXRjaGVycyIsInZpcnR1YWxWb2x1bWUiLCJWb2x1bWUiLCJmcm9tSlNPTiIsInNldElubmVySW5wdXRGaWxlU3lzdGVtIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJyZWFkRmlsZSIsImZpbGVuYW1lIiwib3B0aW9ucyIsImNhbGxiYWNrIiwic3RhcnRzV2l0aCIsInJlYWRGaWxlU3luYyIsInJlYWRkaXIiLCJkaXJQYXRoIiwicmVhZGRpclN5bmMiLCJyZWFkbGluayIsInJlYWRsaW5rU3luYyIsImxpbmtQYXRoIiwic3RhdCIsImZzUGF0aCIsInN0YXRTeW5jIiwid3JpdGVCYXRjaCIsImZpbGVCYXRjaCIsImZpbGVQYXRoIiwiT2JqZWN0Iiwia2V5cyIsIm1rZGlycFN5bmMiLCJwYXRoIiwicGFyc2UiLCJkaXIiLCJ3cml0ZUZpbGVTeW5jIiwiZW1pdENoYW5nZXMiLCJ3YXRjaCIsImZpbGVzIiwiZGlycyIsIm1pc3NpbmciLCJzdGFydFRpbWUiLCJjYWxsYmFja1VuZGVsYXllZCIsInJlc3VsdCIsIldlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciIsInZhbHVlcyIsImZpbHRlciIsIngiLCJwdXNoIiwid2F0Y2hlciIsImNsb3NlZCIsInBhdXNlZCIsImZpbGVQYXRocyIsImNoYW5nZXMiLCJTZXQiLCJEYXRlIiwibm93IiwiYWRkIiwiZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzIiwiY2xvc2UiLCJwYXVzZSIsImdldENvbnRleHRUaW1lc3RhbXBzIiwiZ2V0RmlsZVRpbWVzdGFtcHMiLCJ0aW1lcyIsIk1hcCIsImZpbGUiLCJzZXQiLCJtdGltZU1zIiwiQXJyYXkiLCJmcm9tIiwiaW5jbHVkZXMiLCJzb3J0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBRUE7Ozs7OztBQUpBO0FBa0JPLE1BQU1BLHVCQUFOLENBQXlGO0FBTXJGQyxFQUFBQSxXQUFXLENBQUNDLHNCQUFELEVBQWlDO0FBQUEsU0FMbENBLHNCQUtrQztBQUFBLFNBSjNDQyxvQkFJMkM7QUFBQSxTQUhsQ0MsU0FHa0M7QUFBQSxTQUZsQ0MsUUFFa0MsR0FGaUIsRUFFakI7QUFDL0MsU0FBS0gsc0JBQUwsR0FBOEJBLHNCQUE5Qjs7QUFDQSxVQUFNSSxhQUFhLEdBQUdDLGNBQU9DLFFBQVAsQ0FBZ0IsRUFBaEIsQ0FBdEI7O0FBQ0EsU0FBS0osU0FBTCxHQUFpQiwrQkFBbUJFLGFBQW5CLENBQWpCO0FBQ0g7O0FBRU1HLEVBQUFBLHVCQUF1QixDQUFDTixvQkFBRCxFQUErQztBQUN6RSxRQUFJLEtBQUtBLG9CQUFMLElBQTZCTyxTQUFqQyxFQUE0QztBQUN4QyxZQUFNLElBQUlDLEtBQUosQ0FBVSxvQ0FBVixDQUFOO0FBQ0g7O0FBQ0QsU0FBS1Isb0JBQUwsR0FBNEJBLG9CQUE1QjtBQUNIOztBQWFNUyxFQUFBQSxRQUFRLENBQ1hDLFFBRFcsRUFFWEMsT0FGVyxFQU9YQyxRQVBXLEVBVVA7QUFDSixRQUFJRixRQUFRLENBQUNHLFVBQVQsQ0FBb0IsS0FBS2Qsc0JBQXpCLENBQUosRUFBc0Q7QUFDbEQ7QUFDQSxXQUFLRSxTQUFMLENBQWVRLFFBQWYsQ0FBd0JDLFFBQXhCLEVBQWtDQyxPQUFsQyxFQUEyQ0MsUUFBM0M7QUFDSCxLQUhELE1BR087QUFDSDtBQUNBLFdBQUtaLG9CQUFMLENBQTBCUyxRQUExQixDQUFtQ0MsUUFBbkMsRUFBNkNDLE9BQTdDLEVBQXNEQyxRQUF0RDtBQUNIO0FBQ0o7O0FBSU1FLEVBQUFBLFlBQVksQ0FD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Q0FBN0IsRUFBOEQyQyxJQUE5RCxFQUFoQjtBQUNBLFVBQU1SLEtBQUssR0FBRyxLQUFLRCxpQkFBTCxFQUFkLENBTHNELENBTXREOztBQUNBLFNBQUtoRCxRQUFMLENBQWNMLFNBQWQsRUFBeUI2QixLQUF6QixFQUFnQ0MsSUFBaEMsRUFBc0NDLE9BQXRDLEVBQStDdUIsS0FBL0MsRUFBc0RBLEtBQXRELEVBQTZELElBQUlULEdBQUosRUFBN0Q7QUFDSDs7QUF0RXlFIiwic291cmNlc0NvbnRlbnQiOlsiLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXG5pbXBvcnQgeyBTdGF0cyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIElGcywgVm9sdW1lIH0gZnJvbSBcIm1lbWZzXCI7XG5pbXBvcnQgeyBURW5jb2RpbmdFeHRlbmRlZCB9IGZyb20gXCJtZW1mcy9saWIvZW5jb2RpbmdcIjtcblxuaW1wb3J0IHsgSUZpbGVXcml0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vQnVpbGRUYXNrcy9Gb3JtL0dlbmVyYXRlRm9ybVwiO1xuXG5pbXBvcnQgeyBJSW5wdXRGaWxlU3lzdGVtIH0gZnJvbSBcIi4vSUlucHV0RmlsZVN5c3RlbVwiO1xuaW1wb3J0IHtcbiAgICBJV2F0Y2hGaWxlU3lzdGVtLFxuICAgIElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyLFxuICAgIFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrLFxuICAgIFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrVW5kZWxheWVkLFxuICAgIFdhdGNoRmlsZVN5c3RlbVdhdGNoT3B0aW9ucyxcbn0gZnJvbSBcIi4vSVdhdGNoRmlsZVN5c3RlbVwiO1xuXG5leHBvcnQgY2xhc3MgV2VicGFja0h5YnJpZEZpbGVTeXN0ZW0gaW1wbGVtZW50cyBJRmlsZVdyaXRlciwgSUlucHV0RmlsZVN5c3RlbSwgSVdhdGNoRmlsZVN5c3RlbSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBpbm5lcklucHV0RmlsZVN5c3RlbSE6IElJbnB1dEZpbGVTeXN0ZW07XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aXJ0dWFsRnM6IElGcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdhdGNoZXJzOiBXZWJwYWNrVmlydHVhbFdhdGNoRmlsZVN5c3RlbVdhdGNoZXJbXSA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk6IHN0cmluZykge1xuICAgICAgICB0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkgPSBwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5O1xuICAgICAgICBjb25zdCB2aXJ0dWFsVm9sdW1lID0gVm9sdW1lLmZyb21KU09OKHt9KTtcbiAgICAgICAgdGhpcy52aXJ0dWFsRnMgPSBjcmVhdGVGc0Zyb21Wb2x1bWUodmlydHVhbFZvbHVtZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldElubmVySW5wdXRGaWxlU3lzdGVtKGlubmVySW5wdXRGaWxlU3lzdGVtOiBJSW5wdXRGaWxlU3lzdGVtKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IHNldCBpbm5lciBmaWxlIHN5c3RlbSB0d2ljZVwiKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtID0gaW5uZXJJbnB1dEZpbGVTeXN0ZW07XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRGaWxlKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiBzdHJpbmcgfCB7IGVuY29kaW5nOiBzdHJpbmc7IGZsYWc/OiBzdHJpbmcgfSxcbiAgICAgICAgY2FsbGJhY2s6IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogc3RyaW5nKSA9PiB2b2lkXG4gICAgKTogdm9pZDtcbiAgICBwdWJsaWMgcmVhZEZpbGUoXG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IHsgZmxhZz86IHN0cmluZyB9LFxuICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWRcbiAgICApOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShmaWxlbmFtZTogc3RyaW5nLCBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWQpOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczpcbiAgICAgICAgICAgIHwgc3RyaW5nXG4gICAgICAgICAgICB8IHsgZW5jb2Rpbmc6IFRFbmNvZGluZ0V4dGVuZGVkOyBmbGFnPzogc3RyaW5nIH1cbiAgICAgICAgICAgIHwgeyBmbGFnPzogc3RyaW5nIH1cbiAgICAgICAgICAgIHwgKChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogQnVmZmVyKSA9PiB2b2lkKSxcbiAgICAgICAgY2FsbGJhY2s/OlxuICAgICAgICAgICAgfCAoKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBzdHJpbmcpID0+IHZvaWQpXG4gICAgICAgICAgICB8ICgoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZClcbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKGZpbGVuYW1lLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZEZpbGUoZmlsZW5hbWUsIG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZEZpbGUoZmlsZW5hbWUsIG9wdGlvbnMsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkRmlsZVN5bmMoZmlsZW5hbWU6IHN0cmluZywgb3B0aW9uczogc3RyaW5nIHwgeyBlbmNvZGluZzogc3RyaW5nOyBmbGFnPzogc3RyaW5nIH0pOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zPzogeyBmbGFnPzogc3RyaW5nIH0pOiBCdWZmZXI7XG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9ucz86IHN0cmluZyB8IHsgZW5jb2Rpbmc6IHN0cmluZzsgZmxhZz86IHN0cmluZyB9IHwgeyBmbGFnPzogc3RyaW5nIH1cbiAgICApOiBzdHJpbmcgfCBCdWZmZXIge1xuICAgICAgICBpZiAoZmlsZW5hbWUuc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRGaWxlU3luYyhmaWxlbmFtZSwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGRpcihkaXJQYXRoOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyOiBFcnJvciwgZmlsZXM6IHN0cmluZ1tdKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZGRpcihkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRkaXIoZGlyUGF0aCwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRkaXJTeW5jKGRpclBhdGg6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZGRpclN5bmMoZGlyUGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkZGlyU3luYyhkaXJQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHJlYWRsaW5rKGRpclBhdGg6IHN0cmluZywgY2FsbGJhY2s/OiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGxpbmtTdHJpbmc6IHN0cmluZykgPT4gYW55KTogdm9pZCB7XG4gICAgICAgIGlmIChkaXJQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMucmVhZGxpbmsoZGlyUGF0aCwgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkbGluayhkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGxpbmtTeW5jKGxpbmtQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAobGlua1BhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMucmVhZGxpbmtTeW5jKGxpbmtQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRsaW5rU3luYyhsaW5rUGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBzdGF0KGZzUGF0aDogc3RyaW5nLCBjYWxsYmFjaz86IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgc3RhdHM6IFN0YXRzKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZzUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEZzLnN0YXQoZnNQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnN0YXQoZnNQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdFN5bmMoZnNQYXRoOiBzdHJpbmcpOiBTdGF0cyB7XG4gICAgICAgIGlmIChmc1BhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICByZXR1cm4gdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZnNQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnN0YXRTeW5jKGZzUGF0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgd3JpdGVCYXRjaChmaWxlQmF0Y2g6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgT2JqZWN0LmtleXMoZmlsZUJhdGNoKSkge1xuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMubWtkaXJwU3luYyhwYXRoLnBhcnNlKGZpbGVQYXRoKS5kaXIpO1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSDQotCw0Lwg0LHQsNCzINCyINGC0LDQudC/0LjQvdCz0LDRhVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMud3JpdGVGaWxlU3luYyhmaWxlUGF0aCwgZmlsZUJhdGNoW2ZpbGVQYXRoXSwgXCJ1dGY4XCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZXMoZmlsZUJhdGNoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2F0Y2goXG4gICAgICAgIGZpbGVzOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBkaXJzOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBtaXNzaW5nOiBJTGF6eVNldDxzdHJpbmc+LFxuICAgICAgICBzdGFydFRpbWU6IG51bWJlcixcbiAgICAgICAgb3B0aW9uczogV2F0Y2hGaWxlU3lzdGVtV2F0Y2hPcHRpb25zLFxuICAgICAgICBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgICAgIGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZFxuICAgICk6IElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gbmV3IFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlcihcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEZzLFxuICAgICAgICAgICAgWy4uLmZpbGVzLnZhbHVlcygpXS5maWx0ZXIoeCA9PiB4LnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSksXG4gICAgICAgICAgICBbLi4uZGlycy52YWx1ZXMoKV0uZmlsdGVyKHggPT4geC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpLFxuICAgICAgICAgICAgWy4uLm1pc3NpbmcudmFsdWVzKCldLmZpbHRlcih4ID0+IHguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSxcbiAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgY2FsbGJhY2tVbmRlbGF5ZWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy53YXRjaGVycy5wdXNoKHJlc3VsdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbWl0Q2hhbmdlcyhmaWxlQmF0Y2g6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9KTogdm9pZCB7XG4gICAgICAgIGZvciAoY29uc3Qgd2F0Y2hlciBvZiB0aGlzLndhdGNoZXJzKSB7XG4gICAgICAgICAgICB3YXRjaGVyLmVtaXRDaGFuZ2VzKE9iamVjdC5rZXlzKGZpbGVCYXRjaCkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jbGFzcyBXZWJwYWNrVmlydHVhbFdhdGNoRmlsZVN5c3RlbVdhdGNoZXIgaW1wbGVtZW50cyBJV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aXJ0dWFsRnM6IElGcztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVzOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpcnM6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWlzc2luZzogc3RyaW5nW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2s7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWxsYmFja1VuZGVsYXllZDogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWQ7XG5cbiAgICBwcml2YXRlIGNsb3NlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgcGF1c2VkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHZpcnR1YWxGczogSUZzLFxuICAgICAgICBmaWxlczogc3RyaW5nW10sXG4gICAgICAgIGRpcnM6IHN0cmluZ1tdLFxuICAgICAgICBtaXNzaW5nOiBzdHJpbmdbXSxcbiAgICAgICAgY2FsbGJhY2s6IFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrLFxuICAgICAgICBjYWxsYmFja1VuZGVsYXllZDogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWRcbiAgICApIHtcbiAgICAgICAgdGhpcy52aXJ0dWFsRnMgPSB2aXJ0dWFsRnM7XG4gICAgICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcbiAgICAgICAgdGhpcy5kaXJzID0gZGlycztcbiAgICAgICAgdGhpcy5taXNzaW5nID0gbWlzc2luZztcbiAgICAgICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICB0aGlzLmNhbGxiYWNrVW5kZWxheWVkID0gY2FsbGJhY2tVbmRlbGF5ZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGVtaXRDaGFuZ2VzKGZpbGVQYXRoczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGF1c2VkIHx8IHRoaXMuY2xvc2VkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2hhbmdlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCk7XG4gICAgICAgIGlmIChmaWxlUGF0aHNbMF0gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrVW5kZWxheWVkKGZpbGVQYXRoc1swXSwgRGF0ZS5ub3coKSk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBmaWxlUGF0aHMpIHtcbiAgICAgICAgICAgIGNoYW5nZXMuYWRkKGZpbGVQYXRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzKGNoYW5nZXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBwYXVzZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYXVzZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb250ZXh0VGltZXN0YW1wcygpOiBNYXA8c3RyaW5nLCBudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsZVRpbWVzdGFtcHMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmlsZVRpbWVzdGFtcHMoKTogTWFwPHN0cmluZywgbnVtYmVyPiB7XG4gICAgICAgIGNvbnN0IHRpbWVzOiBNYXA8c3RyaW5nLCBudW1iZXI+ID0gbmV3IE1hcCgpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdGhpcy5maWxlcykge1xuICAgICAgICAgICAgdGltZXMuc2V0KGZpbGUsIHRoaXMudmlydHVhbEZzLnN0YXRTeW5jKGZpbGUpLm10aW1lTXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aW1lcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRBZ2dyZWdhdGVkQ2hhbmdlcyhjaGFuZ2VzOiBTZXQ8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlUGF0aHMgPSBBcnJheS5mcm9tKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCBmaWxlcyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5maWxlcy5pbmNsdWRlcyhmaWxlUGF0aCkpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgZGlycyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5kaXJzLmluY2x1ZGVzKGZpbGVQYXRoKSkuc29ydCgpO1xuICAgICAgICBjb25zdCBtaXNzaW5nID0gZmlsZVBhdGhzLmZpbHRlcihmaWxlUGF0aCA9PiB0aGlzLm1pc3NpbmcuaW5jbHVkZXMoZmlsZVBhdGgpKS5zb3J0KCk7XG4gICAgICAgIGNvbnN0IHRpbWVzID0gdGhpcy5nZXRGaWxlVGltZXN0YW1wcygpO1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHRoaXMuY2FsbGJhY2sodW5kZWZpbmVkLCBmaWxlcywgZGlycywgbWlzc2luZywgdGltZXMsIHRpbWVzLCBuZXcgU2V0KCkpO1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIElMYXp5U2V0PFQ+IHtcbiAgICB2YWx1ZXMoKTogSXRlcmFibGU8VD47XG59XG4iXX0=
|
|
218
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9CdWlsZFNlcnZlci9SZXNvdXJjZXNDb250cm9sbGVycy9EZXZTZXJ2ZXJzL1dlYnBhY2tJbk1lbW9yeVV0aWxzL1dlYnBhY2tIeWJyaWRGaWxlU3lzdGVtLnRzIl0sIm5hbWVzIjpbIldlYnBhY2tIeWJyaWRGaWxlU3lzdGVtIiwiY29uc3RydWN0b3IiLCJwYXRoVG9WaXJ0dWFsRGlyZWN0b3J5IiwiaW5uZXJJbnB1dEZpbGVTeXN0ZW0iLCJ2aXJ0dWFsRnMiLCJ3YXRjaGVycyIsInZpcnR1YWxWb2x1bWUiLCJWb2x1bWUiLCJmcm9tSlNPTiIsInNldElubmVySW5wdXRGaWxlU3lzdGVtIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJyZWFkRmlsZSIsImZpbGVuYW1lIiwib3B0aW9ucyIsImNhbGxiYWNrIiwic3RhcnRzV2l0aCIsInJlYWRGaWxlU3luYyIsInJlYWRkaXIiLCJkaXJQYXRoIiwicmVhZGRpclN5bmMiLCJyZWFkbGluayIsInJlYWRsaW5rU3luYyIsImxpbmtQYXRoIiwic3RhdCIsImZzUGF0aCIsInN0YXRTeW5jIiwid3JpdGVCYXRjaCIsImZpbGVCYXRjaCIsImZpbGVQYXRoIiwiT2JqZWN0Iiwia2V5cyIsIm1rZGlycFN5bmMiLCJwYXRoIiwicGFyc2UiLCJkaXIiLCJ3cml0ZUZpbGVTeW5jIiwiZW1pdENoYW5nZXMiLCJ3YXRjaCIsImZpbGVzIiwiZGlycyIsIm1pc3NpbmciLCJzdGFydFRpbWUiLCJjYWxsYmFja1VuZGVsYXllZCIsInJlc3VsdCIsIldlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciIsInZhbHVlcyIsImZpbHRlciIsIngiLCJwdXNoIiwid2F0Y2hlciIsImNsb3NlZCIsInBhdXNlZCIsImZpbGVQYXRocyIsImNoYW5nZXMiLCJTZXQiLCJEYXRlIiwibm93IiwiYWRkIiwiZW1pdEFnZ3JlZ2F0ZWRDaGFuZ2VzIiwiY2xvc2UiLCJwYXVzZSIsImdldENvbnRleHRUaW1lSW5mb0VudHJpZXMiLCJnZXRGaWxlVGltZUluZm9FbnRyaWVzIiwidGltZXMiLCJNYXAiLCJmaWxlIiwic2V0IiwidGltZXN0YW1wIiwibXRpbWVNcyIsInNhZmVUaW1lIiwiQXJyYXkiLCJmcm9tIiwiaW5jbHVkZXMiLCJzb3J0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBRUE7Ozs7OztBQUpBO0FBbUJPLE1BQU1BLHVCQUFOLENBQXlGO0FBTXJGQyxFQUFBQSxXQUFXLENBQUNDLHNCQUFELEVBQWlDO0FBQUEsU0FMbENBLHNCQUtrQztBQUFBLFNBSjNDQyxvQkFJMkM7QUFBQSxTQUhsQ0MsU0FHa0M7QUFBQSxTQUZsQ0MsUUFFa0MsR0FGaUIsRUFFakI7QUFDL0MsU0FBS0gsc0JBQUwsR0FBOEJBLHNCQUE5Qjs7QUFDQSxVQUFNSSxhQUFhLEdBQUdDLGNBQU9DLFFBQVAsQ0FBZ0IsRUFBaEIsQ0FBdEI7O0FBQ0EsU0FBS0osU0FBTCxHQUFpQiwrQkFBbUJFLGFBQW5CLENBQWpCO0FBQ0g7O0FBRU1HLEVBQUFBLHVCQUF1QixDQUFDTixvQkFBRCxFQUErQztBQUN6RSxRQUFJLEtBQUtBLG9CQUFMLElBQTZCTyxTQUFqQyxFQUE0QztBQUN4QyxZQUFNLElBQUlDLEtBQUosQ0FBVSxvQ0FBVixDQUFOO0FBQ0g7O0FBQ0QsU0FBS1Isb0JBQUwsR0FBNEJBLG9CQUE1QjtBQUNIOztBQWFNUyxFQUFBQSxRQUFRLENBQ1hDLFFBRFcsRUFFWEMsT0FGVyxFQU9YQyxRQVBXLEVBVVA7QUFDSixRQUFJRixRQUFRLENBQUNHLFVBQVQsQ0FBb0IsS0FBS2Qsc0JBQXpCLENBQUosRUFBc0Q7QUFDbEQ7QUFDQSxXQUFLRSxTQUFMLENBQWVRLFFBQWYsQ0FBd0JDLFFBQXhCLEVBQWtDQyxPQUFsQyxFQUEyQ0MsUUFBM0M7QUFDSCxLQUhELE1BR087QUFDSDtBQUNBLFdBQUtaLG9CQUFMLENBQTBCUyxRQUExQixDQUFtQ0MsUUFBbkMsRUFBNkNDLE9BQTdDLEVBQXNEQyxRQUF0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LENBQW1CNUMsUUFBbkIsQ0FBN0IsRUFBMkQ2QyxJQUEzRCxFQUFiO0FBQ0EsVUFBTWpDLE9BQU8sR0FBR1ksU0FBUyxDQUFDTixNQUFWLENBQWlCbEIsUUFBUSxJQUFJLEtBQUtZLE9BQUwsQ0FBYWdDLFFBQWIsQ0FBc0I1QyxRQUF0QixDQUE3QixFQUE4RDZDLElBQTlELEVBQWhCO0FBQ0EsVUFBTVYsS0FBSyxHQUFHLEtBQUtELHNCQUFMLEVBQWQsQ0FMc0QsQ0FNdEQ7O0FBQ0EsU0FBS2hELFFBQUwsQ0FBY0wsU0FBZCxFQUF5QjZCLEtBQXpCLEVBQWdDQyxJQUFoQyxFQUFzQ0MsT0FBdEMsRUFBK0N1QixLQUEvQyxFQUFzREEsS0FBdEQsRUFBNkQsSUFBSVQsR0FBSixFQUE3RDtBQUNIOztBQXpFeUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cbmltcG9ydCB7IFN0YXRzIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IGNyZWF0ZUZzRnJvbVZvbHVtZSwgSUZzLCBWb2x1bWUgfSBmcm9tIFwibWVtZnNcIjtcbmltcG9ydCB7IFRFbmNvZGluZ0V4dGVuZGVkIH0gZnJvbSBcIm1lbWZzL2xpYi9lbmNvZGluZ1wiO1xuXG5pbXBvcnQgeyBJRmlsZVdyaXRlciB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9CdWlsZFRhc2tzL0Zvcm0vR2VuZXJhdGVGb3JtXCI7XG5cbmltcG9ydCB7IElJbnB1dEZpbGVTeXN0ZW0gfSBmcm9tIFwiLi9JSW5wdXRGaWxlU3lzdGVtXCI7XG5pbXBvcnQge1xuICAgIEZpbGVTeXN0ZW1UaW1lSW5mb0VudHJ5LFxuICAgIElXYXRjaEZpbGVTeXN0ZW0sXG4gICAgSVdhdGNoRmlsZVN5c3RlbVdhdGNoZXIsXG4gICAgV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2tVbmRlbGF5ZWQsXG4gICAgV2F0Y2hGaWxlU3lzdGVtV2F0Y2hPcHRpb25zLFxufSBmcm9tIFwiLi9JV2F0Y2hGaWxlU3lzdGVtXCI7XG5cbmV4cG9ydCBjbGFzcyBXZWJwYWNrSHlicmlkRmlsZVN5c3RlbSBpbXBsZW1lbnRzIElGaWxlV3JpdGVyLCBJSW5wdXRGaWxlU3lzdGVtLCBJV2F0Y2hGaWxlU3lzdGVtIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk6IHN0cmluZztcbiAgICBwcml2YXRlIGlubmVySW5wdXRGaWxlU3lzdGVtITogSUlucHV0RmlsZVN5c3RlbTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpcnR1YWxGczogSUZzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgd2F0Y2hlcnM6IFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlcltdID0gW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGF0aFRvVmlydHVhbERpcmVjdG9yeTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSA9IHBhdGhUb1ZpcnR1YWxEaXJlY3Rvcnk7XG4gICAgICAgIGNvbnN0IHZpcnR1YWxWb2x1bWUgPSBWb2x1bWUuZnJvbUpTT04oe30pO1xuICAgICAgICB0aGlzLnZpcnR1YWxGcyA9IGNyZWF0ZUZzRnJvbVZvbHVtZSh2aXJ0dWFsVm9sdW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0SW5uZXJJbnB1dEZpbGVTeXN0ZW0oaW5uZXJJbnB1dEZpbGVTeXN0ZW06IElJbnB1dEZpbGVTeXN0ZW0pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0gIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3Qgc2V0IGlubmVyIGZpbGUgc3lzdGVtIHR3aWNlXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0gPSBpbm5lcklucHV0RmlsZVN5c3RlbTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZEZpbGUoXG4gICAgICAgIGZpbGVuYW1lOiBzdHJpbmcsXG4gICAgICAgIG9wdGlvbnM6IHN0cmluZyB8IHsgZW5jb2Rpbmc6IHN0cmluZzsgZmxhZz86IHN0cmluZyB9LFxuICAgICAgICBjYWxsYmFjazogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBzdHJpbmcpID0+IHZvaWRcbiAgICApOiB2b2lkO1xuICAgIHB1YmxpYyByZWFkRmlsZShcbiAgICAgICAgZmlsZW5hbWU6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczogeyBmbGFnPzogc3RyaW5nIH0sXG4gICAgICAgIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZFxuICAgICk6IHZvaWQ7XG4gICAgcHVibGljIHJlYWRGaWxlKGZpbGVuYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IEJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQ7XG4gICAgcHVibGljIHJlYWRGaWxlKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOlxuICAgICAgICAgICAgfCBzdHJpbmdcbiAgICAgICAgICAgIHwgeyBlbmNvZGluZzogVEVuY29kaW5nRXh0ZW5kZWQ7IGZsYWc/OiBzdHJpbmcgfVxuICAgICAgICAgICAgfCB7IGZsYWc/OiBzdHJpbmcgfVxuICAgICAgICAgICAgfCAoKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBkYXRhOiBCdWZmZXIpID0+IHZvaWQpLFxuICAgICAgICBjYWxsYmFjaz86XG4gICAgICAgICAgICB8ICgoZXJyOiBOb2RlSlMuRXJybm9FeGNlcHRpb24sIGRhdGE6IHN0cmluZykgPT4gdm9pZClcbiAgICAgICAgICAgIHwgKChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgZGF0YTogQnVmZmVyKSA9PiB2b2lkKVxuICAgICk6IHZvaWQge1xuICAgICAgICBpZiAoZmlsZW5hbWUuc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkRmlsZShmaWxlbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy5pbm5lcklucHV0RmlsZVN5c3RlbS5yZWFkRmlsZShmaWxlbmFtZSwgb3B0aW9ucywgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRGaWxlU3luYyhmaWxlbmFtZTogc3RyaW5nLCBvcHRpb25zOiBzdHJpbmcgfCB7IGVuY29kaW5nOiBzdHJpbmc7IGZsYWc/OiBzdHJpbmcgfSk6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZEZpbGVTeW5jKGZpbGVuYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGZsYWc/OiBzdHJpbmcgfSk6IEJ1ZmZlcjtcbiAgICBwdWJsaWMgcmVhZEZpbGVTeW5jKFxuICAgICAgICBmaWxlbmFtZTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zPzogc3RyaW5nIHwgeyBlbmNvZGluZzogc3RyaW5nOyBmbGFnPzogc3RyaW5nIH0gfCB7IGZsYWc/OiBzdHJpbmcgfVxuICAgICk6IHN0cmluZyB8IEJ1ZmZlciB7XG4gICAgICAgIGlmIChmaWxlbmFtZS5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkRmlsZVN5bmMoZmlsZW5hbWUsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkZGlyKGRpclBhdGg6IHN0cmluZywgY2FsbGJhY2s6IChlcnI6IEVycm9yLCBmaWxlczogc3RyaW5nW10pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkZGlyKGRpclBhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZGRpcihkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVhZGRpclN5bmMoZGlyUGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgICAgICBpZiAoZGlyUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkZGlyU3luYyhkaXJQYXRoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRkaXJTeW5jKGRpclBhdGgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBwdWJsaWMgcmVhZGxpbmsoZGlyUGF0aDogc3RyaW5nLCBjYWxsYmFjaz86IChlcnI6IE5vZGVKUy5FcnJub0V4Y2VwdGlvbiwgbGlua1N0cmluZzogc3RyaW5nKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpclBhdGguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5yZWFkbGluayhkaXJQYXRoLCBjYWxsYmFjayk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgICB0aGlzLmlubmVySW5wdXRGaWxlU3lzdGVtLnJlYWRsaW5rKGRpclBhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZWFkbGlua1N5bmMobGlua1BhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmIChsaW5rUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5yZWFkbGlua1N5bmMobGlua1BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0ucmVhZGxpbmtTeW5jKGxpbmtQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIHN0YXQoZnNQYXRoOiBzdHJpbmcsIGNhbGxiYWNrPzogKGVycjogTm9kZUpTLkVycm5vRXhjZXB0aW9uLCBzdGF0czogU3RhdHMpID0+IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAoZnNQYXRoLnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMuc3RhdChmc1BhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0uc3RhdChmc1BhdGgsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0U3luYyhmc1BhdGg6IHN0cmluZyk6IFN0YXRzIHtcbiAgICAgICAgaWYgKGZzUGF0aC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZpcnR1YWxGcy5zdGF0U3luYyhmc1BhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5uZXJJbnB1dEZpbGVTeXN0ZW0uc3RhdFN5bmMoZnNQYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyB3cml0ZUJhdGNoKGZpbGVCYXRjaDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlUGF0aCBvZiBPYmplY3Qua2V5cyhmaWxlQmF0Y2gpKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy5ta2RpcnBTeW5jKHBhdGgucGFyc2UoZmlsZVBhdGgpLmRpcik7XG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlINCi0LDQvCDQsdCw0LMg0LIg0YLQsNC50L/QuNC90LPQsNGFXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxGcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBmaWxlQmF0Y2hbZmlsZVBhdGhdLCBcInV0ZjhcIik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlcyhmaWxlQmF0Y2gpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3YXRjaChcbiAgICAgICAgZmlsZXM6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIGRpcnM6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIG1pc3Npbmc6IElMYXp5U2V0PHN0cmluZz4sXG4gICAgICAgIHN0YXJ0VGltZTogbnVtYmVyLFxuICAgICAgICBvcHRpb25zOiBXYXRjaEZpbGVTeXN0ZW1XYXRjaE9wdGlvbnMsXG4gICAgICAgIGNhbGxiYWNrOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFjayxcbiAgICAgICAgY2FsbGJhY2tVbmRlbGF5ZWQ6IFdhdGNoRmlsZVN5c3RlbUNhbGxiYWNrVW5kZWxheWVkXG4gICAgKTogSVdhdGNoRmlsZVN5c3RlbVdhdGNoZXIge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBuZXcgV2VicGFja1ZpcnR1YWxXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyKFxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsRnMsXG4gICAgICAgICAgICBbLi4uZmlsZXMudmFsdWVzKCldLmZpbHRlcih4ID0+IHguc3RhcnRzV2l0aCh0aGlzLnBhdGhUb1ZpcnR1YWxEaXJlY3RvcnkpKSxcbiAgICAgICAgICAgIFsuLi5kaXJzLnZhbHVlcygpXS5maWx0ZXIoeCA9PiB4LnN0YXJ0c1dpdGgodGhpcy5wYXRoVG9WaXJ0dWFsRGlyZWN0b3J5KSksXG4gICAgICAgICAgICBbLi4ubWlzc2luZy52YWx1ZXMoKV0uZmlsdGVyKHggPT4geC5zdGFydHNXaXRoKHRoaXMucGF0aFRvVmlydHVhbERpcmVjdG9yeSkpLFxuICAgICAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICAgICBjYWxsYmFja1VuZGVsYXllZFxuICAgICAgICApO1xuICAgICAgICB0aGlzLndhdGNoZXJzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRDaGFuZ2VzKGZpbGVCYXRjaDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgZm9yIChjb25zdCB3YXRjaGVyIG9mIHRoaXMud2F0Y2hlcnMpIHtcbiAgICAgICAgICAgIHdhdGNoZXIuZW1pdENoYW5nZXMoT2JqZWN0LmtleXMoZmlsZUJhdGNoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNsYXNzIFdlYnBhY2tWaXJ0dWFsV2F0Y2hGaWxlU3lzdGVtV2F0Y2hlciBpbXBsZW1lbnRzIElXYXRjaEZpbGVTeXN0ZW1XYXRjaGVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpcnR1YWxGczogSUZzO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsZXM6IHN0cmluZ1tdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlyczogc3RyaW5nW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBtaXNzaW5nOiBzdHJpbmdbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGxiYWNrOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFjaztcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZDtcblxuICAgIHByaXZhdGUgY2xvc2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBwYXVzZWQgPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgdmlydHVhbEZzOiBJRnMsXG4gICAgICAgIGZpbGVzOiBzdHJpbmdbXSxcbiAgICAgICAgZGlyczogc3RyaW5nW10sXG4gICAgICAgIG1pc3Npbmc6IHN0cmluZ1tdLFxuICAgICAgICBjYWxsYmFjazogV2F0Y2hGaWxlU3lzdGVtQ2FsbGJhY2ssXG4gICAgICAgIGNhbGxiYWNrVW5kZWxheWVkOiBXYXRjaEZpbGVTeXN0ZW1DYWxsYmFja1VuZGVsYXllZFxuICAgICkge1xuICAgICAgICB0aGlzLnZpcnR1YWxGcyA9IHZpcnR1YWxGcztcbiAgICAgICAgdGhpcy5maWxlcyA9IGZpbGVzO1xuICAgICAgICB0aGlzLmRpcnMgPSBkaXJzO1xuICAgICAgICB0aGlzLm1pc3NpbmcgPSBtaXNzaW5nO1xuICAgICAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgIHRoaXMuY2FsbGJhY2tVbmRlbGF5ZWQgPSBjYWxsYmFja1VuZGVsYXllZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZW1pdENoYW5nZXMoZmlsZVBhdGhzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYXVzZWQgfHwgdGhpcy5jbG9zZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjaGFuZ2VzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcbiAgICAgICAgaWYgKGZpbGVQYXRoc1swXSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsbGJhY2tVbmRlbGF5ZWQoZmlsZVBhdGhzWzBdLCBEYXRlLm5vdygpKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIGZpbGVQYXRocykge1xuICAgICAgICAgICAgY2hhbmdlcy5hZGQoZmlsZVBhdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbWl0QWdncmVnYXRlZENoYW5nZXMoY2hhbmdlcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHBhdXNlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhdXNlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbnRleHRUaW1lSW5mb0VudHJpZXMoKTogTWFwPHN0cmluZywgRmlsZVN5c3RlbVRpbWVJbmZvRW50cnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RmlsZVRpbWVJbmZvRW50cmllcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaWxlVGltZUluZm9FbnRyaWVzKCk6IE1hcDxzdHJpbmcsIEZpbGVTeXN0ZW1UaW1lSW5mb0VudHJ5PiB7XG4gICAgICAgIGNvbnN0IHRpbWVzOiBNYXA8c3RyaW5nLCBGaWxlU3lzdGVtVGltZUluZm9FbnRyeT4gPSBuZXcgTWFwKCk7XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiB0aGlzLmZpbGVzKSB7XG4gICAgICAgICAgICB0aW1lcy5zZXQoZmlsZSwge1xuICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZmlsZSkubXRpbWVNcyxcbiAgICAgICAgICAgICAgICBzYWZlVGltZTogdGhpcy52aXJ0dWFsRnMuc3RhdFN5bmMoZmlsZSkubXRpbWVNcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aW1lcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXRBZ2dyZWdhdGVkQ2hhbmdlcyhjaGFuZ2VzOiBTZXQ8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWxlUGF0aHMgPSBBcnJheS5mcm9tKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCBmaWxlcyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5maWxlcy5pbmNsdWRlcyhmaWxlUGF0aCkpLnNvcnQoKTtcbiAgICAgICAgY29uc3QgZGlycyA9IGZpbGVQYXRocy5maWx0ZXIoZmlsZVBhdGggPT4gdGhpcy5kaXJzLmluY2x1ZGVzKGZpbGVQYXRoKSkuc29ydCgpO1xuICAgICAgICBjb25zdCBtaXNzaW5nID0gZmlsZVBhdGhzLmZpbHRlcihmaWxlUGF0aCA9PiB0aGlzLm1pc3NpbmcuaW5jbHVkZXMoZmlsZVBhdGgpKS5zb3J0KCk7XG4gICAgICAgIGNvbnN0IHRpbWVzID0gdGhpcy5nZXRGaWxlVGltZUluZm9FbnRyaWVzKCk7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpcy5jYWxsYmFjayh1bmRlZmluZWQsIGZpbGVzLCBkaXJzLCBtaXNzaW5nLCB0aW1lcywgdGltZXMsIG5ldyBTZXQoKSk7XG4gICAgfVxufVxuXG5pbnRlcmZhY2UgSUxhenlTZXQ8VD4ge1xuICAgIHZhbHVlcygpOiBJdGVyYWJsZTxUPjtcbn1cbiJdfQ==
|
|
@@ -44,7 +44,7 @@ let FormsHelperController = (_dec = (0, _Methods.httpGet)("/forms-helper", _Resu
|
|
|
44
44
|
|
|
45
45
|
async setupMiddleware(expressApplication) {
|
|
46
46
|
if (this.options.frontEndDevMode) {
|
|
47
|
-
expressApplication.use(["/forms-helper/*.js", "/forms-helper/*.css", "/forms-helper/*.map"], (0, _httpProxyMiddleware.createProxyMiddleware)({
|
|
47
|
+
expressApplication.use(["/forms-helper/*.js", "/forms-helper/*.css", "/forms-helper/*.map", "/forms-helper/*.ico", "/forms-helper/*.png"], (0, _httpProxyMiddleware.createProxyMiddleware)({
|
|
48
48
|
target: this.options.devServerUrl,
|
|
49
49
|
changeOrigin: true
|
|
50
50
|
}));
|
|
@@ -63,4 +63,4 @@ let FormsHelperController = (_dec = (0, _Methods.httpGet)("/forms-helper", _Resu
|
|
|
63
63
|
|
|
64
64
|
}, (_applyDecoratedDescriptor(_class.prototype, "getRunnerView", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "getRunnerView"), _class.prototype)), _class));
|
|
65
65
|
exports.FormsHelperController = FormsHelperController;
|
|
66
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9DTElDb21tYW5kcy9Gb3Jtc0hlbHBlci9Gb3Jtc0hlbHBlckNvbnRyb2xsZXIudHMiXSwibmFtZXMiOlsiZGVmYXVsdE9wdGlvbnMiLCJmcm9udEVuZERldk1vZGUiLCJkZXZTZXJ2ZXJVcmwiLCJGb3Jtc0hlbHBlckNvbnRyb2xsZXIiLCJodHRwUmV0dXJuIiwiU3RyZWFtV2l0aE1pbWUiLCJTaW5nbGV0b25Db250cm9sbGVyIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwic2V0dXBNaWRkbGV3YXJlIiwiZXhwcmVzc0FwcGxpY2F0aW9uIiwidXNlIiwidGFyZ2V0IiwiY2hhbmdlT3JpZ2luIiwiZXhwcmVzcyIsInN0YXRpYyIsInBhdGgiLCJqb2luIiwiX19kaXJuYW1lIiwiZ2V0UnVubmVyVmlldyIsIlByb3h5R2V0UmVxdWVzdFRvUmVzdWx0IiwiRmlsZVN0cmVhbVJlc3VsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUtBOzs7Ozs7Ozs7Ozs7QUFPQSxNQUFNQSxjQUE2QyxHQUFHO0FBQ2xEQyxFQUFBQSxlQUFlLEVBQUUsS0FEaUM7QUFFbERDLEVBQUFBLFlBQVksRUFBRTtBQUZvQyxDQUF0RDtJQUthQyxxQixXQStCUixzQkFBUSxlQUFSLEVBQXlCQyxvQkFBV0MsY0FBWCxDQUEwQixXQUExQixDQUF6QixDLFlBL0JFLE1BQU1GLHFCQUFOLFNBQW9DRyx3Q0FBcEMsQ0FBd0Q7QUFHcERDLEVBQUFBLFdBQVcsQ0FBQ0MsT0FBRCxFQUFrRDtBQUNoRTtBQURnRSxTQUZuREEsT0FFbUQ7QUFFaEUsU0FBS0EsT0FBTCxHQUFlLEVBQ1gsR0FBR1IsY0FEUTtBQUVYLFNBQUdRO0FBRlEsS0FBZjtBQUlIOztBQUUyQixRQUFmQyxlQUFlLENBQUNDLGtCQUFELEVBQTZDO0FBQ3JFLFFBQUksS0FBS0YsT0FBTCxDQUFhUCxlQUFqQixFQUFrQztBQUM5QlMsTUFBQUEsa0JBQWtCLENBQUNDLEdBQW5CLENBQ0ksQ0FDSSxvQkFESixFQUVJLHFCQUZKLEVBR0kscUJBSEosRUFJSSxxQkFKSixFQUtJLHFCQUxKLENBREosRUFRSSxnREFBc0I7QUFBRUMsUUFBQUEsTUFBTSxFQUFFLEtBQUtKLE9BQUwsQ0FBYU4sWUFBdkI7QUFBcUNXLFFBQUFBLFlBQVksRUFBRTtBQUFuRCxPQUF0QixDQVJKO0FBVUgsS0FYRCxNQVdPO0FBQ0hILE1BQUFBLGtCQUFrQixDQUFDQyxHQUFuQixDQUNJLGdCQURKLEVBRUlHLGlCQUFRQyxNQUFSLENBQWVDLElBQUksQ0FBQ0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLElBQXJCLEVBQTJCLElBQTNCLEVBQWlDLHlCQUFqQyxDQUFmLENBRko7QUFJSDtBQUNKOztBQUd5QixRQUFiQyxhQUFhLEdBQWdDO0FBQ3RELFFBQUksS0FBS1gsT0FBTCxDQUFhUCxlQUFqQixFQUFrQztBQUM5QixhQUFPLElBQUltQiw0Q0FBSixDQUE2QixHQUFFLEtBQUtaLE9BQUwsQ0FBYU4sWUFBYSwwQkFBekQsQ0FBUDtBQUNILEtBRkQsTUFFTztBQUNILGFBQU8sSUFBSW1CLHFDQUFKLENBQXFCTCxJQUFJLENBQUNDLElBQUwsQ0FBVUMsU0FBVixFQUFxQixJQUFyQixFQUEyQixJQUEzQixFQUFpQyx5QkFBakMsRUFBNEQsWUFBNUQsQ0FBckIsQ0FBUDtBQUNIO0FBQ0o7O0FBdEMwRCxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgZXhwcmVzcywgeyBFeHByZXNzIH0gZnJvbSBcImV4cHJlc3NcIjtcbmltcG9ydCB7IGNyZWF0ZVByb3h5TWlkZGxld2FyZSB9IGZyb20gXCJodHRwLXByb3h5LW1pZGRsZXdhcmVcIjtcblxuaW1wb3J0IHsgaHR0cEdldCB9IGZyb20gXCIuLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9NZXRob2RzXCI7XG5pbXBvcnQgeyBodHRwUmV0dXJuIH0gZnJvbSBcIi4uLy4uL0NvbW1vbnMvSHR0cFNlcnZlci9BdHRyaWJ1dGVSb3V0aW5nL1Jlc3VsdHNcIjtcbmltcG9ydCB7XG4gICAgRmlsZVN0cmVhbVJlc3VsdCxcbiAgICBQcm94eUdldFJlcXVlc3RUb1Jlc3VsdCxcbiAgICBTdHJlYW1SZXR1cm5SZXN1bHQsXG59IGZyb20gXCIuLi8uLi9Db21tb25zL0h0dHBTZXJ2ZXIvQXR0cmlidXRlUm91dGluZy9SZXN1bHRzL1N0cmVhbVJlc3VsdEhhbmRsZXJcIjtcbmltcG9ydCB7IFNpbmdsZXRvbkNvbnRyb2xsZXIgfSBmcm9tIFwiLi4vLi4vQ29tbW9ucy9IdHRwU2VydmVyL0V4cHJlc3NXcmFwcGVyL1NpbmdsZXRvbkNvbnRyb2xsZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGb3Jtc1Rlc3RpbmdDb250cm9sbGVyT3B0aW9ucyB7XG4gICAgZnJvbnRFbmREZXZNb2RlOiBib29sZWFuO1xuICAgIGRldlNlcnZlclVybDogc3RyaW5nO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogRm9ybXNUZXN0aW5nQ29udHJvbGxlck9wdGlvbnMgPSB7XG4gICAgZnJvbnRFbmREZXZNb2RlOiBmYWxzZSxcbiAgICBkZXZTZXJ2ZXJVcmw6IFwiaHR0cDovL2xvY2FsaG9zdDo4MDgxXCIsXG59O1xuXG5leHBvcnQgY2xhc3MgRm9ybXNIZWxwZXJDb250cm9sbGVyIGV4dGVuZHMgU2luZ2xldG9uQ29udHJvbGxlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBGb3Jtc1Rlc3RpbmdDb250cm9sbGVyT3B0aW9ucztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPEZvcm1zVGVzdGluZ0NvbnRyb2xsZXJPcHRpb25zPikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAuLi5kZWZhdWx0T3B0aW9ucyxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHNldHVwTWlkZGxld2FyZShleHByZXNzQXBwbGljYXRpb246IEV4cHJlc3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mcm9udEVuZERldk1vZGUpIHtcbiAgICAgICAgICAgIGV4cHJlc3NBcHBsaWNhdGlvbi51c2UoXG4gICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBcIi9mb3Jtcy1oZWxwZXIvKi5qc1wiLFxuICAgICAgICAgICAgICAgICAgICBcIi9mb3Jtcy1oZWxwZXIvKi5jc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCIvZm9ybXMtaGVscGVyLyoubWFwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiL2Zvcm1zLWhlbHBlci8qLmljb1wiLFxuICAgICAgICAgICAgICAgICAgICBcIi9mb3Jtcy1oZWxwZXIvKi5wbmdcIixcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGNyZWF0ZVByb3h5TWlkZGxld2FyZSh7IHRhcmdldDogdGhpcy5vcHRpb25zLmRldlNlcnZlclVybCwgY2hhbmdlT3JpZ2luOiB0cnVlIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXhwcmVzc0FwcGxpY2F0aW9uLnVzZShcbiAgICAgICAgICAgICAgICBcIi9mb3Jtcy1oZWxwZXIvXCIsXG4gICAgICAgICAgICAgICAgZXhwcmVzcy5zdGF0aWMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBcIi4uXCIsIFwiTG9jYWxTZXJ2ZXJGcm9udEVuZERpc3RcIikpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGh0dHBHZXQoXCIvZm9ybXMtaGVscGVyXCIsIGh0dHBSZXR1cm4uU3RyZWFtV2l0aE1pbWUoXCJ0ZXh0L2h0bWxcIikpXG4gICAgcHVibGljIGFzeW5jIGdldFJ1bm5lclZpZXcoKTogUHJvbWlzZTxTdHJlYW1SZXR1cm5SZXN1bHQ+IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5mcm9udEVuZERldk1vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJveHlHZXRSZXF1ZXN0VG9SZXN1bHQoYCR7dGhpcy5vcHRpb25zLmRldlNlcnZlclVybH0vZm9ybXMtaGVscGVyL2luZGV4Lmh0bWxgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRmlsZVN0cmVhbVJlc3VsdChwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uXCIsIFwiLi5cIiwgXCJMb2NhbFNlcnZlckZyb250RW5kRGlzdFwiLCBcImluZGV4Lmh0bWxcIikpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("
|
|
3
|
+
require("core-js/stable");
|
|
4
|
+
|
|
5
|
+
require("regenerator-runtime/runtime");
|
|
4
6
|
|
|
5
7
|
require("core-js/features/array/flat");
|
|
6
8
|
|
|
@@ -128,4 +130,4 @@ async function removeTemporaryWebpackConfigFiles(farmDirectory, logger) {
|
|
|
128
130
|
await (0, _RunInitForm.runInitForm)(context, options.options, farmDirectory);
|
|
129
131
|
}
|
|
130
132
|
});
|
|
131
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9DYW5keUNMSS50cyJdLCJuYW1lcyI6WyJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsIm9sZFRlbXBGaWxlTmFtZXMiLCJmaWx0ZXIiLCJ4IiwiZW5kc1dpdGgiLCJsZW5ndGgiLCJsb2ciLCJmaWxlTmFtZSIsInBhdGgiLCJqb2luIiwiYXJndiIsImNvbnRleHQiLCJvcHRpb25zIiwic2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkiLCJsb2dWZXJib3NpdHkiLCJ2ZXJib3NlIiwiY3dkIiwiZmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwicmVzb2x2ZSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsInR5cGUiLCJobEZhcm1EaXJlY3RvcnlQYXRoIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUFBLGdCQUFPQyxLQUFQLEdBQWUsSUFBZjs7QUFFQSxTQUFTQyxnREFBVCxHQUFrRTtBQUM5RCxRQUFNQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsUUFBUixDQUFpQkMsT0FBakIsQ0FBeUIsZUFBekIsQ0FBcEI7O0FBQ0EsTUFBSUgsV0FBVyxLQUFLLENBQUMsQ0FBckIsRUFBd0I7QUFDcEJDLElBQUFBLE9BQU8sQ0FBQ0MsUUFBUixDQUFpQkUs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QXJCLEVBQWtDO0FBQzlCLFVBQU0sOEJBQVliLE9BQVosRUFBcUJDLE9BQU8sQ0FBQ0EsT0FBN0IsRUFBc0NkLGFBQXRDLENBQU47QUFDSDtBQUNKLENBM0ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiQGJhYmVsL3BvbHlmaWxsXCI7XG5pbXBvcnQgXCJjb3JlLWpzL2ZlYXR1cmVzL2FycmF5L2ZsYXRcIjtcbmltcG9ydCBcImNvcmUtanMvcHJvcG9zYWxzL2l0ZXJhdG9yLWhlbHBlcnNcIjtcbmltcG9ydCBcInJlZmxlY3QtbWV0YWRhdGFcIjtcblxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgcmVhZGRpciwgdW5saW5rIH0gZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tIFwic2hlbGxqc1wiO1xuXG5pbXBvcnQgeyBydW5Db25zb2xlQXBwbGljYXRpb24gfSBmcm9tIFwiLi9Db21tb25zL0NvbnNvbGVBcHBsaWNhdGlvbi9Db25zb2xlQXBwbGljYXRpb25cIjtcbmltcG9ydCB7IElMb2dnZXIgfSBmcm9tIFwiLi9Db21tb25zL0xvZ2dpbmcvSUxvZ2dlclwiO1xuaW1wb3J0IHsgc2V0TG9nZ2VyIH0gZnJvbSBcIi4vQ29tbW9ucy9Mb2dnaW5nL1N0YXRpY0xvZ2dlclwiO1xuaW1wb3J0IHsgcnVuQnVpbGRGb3JtcyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0J1aWxkRm9ybXMvUnVuQnVpbGRGb3Jtc1wiO1xuaW1wb3J0IHsgcnVuQnVpbGRTZXJ2ZXIsIHJ1bkRldkJ1aWxkU2VydmVyIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvQnVpbGRTZXJ2ZXIvUnVuQnVpbGRTZXJ2ZXJcIjtcbmltcG9ydCB7IHJ1bkRldkJ1aWxkIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvRGV2QnVpbGQvUnVuRGV2QnVpbGRcIjtcbmltcG9ydCB7IHJ1bkZvcm1TdGF0cyB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0Zvcm1TdGF0cy9SdW5Gb3JtU3RhdHNcIjtcbmltcG9ydCB7IHJ1bkluaXRGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvSW5pdEZvcm0vUnVuSW5pdEZvcm1cIjtcbmltcG9ydCB7IHJ1bkxvY2FsaXphdGlvbiB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0xvY2FsaXphdGlvbi9SdW5Mb2NhbGl6YXRpb25cIjtcbmltcG9ydCB7IHJ1blVwZ3JhZGVGb3JtIH0gZnJvbSBcIi4vQ0xJQ29tbWFuZHMvVXBncmFkZUZvcm0vUnVuVXBncmFkZUZvcm1cIjtcbmltcG9ydCB7IHBhcnNlT3B0aW9ucyB9IGZyb20gXCIuL09wdGlvbnMvQ2FuZHlUb29sT3B0aW9uc1wiO1xuaW1wb3J0IHsgcmVhZEZhcm1Db25maWcgfSBmcm9tIFwiLi9SZWFkRmFybUNvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFZlcnNpb24gfSBmcm9tIFwiLi9TZWxmVXBkYXRlXCI7XG5cbmNvbmZpZy5mYXRhbCA9IHRydWU7XG5cbmZ1bmN0aW9uIHJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcygpOiB2b2lkIHtcbiAgICBjb25zdCBkZWJ1Z0FyZ0lkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdC1icmtcIik7XG4gICAgaWYgKGRlYnVnQXJnSWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZ0lkeCwgMSk7XG4gICAgfVxuICAgIGNvbnN0IGRlYnVnQXJnMklkeCA9IHByb2Nlc3MuZXhlY0FyZ3YuaW5kZXhPZihcIi0taW5zcGVjdFwiKTtcbiAgICBpZiAoZGVidWdBcmcySWR4ICE9PSAtMSkge1xuICAgICAgICBwcm9jZXNzLmV4ZWNBcmd2LnNwbGljZShkZWJ1Z0FyZzJJZHgsIDEpO1xuICAgIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKGZhcm1EaXJlY3Rvcnk6IHN0cmluZywgbG9nZ2VyOiBJTG9nZ2VyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZXMgPSBhd2FpdCByZWFkZGlyKGZhcm1EaXJlY3RvcnkpO1xuICAgIGNvbnN0IG9sZFRlbXBGaWxlTmFtZXMgPSBmaWxlcy5maWx0ZXIoeCA9PiB4LmVuZHNXaXRoKFwiLmNhbmR5LXRtcC53ZWJwYWNrLmNvbmZpZy5qc1wiKSk7XG4gICAgaWYgKG9sZFRlbXBGaWxlTmFtZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3Zpbmcgb2xkIHdlYnBhY2suY29uZmlnLmpzIGZpbGVzXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IGZpbGVOYW1lIG9mIG9sZFRlbXBGaWxlTmFtZXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHVubGluayhwYXRoLmpvaW4oZmFybURpcmVjdG9yeSwgZmlsZU5hbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBsb2dnZXIubG9nKFwiUmVtb3ZlZCBvbGQgd2VicGFjay5jb25maWcuanMgZmlsZXNcIik7XG4gICAgfVxufVxuXG5ydW5Db25zb2xlQXBwbGljYXRpb24oYXN5bmMgKGFyZ3YsIGNvbnRleHQpID0+IHtcbiAgICByZW1vdGVJbnNwZWN0RmxhZ1RvRGlzYWJsZURlYnVnZ2VySW5DaGlsZFByb2Nlc3MoKTtcblxuICAgIGNvbnRleHQubG9nZ2VyLmxvZyhcIkBrb250dXIuY2FuZHkvdG9vbHM6IFwiICsgKGF3YWl0IGdldEN1cnJlbnRWZXJzaW9uKCkpKTtcbiAgICBjb25zdCBvcHRpb25zID0gcGFyc2VPcHRpb25zKGFyZ3YpO1xuICAgIGNvbnRleHQuc2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkob3B0aW9ucy5vcHRpb25zLmxvZ1ZlcmJvc2l0eSk7XG4gICAgc2V0TG9nZ2VyKGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb250ZXh0LmxvZ2dlci52ZXJib3NlKGBWZXJib3NlIGxldmVsOiAke29wdGlvbnMub3B0aW9ucy5sb2dWZXJib3NpdHl9YCk7XG5cbiAgICBjb25zdCBmYXJtRGlyZWN0b3J5ID0gcHJvY2Vzcy5jd2QoKTtcbiAgICBhd2FpdCByZW1vdmVUZW1wb3JhcnlXZWJwYWNrQ29uZmlnRmlsZXMoZmFybURpcmVjdG9yeSwgY29udGV4dC5sb2dnZXIpO1xuICAgIGNvbnN0IGZhcm1Db25maWcgPSByZWFkRmFybUNvbmZpZyhwcm9jZXNzLmN3ZCgpKTtcblxuICAgIGlmIChmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW5naW5lRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuICAgIGlmIChmYXJtQ29uZmlnLnJlc291cmNlc0RpcmVjdG9yeSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVzb3VyY2VzRGlyZWN0b3J5IGlzIG5vdCBzcGVjaWZpZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgZW5naW5lRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcuZW5naW5lRGlyZWN0b3J5KTtcbiAgICBjb25zdCByZXNvdXJjZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkpO1xuICAgIGNvbnN0IGNhbmR5TW9kdWxlc0RpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtRGlyZWN0b3J5LCBcIi4uXCIsIFwiLmNhbmR5X21vZHVsZXNcIik7XG5cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImJ1aWxkLXNlcnZlclwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkU2VydmVyKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImRldi1idWlsZC1zZXJ2ZXJcIikge1xuICAgICAgICBhd2FpdCBydW5EZXZCdWlsZFNlcnZlcihcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICBvcHRpb25zLm9wdGlvbnMsXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybUNvbmZpZy5obEZhcm1EaXJlY3RvcnlQYXRoXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJidWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkJ1aWxkRm9ybXMoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnR5cGUgPT09IFwiZGV2LWJ1aWxkXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGQoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnR5cGUgPT09IFwiZm9ybS1zdGF0c1wiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkZvcm1TdGF0cyhjb250ZXh0LCBvcHRpb25zLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcInVwZ3JhZGVcIikge1xuICAgICAgICBhd2FpdCBydW5VcGdyYWRlRm9ybShjb250ZXh0LCBvcHRpb25zLm9wdGlvbnMsIHJlc291cmNlc0RpcmVjdG9yeSwgZmFybURpcmVjdG9yeSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnR5cGUgPT09IFwibG9jYWxpemVcIikge1xuICAgICAgICBhd2FpdCBydW5Mb2NhbGl6YXRpb24oXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpb25zLFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImluaXQtZm9ybVwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkluaXRGb3JtKGNvbnRleHQsIG9wdGlvbnMub3B0aW9ucywgZmFybURpcmVjdG9yeSk7XG4gICAgfVxufSk7XG4iXX0=
|
|
133
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9DYW5keUNMSS50cyJdLCJuYW1lcyI6WyJjb25maWciLCJmYXRhbCIsInJlbW90ZUluc3BlY3RGbGFnVG9EaXNhYmxlRGVidWdnZXJJbkNoaWxkUHJvY2VzcyIsImRlYnVnQXJnSWR4IiwicHJvY2VzcyIsImV4ZWNBcmd2IiwiaW5kZXhPZiIsInNwbGljZSIsImRlYnVnQXJnMklkeCIsInJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyIsImZhcm1EaXJlY3RvcnkiLCJsb2dnZXIiLCJmaWxlcyIsIm9sZFRlbXBGaWxlTmFtZXMiLCJmaWx0ZXIiLCJ4IiwiZW5kc1dpdGgiLCJsZW5ndGgiLCJsb2ciLCJmaWxlTmFtZSIsInBhdGgiLCJqb2luIiwiYXJndiIsImNvbnRleHQiLCJvcHRpb25zIiwic2V0Q29uc29sZUxvZ2dpbmdWZXJib3NpdHkiLCJsb2dWZXJib3NpdHkiLCJ2ZXJib3NlIiwiY3dkIiwiZmFybUNvbmZpZyIsImVuZ2luZURpcmVjdG9yeSIsInVuZGVmaW5lZCIsIkVycm9yIiwicmVzb3VyY2VzRGlyZWN0b3J5IiwicmVzb2x2ZSIsImNhbmR5TW9kdWxlc0RpcmVjdG9yeSIsInR5cGUiLCJobEZhcm1EaXJlY3RvcnlQYXRoIl0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUFBLGdCQUFPQyxLQUFQLEdBQWUsSUFBZjs7QUFFQSxTQUFTQyxnREFBVCxHQUFrRTtBQUM5RCxRQUFNQyxXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsUUFBUixDQUFpQkMsT0FBakIsQ0FBeUIsZUFBekIsQ0FBcEI7O0FBQ0EsTUFBSUgsV0FBVyxLQUFLLENBQUMsQ0FBckIsRUFBd0I7QUFDcEJDLElBQUFBLE9BQU8sQ0FBQ0MsUUFBUixD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QWlCLFdBQXJCLEVBQWtDO0FBQzlCLFVBQU0sOEJBQVliLE9BQVosRUFBcUJDLE9BQU8sQ0FBQ0EsT0FBN0IsRUFBc0NkLGFBQXRDLENBQU47QUFDSDtBQUNKLENBM0ZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiY29yZS1qcy9zdGFibGVcIjtcbmltcG9ydCBcInJlZ2VuZXJhdG9yLXJ1bnRpbWUvcnVudGltZVwiO1xuaW1wb3J0IFwiY29yZS1qcy9mZWF0dXJlcy9hcnJheS9mbGF0XCI7XG5pbXBvcnQgXCJjb3JlLWpzL3Byb3Bvc2Fscy9pdGVyYXRvci1oZWxwZXJzXCI7XG5pbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XG5cbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHJlYWRkaXIsIHVubGluayB9IGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcInNoZWxsanNcIjtcblxuaW1wb3J0IHsgcnVuQ29uc29sZUFwcGxpY2F0aW9uIH0gZnJvbSBcIi4vQ29tbW9ucy9Db25zb2xlQXBwbGljYXRpb24vQ29uc29sZUFwcGxpY2F0aW9uXCI7XG5pbXBvcnQgeyBJTG9nZ2VyIH0gZnJvbSBcIi4vQ29tbW9ucy9Mb2dnaW5nL0lMb2dnZXJcIjtcbmltcG9ydCB7IHNldExvZ2dlciB9IGZyb20gXCIuL0NvbW1vbnMvTG9nZ2luZy9TdGF0aWNMb2dnZXJcIjtcbmltcG9ydCB7IHJ1bkJ1aWxkRm9ybXMgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9CdWlsZEZvcm1zL1J1bkJ1aWxkRm9ybXNcIjtcbmltcG9ydCB7IHJ1bkJ1aWxkU2VydmVyLCBydW5EZXZCdWlsZFNlcnZlciB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0J1aWxkU2VydmVyL1J1bkJ1aWxkU2VydmVyXCI7XG5pbXBvcnQgeyBydW5EZXZCdWlsZCB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0RldkJ1aWxkL1J1bkRldkJ1aWxkXCI7XG5pbXBvcnQgeyBydW5Gb3JtU3RhdHMgfSBmcm9tIFwiLi9DTElDb21tYW5kcy9Gb3JtU3RhdHMvUnVuRm9ybVN0YXRzXCI7XG5pbXBvcnQgeyBydW5Jbml0Rm9ybSB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL0luaXRGb3JtL1J1bkluaXRGb3JtXCI7XG5pbXBvcnQgeyBydW5Mb2NhbGl6YXRpb24gfSBmcm9tIFwiLi9DTElDb21tYW5kcy9Mb2NhbGl6YXRpb24vUnVuTG9jYWxpemF0aW9uXCI7XG5pbXBvcnQgeyBydW5VcGdyYWRlRm9ybSB9IGZyb20gXCIuL0NMSUNvbW1hbmRzL1VwZ3JhZGVGb3JtL1J1blVwZ3JhZGVGb3JtXCI7XG5pbXBvcnQgeyBwYXJzZU9wdGlvbnMgfSBmcm9tIFwiLi9PcHRpb25zL0NhbmR5VG9vbE9wdGlvbnNcIjtcbmltcG9ydCB7IHJlYWRGYXJtQ29uZmlnIH0gZnJvbSBcIi4vUmVhZEZhcm1Db25maWdcIjtcbmltcG9ydCB7IGdldEN1cnJlbnRWZXJzaW9uIH0gZnJvbSBcIi4vU2VsZlVwZGF0ZVwiO1xuXG5jb25maWcuZmF0YWwgPSB0cnVlO1xuXG5mdW5jdGlvbiByZW1vdGVJbnNwZWN0RmxhZ1RvRGlzYWJsZURlYnVnZ2VySW5DaGlsZFByb2Nlc3MoKTogdm9pZCB7XG4gICAgY29uc3QgZGVidWdBcmdJZHggPSBwcm9jZXNzLmV4ZWNBcmd2LmluZGV4T2YoXCItLWluc3BlY3QtYnJrXCIpO1xuICAgIGlmIChkZWJ1Z0FyZ0lkeCAhPT0gLTEpIHtcbiAgICAgICAgcHJvY2Vzcy5leGVjQXJndi5zcGxpY2UoZGVidWdBcmdJZHgsIDEpO1xuICAgIH1cbiAgICBjb25zdCBkZWJ1Z0FyZzJJZHggPSBwcm9jZXNzLmV4ZWNBcmd2LmluZGV4T2YoXCItLWluc3BlY3RcIik7XG4gICAgaWYgKGRlYnVnQXJnMklkeCAhPT0gLTEpIHtcbiAgICAgICAgcHJvY2Vzcy5leGVjQXJndi5zcGxpY2UoZGVidWdBcmcySWR4LCAxKTtcbiAgICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbW92ZVRlbXBvcmFyeVdlYnBhY2tDb25maWdGaWxlcyhmYXJtRGlyZWN0b3J5OiBzdHJpbmcsIGxvZ2dlcjogSUxvZ2dlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGZpbGVzID0gYXdhaXQgcmVhZGRpcihmYXJtRGlyZWN0b3J5KTtcbiAgICBjb25zdCBvbGRUZW1wRmlsZU5hbWVzID0gZmlsZXMuZmlsdGVyKHggPT4geC5lbmRzV2l0aChcIi5jYW5keS10bXAud2VicGFjay5jb25maWcuanNcIikpO1xuICAgIGlmIChvbGRUZW1wRmlsZU5hbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbG9nZ2VyLmxvZyhcIlJlbW92aW5nIG9sZCB3ZWJwYWNrLmNvbmZpZy5qcyBmaWxlc1wiKTtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiBvbGRUZW1wRmlsZU5hbWVzKSB7XG4gICAgICAgICAgICBhd2FpdCB1bmxpbmsocGF0aC5qb2luKGZhcm1EaXJlY3RvcnksIGZpbGVOYW1lKSk7XG4gICAgICAgIH1cbiAgICAgICAgbG9nZ2VyLmxvZyhcIlJlbW92ZWQgb2xkIHdlYnBhY2suY29uZmlnLmpzIGZpbGVzXCIpO1xuICAgIH1cbn1cblxucnVuQ29uc29sZUFwcGxpY2F0aW9uKGFzeW5jIChhcmd2LCBjb250ZXh0KSA9PiB7XG4gICAgcmVtb3RlSW5zcGVjdEZsYWdUb0Rpc2FibGVEZWJ1Z2dlckluQ2hpbGRQcm9jZXNzKCk7XG5cbiAgICBjb250ZXh0LmxvZ2dlci5sb2coXCJAa29udHVyLmNhbmR5L3Rvb2xzOiBcIiArIChhd2FpdCBnZXRDdXJyZW50VmVyc2lvbigpKSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHBhcnNlT3B0aW9ucyhhcmd2KTtcbiAgICBjb250ZXh0LnNldENvbnNvbGVMb2dnaW5nVmVyYm9zaXR5KG9wdGlvbnMub3B0aW9ucy5sb2dWZXJib3NpdHkpO1xuICAgIHNldExvZ2dlcihjb250ZXh0LmxvZ2dlcik7XG4gICAgY29udGV4dC5sb2dnZXIudmVyYm9zZShgVmVyYm9zZSBsZXZlbDogJHtvcHRpb25zLm9wdGlvbnMubG9nVmVyYm9zaXR5fWApO1xuXG4gICAgY29uc3QgZmFybURpcmVjdG9yeSA9IHByb2Nlc3MuY3dkKCk7XG4gICAgYXdhaXQgcmVtb3ZlVGVtcG9yYXJ5V2VicGFja0NvbmZpZ0ZpbGVzKGZhcm1EaXJlY3RvcnksIGNvbnRleHQubG9nZ2VyKTtcbiAgICBjb25zdCBmYXJtQ29uZmlnID0gcmVhZEZhcm1Db25maWcocHJvY2Vzcy5jd2QoKSk7XG5cbiAgICBpZiAoZmFybUNvbmZpZy5lbmdpbmVEaXJlY3RvcnkgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkVuZ2luZURpcmVjdG9yeSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuICAgIH1cbiAgICBpZiAoZmFybUNvbmZpZy5yZXNvdXJjZXNEaXJlY3RvcnkgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlJlc291cmNlc0RpcmVjdG9yeSBpcyBub3Qgc3BlY2lmaWVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGVuZ2luZURpcmVjdG9yeSA9IHBhdGgucmVzb2x2ZShmYXJtQ29uZmlnLmVuZ2luZURpcmVjdG9yeSk7XG4gICAgY29uc3QgcmVzb3VyY2VzRGlyZWN0b3J5ID0gcGF0aC5yZXNvbHZlKGZhcm1Db25maWcucmVzb3VyY2VzRGlyZWN0b3J5KTtcbiAgICBjb25zdCBjYW5keU1vZHVsZXNEaXJlY3RvcnkgPSBwYXRoLnJlc29sdmUoZmFybURpcmVjdG9yeSwgXCIuLlwiLCBcIi5jYW5keV9tb2R1bGVzXCIpO1xuXG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJidWlsZC1zZXJ2ZXJcIikge1xuICAgICAgICBhd2FpdCBydW5CdWlsZFNlcnZlcihcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICBvcHRpb25zLm9wdGlvbnMsXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtRGlyZWN0b3J5LFxuICAgICAgICAgICAgcmVzb3VyY2VzRGlyZWN0b3J5LFxuICAgICAgICAgICAgY2FuZHlNb2R1bGVzRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybUNvbmZpZy5obEZhcm1EaXJlY3RvcnlQYXRoXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJkZXYtYnVpbGQtc2VydmVyXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuRGV2QnVpbGRTZXJ2ZXIoXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgb3B0aW9ucy5vcHRpb25zLFxuICAgICAgICAgICAgZW5naW5lRGlyZWN0b3J5LFxuICAgICAgICAgICAgZmFybURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGNhbmR5TW9kdWxlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1Db25maWcuaGxGYXJtRGlyZWN0b3J5UGF0aFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnR5cGUgPT09IFwiYnVpbGRcIikge1xuICAgICAgICBhd2FpdCBydW5CdWlsZEZvcm1zKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICByZXNvdXJjZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImRldi1idWlsZFwiKSB7XG4gICAgICAgIGF3YWl0IHJ1bkRldkJ1aWxkKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgICAgIGVuZ2luZURpcmVjdG9yeSxcbiAgICAgICAgICAgIHJlc291cmNlc0RpcmVjdG9yeSxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImZvcm0tc3RhdHNcIikge1xuICAgICAgICBhd2FpdCBydW5Gb3JtU3RhdHMoY29udGV4dCwgb3B0aW9ucy5vcHRpb25zLCBmYXJtRGlyZWN0b3J5KTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJ1cGdyYWRlXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuVXBncmFkZUZvcm0oY29udGV4dCwgb3B0aW9ucy5vcHRpb25zLCByZXNvdXJjZXNEaXJlY3RvcnksIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBcImxvY2FsaXplXCIpIHtcbiAgICAgICAgYXdhaXQgcnVuTG9jYWxpemF0aW9uKFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgICAgIGZhcm1EaXJlY3RvcnksXG4gICAgICAgICAgICBlbmdpbmVEaXJlY3RvcnksXG4gICAgICAgICAgICBjYW5keU1vZHVsZXNEaXJlY3RvcnksXG4gICAgICAgICAgICBmYXJtQ29uZmlnLmhsRmFybURpcmVjdG9yeVBhdGhcbiAgICAgICAgKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMudHlwZSA9PT0gXCJpbml0LWZvcm1cIikge1xuICAgICAgICBhd2FpdCBydW5Jbml0Rm9ybShjb250ZXh0LCBvcHRpb25zLm9wdGlvbnMsIGZhcm1EaXJlY3RvcnkpO1xuICAgIH1cbn0pO1xuIl19
|
|
Binary file
|