tnp-helpers 18.0.9 → 18.0.12
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/assets/shared/shared_folder_info.txt +1 -1
- package/browser/README.md +24 -24
- package/browser/esm2022/lib/base/base-compiler-for-project.mjs +48 -0
- package/browser/esm2022/lib/base/base-debounce-compiler-for-project.mjs +37 -0
- package/browser/esm2022/lib/base/base-git.mjs +49 -2
- package/browser/esm2022/lib/base/base-project.mjs +97 -26
- package/browser/esm2022/lib/base/base-vscode.mjs +32 -4
- package/browser/esm2022/lib/base/commit-data.mjs +8 -1
- package/browser/esm2022/lib/base/index.mjs +4 -1
- package/browser/esm2022/lib/helpers/helpers-array-obj.mjs +31 -25
- package/browser/esm2022/lib/helpers/helpers.mjs +5 -1
- package/browser/esm2022/lib/utils.mjs +250 -1
- package/browser/fesm2022/tnp-helpers.mjs +637 -53
- package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
- package/browser/lib/base/base-compiler-for-project.d.ts +6 -0
- package/browser/lib/base/base-debounce-compiler-for-project.d.ts +21 -0
- package/browser/lib/base/base-git.d.ts +3 -1
- package/browser/lib/base/base-npm-helpers.d.ts +4 -4
- package/browser/lib/base/base-project.d.ts +23 -9
- package/browser/lib/base/base-vscode.d.ts +7 -1
- package/browser/lib/base/commit-data.d.ts +1 -0
- package/browser/lib/base/index.d.ts +3 -0
- package/browser/lib/helpers/helpers-array-obj.d.ts +2 -2
- package/browser/lib/helpers/helpers.d.ts +4 -0
- package/browser/lib/utils.d.ts +17 -0
- package/client/README.md +24 -24
- package/client/esm2022/lib/base/base-compiler-for-project.mjs +48 -0
- package/client/esm2022/lib/base/base-debounce-compiler-for-project.mjs +37 -0
- package/client/esm2022/lib/base/base-git.mjs +49 -2
- package/client/esm2022/lib/base/base-project.mjs +97 -26
- package/client/esm2022/lib/base/base-vscode.mjs +32 -4
- package/client/esm2022/lib/base/commit-data.mjs +8 -1
- package/client/esm2022/lib/base/index.mjs +4 -1
- package/client/esm2022/lib/helpers/helpers-array-obj.mjs +31 -25
- package/client/esm2022/lib/helpers/helpers.mjs +5 -1
- package/client/esm2022/lib/utils.mjs +250 -1
- package/client/fesm2022/tnp-helpers.mjs +637 -53
- package/client/fesm2022/tnp-helpers.mjs.map +1 -1
- package/client/lib/base/base-compiler-for-project.d.ts +6 -0
- package/client/lib/base/base-debounce-compiler-for-project.d.ts +21 -0
- package/client/lib/base/base-git.d.ts +3 -1
- package/client/lib/base/base-npm-helpers.d.ts +4 -4
- package/client/lib/base/base-project.d.ts +23 -9
- package/client/lib/base/base-vscode.d.ts +7 -1
- package/client/lib/base/commit-data.d.ts +1 -0
- package/client/lib/base/index.d.ts +3 -0
- package/client/lib/helpers/helpers-array-obj.d.ts +2 -2
- package/client/lib/helpers/helpers.d.ts +4 -0
- package/client/lib/utils.d.ts +17 -0
- package/lib/base/base-command-line.backend.d.ts +15 -1
- package/lib/base/base-command-line.backend.js +275 -40
- package/lib/base/base-command-line.backend.js.map +1 -1
- package/lib/base/base-compiler-for-project.d.ts +7 -0
- package/lib/base/base-compiler-for-project.js +61 -0
- package/lib/base/base-compiler-for-project.js.map +1 -0
- package/lib/base/base-debounce-compiler-for-project.d.ts +20 -0
- package/lib/base/base-debounce-compiler-for-project.js +61 -0
- package/lib/base/base-debounce-compiler-for-project.js.map +1 -0
- package/lib/base/base-git.d.ts +3 -1
- package/lib/base/base-git.js +55 -11
- package/lib/base/base-git.js.map +1 -1
- package/lib/base/base-ignore-hide.d.ts +14 -0
- package/lib/base/base-ignore-hide.js +55 -0
- package/lib/base/base-ignore-hide.js.map +1 -0
- package/lib/base/base-npm-helpers.d.ts +4 -4
- package/lib/base/base-project-resolver.js +3 -2
- package/lib/base/base-project-resolver.js.map +1 -1
- package/lib/base/base-project.d.ts +19 -7
- package/lib/base/base-project.js +112 -41
- package/lib/base/base-project.js.map +1 -1
- package/lib/base/base-vscode.d.ts +7 -1
- package/lib/base/base-vscode.js +24 -3
- package/lib/base/base-vscode.js.map +1 -1
- package/lib/base/command-line-feature.backend.d.ts +4 -0
- package/lib/base/command-line-feature.backend.js +10 -0
- package/lib/base/command-line-feature.backend.js.map +1 -1
- package/lib/base/commit-data.d.ts +1 -0
- package/lib/base/commit-data.js +13 -8
- package/lib/base/commit-data.js.map +1 -1
- package/lib/base/gh-temp-code.d.ts +12 -0
- package/lib/base/gh-temp-code.js +125 -0
- package/lib/base/gh-temp-code.js.map +1 -0
- package/lib/base/index.d.ts +3 -0
- package/lib/base/index.js +3 -0
- package/lib/base/index.js.map +1 -1
- package/lib/helpers/for-backend/helpers-cli-tool.backend.js +2 -2
- package/lib/helpers/for-backend/helpers-cli-tool.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-git.backend.d.ts +1 -0
- package/lib/helpers/for-backend/helpers-git.backend.js +53 -3
- package/lib/helpers/for-backend/helpers-git.backend.js.map +1 -1
- package/lib/helpers/for-backend/helpers-process.backend.js +3 -3
- package/lib/helpers/for-backend/helpers-process.backend.js.map +1 -1
- package/lib/helpers/for-browser/angular.helper.js +2 -2
- package/lib/helpers/helpers-array-obj.d.ts +2 -2
- package/lib/helpers/helpers-array-obj.js +29 -21
- package/lib/helpers/helpers-array-obj.js.map +1 -1
- package/lib/helpers/helpers.d.ts +4 -0
- package/lib/helpers/helpers.js +10 -6
- package/lib/helpers/helpers.js.map +1 -1
- package/lib/index._auto-generated_.d.ts +0 -0
- package/lib/index._auto-generated_.js +6 -0
- package/lib/index._auto-generated_.js.map +1 -0
- package/lib/old/base-component.js +2 -2
- package/lib/old/base-formly-component.js +2 -2
- package/lib/old/dual-component-ctrl.js +2 -2
- package/lib/utils.d.ts +17 -0
- package/lib/utils.js +209 -10
- package/lib/utils.js.map +1 -1
- package/package.json +7 -5
- package/taon.jsonc +49 -48
- package/tmp-environment.json +33 -31
- package/websql/README.md +24 -24
- package/websql/esm2022/lib/base/base-compiler-for-project.mjs +48 -0
- package/websql/esm2022/lib/base/base-debounce-compiler-for-project.mjs +37 -0
- package/websql/esm2022/lib/base/base-git.mjs +49 -2
- package/websql/esm2022/lib/base/base-project.mjs +97 -26
- package/websql/esm2022/lib/base/base-vscode.mjs +32 -4
- package/websql/esm2022/lib/base/commit-data.mjs +8 -1
- package/websql/esm2022/lib/base/index.mjs +4 -1
- package/websql/esm2022/lib/helpers/helpers-array-obj.mjs +31 -25
- package/websql/esm2022/lib/helpers/helpers.mjs +5 -1
- package/websql/esm2022/lib/utils.mjs +250 -1
- package/websql/fesm2022/tnp-helpers.mjs +637 -53
- package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
- package/websql/lib/base/base-compiler-for-project.d.ts +6 -0
- package/websql/lib/base/base-debounce-compiler-for-project.d.ts +21 -0
- package/websql/lib/base/base-git.d.ts +3 -1
- package/websql/lib/base/base-npm-helpers.d.ts +4 -4
- package/websql/lib/base/base-project.d.ts +25 -9
- package/websql/lib/base/base-vscode.d.ts +7 -1
- package/websql/lib/base/commit-data.d.ts +1 -0
- package/websql/lib/base/index.d.ts +3 -0
- package/websql/lib/helpers/helpers-array-obj.d.ts +2 -2
- package/websql/lib/helpers/helpers.d.ts +4 -0
- package/websql/lib/utils.d.ts +17 -0
|
@@ -5,7 +5,10 @@ export * from './base-library-build';
|
|
|
5
5
|
export * from './base-npm-helpers';
|
|
6
6
|
export * from './base-linked-projects';
|
|
7
7
|
export * from './base-git';
|
|
8
|
+
export * from './base-vscode';
|
|
8
9
|
export * from './base-release-process';
|
|
10
|
+
export * from './base-compiler-for-project';
|
|
11
|
+
export * from './base-debounce-compiler-for-project';
|
|
9
12
|
export * from './commit-data';
|
|
10
13
|
export * from './core-project';
|
|
11
14
|
export * from './linked-project';
|
|
@@ -16,4 +19,4 @@ export * from './linked-project';
|
|
|
16
19
|
/* */
|
|
17
20
|
;
|
|
18
21
|
({}); // @--end-of-file-for-module=tnp-helpers lib/base/index.ts
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUdKLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMERBQTBEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1wcm9qZWN0LXJlc29sdmVyJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1mZWF0dXJlLWZvci1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1saWJyYXJ5LWJ1aWxkJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1ucG0taGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtbGlua2VkLXByb2plY3RzJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1naXQnO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNlLXZzY29kZSc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtcmVsZWFzZS1wcm9jZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vYmFzZS1jb21waWxlci1mb3ItcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZGVib3VuY2UtY29tcGlsZXItZm9yLXByb2plY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21taXQtZGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUtcHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL2xpbmtlZC1wcm9qZWN0Jztcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2luZGV4LnRzIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ } from 'tnp-core/websql';
|
|
1
|
+
import { _, Utils } from 'tnp-core/websql';
|
|
2
2
|
import * as fuzzy from 'fuzzy';
|
|
3
3
|
export class HelpersArrayObj {
|
|
4
4
|
from(s) {
|
|
@@ -20,9 +20,13 @@ export class HelpersArrayObj {
|
|
|
20
20
|
* use moveObjectBefore
|
|
21
21
|
*/
|
|
22
22
|
arrayMoveElementBefore(arr, a, b, prop) {
|
|
23
|
-
let indexA = prop
|
|
23
|
+
let indexA = prop
|
|
24
|
+
? arr.findIndex(elem => elem[prop] === a[prop])
|
|
25
|
+
: arr.indexOf(a);
|
|
24
26
|
_.pullAt(arr, indexA);
|
|
25
|
-
let indexB = prop
|
|
27
|
+
let indexB = prop
|
|
28
|
+
? arr.findIndex(elem => elem[prop] === b[prop])
|
|
29
|
+
: arr.indexOf(b);
|
|
26
30
|
if (indexB === 0) {
|
|
27
31
|
arr.unshift(a);
|
|
28
32
|
}
|
|
@@ -36,9 +40,13 @@ export class HelpersArrayObj {
|
|
|
36
40
|
* use moveObjectAfter
|
|
37
41
|
*/
|
|
38
42
|
arrayMoveElementAfterB(arr, a, b, prop) {
|
|
39
|
-
let indexA = prop
|
|
43
|
+
let indexA = prop
|
|
44
|
+
? arr.findIndex(elem => elem[prop] === a[prop])
|
|
45
|
+
: arr.indexOf(a);
|
|
40
46
|
_.pullAt(arr, indexA);
|
|
41
|
-
let indexB = prop
|
|
47
|
+
let indexB = prop
|
|
48
|
+
? arr.findIndex(elem => elem[prop] === b[prop])
|
|
49
|
+
: arr.indexOf(b);
|
|
42
50
|
if (indexB === arr.length - 1) {
|
|
43
51
|
arr.push(a);
|
|
44
52
|
}
|
|
@@ -52,7 +60,7 @@ export class HelpersArrayObj {
|
|
|
52
60
|
const targetIndex = newArray.findIndex(item => item === target);
|
|
53
61
|
const beforeIndex = newArray.findIndex(item => item === before);
|
|
54
62
|
if (targetIndex === -1 || beforeIndex === -1) {
|
|
55
|
-
console.error(
|
|
63
|
+
console.error('Target or Before object not found in the array');
|
|
56
64
|
return newArray;
|
|
57
65
|
}
|
|
58
66
|
newArray.splice(targetIndex, 1);
|
|
@@ -64,7 +72,7 @@ export class HelpersArrayObj {
|
|
|
64
72
|
const targetIndex = newArray.findIndex(item => item === target);
|
|
65
73
|
const afterIndex = newArray.findIndex(item => item === after);
|
|
66
74
|
if (targetIndex === -1 || afterIndex === -1) {
|
|
67
|
-
console.error(
|
|
75
|
+
console.error('Target or After object not found in the array');
|
|
68
76
|
return newArray;
|
|
69
77
|
}
|
|
70
78
|
newArray.splice(targetIndex, 1);
|
|
@@ -72,40 +80,38 @@ export class HelpersArrayObj {
|
|
|
72
80
|
return newArray;
|
|
73
81
|
}
|
|
74
82
|
/**
|
|
75
|
-
* @deprecated
|
|
83
|
+
* @deprecated use Utils.uniqArray from tnp-core
|
|
76
84
|
*/
|
|
77
85
|
uniqArray(array, uniqueProperty) {
|
|
78
|
-
|
|
79
|
-
return array
|
|
80
|
-
.filter(f => !!f)
|
|
81
|
-
.filter(function (item) {
|
|
82
|
-
return seen.hasOwnProperty(uniqueProperty ? item[uniqueProperty] : item) ? false
|
|
83
|
-
: (seen[uniqueProperty ? item[uniqueProperty] : item] = true);
|
|
84
|
-
});
|
|
86
|
+
return Utils.uniqArray(array, uniqueProperty);
|
|
85
87
|
}
|
|
86
88
|
sortKeys(obj) {
|
|
87
89
|
if (_.isArray(obj)) {
|
|
88
90
|
return obj.map(this.sortKeys);
|
|
89
91
|
}
|
|
90
92
|
if (_.isObject(obj)) {
|
|
91
|
-
return _.fromPairs(_.keys(obj)
|
|
93
|
+
return _.fromPairs(_.keys(obj)
|
|
94
|
+
.sort()
|
|
95
|
+
.map(key => [key, this.sortKeys(obj[key])]));
|
|
92
96
|
}
|
|
93
97
|
return obj;
|
|
94
98
|
}
|
|
95
|
-
;
|
|
96
99
|
/**
|
|
97
100
|
* Fuzzy search
|
|
98
101
|
*/
|
|
99
102
|
fuzzy(query, list, valueFn) {
|
|
100
|
-
const resultsFuzzy = fuzzy.filter(query, list.map(k => valueFn ? valueFn(k) : k));
|
|
103
|
+
const resultsFuzzy = fuzzy.filter(query, list.map(k => (valueFn ? valueFn(k) : k)));
|
|
101
104
|
const resultsFuzzyKebab = fuzzy.filter(_.kebabCase(query), list.map(k => _.kebabCase((valueFn ? valueFn(k) : k))));
|
|
102
|
-
const matches = resultsFuzzy.map(
|
|
103
|
-
const matchesKebab = resultsFuzzyKebab.map(
|
|
104
|
-
const results =
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
const matches = resultsFuzzy.map(el => el.string);
|
|
106
|
+
const matchesKebab = resultsFuzzyKebab.map(el => el.string);
|
|
107
|
+
const results = resultsFuzzy.length === 0
|
|
108
|
+
? []
|
|
109
|
+
: list.filter(k => {
|
|
110
|
+
return matches.includes((valueFn ? valueFn(k) : k));
|
|
111
|
+
});
|
|
107
112
|
if (matches.length === 0 && matchesKebab.length > 0) {
|
|
108
|
-
const m = list.find(k => _.kebabCase((valueFn ? valueFn(k) : k)) ===
|
|
113
|
+
const m = list.find(k => _.kebabCase((valueFn ? valueFn(k) : k)) ===
|
|
114
|
+
_.first(matchesKebab));
|
|
109
115
|
results.push(m);
|
|
110
116
|
matches.push((valueFn ? valueFn(m) : m));
|
|
111
117
|
}
|
|
@@ -114,4 +120,4 @@ export class HelpersArrayObj {
|
|
|
114
120
|
}
|
|
115
121
|
;
|
|
116
122
|
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers/helpers-array-obj.ts
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1hcnJheS1vYmouanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzL2hlbHBlcnMtYXJyYXktb2JqLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUcvQixNQUFNLE9BQU8sZUFBZTtJQUUxQixJQUFJLENBQUMsQ0FBb0I7UUFDdkIsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDbEIsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUc7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sS0FBSyxDQUFDLENBQUM7UUFDaEIsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxzQkFBc0IsQ0FBVSxHQUFVLEVBQUUsQ0FBTSxFQUFFLENBQU0sRUFBRSxJQUFjO1FBQ3hFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxD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QUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMseUVBQXlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0ICogYXMgZnV6enkgZnJvbSAnZnV6enknO1xuXG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJzQXJyYXlPYmoge1xuXG4gIGZyb20oczogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKF8uaXNBcnJheShzKSkge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICAgIGlmIChfLmlzU3RyaW5nKHMpKSB7XG4gICAgICByZXR1cm4gcy5zcGxpdCgnICcpXG4gICAgfVxuICB9XG5cbiAgc2Vjb25kKGFycikge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhcnIpIHx8IGFyci5sZW5ndGggPCAyKSB7XG4gICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cbiAgICByZXR1cm4gYXJyWzFdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIHVzZSBtb3ZlT2JqZWN0QmVmb3JlXG4gICAqL1xuICBhcnJheU1vdmVFbGVtZW50QmVmb3JlPFQgPSBhbnk+KGFycjogYW55W10sIGE6IGFueSwgYjogYW55LCBwcm9wPzoga2V5b2YgVCkge1xuICAgIGxldCBpbmRleEEgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGFbcHJvcF0pIDogYXJyLmluZGV4T2YoYSk7XG4gICAgXy5wdWxsQXQoYXJyLCBpbmRleEEpO1xuICAgIGxldCBpbmRleEIgPSBwcm9wID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGJbcHJvcF0pIDogYXJyLmluZGV4T2YoYik7XG4gICAgaWYgKGluZGV4QiA9PT0gMCkge1xuICAgICAgYXJyLnVuc2hpZnQoYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXhCIC0gMSwgMCwgYSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogdXNlIG1vdmVPYmplY3RBZnRlclxuICAgKi9cbiAgYXJyYXlNb3ZlRWxlbWVudEFmdGVyQjxUID0gYW55PihhcnI6IGFueVtdLCBhOiBhbnksIGI6IGFueSwgcHJvcD86IGtleW9mIFQpIHtcbiAgICBsZXQgaW5kZXhBID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBhW3Byb3BdKSA6IGFyci5pbmRleE9mKGEpO1xuICAgIF8ucHVsbEF0KGFyciwgaW5kZXhBKTtcbiAgICBsZXQgaW5kZXhCID0gcHJvcCA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBiW3Byb3BdKSA6IGFyci5pbmRleE9mKGIpO1xuICAgIGlmIChpbmRleEIgPT09IGFyci5sZW5ndGggLSAxKSB7XG4gICAgICBhcnIucHVzaChhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXJyLnNwbGljZShpbmRleEIgKyAxLCAwLCBhKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIG1vdmVPYmplY3RCZWZvcmU8VCA9IGFueT4oYXJyYXk6IFRbXSwgdGFyZ2V0OiBULCBiZWZvcmU6IFQpOiBUW10ge1xuICAgIGNvbnN0IG5ld0FycmF5ID0gWy4uLmFycmF5XTtcbiAgICBjb25zdCB0YXJnZXRJbmRleCA9IG5ld0FycmF5LmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IHRhcmdldCk7XG4gICAgY29uc3QgYmVmb3JlSW5kZXggPSBuZXdBcnJheS5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSBiZWZvcmUpO1xuXG4gICAgaWYgKHRhcmdldEluZGV4ID09PSAtMSB8fCBiZWZvcmVJbmRleCA9PT0gLTEpIHtcblxuICAgICAgY29uc29sZS5lcnJvcihcIlRhcmdldCBvciBCZWZvcmUgb2JqZWN0IG5vdCBmb3VuZCBpbiB0aGUgYXJyYXlcIik7XG4gICAgICByZXR1cm4gbmV3QXJyYXk7XG4gICAgfVxuXG5cbiAgICBuZXdBcnJheS5zcGxpY2UodGFyZ2V0SW5kZXgsIDEpO1xuXG5cbiAgICBuZXdBcnJheS5zcGxpY2UoYmVmb3JlSW5kZXgsIDAsIHRhcmdldCk7XG5cbiAgICByZXR1cm4gbmV3QXJyYXk7XG4gIH1cblxuICBtb3ZlT2JqZWN0QWZ0ZXI8VCA9IGFueT4oYXJyYXk6IFRbXSwgdGFyZ2V0OiBULCBhZnRlcjogVCk6IFRbXSB7XG4gICAgY29uc3QgbmV3QXJyYXkgPSBbLi4uYXJyYXldO1xuICAgIGNvbnN0IHRhcmdldEluZGV4ID0gbmV3QXJyYXkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gdGFyZ2V0KTtcbiAgICBjb25zdCBhZnRlckluZGV4ID0gbmV3QXJyYXkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gYWZ0ZXIpO1xuXG4gICAgaWYgKHRhcmdldEluZGV4ID09PSAtMSB8fCBhZnRlckluZGV4ID09PSAtMSkge1xuXG4gICAgICBjb25zb2xlLmVycm9yKFwiVGFyZ2V0IG9yIEFmdGVyIG9iamVjdCBub3QgZm91bmQgaW4gdGhlIGFycmF5XCIpO1xuICAgICAgcmV0dXJuIG5ld0FycmF5O1xuICAgIH1cblxuXG4gICAgbmV3QXJyYXkuc3BsaWNlKHRhcmdldEluZGV4LCAxKTtcblxuXG4gICAgbmV3QXJyYXkuc3BsaWNlKGFmdGVySW5kZXggKyAxLCAwLCB0YXJnZXQpO1xuXG4gICAgcmV0dXJuIG5ld0FycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICB1bmlxQXJyYXk8VCA9IGFueT4oYXJyYXk6IGFueVtdLCB1bmlxdWVQcm9wZXJ0eT86IChrZXlvZiBUKSkge1xuICAgIHZhciBzZWVuID0ge307XG4gICAgcmV0dXJuIGFycmF5XG4gICAgICAuZmlsdGVyKGYgPT4gISFmKVxuICAgICAgLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICByZXR1cm4gc2Vlbi5oYXNPd25Qcm9wZXJ0eSh1bmlxdWVQcm9wZXJ0eSA/IGl0ZW1bdW5pcXVlUHJvcGVydHldIDogaXRlbSkgPyBmYWxzZVxuICAgICAgICAgIDogKHNlZW5bdW5pcXVlUHJvcGVydHkgPyBpdGVtW3VuaXF1ZVByb3BlcnR5XSA6IGl0ZW1dID0gdHJ1ZSk7XG4gICAgICB9KSBhcyBUW107XG4gIH1cblxuICBzb3J0S2V5cyhvYmopIHtcbiAgICBpZiAoXy5pc0FycmF5KG9iaikpIHtcbiAgICAgIHJldHVybiBvYmoubWFwKHRoaXMuc29ydEtleXMpO1xuICAgIH1cbiAgICBpZiAoXy5pc09iamVjdChvYmopKSB7XG4gICAgICByZXR1cm4gXy5mcm9tUGFpcnMoXy5rZXlzKG9iaikuc29ydCgpLm1hcChrZXkgPT4gW2tleSwgdGhpcy5zb3J0S2V5cyhvYmpba2V5XSldKSk7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH07XG5cbiAgLyoqXG4gICAqIEZ1enp5IHNlYXJjaFxuICAgKi9cbiAgZnV6enk8VCA9IGFueT4ocXVlcnk6IHN0cmluZywgbGlzdDogVFtdLCB2YWx1ZUZuPzogKG1vZGVsRnJvbUxpc3Q6IFQpID0+IHN0cmluZykge1xuXG4gICAgY29uc3QgcmVzdWx0c0Z1enp5ID0gZnV6enkuZmlsdGVyKFxuICAgICAgcXVlcnksXG4gICAgICBsaXN0Lm1hcChrID0+IHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogayksXG4gICAgKVxuICAgIGNvbnN0IHJlc3VsdHNGdXp6eUtlYmFiID0gZnV6enkuZmlsdGVyKFxuICAgICAgXy5rZWJhYkNhc2UocXVlcnkpLFxuICAgICAgbGlzdC5tYXAoayA9PiBfLmtlYmFiQ2FzZSgodmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSBhcyBhbnkpKSxcbiAgICApXG4gICAgY29uc3QgbWF0Y2hlcyA9IHJlc3VsdHNGdXp6eS5tYXAoKGVsKSA9PiBlbC5zdHJpbmcpO1xuICAgIGNvbnN0IG1hdGNoZXNLZWJhYiA9IHJlc3VsdHNGdXp6eUtlYmFiLm1hcCgoZWwpID0+IGVsLnN0cmluZyk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gKHJlc3VsdHNGdXp6eS5sZW5ndGggPT09IDApID8gW10gOiBsaXN0LmZpbHRlcihrID0+IHtcbiAgICAgIHJldHVybiBtYXRjaGVzLmluY2x1ZGVzKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSk7XG4gICAgfSlcblxuICAgIGlmIChtYXRjaGVzLmxlbmd0aCA9PT0gMCAmJiBtYXRjaGVzS2ViYWIubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbSA9IGxpc3QuZmluZChrID0+IF8ua2ViYWJDYXNlKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSkgPT09IF8uZmlyc3QobWF0Y2hlc0tlYmFiKSk7XG4gICAgICByZXN1bHRzLnB1c2gobSk7XG4gICAgICBtYXRjaGVzLnB1c2goKHZhbHVlRm4gPyB2YWx1ZUZuKG0pIDogbSkgYXMgYW55KTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBtYXRjaGVzLCByZXN1bHRzIH07XG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMvaGVscGVycy1hcnJheS1vYmoudHMiXX0=
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy1hcnJheS1vYmouanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9oZWxwZXJzL2hlbHBlcnMtYXJyYXktb2JqLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsTUFBTSxPQUFPLGVBQWU7SUFDMUIsSUFBSSxDQUFDLENBQW9CO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsc0JBQXNCLENBQVUsR0FBVSxFQUFFLENBQU0sRUFBRSxDQUFNLEVBQUUsSUFBYztRQUN4RSxJQUFJLE1BQU0sR0FBRyxJQUFJO1lBQ2YsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLElBQUksTUFBTSxHQUFHLElBQUk7WUFDZixDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDakIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7T0FHRztJQUNILHNCQUFzQixDQUFVLEdBQVUsRUFBRSxDQUFNLEVBQUUsQ0FBTSxFQUFFLElBQWM7UUFDeEUsSUFBSSxNQUFNLEdBQUcsSUFBSTtZQUNmLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN0QixJQUFJLE1BQU0sR0FBRyxJQUFJO1lBQ2YsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLElBQUksTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNkLENBQUM7YUFBTSxDQUFDO1lBQ04sR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsZ0JBQWdCLENBQVUsS0FBVSxFQUFFLE1BQVMsRUFBRSxNQUFTO1FBQ3hELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUM1QixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7UUFFaEUsSUFBSSxXQUFXLEtBQUssQ0FBQyxDQUFDLElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFN0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1lBQ2hFLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7UUFHRCxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUdoQyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELGVBQWUsQ0FBVSxLQUFVLEVBQUUsTUFBUyxFQUFFLEtBQVE7UUFDdEQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQzVCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDaEUsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztRQUU5RCxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUMsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUU1QyxPQUFPLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7WUFDL0QsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQztRQUdELFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBR2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0MsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFVLEtBQVksRUFBRSxjQUF3QjtRQUN2RCxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRztRQUNWLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQ1IsSUFBSSxFQUFFO2lCQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUM5QyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUNILEtBQWEsRUFDYixJQUFTLEVBQ1QsT0FBc0M7UUFHdEMsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDL0IsS0FBSyxFQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMxQyxDQUFDO1FBQ0YsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNwQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUNsQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVEsQ0FBQyxDQUFDLENBQzlELENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1RCxNQUFNLE9BQU8sR0FDWCxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDdkIsQ0FBQyxDQUFDLEVBQUU7WUFDSixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDZCxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FBQztRQUVULElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUNqQixDQUFDLENBQUMsRUFBRSxDQUNGLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQ3hCLENBQUM7WUFDRixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFRLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlFQUF5RSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBfLCBVdGlscyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgKiBhcyBmdXp6eSBmcm9tICdmdXp6eSc7XG5cbmV4cG9ydCBjbGFzcyBIZWxwZXJzQXJyYXlPYmoge1xuICBmcm9tKHM6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGlmIChfLmlzQXJyYXkocykpIHtcbiAgICAgIHJldHVybiBzO1xuICAgIH1cbiAgICBpZiAoXy5pc1N0cmluZyhzKSkge1xuICAgICAgcmV0dXJuIHMuc3BsaXQoJyAnKTtcbiAgICB9XG4gIH1cblxuICBzZWNvbmQoYXJyKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFycikgfHwgYXJyLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuICAgIHJldHVybiBhcnJbMV07XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogdXNlIG1vdmVPYmplY3RCZWZvcmVcbiAgICovXG4gIGFycmF5TW92ZUVsZW1lbnRCZWZvcmU8VCA9IGFueT4oYXJyOiBhbnlbXSwgYTogYW55LCBiOiBhbnksIHByb3A/OiBrZXlvZiBUKSB7XG4gICAgbGV0IGluZGV4QSA9IHByb3BcbiAgICAgID8gYXJyLmZpbmRJbmRleChlbGVtID0+IGVsZW1bcHJvcF0gPT09IGFbcHJvcF0pXG4gICAgICA6IGFyci5pbmRleE9mKGEpO1xuICAgIF8ucHVsbEF0KGFyciwgaW5kZXhBKTtcbiAgICBsZXQgaW5kZXhCID0gcHJvcFxuICAgICAgPyBhcnIuZmluZEluZGV4KGVsZW0gPT4gZWxlbVtwcm9wXSA9PT0gYltwcm9wXSlcbiAgICAgIDogYXJyLmluZGV4T2YoYik7XG4gICAgaWYgKGluZGV4QiA9PT0gMCkge1xuICAgICAgYXJyLnVuc2hpZnQoYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXhCIC0gMSwgMCwgYSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogdXNlIG1vdmVPYmplY3RBZnRlclxuICAgKi9cbiAgYXJyYXlNb3ZlRWxlbWVudEFmdGVyQjxUID0gYW55PihhcnI6IGFueVtdLCBhOiBhbnksIGI6IGFueSwgcHJvcD86IGtleW9mIFQpIHtcbiAgICBsZXQgaW5kZXhBID0gcHJvcFxuICAgICAgPyBhcnIuZmluZEluZGV4KGVsZW0gPT4gZWxlbVtwcm9wXSA9PT0gYVtwcm9wXSlcbiAgICAgIDogYXJyLmluZGV4T2YoYSk7XG4gICAgXy5wdWxsQXQoYXJyLCBpbmRleEEpO1xuICAgIGxldCBpbmRleEIgPSBwcm9wXG4gICAgICA/IGFyci5maW5kSW5kZXgoZWxlbSA9PiBlbGVtW3Byb3BdID09PSBiW3Byb3BdKVxuICAgICAgOiBhcnIuaW5kZXhPZihiKTtcbiAgICBpZiAoaW5kZXhCID09PSBhcnIubGVuZ3RoIC0gMSkge1xuICAgICAgYXJyLnB1c2goYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyci5zcGxpY2UoaW5kZXhCICsgMSwgMCwgYSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG4gIH1cblxuICBtb3ZlT2JqZWN0QmVmb3JlPFQgPSBhbnk+KGFycmF5OiBUW10sIHRhcmdldDogVCwgYmVmb3JlOiBUKTogVFtdIHtcbiAgICBjb25zdCBuZXdBcnJheSA9IFsuLi5hcnJheV07XG4gICAgY29uc3QgdGFyZ2V0SW5kZXggPSBuZXdBcnJheS5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSB0YXJnZXQpO1xuICAgIGNvbnN0IGJlZm9yZUluZGV4ID0gbmV3QXJyYXkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gYmVmb3JlKTtcblxuICAgIGlmICh0YXJnZXRJbmRleCA9PT0gLTEgfHwgYmVmb3JlSW5kZXggPT09IC0xKSB7XG5cbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1RhcmdldCBvciBCZWZvcmUgb2JqZWN0IG5vdCBmb3VuZCBpbiB0aGUgYXJyYXknKTtcbiAgICAgIHJldHVybiBuZXdBcnJheTtcbiAgICB9XG5cblxuICAgIG5ld0FycmF5LnNwbGljZSh0YXJnZXRJbmRleCwgMSk7XG5cblxuICAgIG5ld0FycmF5LnNwbGljZShiZWZvcmVJbmRleCwgMCwgdGFyZ2V0KTtcblxuICAgIHJldHVybiBuZXdBcnJheTtcbiAgfVxuXG4gIG1vdmVPYmplY3RBZnRlcjxUID0gYW55PihhcnJheTogVFtdLCB0YXJnZXQ6IFQsIGFmdGVyOiBUKTogVFtdIHtcbiAgICBjb25zdCBuZXdBcnJheSA9IFsuLi5hcnJheV07XG4gICAgY29uc3QgdGFyZ2V0SW5kZXggPSBuZXdBcnJheS5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSB0YXJnZXQpO1xuICAgIGNvbnN0IGFmdGVySW5kZXggPSBuZXdBcnJheS5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSBhZnRlcik7XG5cbiAgICBpZiAodGFyZ2V0SW5kZXggPT09IC0xIHx8IGFmdGVySW5kZXggPT09IC0xKSB7XG5cbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1RhcmdldCBvciBBZnRlciBvYmplY3Qgbm90IGZvdW5kIGluIHRoZSBhcnJheScpO1xuICAgICAgcmV0dXJuIG5ld0FycmF5O1xuICAgIH1cblxuXG4gICAgbmV3QXJyYXkuc3BsaWNlKHRhcmdldEluZGV4LCAxKTtcblxuXG4gICAgbmV3QXJyYXkuc3BsaWNlKGFmdGVySW5kZXggKyAxLCAwLCB0YXJnZXQpO1xuXG4gICAgcmV0dXJuIG5ld0FycmF5O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBVdGlscy51bmlxQXJyYXkgZnJvbSB0bnAtY29yZVxuICAgKi9cbiAgdW5pcUFycmF5PFQgPSBhbnk+KGFycmF5OiBhbnlbXSwgdW5pcXVlUHJvcGVydHk/OiBrZXlvZiBUKSB7XG4gICAgcmV0dXJuIFV0aWxzLnVuaXFBcnJheShhcnJheSwgdW5pcXVlUHJvcGVydHkpO1xuICB9XG5cbiAgc29ydEtleXMob2JqKSB7XG4gICAgaWYgKF8uaXNBcnJheShvYmopKSB7XG4gICAgICByZXR1cm4gb2JqLm1hcCh0aGlzLnNvcnRLZXlzKTtcbiAgICB9XG4gICAgaWYgKF8uaXNPYmplY3Qob2JqKSkge1xuICAgICAgcmV0dXJuIF8uZnJvbVBhaXJzKFxuICAgICAgICBfLmtleXMob2JqKVxuICAgICAgICAgIC5zb3J0KClcbiAgICAgICAgICAubWFwKGtleSA9PiBba2V5LCB0aGlzLnNvcnRLZXlzKG9ialtrZXldKV0pLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdXp6eSBzZWFyY2hcbiAgICovXG4gIGZ1enp5PFQgPSBhbnk+KFxuICAgIHF1ZXJ5OiBzdHJpbmcsXG4gICAgbGlzdDogVFtdLFxuICAgIHZhbHVlRm4/OiAobW9kZWxGcm9tTGlzdDogVCkgPT4gc3RyaW5nLFxuICApIHtcblxuICAgIGNvbnN0IHJlc3VsdHNGdXp6eSA9IGZ1enp5LmZpbHRlcihcbiAgICAgIHF1ZXJ5LFxuICAgICAgbGlzdC5tYXAoayA9PiAodmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSksXG4gICAgKTtcbiAgICBjb25zdCByZXN1bHRzRnV6enlLZWJhYiA9IGZ1enp5LmZpbHRlcihcbiAgICAgIF8ua2ViYWJDYXNlKHF1ZXJ5KSxcbiAgICAgIGxpc3QubWFwKGsgPT4gXy5rZWJhYkNhc2UoKHZhbHVlRm4gPyB2YWx1ZUZuKGspIDogaykgYXMgYW55KSksXG4gICAgKTtcbiAgICBjb25zdCBtYXRjaGVzID0gcmVzdWx0c0Z1enp5Lm1hcChlbCA9PiBlbC5zdHJpbmcpO1xuICAgIGNvbnN0IG1hdGNoZXNLZWJhYiA9IHJlc3VsdHNGdXp6eUtlYmFiLm1hcChlbCA9PiBlbC5zdHJpbmcpO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9XG4gICAgICByZXN1bHRzRnV6enkubGVuZ3RoID09PSAwXG4gICAgICAgID8gW11cbiAgICAgICAgOiBsaXN0LmZpbHRlcihrID0+IHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaGVzLmluY2x1ZGVzKCh2YWx1ZUZuID8gdmFsdWVGbihrKSA6IGspIGFzIGFueSk7XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAobWF0Y2hlcy5sZW5ndGggPT09IDAgJiYgbWF0Y2hlc0tlYmFiLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IG0gPSBsaXN0LmZpbmQoXG4gICAgICAgIGsgPT5cbiAgICAgICAgICBfLmtlYmFiQ2FzZSgodmFsdWVGbiA/IHZhbHVlRm4oaykgOiBrKSBhcyBhbnkpID09PVxuICAgICAgICAgIF8uZmlyc3QobWF0Y2hlc0tlYmFiKSxcbiAgICAgICk7XG4gICAgICByZXN1bHRzLnB1c2gobSk7XG4gICAgICBtYXRjaGVzLnB1c2goKHZhbHVlRm4gPyB2YWx1ZUZuKG0pIDogbSkgYXMgYW55KTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBtYXRjaGVzLCByZXN1bHRzIH07XG4gIH1cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9oZWxwZXJzL2hlbHBlcnMtYXJyYXktb2JqLnRzIl19
|
|
@@ -145,6 +145,10 @@ export class HelpersTaon extends CoreHelpers {
|
|
|
145
145
|
/* */
|
|
146
146
|
return (void 0);
|
|
147
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* @deprecated
|
|
150
|
+
* use Utils.uniqArray from tnp-core
|
|
151
|
+
*/
|
|
148
152
|
uniqArray(array, uniqueProperty) {
|
|
149
153
|
/* */
|
|
150
154
|
/* */
|
|
@@ -430,4 +434,4 @@ applyMixins(HelpersTaon, [
|
|
|
430
434
|
/* eslint-enable prettier/prettier */
|
|
431
435
|
;
|
|
432
436
|
({}); // @--end-of-file-for-module=tnp-helpers lib/helpers/helpers.ts
|
|
433
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsQ0FBQyxFQUFRLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQXVCbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUs5RDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUFnQixFQUFFLFNBQWdCO0lBQzVELFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDM0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUQsTUFBTSxDQUFDLGNBQWMsQ0FDbkIsV0FBVyxDQUFDLFNBQVMsRUFDckIsSUFBSSxFQUNKLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMs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TCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFJRCxnQkFBZ0IsQ0FBQyxJQUFvQztRQUN2RCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FjRjtBQWdCRCxXQUFXLENBQUMsV0FBVyxFQUFFO0lBQ3ZCLHFCQUFxQjtJQUN2QixLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7Q0FFSixDQUFDLENBQUM7QUFHSCxxQ0FBcUM7QUFFcEMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBfLCBwYXRoIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnNBcnJheU9iaiB9IGZyb20gJy4vaGVscGVycy1hcnJheS1vYmonO1xuaW1wb3J0IHsgSGVscGVyc1N0cmluZ3NSZWdleGVzIH0gZnJvbSAnLi9oZWxwZXJzLXN0cmluZ3MtcmVnZXhlcyc7XG5pbXBvcnQgeyBIZWxwZXJzU3RyaW5ncyB9IGZyb20gJy4vaGVscGVycy1zdHJpbmdzJztcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnMsIFZhbGlkYXRvcnMgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy93ZWJzcWwnO1xuaW1wb3J0IHsgQ29yZUhlbHBlcnMsIENvcmVNb2RlbHMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgSGVscGVyc051bWJlciB9IGZyb20gJy4vaGVscGVycy1udW1iZXJzJztcblxuaW1wb3J0IHsgSGVscGVyc0Jyb3dzZXIgfSBmcm9tICcuL2Zvci1icm93c2VyL2hlbHBlcnMtYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzQW5ndWxhciB9IGZyb20gJy4vZm9yLWJyb3dzZXIvYW5ndWxhci5oZWxwZXInO1xuXG5cblxuXG4vKipcbiAqIE1peGluZyBmb3IgbXVsdGljbGFzcyBpbmhlcml0YW5jZVxuICpcbiAqIEhvdyB0byB1c2UgSXQ6XG4gKlxuICogY2xhc3MgV29sdmVyaW5lIHt9XG4gKiBjbGFzcyBKZWFuIHt9XG4gKiBleHBvcnQgY2xhc3MgQ2hpbGQge31cbiAqIGV4cG9ydCBpbnRlcmZhY2UgTXlDaGlsZCBpbXBsZW1lbnRzIFdvbHZlcmluZSwgSmVhbiB7fVxuICogYXBwbHlNaXhpbmcoQ2hpbGQsW1dvbHZlcmluZSwgSmVhbl0pO1xuICpcbiAqIEBwYXJhbSBkZXJpdmVkQ3RvciBUYXJnZXQgQ2xhc3NcbiAqIEBwYXJhbSBiYXNlQ3RvcnMgQmFzZSBDbGFzc2VzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseU1peGlucyhkZXJpdmVkQ3RvcjogYW55LCBiYXNlQ3RvcnM6IGFueVtdKSB7XG4gIGJhc2VDdG9ycy5mb3JFYWNoKGJhc2VDdG9yID0+IHtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiYXNlQ3Rvci5wcm90b3R5cGUpLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICAgIGRlcml2ZWRDdG9yLnByb3RvdHlwZSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiYXNlQ3Rvci5wcm90b3R5cGUsIG5hbWUpLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cblxuZXhwb3J0IGNsYXNzIEhlbHBlcnNUYW9uIGV4dGVuZHMgQ29yZUhlbHBlcnMge1xuXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogSGVscGVyc1Rhb24gJiBDb3JlSGVscGVycztcbiAgcHVibGljIHN0YXRpYyBnZXQgSW5zdGFuY2UoKTogSGVscGVyc1Rhb24ge1xuICAgIGlmICghSGVscGVyc1Rhb24uX2luc3RhbmNlKSB7XG4gICAgICBIZWxwZXJzVGFvbi5faW5zdGFuY2UgPSBuZXcgSGVscGVyc1Rhb24oKTtcbiAgICB9XG4gICAgcmV0dXJuIEhlbHBlcnNUYW9uLl9pbnN0YW5jZTtcbiAgfVxuXG5cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcHVibGljIGFycmF5cyA9IG5ldyBIZWxwZXJzQXJyYXlPYmooKSxcbiAgICBwdWJsaWMgc3RyaW5ncyA9IG5ldyBIZWxwZXJzU3RyaW5ncygpLFxuICAgIHB1YmxpYyBudW1iZXJzID0gbmV3IEhlbHBlcnNOdW1iZXIoKSxcblxuICAgIHB1YmxpYyBicm93c2VyID0gSGVscGVyc0Jyb3dzZXIuaW5zdGFuY2UsXG4gICAgcHVibGljIG5nID0gSGVscGVyc0FuZ3VsYXIsXG5cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG5cblxuICBDTElXUkFQKGY6IEZ1bmN0aW9uLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBDTEFTUy5zZXROYW1lKGYsIG5hbWUpO1xuICAgIHJldHVybiBmO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBCdW5kbGUgZmlsZSB3aXRoIG5vZGVfbW9kdWxlcyBpbnRvIG9uZSBmaWxlXG4gICAqL1xuICBhc3luYyBuY2MoXG4gICAgcGF0aFRvSnNGaWxlOiBzdHJpbmcsXG4gICAgb3V0cHV0RmlsZVBhdGg6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiAhIGJlZm9yZVdyaXRlIG5lZWRzIHRvIHJldHVybiBvdXRwdXRcbiAgICAgKi9cbiAgICBiZWZvcmVXcml0ZT86IChvcHRpb25zOiB7XG4gICAgICBvdXRwdXQ/OiBzdHJpbmc7XG4gICAgICBjb3B5VG9EZXN0aW5hdGlvbj86IChmaWxlT3JGb2xkZXJBYnNQYXRoOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgfSkgPT4gc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgdW5pcUFycmF5PFQgPSBhbnk+KGFycmF5OiBhbnlbXSwgdW5pcXVlUHJvcGVydHk/OiBrZXlvZiBUKTogVFtdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cblxuXG5cblxuXG5cblxuICB1cmxQYXJzZShwb3J0T3JIb3N0OiBudW1iZXIgfCBzdHJpbmcgfCBVUkwsIGZvcmNlRG9tYWluID0gZmFsc2UpIHtcbiAgICBsZXQgdXJsOiBVUkw7XG4gICAgaWYgKHBvcnRPckhvc3QgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgIHVybCA9IHBvcnRPckhvc3Q7XG4gICAgfSBlbHNlIGlmIChfLmlzTnVtYmVyKHBvcnRPckhvc3QpKSB7XG4gICAgICB1cmwgPSBuZXcgVVJMKGBodHRwOi8vbG9jYWxob3N0OiR7cG9ydE9ySG9zdH1gKTtcbiAgICB9IGVsc2UgaWYgKCFfLmlzTmFOKE51bWJlcihwb3J0T3JIb3N0KSkpIHtcbiAgICAgIHVybCA9IG5ldyBVUkwoYGh0dHA6Ly9sb2NhbGhvc3Q6JHtOdW1iZXIocG9ydE9ySG9zdCl9YCk7XG4gICAgfSBlbHNlIGlmIChfLmlzU3RyaW5nKHBvcnRPckhvc3QpKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1cmwgPSBuZXcgVVJMKHBvcnRPckhvc3QpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gICAgICBpZiAoVmFsaWRhdG9ycy5uZXR3b3JrLmlzVmFsaWRJcChwb3J0T3JIb3N0KSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHVybCA9IG5ldyBVUkwoYGh0dHA6Ly8ke3BvcnRPckhvc3R9YCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgSGVscGVycy53YXJuKGBOb3QgYWJsZSB0byBnZXQgcG9ydCBmcm9tICR7cG9ydE9ySG9zdH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvcmNlRG9tYWluKSB7XG4gICAgICAgIGNvbnN0IGRvbWFpbiA9IHBvcnRPckhvc3QgYXMgc3RyaW5nO1xuICAgICAgICB1cmwgPSBuZXcgVVJMKFxuICAgICAgICAgIGRvbWFpbi5zdGFydHNXaXRoKCdodHRwJykgPyBkb21haW4gOiBgaHR0cDovLyR7cG9ydE9ySG9zdH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cblxuXG4gIHNsYXNoKHBhdGhGcm9tV2luZG93c09yVW5peFR5cGU6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGFzeW5jIGlzRWxldmF0ZWQoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIFRPRE8gZml4IHRoaXMgbWV0aG9kc1xuICAgKi9cbiAgYXN5bmMgbG9jYWxJcEFkZHJlc3MoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuXG4gIGFsbExvY2FsSXBBZGRyZXNzZXMoKTogVVJMW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBhc3luYyBtZXN1cmVFeGVjdGlvbkluTXMoXG4gICAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICBmdW5jdGlvblRvRXhlY3V0ZTogRnVuY3Rpb24sXG4gICAgLi4uZnVuY3Rpb25Bcmd1bWVudHM6IGFueVtdXG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKTtcbiAgICBhd2FpdCBIZWxwZXJzLnJ1blN5bmNPckFzeW5jKHtcbiAgICAgIGZ1bmN0aW9uRm46IGZ1bmN0aW9uVG9FeGVjdXRlLFxuICAgICAgYXJyYXlPZlBhcmFtczogZnVuY3Rpb25Bcmd1bWVudHMsXG4gICAgfSk7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgdmFyIGVuZCA9IG5ldyBEYXRlKCkgLSBzdGFydDtcbiAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIpIHtcbiAgICAgIEhlbHBlcnMuaW5mbyhgRXhlY3V0aW9uIHRpbWU6ICR7ZW5kLnRvU3RyaW5nKCl9bXMgZm9yIFwiJHtkZXNjcmlwdGlvbn1cImApO1xuICAgIH1cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgIHJldHVybiBlbmQ7XG4gIH1cblxuXG5cbiAgbWVzdXJlRXhlY3Rpb25Jbk1zU3luYyhcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlOiAoKSA9PiB2b2lkLFxuICApOiBudW1iZXIge1xuICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKCk7XG4gICAgZnVuY3Rpb25Ub0V4ZWN1dGUoKTtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB2YXIgZW5kID0gbmV3IERhdGUoKSAtIHN0YXJ0O1xuICAgIGlmIChIZWxwZXJzLmlzQnJvd3Nlcikge1xuICAgICAgSGVscGVycy5pbmZvKGBFeGVjdXRpb24gdGltZTogJHtlbmQudG9TdHJpbmcoKX1tcyBmb3IgXCIke2Rlc2NyaXB0aW9ufVwiYCk7XG4gICAgfVxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIGVuZDtcbiAgfVxuXG5cblxuICB3YWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbkZuOiAoYW55KSA9PiBib29sZWFuLCBob3dPZmZ0ZW5DaGVja0luTXMgPSAxMDAwKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEhlbHBlcnMucnVuU3luY09yQXN5bmMoeyBmdW5jdGlvbkZuOiBjb25kaXRpb25GbiB9KTtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZSh2b2lkIDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgSGVscGVycy53YWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbkZuLCBob3dPZmZ0ZW5DaGVja0luTXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh2b2lkIDApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCBob3dPZmZ0ZW5DaGVja0luTXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZ2V0QnJvd3NlclZlclBhdGgobW9kdWxlTmFtZT86IHN0cmluZywgd2Vic3FsOiBib29sZWFuID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBnZXRNZXRob2ROYW1lKGNsYXNzT2JqZWN0LCBtZXRob2QpOiBzdHJpbmcge1xuICAgIHZhciBtZXRob2ROYW1lID0gbnVsbDtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjbGFzc09iamVjdCkuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGlmIChjbGFzc09iamVjdFtwcm9wXSA9PT0gbWV0aG9kKSB7XG4gICAgICAgIG1ldGhvZE5hbWUgPSBwcm9wO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKG1ldGhvZE5hbWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBtZXRob2ROYW1lO1xuICAgIH1cblxuICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjbGFzc09iamVjdCk7XG4gICAgaWYgKHByb3RvKSB7XG4gICAgICByZXR1cm4gSGVscGVycy5nZXRNZXRob2ROYW1lKHByb3RvLCBtZXRob2QpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGZpeFdlYnBhY2tFbnYoZW52OiBPYmplY3QpIHtcbiAgICBfLmZvckluKGVudiwgKHYsIGspID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSB2IGFzIGFueTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ3RydWUnKSBlbnZba10gPSB0cnVlO1xuICAgICAgaWYgKHZhbHVlID09PSAnZmFsc2UnKSBlbnZba10gPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGFzeW5jIHdvcmtlckNhbGN1bGF0ZUFycmF5KFxuICAgIGRhdGFUb1NwbGl0OiBhbnlbXSxcbiAgICBvcGVyYXRpb246IChcbiAgICAgIGRhdGFDaHVuazogYW55W10sXG4gICAgICB3b3JrZXJOdW1iZXI/OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgKSA9PiBQcm9taXNlPHZvaWQ+LFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBtYXhlc0Zvcldvcmtlcz86IHsgW3dvcmtlck1heGVzOiBudW1iZXJdOiBudW1iZXIgfTtcbiAgICAgIHdvcmtlckxpbWl0PzogbnVtYmVyO1xuICAgICAgZ2xvYmFscz86IGFueTtcbiAgICB9LFxuICApIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBjaGVja0Vudmlyb25tZW50KGRlcHM/OiBDb3JlTW9kZWxzLkdsb2JhbERlcGVuZGVuY2llcykge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHB1YmxpYyBhcHBseU1peGlucyA9IGFwcGx5TWl4aW5zO1xuXG5cblxuICBpc1ZhbGlkSXAgPSBWYWxpZGF0b3JzLm5ldHdvcmsuaXNWYWxpZElwO1xuXG5cblxuICBpc1ZhbGlkR2l0UmVwdVVybCA9IFZhbGlkYXRvcnMuZ2l0LmlzVmFsaWRSZXBvVXJsO1xuXG59XG5cblxuLyogZXNsaW50LWRpc2FibGUgcHJldHRpZXIvcHJldHRpZXIgKi9cblxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGludGVyZmFjZSBIZWxwZXJzVGFvbiBleHRlbmRzXG4gIEhlbHBlcnNTdHJpbmdzUmVnZXhlc1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG57IH1cblxuXG5hcHBseU1peGlucyhIZWxwZXJzVGFvbiwgW1xuICBIZWxwZXJzU3RyaW5nc1JlZ2V4ZXMsXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXSk7XG5cblxuLyogZXNsaW50LWVuYWJsZSBwcmV0dGllci9wcmV0dGllciAqL1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMvaGVscGVycy50cyJdfQ==
|
|
437
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2hlbHBlcnMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsQ0FBQyxFQUFRLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQXVCbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUs5RDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxXQUFnQixFQUFFLFNBQWdCO0lBQzVELFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDM0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUQsTUFBTSxDQUFDLGNBQWMsQ0FDbkIsV0FBVyxDQUFDLFNBQVMsRUFDckIsSUFBSSxFQUNKLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMs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QUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFJRCxnQkFBZ0IsQ0FBQyxJQUFvQztRQUN2RCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FjRjtBQWdCRCxXQUFXLENBQUMsV0FBVyxFQUFFO0lBQ3ZCLHFCQUFxQjtJQUN2QixLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7Q0FFSixDQUFDLENBQUM7QUFHSCxxQ0FBcUM7QUFFcEMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBfLCBwYXRoIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnNBcnJheU9iaiB9IGZyb20gJy4vaGVscGVycy1hcnJheS1vYmonO1xuaW1wb3J0IHsgSGVscGVyc1N0cmluZ3NSZWdleGVzIH0gZnJvbSAnLi9oZWxwZXJzLXN0cmluZ3MtcmVnZXhlcyc7XG5pbXBvcnQgeyBIZWxwZXJzU3RyaW5ncyB9IGZyb20gJy4vaGVscGVycy1zdHJpbmdzJztcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvd2Vic3FsJztcbmltcG9ydCB7IEhlbHBlcnMsIFZhbGlkYXRvcnMgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBDTEFTUyB9IGZyb20gJ3R5cGVzY3JpcHQtY2xhc3MtaGVscGVycy93ZWJzcWwnO1xuaW1wb3J0IHsgQ29yZUhlbHBlcnMsIENvcmVNb2RlbHMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgSGVscGVyc051bWJlciB9IGZyb20gJy4vaGVscGVycy1udW1iZXJzJztcblxuaW1wb3J0IHsgSGVscGVyc0Jyb3dzZXIgfSBmcm9tICcuL2Zvci1icm93c2VyL2hlbHBlcnMtYnJvd3Nlcic7XG5pbXBvcnQgeyBIZWxwZXJzQW5ndWxhciB9IGZyb20gJy4vZm9yLWJyb3dzZXIvYW5ndWxhci5oZWxwZXInO1xuXG5cblxuXG4vKipcbiAqIE1peGluZyBmb3IgbXVsdGljbGFzcyBpbmhlcml0YW5jZVxuICpcbiAqIEhvdyB0byB1c2UgSXQ6XG4gKlxuICogY2xhc3MgV29sdmVyaW5lIHt9XG4gKiBjbGFzcyBKZWFuIHt9XG4gKiBleHBvcnQgY2xhc3MgQ2hpbGQge31cbiAqIGV4cG9ydCBpbnRlcmZhY2UgTXlDaGlsZCBpbXBsZW1lbnRzIFdvbHZlcmluZSwgSmVhbiB7fVxuICogYXBwbHlNaXhpbmcoQ2hpbGQsW1dvbHZlcmluZSwgSmVhbl0pO1xuICpcbiAqIEBwYXJhbSBkZXJpdmVkQ3RvciBUYXJnZXQgQ2xhc3NcbiAqIEBwYXJhbSBiYXNlQ3RvcnMgQmFzZSBDbGFzc2VzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseU1peGlucyhkZXJpdmVkQ3RvcjogYW55LCBiYXNlQ3RvcnM6IGFueVtdKSB7XG4gIGJhc2VDdG9ycy5mb3JFYWNoKGJhc2VDdG9yID0+IHtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhiYXNlQ3Rvci5wcm90b3R5cGUpLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoXG4gICAgICAgIGRlcml2ZWRDdG9yLnByb3RvdHlwZSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihiYXNlQ3Rvci5wcm90b3R5cGUsIG5hbWUpLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cblxuZXhwb3J0IGNsYXNzIEhlbHBlcnNUYW9uIGV4dGVuZHMgQ29yZUhlbHBlcnMge1xuXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogSGVscGVyc1Rhb24gJiBDb3JlSGVscGVycztcbiAgcHVibGljIHN0YXRpYyBnZXQgSW5zdGFuY2UoKTogSGVscGVyc1Rhb24ge1xuICAgIGlmICghSGVscGVyc1Rhb24uX2luc3RhbmNlKSB7XG4gICAgICBIZWxwZXJzVGFvbi5faW5zdGFuY2UgPSBuZXcgSGVscGVyc1Rhb24oKTtcbiAgICB9XG4gICAgcmV0dXJuIEhlbHBlcnNUYW9uLl9pbnN0YW5jZTtcbiAgfVxuXG5cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcHVibGljIGFycmF5cyA9IG5ldyBIZWxwZXJzQXJyYXlPYmooKSxcbiAgICBwdWJsaWMgc3RyaW5ncyA9IG5ldyBIZWxwZXJzU3RyaW5ncygpLFxuICAgIHB1YmxpYyBudW1iZXJzID0gbmV3IEhlbHBlcnNOdW1iZXIoKSxcblxuICAgIHB1YmxpYyBicm93c2VyID0gSGVscGVyc0Jyb3dzZXIuaW5zdGFuY2UsXG4gICAgcHVibGljIG5nID0gSGVscGVyc0FuZ3VsYXIsXG5cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG5cblxuICBDTElXUkFQKGY6IEZ1bmN0aW9uLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBDTEFTUy5zZXROYW1lKGYsIG5hbWUpO1xuICAgIHJldHVybiBmO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBCdW5kbGUgZmlsZSB3aXRoIG5vZGVfbW9kdWxlcyBpbnRvIG9uZSBmaWxlXG4gICAqL1xuICBhc3luYyBuY2MoXG4gICAgcGF0aFRvSnNGaWxlOiBzdHJpbmcsXG4gICAgb3V0cHV0RmlsZVBhdGg6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiAhIGJlZm9yZVdyaXRlIG5lZWRzIHRvIHJldHVybiBvdXRwdXRcbiAgICAgKi9cbiAgICBiZWZvcmVXcml0ZT86IChvcHRpb25zOiB7XG4gICAgICBvdXRwdXQ/OiBzdHJpbmc7XG4gICAgICBjb3B5VG9EZXN0aW5hdGlvbj86IChmaWxlT3JGb2xkZXJBYnNQYXRoOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgfSkgPT4gc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIHVzZSBVdGlscy51bmlxQXJyYXkgZnJvbSB0bnAtY29yZVxuICAgKi9cbiAgdW5pcUFycmF5PFQgPSBhbnk+KGFycmF5OiBhbnlbXSwgdW5pcXVlUHJvcGVydHk/OiBrZXlvZiBUKTogVFtdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cblxuXG5cblxuXG5cblxuICB1cmxQYXJzZShwb3J0T3JIb3N0OiBudW1iZXIgfCBzdHJpbmcgfCBVUkwsIGZvcmNlRG9tYWluID0gZmFsc2UpIHtcbiAgICBsZXQgdXJsOiBVUkw7XG4gICAgaWYgKHBvcnRPckhvc3QgaW5zdGFuY2VvZiBVUkwpIHtcbiAgICAgIHVybCA9IHBvcnRPckhvc3Q7XG4gICAgfSBlbHNlIGlmIChfLmlzTnVtYmVyKHBvcnRPckhvc3QpKSB7XG4gICAgICB1cmwgPSBuZXcgVVJMKGBodHRwOi8vbG9jYWxob3N0OiR7cG9ydE9ySG9zdH1gKTtcbiAgICB9IGVsc2UgaWYgKCFfLmlzTmFOKE51bWJlcihwb3J0T3JIb3N0KSkpIHtcbiAgICAgIHVybCA9IG5ldyBVUkwoYGh0dHA6Ly9sb2NhbGhvc3Q6JHtOdW1iZXIocG9ydE9ySG9zdCl9YCk7XG4gICAgfSBlbHNlIGlmIChfLmlzU3RyaW5nKHBvcnRPckhvc3QpKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1cmwgPSBuZXcgVVJMKHBvcnRPckhvc3QpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gICAgICBpZiAoVmFsaWRhdG9ycy5uZXR3b3JrLmlzVmFsaWRJcChwb3J0T3JIb3N0KSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHVybCA9IG5ldyBVUkwoYGh0dHA6Ly8ke3BvcnRPckhvc3R9YCk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgSGVscGVycy53YXJuKGBOb3QgYWJsZSB0byBnZXQgcG9ydCBmcm9tICR7cG9ydE9ySG9zdH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGZvcmNlRG9tYWluKSB7XG4gICAgICAgIGNvbnN0IGRvbWFpbiA9IHBvcnRPckhvc3QgYXMgc3RyaW5nO1xuICAgICAgICB1cmwgPSBuZXcgVVJMKFxuICAgICAgICAgIGRvbWFpbi5zdGFydHNXaXRoKCdodHRwJykgPyBkb21haW4gOiBgaHR0cDovLyR7cG9ydE9ySG9zdH1gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cblxuXG4gIHNsYXNoKHBhdGhGcm9tV2luZG93c09yVW5peFR5cGU6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGFzeW5jIGlzRWxldmF0ZWQoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIFRPRE8gZml4IHRoaXMgbWV0aG9kc1xuICAgKi9cbiAgYXN5bmMgbG9jYWxJcEFkZHJlc3MoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuXG4gIGFsbExvY2FsSXBBZGRyZXNzZXMoKTogVVJMW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBhc3luYyBtZXN1cmVFeGVjdGlvbkluTXMoXG4gICAgZGVzY3JpcHRpb246IHN0cmluZyxcbiAgICBmdW5jdGlvblRvRXhlY3V0ZTogRnVuY3Rpb24sXG4gICAgLi4uZnVuY3Rpb25Bcmd1bWVudHM6IGFueVtdXG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgdmFyIHN0YXJ0ID0gbmV3IERhdGUoKTtcbiAgICBhd2FpdCBIZWxwZXJzLnJ1blN5bmNPckFzeW5jKHtcbiAgICAgIGZ1bmN0aW9uRm46IGZ1bmN0aW9uVG9FeGVjdXRlLFxuICAgICAgYXJyYXlPZlBhcmFtczogZnVuY3Rpb25Bcmd1bWVudHMsXG4gICAgfSk7XG4gICAgLy9AdHMtaWdub3JlXG4gICAgdmFyIGVuZCA9IG5ldyBEYXRlKCkgLSBzdGFydDtcbiAgICBpZiAoSGVscGVycy5pc0Jyb3dzZXIpIHtcbiAgICAgIEhlbHBlcnMuaW5mbyhgRXhlY3V0aW9uIHRpbWU6ICR7ZW5kLnRvU3RyaW5nKCl9bXMgZm9yIFwiJHtkZXNjcmlwdGlvbn1cImApO1xuICAgIH1cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgIHJldHVybiBlbmQ7XG4gIH1cblxuXG5cbiAgbWVzdXJlRXhlY3Rpb25Jbk1zU3luYyhcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGZ1bmN0aW9uVG9FeGVjdXRlOiAoKSA9PiB2b2lkLFxuICApOiBudW1iZXIge1xuICAgIHZhciBzdGFydCA9IG5ldyBEYXRlKCk7XG4gICAgZnVuY3Rpb25Ub0V4ZWN1dGUoKTtcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB2YXIgZW5kID0gbmV3IERhdGUoKSAtIHN0YXJ0O1xuICAgIGlmIChIZWxwZXJzLmlzQnJvd3Nlcikge1xuICAgICAgSGVscGVycy5pbmZvKGBFeGVjdXRpb24gdGltZTogJHtlbmQudG9TdHJpbmcoKX1tcyBmb3IgXCIke2Rlc2NyaXB0aW9ufVwiYCk7XG4gICAgfVxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIGVuZDtcbiAgfVxuXG5cblxuICB3YWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbkZuOiAoYW55KSA9PiBib29sZWFuLCBob3dPZmZ0ZW5DaGVja0luTXMgPSAxMDAwKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEhlbHBlcnMucnVuU3luY09yQXN5bmMoeyBmdW5jdGlvbkZuOiBjb25kaXRpb25GbiB9KTtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgcmVzb2x2ZSh2b2lkIDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgSGVscGVycy53YWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbkZuLCBob3dPZmZ0ZW5DaGVja0luTXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmVzb2x2ZSh2b2lkIDApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCBob3dPZmZ0ZW5DaGVja0luTXMpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgZ2V0QnJvd3NlclZlclBhdGgobW9kdWxlTmFtZT86IHN0cmluZywgd2Vic3FsOiBib29sZWFuID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBnZXRNZXRob2ROYW1lKGNsYXNzT2JqZWN0LCBtZXRob2QpOiBzdHJpbmcge1xuICAgIHZhciBtZXRob2ROYW1lID0gbnVsbDtcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjbGFzc09iamVjdCkuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGlmIChjbGFzc09iamVjdFtwcm9wXSA9PT0gbWV0aG9kKSB7XG4gICAgICAgIG1ldGhvZE5hbWUgPSBwcm9wO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKG1ldGhvZE5hbWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBtZXRob2ROYW1lO1xuICAgIH1cblxuICAgIHZhciBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihjbGFzc09iamVjdCk7XG4gICAgaWYgKHByb3RvKSB7XG4gICAgICByZXR1cm4gSGVscGVycy5nZXRNZXRob2ROYW1lKHByb3RvLCBtZXRob2QpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGZpeFdlYnBhY2tFbnYoZW52OiBPYmplY3QpIHtcbiAgICBfLmZvckluKGVudiwgKHYsIGspID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSB2IGFzIGFueTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gJ3RydWUnKSBlbnZba10gPSB0cnVlO1xuICAgICAgaWYgKHZhbHVlID09PSAnZmFsc2UnKSBlbnZba10gPSBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIGFzeW5jIHdvcmtlckNhbGN1bGF0ZUFycmF5KFxuICAgIGRhdGFUb1NwbGl0OiBhbnlbXSxcbiAgICBvcGVyYXRpb246IChcbiAgICAgIGRhdGFDaHVuazogYW55W10sXG4gICAgICB3b3JrZXJOdW1iZXI/OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgKSA9PiBQcm9taXNlPHZvaWQ+LFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBtYXhlc0Zvcldvcmtlcz86IHsgW3dvcmtlck1heGVzOiBudW1iZXJdOiBudW1iZXIgfTtcbiAgICAgIHdvcmtlckxpbWl0PzogbnVtYmVyO1xuICAgICAgZ2xvYmFscz86IGFueTtcbiAgICB9LFxuICApIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBjaGVja0Vudmlyb25tZW50KGRlcHM/OiBDb3JlTW9kZWxzLkdsb2JhbERlcGVuZGVuY2llcykge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHB1YmxpYyBhcHBseU1peGlucyA9IGFwcGx5TWl4aW5zO1xuXG5cblxuICBpc1ZhbGlkSXAgPSBWYWxpZGF0b3JzLm5ldHdvcmsuaXNWYWxpZElwO1xuXG5cblxuICBpc1ZhbGlkR2l0UmVwdVVybCA9IFZhbGlkYXRvcnMuZ2l0LmlzVmFsaWRSZXBvVXJsO1xuXG59XG5cblxuLyogZXNsaW50LWRpc2FibGUgcHJldHRpZXIvcHJldHRpZXIgKi9cblxuLy8gQHRzLWlnbm9yZVxuZXhwb3J0IGludGVyZmFjZSBIZWxwZXJzVGFvbiBleHRlbmRzXG4gIEhlbHBlcnNTdHJpbmdzUmVnZXhlc1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG57IH1cblxuXG5hcHBseU1peGlucyhIZWxwZXJzVGFvbiwgW1xuICBIZWxwZXJzU3RyaW5nc1JlZ2V4ZXMsXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXSk7XG5cblxuLyogZXNsaW50LWVuYWJsZSBwcmV0dGllci9wcmV0dGllciAqL1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2hlbHBlcnMvaGVscGVycy50cyJdfQ==
|
|
@@ -1,3 +1,36 @@
|
|
|
1
|
+
/* */
|
|
2
|
+
/* */
|
|
3
|
+
/* */
|
|
4
|
+
/* */
|
|
5
|
+
/* */
|
|
6
|
+
/* */
|
|
7
|
+
/* */
|
|
8
|
+
/* */
|
|
9
|
+
/* */
|
|
10
|
+
/* */
|
|
11
|
+
/* */
|
|
12
|
+
/* */
|
|
13
|
+
/* */
|
|
14
|
+
/* */
|
|
15
|
+
/* */
|
|
16
|
+
/* */
|
|
17
|
+
/* */
|
|
18
|
+
/* */
|
|
19
|
+
/* */
|
|
20
|
+
/* */
|
|
21
|
+
/* */
|
|
22
|
+
/* */
|
|
23
|
+
/* */
|
|
24
|
+
/* */
|
|
25
|
+
/* */
|
|
26
|
+
/* */
|
|
27
|
+
/* */
|
|
28
|
+
/* */
|
|
29
|
+
/* */
|
|
30
|
+
/* */
|
|
31
|
+
/* */
|
|
32
|
+
/* */
|
|
33
|
+
/* */
|
|
1
34
|
import { CoreModels, Utils } from 'tnp-core/websql';
|
|
2
35
|
export var UtilsNpm;
|
|
3
36
|
(function (UtilsNpm) {
|
|
@@ -180,6 +213,222 @@ export var UtilsTerminal;
|
|
|
180
213
|
return (void 0);
|
|
181
214
|
};
|
|
182
215
|
})(UtilsTerminal || (UtilsTerminal = {}));
|
|
216
|
+
export var UtilsTypescript;
|
|
217
|
+
(function (UtilsTypescript) {
|
|
218
|
+
/**
|
|
219
|
+
* Remove TypeScript region blocks by their name, including nested regions.
|
|
220
|
+
*
|
|
221
|
+
* @param sourceCode - The TypeScript source code as a string.
|
|
222
|
+
* @param regionName - The name of the region to remove.
|
|
223
|
+
* @returns Modified TypeScript code without the specified regions.
|
|
224
|
+
*/
|
|
225
|
+
UtilsTypescript.removeRegionByName = (sourceCode, regionName) => {
|
|
226
|
+
/* */
|
|
227
|
+
/* */
|
|
228
|
+
/* */
|
|
229
|
+
/* */
|
|
230
|
+
/* */
|
|
231
|
+
/* */
|
|
232
|
+
/* */
|
|
233
|
+
/* */
|
|
234
|
+
/* */
|
|
235
|
+
/* */
|
|
236
|
+
/* */
|
|
237
|
+
/* */
|
|
238
|
+
/* */
|
|
239
|
+
/* */
|
|
240
|
+
/* */
|
|
241
|
+
/* */
|
|
242
|
+
/* */
|
|
243
|
+
/* */
|
|
244
|
+
/* */
|
|
245
|
+
/* */
|
|
246
|
+
/* */
|
|
247
|
+
/* */
|
|
248
|
+
/* */
|
|
249
|
+
/* */
|
|
250
|
+
/* */
|
|
251
|
+
/* */
|
|
252
|
+
/* */
|
|
253
|
+
/* */
|
|
254
|
+
/* */
|
|
255
|
+
/* */
|
|
256
|
+
/* */
|
|
257
|
+
/* */
|
|
258
|
+
/* */
|
|
259
|
+
/* */
|
|
260
|
+
/* */
|
|
261
|
+
/* */
|
|
262
|
+
/* */
|
|
263
|
+
/* */
|
|
264
|
+
/* */
|
|
265
|
+
/* */
|
|
266
|
+
/* */
|
|
267
|
+
/* */
|
|
268
|
+
/* */
|
|
269
|
+
/* */
|
|
270
|
+
/* */
|
|
271
|
+
/* */
|
|
272
|
+
/* */
|
|
273
|
+
/* */
|
|
274
|
+
/* */
|
|
275
|
+
/* */
|
|
276
|
+
/* */
|
|
277
|
+
/* */
|
|
278
|
+
/* */
|
|
279
|
+
/* */
|
|
280
|
+
/* */
|
|
281
|
+
/* */
|
|
282
|
+
/* */
|
|
283
|
+
/* */
|
|
284
|
+
/* */
|
|
285
|
+
/* */
|
|
286
|
+
/* */
|
|
287
|
+
/* */
|
|
288
|
+
/* */
|
|
289
|
+
/* */
|
|
290
|
+
/* */
|
|
291
|
+
/* */
|
|
292
|
+
/* */
|
|
293
|
+
/* */
|
|
294
|
+
/* */
|
|
295
|
+
/* */
|
|
296
|
+
/* */
|
|
297
|
+
/* */
|
|
298
|
+
/* */
|
|
299
|
+
/* */
|
|
300
|
+
/* */
|
|
301
|
+
/* */
|
|
302
|
+
/* */
|
|
303
|
+
/* */
|
|
304
|
+
/* */
|
|
305
|
+
/* */
|
|
306
|
+
/* */
|
|
307
|
+
/* */
|
|
308
|
+
/* */
|
|
309
|
+
/* */
|
|
310
|
+
/* */
|
|
311
|
+
/* */
|
|
312
|
+
/* */
|
|
313
|
+
/* */
|
|
314
|
+
/* */
|
|
315
|
+
/* */
|
|
316
|
+
/* */
|
|
317
|
+
/* */
|
|
318
|
+
/* */
|
|
319
|
+
/* */
|
|
320
|
+
/* */
|
|
321
|
+
/* */
|
|
322
|
+
/* */
|
|
323
|
+
/* */
|
|
324
|
+
/* */
|
|
325
|
+
/* */
|
|
326
|
+
/* */
|
|
327
|
+
/* */
|
|
328
|
+
/* */
|
|
329
|
+
/* */
|
|
330
|
+
/* */
|
|
331
|
+
/* */
|
|
332
|
+
/* */
|
|
333
|
+
/* */
|
|
334
|
+
/* */
|
|
335
|
+
/* */
|
|
336
|
+
/* */
|
|
337
|
+
/* */
|
|
338
|
+
/* */
|
|
339
|
+
/* */
|
|
340
|
+
/* */
|
|
341
|
+
/* */
|
|
342
|
+
return (void 0);
|
|
343
|
+
};
|
|
344
|
+
const isExported = (node) => {
|
|
345
|
+
/* */
|
|
346
|
+
/* */
|
|
347
|
+
/* */
|
|
348
|
+
/* */
|
|
349
|
+
/* */
|
|
350
|
+
return (void 0);
|
|
351
|
+
};
|
|
352
|
+
/**
|
|
353
|
+
* Function to extract exports from a TypeScript file
|
|
354
|
+
*/
|
|
355
|
+
UtilsTypescript.exportsFromFile = (filePath) => {
|
|
356
|
+
/* */
|
|
357
|
+
/* */
|
|
358
|
+
/* */
|
|
359
|
+
/* */
|
|
360
|
+
/* */
|
|
361
|
+
/* */
|
|
362
|
+
/* */
|
|
363
|
+
/* */
|
|
364
|
+
/* */
|
|
365
|
+
/* */
|
|
366
|
+
/* */
|
|
367
|
+
/* */
|
|
368
|
+
/* */
|
|
369
|
+
/* */
|
|
370
|
+
/* */
|
|
371
|
+
/* */
|
|
372
|
+
/* */
|
|
373
|
+
/* */
|
|
374
|
+
/* */
|
|
375
|
+
/* */
|
|
376
|
+
/* */
|
|
377
|
+
/* */
|
|
378
|
+
/* */
|
|
379
|
+
/* */
|
|
380
|
+
/* */
|
|
381
|
+
/* */
|
|
382
|
+
/* */
|
|
383
|
+
/* */
|
|
384
|
+
/* */
|
|
385
|
+
/* */
|
|
386
|
+
/* */
|
|
387
|
+
/* */
|
|
388
|
+
/* */
|
|
389
|
+
/* */
|
|
390
|
+
/* */
|
|
391
|
+
/* */
|
|
392
|
+
/* */
|
|
393
|
+
/* */
|
|
394
|
+
/* */
|
|
395
|
+
/* */
|
|
396
|
+
/* */
|
|
397
|
+
/* */
|
|
398
|
+
/* */
|
|
399
|
+
/* */
|
|
400
|
+
/* */
|
|
401
|
+
/* */
|
|
402
|
+
/* */
|
|
403
|
+
/* */
|
|
404
|
+
/* */
|
|
405
|
+
/* */
|
|
406
|
+
/* */
|
|
407
|
+
/* */
|
|
408
|
+
/* */
|
|
409
|
+
/* */
|
|
410
|
+
/* */
|
|
411
|
+
/* */
|
|
412
|
+
/* */
|
|
413
|
+
/* */
|
|
414
|
+
/* */
|
|
415
|
+
/* */
|
|
416
|
+
/* */
|
|
417
|
+
/* */
|
|
418
|
+
/* */
|
|
419
|
+
/* */
|
|
420
|
+
/* */
|
|
421
|
+
/* */
|
|
422
|
+
/* */
|
|
423
|
+
/* */
|
|
424
|
+
/* */
|
|
425
|
+
/* */
|
|
426
|
+
/* */
|
|
427
|
+
/* */
|
|
428
|
+
/* */
|
|
429
|
+
return (void 0);
|
|
430
|
+
};
|
|
431
|
+
})(UtilsTypescript || (UtilsTypescript = {}));
|
|
183
432
|
;
|
|
184
433
|
({}); // @--end-of-file-for-module=tnp-helpers lib/utils.ts
|
|
185
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQVksVUFBVSxFQUFXLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSXZFLE1BQU0sS0FBVyxRQUFRLENBNER4QjtBQTVERCxXQUFpQixRQUFRO0lBRVYseUJBQWdCLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRTtRQUNsRCxPQUFPLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDO0lBSVcscUJBQVksR0FBRyxDQUMxQixPQUFlLEVBQ2YsT0FNQyxFQUNELEVBQUU7UUFDRixNQUFNLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFdkQsSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFBLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDMUMsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7YUFDdEIsSUFBSSxFQUFFO2FBQ04sT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUUxRSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ25CLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFB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QUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHFEQUFxRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IF8sIGNoYWxrLCBDb3JlTW9kZWxzLCBIZWxwZXJzLCBVdGlscyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cblxuXG5leHBvcnQgbmFtZXNwYWNlIFV0aWxzTnBtIHtcblxuICBleHBvcnQgY29uc3QgaXNTcGVjaWFsVmVyc2lvbiA9ICh2ZXJzaW9uOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gQ29yZU1vZGVscy5OcG1TcGVjaWFsVmVyc2lvbnMuaW5jbHVkZXModmVyc2lvbik7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBjbGVhclZlcnNpb24gPSAoXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHJlbW92ZVByZWZpeGVzPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIGFscGhhLCBiZXRhLCByYywgbGF0ZXN0LCBuZXh0IGV0Yy5cbiAgICAgICAqL1xuICAgICAgcmVtb3ZlU3VmZml4PzogYm9vbGVhbjtcbiAgICB9LFxuICApID0+IHtcbiAgICBjb25zdCB7IHJlbW92ZVByZWZpeGVzLCByZW1vdmVTdWZmaXggfSA9IG9wdGlvbnMgfHwge307XG5cbiAgICBpZiAoIXZlcnNpb24gfHwgaXNTcGVjaWFsVmVyc2lvbih2ZXJzaW9uKSkge1xuICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgfVxuXG4gICAgdmVyc2lvbiA9ICh2ZXJzaW9uIHx8ICcnKVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cChVdGlscy5lc2NhcGVTdHJpbmdGb3JSZWdFeCgndW5kZWZpbmVkJyksICdnJyksICcwJyk7XG5cbiAgICBpZiAocmVtb3ZlUHJlZml4ZXMpIHtcbiAgICAgIHZlcnNpb24gPSB2ZXJzaW9uLnJlcGxhY2UoJ14nLCAnJykucmVwbGFjZSgnficsICcnKTtcbiAgICB9XG4gICAgbGV0IFttYWpvciwgbWlub3IsIHBhdGNoLCBhbHBoYU9yQmV0YU9yUmNdID0gdmVyc2lvbi5zcGxpdCgnLicpO1xuICAgIGlmIChyZW1vdmVTdWZmaXgpIHtcbiAgICAgIGFscGhhT3JCZXRhT3JSYyA9ICcnO1xuICAgIH1cbiAgICByZXR1cm4gZml4TWFqb3JWZXJOdW1iZXIoXG4gICAgICBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH0ke2FscGhhT3JCZXRhT3JSYyA/ICcuJyArIGFscGhhT3JCZXRhT3JSYyA6ICcnfWAsXG4gICAgKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGZpeE1ham9yVmVyTnVtYmVyID0gKHZlcnNpb246IHN0cmluZykgPT4ge1xuICAgIGlmICghdmVyc2lvbiB8fCBpc1NwZWNpYWxWZXJzaW9uKHZlcnNpb24pKSB7XG4gICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG4gICAgdmVyc2lvbiA9ICh2ZXJzaW9uIHx8ICcnKVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cChVdGlscy5lc2NhcGVTdHJpbmdGb3JSZWdFeCgndW5kZWZpbmVkJyksICdnJyksICcwJyk7XG4gICAgY29uc3Qgc3BsaXRlZCA9IHZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICBsZXQgW21ham9yLCBtaW5vciwgcGF0Y2gsIGFscGhhT3JCZXRhT3JSY10gPSBzcGxpdGVkO1xuICAgIGlmIChzcGxpdGVkLmxlbmd0aCA9PT0gMSkge1xuICAgICAgbWlub3IgPSAnMCc7XG4gICAgICBwYXRjaCA9ICcwJztcbiAgICB9IGVsc2UgaWYgKHNwbGl0ZWQubGVuZ3RoID09PSAyKSB7XG4gICAgICBwYXRjaCA9ICcwJztcbiAgICB9XG4gICAgcmV0dXJuIGAke21ham9yfS4ke21pbm9yfS4ke3BhdGNofSR7YWxwaGFPckJldGFPclJjID8gJy4nICsgYWxwaGFPckJldGFPclJjIDogJyd9YDtcbiAgfTtcblxufVxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc1Rlcm1pbmFsIHtcblxuICBjb25zdCB0cmFuc2Zvcm1DaG9pY2VzID0gKFxuICAgIGNob2ljZXM6IGFueSxcbiAgKTogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBtdWx0aXNlbGVjdCA9IGFzeW5jIDxUID0gc3RyaW5nPihvcHRpb25zOiB7XG4gICAgcXVlc3Rpb246IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGVuIG9ubHkgb25lIGNob2ljZSBjYW4gYmUgc2VsZWN0ZWRcbiAgICAgKi9cbiAgICBvbmx5T25lQ2hvaWNlPzogYm9vbGVhbjtcbiAgICBjaG9pY2VzOlxuICAgICAgfCB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IFQgfVtdXG4gICAgICB8IHsgW2Nob2ljZTogc3RyaW5nXTogeyBuYW1lOiBzdHJpbmcgfSB9O1xuICAgIGF1dG9jb21wbGV0ZT86IGJvb2xlYW47XG4gICAgZGVmYXVsdFNlbGVjdGVkPzogc3RyaW5nW107XG4gIH0pOiBQcm9taXNlPFRbXT4gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IHNlbGVjdCA9IGFzeW5jIDxUID0gc3RyaW5nPihvcHRpb25zOiB7XG4gICAgcXVlc3Rpb246IHN0cmluZztcbiAgICBjaG9pY2VzOlxuICAgICAgfCB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IFQgfVtdXG4gICAgICB8IHsgW2Nob2ljZTogc3RyaW5nXTogeyBuYW1lOiBzdHJpbmcgfSB9O1xuICAgIGF1dG9jb21wbGV0ZT86IGJvb2xlYW47XG4gICAgZGVmYXVsdFNlbGVjdGVkPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxUPiA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvdXRpbHMudHMiXX0=
|
|
434
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQVksVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSTlELE1BQU0sS0FBVyxRQUFRLENBNER4QjtBQTVERCxXQUFpQixRQUFRO0lBRVYseUJBQWdCLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRTtRQUNsRCxPQUFPLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDO0lBSVcscUJBQVksR0FBRyxDQUMxQixPQUFlLEVBQ2YsT0FNQyxFQUNELEVBQUU7UUFDRixNQUFNLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFFdkQsSUFBSSxDQUFDLE9BQU8sSUFBSSxTQUFBLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDMUMsT0FBTyxPQUFPLENBQUM7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QUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFJVyxvQkFBTSxHQUFHLEtBQUssRUFBYyxPQU94QyxFQUFjLEVBQUU7UUFDbkIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7QUFHSixDQUFDLEVBdktnQixhQUFhLEtBQWIsYUFBYSxRQXVLN0I7QUFJRCxNQUFNLEtBQVcsZUFBZSxDQXFQL0I7QUFyUEQsV0FBaUIsZUFBZTtJQUU5Qjs7Ozs7O09BTUc7SUFDVSxrQ0FBa0IsR0FBRyxDQUNoQyxVQUFrQixFQUNsQixVQUFrQixFQUNWLEVBQUU7UUFDZCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztJQU1GLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBVSxFQUFXLEVBQUU7UUFDN0MsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7SUFJRjs7T0FFRztJQUNVLCtCQUFlLEdBQUcsQ0FDN0IsUUFBZ0IsRUFlZCxFQUFFO1FBQ1IsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQztBQUlKLENBQUMsRUFyUGdCLGVBQWUsS0FBZixlQUFlLFFBcVAvQjtBQUlBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IF8sIGNoYWxrLCBDb3JlTW9kZWxzLCBVdGlscyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cblxuXG5leHBvcnQgbmFtZXNwYWNlIFV0aWxzTnBtIHtcblxuICBleHBvcnQgY29uc3QgaXNTcGVjaWFsVmVyc2lvbiA9ICh2ZXJzaW9uOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gQ29yZU1vZGVscy5OcG1TcGVjaWFsVmVyc2lvbnMuaW5jbHVkZXModmVyc2lvbik7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBjbGVhclZlcnNpb24gPSAoXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHJlbW92ZVByZWZpeGVzPzogYm9vbGVhbjtcbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIGFscGhhLCBiZXRhLCByYywgbGF0ZXN0LCBuZXh0IGV0Yy5cbiAgICAgICAqL1xuICAgICAgcmVtb3ZlU3VmZml4PzogYm9vbGVhbjtcbiAgICB9LFxuICApID0+IHtcbiAgICBjb25zdCB7IHJlbW92ZVByZWZpeGVzLCByZW1vdmVTdWZmaXggfSA9IG9wdGlvbnMgfHwge307XG5cbiAgICBpZiAoIXZlcnNpb24gfHwgaXNTcGVjaWFsVmVyc2lvbih2ZXJzaW9uKSkge1xuICAgICAgcmV0dXJuIHZlcnNpb247XG4gICAgfVxuXG4gICAgdmVyc2lvbiA9ICh2ZXJzaW9uIHx8ICcnKVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cChVdGlscy5lc2NhcGVTdHJpbmdGb3JSZWdFeCgndW5kZWZpbmVkJyksICdnJyksICcwJyk7XG5cbiAgICBpZiAocmVtb3ZlUHJlZml4ZXMpIHtcbiAgICAgIHZlcnNpb24gPSB2ZXJzaW9uLnJlcGxhY2UoJ14nLCAnJykucmVwbGFjZSgnficsICcnKTtcbiAgICB9XG4gICAgbGV0IFttYWpvciwgbWlub3IsIHBhdGNoLCBhbHBoYU9yQmV0YU9yUmNdID0gdmVyc2lvbi5zcGxpdCgnLicpO1xuICAgIGlmIChyZW1vdmVTdWZmaXgpIHtcbiAgICAgIGFscGhhT3JCZXRhT3JSYyA9ICcnO1xuICAgIH1cbiAgICByZXR1cm4gZml4TWFqb3JWZXJOdW1iZXIoXG4gICAgICBgJHttYWpvcn0uJHttaW5vcn0uJHtwYXRjaH0ke2FscGhhT3JCZXRhT3JSYyA/ICcuJyArIGFscGhhT3JCZXRhT3JSYyA6ICcnfWAsXG4gICAgKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGZpeE1ham9yVmVyTnVtYmVyID0gKHZlcnNpb246IHN0cmluZykgPT4ge1xuICAgIGlmICghdmVyc2lvbiB8fCBpc1NwZWNpYWxWZXJzaW9uKHZlcnNpb24pKSB7XG4gICAgICByZXR1cm4gdmVyc2lvbjtcbiAgICB9XG4gICAgdmVyc2lvbiA9ICh2ZXJzaW9uIHx8ICcnKVxuICAgICAgLnRyaW0oKVxuICAgICAgLnJlcGxhY2UobmV3IFJlZ0V4cChVdGlscy5lc2NhcGVTdHJpbmdGb3JSZWdFeCgndW5kZWZpbmVkJyksICdnJyksICcwJyk7XG4gICAgY29uc3Qgc3BsaXRlZCA9IHZlcnNpb24uc3BsaXQoJy4nKTtcbiAgICBsZXQgW21ham9yLCBtaW5vciwgcGF0Y2gsIGFscGhhT3JCZXRhT3JSY10gPSBzcGxpdGVkO1xuICAgIGlmIChzcGxpdGVkLmxlbmd0aCA9PT0gMSkge1xuICAgICAgbWlub3IgPSAnMCc7XG4gICAgICBwYXRjaCA9ICcwJztcbiAgICB9IGVsc2UgaWYgKHNwbGl0ZWQubGVuZ3RoID09PSAyKSB7XG4gICAgICBwYXRjaCA9ICcwJztcbiAgICB9XG4gICAgcmV0dXJuIGAke21ham9yfS4ke21pbm9yfS4ke3BhdGNofSR7YWxwaGFPckJldGFPclJjID8gJy4nICsgYWxwaGFPckJldGFPclJjIDogJyd9YDtcbiAgfTtcblxufVxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc1Rlcm1pbmFsIHtcblxuICBjb25zdCB0cmFuc2Zvcm1DaG9pY2VzID0gKFxuICAgIGNob2ljZXM6IGFueSxcbiAgKTogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdID0+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBtdWx0aXNlbGVjdCA9IGFzeW5jIDxUID0gc3RyaW5nPihvcHRpb25zOiB7XG4gICAgcXVlc3Rpb246IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGVuIG9ubHkgb25lIGNob2ljZSBjYW4gYmUgc2VsZWN0ZWRcbiAgICAgKi9cbiAgICBvbmx5T25lQ2hvaWNlPzogYm9vbGVhbjtcbiAgICBjaG9pY2VzOlxuICAgICAgfCB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IFQgfVtdXG4gICAgICB8IHsgW2Nob2ljZTogc3RyaW5nXTogeyBuYW1lOiBzdHJpbmcgfSB9O1xuICAgIGF1dG9jb21wbGV0ZT86IGJvb2xlYW47XG4gICAgZGVmYXVsdFNlbGVjdGVkPzogc3RyaW5nW107XG4gIH0pOiBQcm9taXNlPFRbXT4gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IHNlbGVjdCA9IGFzeW5jIDxUID0gc3RyaW5nPihvcHRpb25zOiB7XG4gICAgcXVlc3Rpb246IHN0cmluZztcbiAgICBjaG9pY2VzOlxuICAgICAgfCB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IFQgfVtdXG4gICAgICB8IHsgW2Nob2ljZTogc3RyaW5nXTogeyBuYW1lOiBzdHJpbmcgfSB9O1xuICAgIGF1dG9jb21wbGV0ZT86IGJvb2xlYW47XG4gICAgZGVmYXVsdFNlbGVjdGVkPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxUPiA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxufVxuXG5cblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlsc1R5cGVzY3JpcHQge1xuXG4gIC8qKlxuICAgKiBSZW1vdmUgVHlwZVNjcmlwdCByZWdpb24gYmxvY2tzIGJ5IHRoZWlyIG5hbWUsIGluY2x1ZGluZyBuZXN0ZWQgcmVnaW9ucy5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZUNvZGUgLSBUaGUgVHlwZVNjcmlwdCBzb3VyY2UgY29kZSBhcyBhIHN0cmluZy5cbiAgICogQHBhcmFtIHJlZ2lvbk5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcmVnaW9uIHRvIHJlbW92ZS5cbiAgICogQHJldHVybnMgTW9kaWZpZWQgVHlwZVNjcmlwdCBjb2RlIHdpdGhvdXQgdGhlIHNwZWNpZmllZCByZWdpb25zLlxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IHJlbW92ZVJlZ2lvbkJ5TmFtZSA9IChcbiAgICBzb3VyY2VDb2RlOiBzdHJpbmcsXG4gICAgcmVnaW9uTmFtZTogc3RyaW5nLFxuICApOiBzdHJpbmcgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9O1xuXG5cblxuXG5cbiAgY29uc3QgaXNFeHBvcnRlZCA9IChub2RlOiBOb2RlKTogYm9vbGVhbiA9PiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBleHRyYWN0IGV4cG9ydHMgZnJvbSBhIFR5cGVTY3JpcHQgZmlsZVxuICAgKi9cbiAgZXhwb3J0IGNvbnN0IGV4cG9ydHNGcm9tRmlsZSA9IChcbiAgICBmaWxlUGF0aDogc3RyaW5nLFxuICApOiB7XG4gICAgdHlwZTpcbiAgICAgIHwgJ2NsYXNzJ1xuICAgICAgfCAnZnVuY3Rpb24nXG4gICAgICB8ICdjb25zdCdcbiAgICAgIHwgJ2xldCdcbiAgICAgIHwgJ3ZhcidcbiAgICAgIHwgJ2VudW0nXG4gICAgICB8ICd0eXBlJ1xuICAgICAgfCAnaW50ZXJmYWNlJ1xuICAgICAgfCAnZGVmYXVsdCdcbiAgICAgIHwgJ21vZHVsZSdcbiAgICAgIHwgJ25hbWVzcGFjZSc7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9W10gPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH07XG5cblxuXG59XG5cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL3V0aWxzLnRzIl19
|