bx-rest 0.2.4 → 0.2.6
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/README.md +97 -97
- package/esm2022/functions/serializeJavascript.mjs +1 -1
- package/esm2022/map/task/elapseditem.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/esm2022/request/bx-rest.module.mjs +1 -1
- package/esm2022/request/task/elapseditem.mjs +1 -1
- package/esm2022/request/tasks/task.mjs +1 -1
- package/esm2022/request/tasks.mjs +1 -1
- package/esm2022/request/user.mjs +6 -6
- package/esm2022/request-navvy/tasks/task.mjs +1 -1
- package/esm2022/request-navvy/tasks.mjs +1 -1
- package/esm2022/request-navvy/user.mjs +6 -5
- package/esm2022/services/http/HttpBX.mjs +20 -11
- package/esm2022/services/http/sessionKey.mjs +1 -1
- package/esm2022/services/snack-bar/snack-bar.service.mjs +1 -1
- package/esm2022/services/snack-bar/toast-message/toast-message.component.mjs +3 -3
- package/esm2022/services/vanilla/JSON.mjs +1 -1
- package/esm2022/services/vanilla/localStorage.mjs +1 -1
- package/esm2022/services/vanilla//321/201ookies.mjs +1 -1
- package/esm2022/typification/auth/save.mjs +1 -1
- package/esm2022/typification/rest/base/YesNo.mjs +1 -1
- package/esm2022/typification/rest/base/filterGenerator.mjs +1 -1
- package/esm2022/typification/rest/base/sort.mjs +1 -1
- package/esm2022/typification/rest/lists/element/get.mjs +1 -1
- package/esm2022/typification/rest/task/base/fieldsName.mjs +1 -1
- package/esm2022/typification/rest/task/elapseditem/get.mjs +1 -1
- package/esm2022/typification/rest/task/elapseditem/item.mjs +1 -1
- package/esm2022/typification/rest/task/task.mjs +1 -1
- package/esm2022/typification/rest/tasks/task/approve.mjs +1 -1
- package/esm2022/typification/rest/tasks/task/complete.mjs +1 -1
- package/esm2022/typification/rest/tasks/task/defer.mjs +1 -1
- package/esm2022/typification/rest/tasks/task/list.mjs +1 -1
- package/esm2022/typification/rest/user/get.mjs +1 -1
- package/esm2022/typification/rest/user/search.mjs +1 -1
- package/esm2022/typification/rest/user/user.mjs +1 -1
- package/fesm2022/bx-rest.mjs +31 -21
- package/fesm2022/bx-rest.mjs.map +1 -1
- package/map/task/elapseditem.d.ts +3 -3
- package/package.json +1 -1
- package/request/task/elapseditem.d.ts +2 -2
- package/request/tasks/task.d.ts +6 -6
- package/request-navvy/task/elapseditem.d.ts +1 -1
- package/request-navvy/task/operation/elapseditem.d.ts +1 -1
- package/request-navvy/user.d.ts +1 -1
- package/services/http/HttpBX.d.ts +15 -1
- package/typification/rest/base/filterGenerator.d.ts +4 -4
- package/typification/rest/lists/element/get.d.ts +2 -2
- package/typification/rest/task/elapseditem/get.d.ts +2 -2
- package/typification/rest/task/elapseditem/item.d.ts +3 -3
- package/typification/rest/tasks/task/approve.d.ts +1 -1
- package/typification/rest/tasks/task/complete.d.ts +2 -2
- package/typification/rest/tasks/task/defer.d.ts +2 -2
- package/typification/rest/tasks/task/list.d.ts +2 -2
package/README.md
CHANGED
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
# BX rest
|
|
2
|
-
|
|
3
|
-
This is an intermediary between requests sent from the browser and includes a site on crm bitrix
|
|
4
|
-
|
|
5
|
-
### Install
|
|
6
|
-
|
|
7
|
-
```shell
|
|
8
|
-
npm install bx-rest
|
|
9
|
-
```
|
|
10
|
-
# Usage
|
|
11
|
-
```typescript
|
|
12
|
-
@NgModule({
|
|
13
|
-
declarations: [
|
|
14
|
-
AppComponent,
|
|
15
|
-
...
|
|
16
|
-
],
|
|
17
|
-
imports: [
|
|
18
|
-
BrowserModule
|
|
19
|
-
...
|
|
20
|
-
],
|
|
21
|
-
providers: [
|
|
22
|
-
NgxMaskPipe,
|
|
23
|
-
{
|
|
24
|
-
provide: REST_SETTINGS, useValue: {
|
|
25
|
-
auth: {
|
|
26
|
-
source: 'cookies',
|
|
27
|
-
key: 'auth'
|
|
28
|
-
},
|
|
29
|
-
urls: {
|
|
30
|
-
home: 'your bitrix addres'
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
],
|
|
35
|
-
});
|
|
36
|
-
document.cookie ='auth=ACCESS_TOKEN; max-age=99999'
|
|
37
|
-
```
|
|
38
|
-
```typescript
|
|
39
|
-
import { BXRest, BXMap } from 'bx-rest'
|
|
40
|
-
|
|
41
|
-
@Component({
|
|
42
|
-
selector: 'app-any',
|
|
43
|
-
templateUrl: './any.component.html',
|
|
44
|
-
styleUrls: ['./any.component.scss']
|
|
45
|
-
})
|
|
46
|
-
export class AnyComponent {
|
|
47
|
-
|
|
48
|
-
listElements$ = this.BXRest.lists.element.get({
|
|
49
|
-
IBLOCK_TYPE_ID: 'lists',
|
|
50
|
-
IBLOCK_ID: 150,
|
|
51
|
-
FILTER: {
|
|
52
|
-
['>' + vacancies.del]: 0
|
|
53
|
-
}
|
|
54
|
-
}).pipe(
|
|
55
|
-
map(v => this.BXMap.lists.element.get(v))
|
|
56
|
-
)
|
|
57
|
-
|
|
58
|
-
constructor(
|
|
59
|
-
private BXRest: BXRest,
|
|
60
|
-
private BXMap: BXMap,
|
|
61
|
-
) {
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
```
|
|
66
|
-
or if you prefer several features in one
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
import { BXRestNavvy, BXMap } from 'bx-rest'
|
|
70
|
-
|
|
71
|
-
@Component({
|
|
72
|
-
selector: 'app-any',
|
|
73
|
-
templateUrl: './any.component.html',
|
|
74
|
-
styleUrls: ['./any.component.scss']
|
|
75
|
-
})
|
|
76
|
-
export class AnyComponent {
|
|
77
|
-
|
|
78
|
-
listElements$ = this.BXRestNavvy.lists.element.get({
|
|
79
|
-
IBLOCK_TYPE_ID: 'lists',
|
|
80
|
-
IBLOCK_ID: 150,
|
|
81
|
-
FILTER: {
|
|
82
|
-
['>' + vacancies.del]: 0
|
|
83
|
-
}
|
|
84
|
-
}).result() // or .resultAll() - to get all elements
|
|
85
|
-
|
|
86
|
-
constructor(
|
|
87
|
-
private BXRestNavvy: BXRestNavvy,
|
|
88
|
-
) {
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
# Future features
|
|
95
|
-
- Auto get token
|
|
96
|
-
- Mappers for normalization types
|
|
97
|
-
- 100% coverage
|
|
1
|
+
# BX rest
|
|
2
|
+
|
|
3
|
+
This is an intermediary between requests sent from the browser and includes a site on crm bitrix
|
|
4
|
+
|
|
5
|
+
### Install
|
|
6
|
+
|
|
7
|
+
```shell
|
|
8
|
+
npm install bx-rest
|
|
9
|
+
```
|
|
10
|
+
# Usage
|
|
11
|
+
```typescript
|
|
12
|
+
@NgModule({
|
|
13
|
+
declarations: [
|
|
14
|
+
AppComponent,
|
|
15
|
+
...
|
|
16
|
+
],
|
|
17
|
+
imports: [
|
|
18
|
+
BrowserModule
|
|
19
|
+
...
|
|
20
|
+
],
|
|
21
|
+
providers: [
|
|
22
|
+
NgxMaskPipe,
|
|
23
|
+
{
|
|
24
|
+
provide: REST_SETTINGS, useValue: {
|
|
25
|
+
auth: {
|
|
26
|
+
source: 'cookies',
|
|
27
|
+
key: 'auth'
|
|
28
|
+
},
|
|
29
|
+
urls: {
|
|
30
|
+
home: 'your bitrix addres'
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
});
|
|
36
|
+
document.cookie ='auth=ACCESS_TOKEN; max-age=99999'
|
|
37
|
+
```
|
|
38
|
+
```typescript
|
|
39
|
+
import { BXRest, BXMap } from 'bx-rest'
|
|
40
|
+
|
|
41
|
+
@Component({
|
|
42
|
+
selector: 'app-any',
|
|
43
|
+
templateUrl: './any.component.html',
|
|
44
|
+
styleUrls: ['./any.component.scss']
|
|
45
|
+
})
|
|
46
|
+
export class AnyComponent {
|
|
47
|
+
|
|
48
|
+
listElements$ = this.BXRest.lists.element.get({
|
|
49
|
+
IBLOCK_TYPE_ID: 'lists',
|
|
50
|
+
IBLOCK_ID: 150,
|
|
51
|
+
FILTER: {
|
|
52
|
+
['>' + vacancies.del]: 0
|
|
53
|
+
}
|
|
54
|
+
}).pipe(
|
|
55
|
+
map(v => this.BXMap.lists.element.get(v))
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
constructor(
|
|
59
|
+
private BXRest: BXRest,
|
|
60
|
+
private BXMap: BXMap,
|
|
61
|
+
) {
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
or if you prefer several features in one
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
import { BXRestNavvy, BXMap } from 'bx-rest'
|
|
70
|
+
|
|
71
|
+
@Component({
|
|
72
|
+
selector: 'app-any',
|
|
73
|
+
templateUrl: './any.component.html',
|
|
74
|
+
styleUrls: ['./any.component.scss']
|
|
75
|
+
})
|
|
76
|
+
export class AnyComponent {
|
|
77
|
+
|
|
78
|
+
listElements$ = this.BXRestNavvy.lists.element.get({
|
|
79
|
+
IBLOCK_TYPE_ID: 'lists',
|
|
80
|
+
IBLOCK_ID: 150,
|
|
81
|
+
FILTER: {
|
|
82
|
+
['>' + vacancies.del]: 0
|
|
83
|
+
}
|
|
84
|
+
}).result() // or .resultAll() - to get all elements
|
|
85
|
+
|
|
86
|
+
constructor(
|
|
87
|
+
private BXRestNavvy: BXRestNavvy,
|
|
88
|
+
) {
|
|
89
|
+
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
# Future features
|
|
95
|
+
- Auto get token
|
|
96
|
+
- Mappers for normalization types
|
|
97
|
+
- 100% coverage
|
|
@@ -197,4 +197,4 @@ function serialize(obj, options = {}) {
|
|
|
197
197
|
});
|
|
198
198
|
}
|
|
199
199
|
export default serialize;
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplSmF2YXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL2Z1bmN0aW9ucy9zZXJpYWxpemVKYXZhc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVFQUF1RTtBQUN2RSxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxHQUFHLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFDMUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQ0FBbUMsR0FBRyxHQUFHLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXZHLE1BQU0scUJBQXFCLEdBQUcsMEJBQTBCLENBQUM7QUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUFDekMsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFDckMsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUVsRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRXhDLCtFQUErRTtBQUMvRSx5RUFBeUU7QUFDekUsTUFBTSxhQUFhLEdBQTZCO0lBQzlDLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0NBQ3BCLENBQUM7QUFFRixTQUFTLGlCQUFpQixDQUFDLFVBQWtCO0lBQzNDLE9BQU8sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFTLFdBQVc7SUFDbEIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxX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QyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZSBhbiBpbnRlcm5hbCBVSUQgdG8gbWFrZSB0aGUgcmVnZXhwIHBhdHRlcm4gaGFyZGVyIHRvIGd1ZXNzLlxuY29uc3QgVUlEX0xFTkdUSCA9IDE2O1xuY29uc3QgVUlEID0gZ2VuZXJhdGVVSUQoKTtcbmNvbnN0IFBMQUNFX0hPTERFUl9SRUdFWFAgPSBuZXcgUmVnRXhwKCcoXFxcXFxcXFwpP1wiQF9fKEZ8UnxEfE18U3xBfFV8SXxCfEwpLScgKyBVSUQgKyAnLShcXFxcZCspX19AXCInLCAnZycpO1xuXG5jb25zdCBJU19OQVRJVkVfQ09ERV9SRUdFWFAgPSAvXFx7XFxzKlxcW25hdGl2ZSBjb2RlXVxccyp9L2c7XG5jb25zdCBJU19QVVJFX0ZVTkNUSU9OID0gL2Z1bmN0aW9uLio/XFwoLztcbmNvbnN0IElTX0FSUk9XX0ZVTkNUSU9OID0gLy4qPz0+Lio/LztcbmNvbnN0IFVOU0FGRV9DSEFSU19SRUdFWFAgPSAvWzw+XFwvXFx1MjAyOFxcdTIwMjldL2c7XG5cbmNvbnN0IFJFU0VSVkVEX1NZTUJPTFMgPSBbJyonLCAnYXN5bmMnXTtcblxuLy8gTWFwcGluZyBvZiB1bnNhZmUgSFRNTCBhbmQgaW52YWxpZCBKYXZhU2NyaXB0IGxpbmUgdGVybWluYXRvciBjaGFycyB0byB0aGVpclxuLy8gVW5pY29kZSBjaGFyIGNvdW50ZXJwYXJ0cyB3aGljaCBhcmUgc2FmZSB0byB1c2UgaW4gSmF2YVNjcmlwdCBzdHJpbmdzLlxuY29uc3QgRVNDQVBFRF9DSEFSUzoge1trZXk6IHN0cmluZ106IHN0cmluZ30gID0ge1xuICAnPCc6ICdcXFxcdTAwM0MnLFxuICAnPic6ICdcXFxcdTAwM0UnLFxuICAnLyc6ICdcXFxcdTAwMkYnLFxuICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxuICAnXFx1MjAyOSc6ICdcXFxcdTIwMjknXG59O1xuXG5mdW5jdGlvbiBlc2NhcGVVbnNhZmVDaGFycyh1bnNhZmVDaGFyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gKEVTQ0FQRURfQ0hBUlMuaGFzT3duUHJvcGVydHkodW5zYWZlQ2hhcikpID8gRVNDQVBFRF9DSEFSU1t1bnNhZmVDaGFyXSA6ICcnO1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZVVJRCgpIHtcbiAgbGV0IGJ5dGVzID0gd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KFVJRF9MRU5HVEgpKVxuICBsZXQgcmVzdWx0ID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgVUlEX0xFTkdUSDsgKytpKSB7XG4gICAgcmVzdWx0ICs9IGJ5dGVzW2ldLnRvU3RyaW5nKDE2KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBkZWxldGVGdW5jdGlvbnMob2JqOiBhbnkpIHtcbiAgbGV0IGZ1bmN0aW9uS2V5cyA9IFtdO1xuICBmb3IgKGxldCBrZXkgaW4gb2JqKSB7XG4gICAgaWYgKHR5cGVvZiBvYmpba2V5XSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBmdW5jdGlvbktleXMucHVzaChrZXkpO1xuICAgIH1cbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZ1bmN0aW9uS2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGRlbGV0ZSBvYmpbZnVuY3Rpb25LZXlzW2ldXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXJpYWxpemUob2JqOiBhbnksIG9wdGlvbnM6IGFueSA9IHt9KTogYW55IHtcbiAgLy8gQmFja3dhcmRzLWNvbXBhdGliaWxpdHkgZm9yIGBzcGFjZWAgYXMgdGhlIHNlY29uZCBhcmd1bWVudC5cbiAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnbnVtYmVyJyB8fCB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycpIHtcbiAgICBvcHRpb25zID0ge3NwYWNlOiBvcHRpb25zfTtcbiAgfVxuXG4gIGxldCBmdW5jdGlvbnM6IEZ1bmN0aW9uW10gPSBbXTtcbiAgbGV0IHJlZ2V4cHM6IGFueVtdID0gW107XG4gIGxldCBkYXRlczogYW55W10gPSBbXTtcbiAgbGV0IG1hcHM6IGFueVtdID0gW107XG4gIGxldCBzZXRzOiBhbnlbXSA9IFtdO1xuICBsZXQgYXJyYXlzOiBhbnlbXSA9IFtdO1xuICBsZXQgdW5kZWZzOiBhbnlbXSA9IFtdO1xuICBsZXQgaW5maW5pdGllczogYW55W10gPSBbXTtcbiAgbGV0IGJpZ0ludHM6IGFueVtdID0gW107XG4gIGxldCB1cmxzOiBhbnlbXSA9IFtdO1xuXG4gIC8vIFJldHVybnMgcGxhY2Vob2xkZXJzIGZvciBmdW5jdGlvbnMgYW5kIHJlZ2V4cHMgKGlkZW50aWZpZWQgYnkgaW5kZXgpXG4gIC8vIHdoaWNoIGFyZSBsYXRlciByZXBsYWNlZCBieSB0aGVpciBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gIGZ1bmN0aW9uIHJlcGxhY2VyKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG5cbiAgICAvLyBGb3IgbmVzdGVkIGZ1bmN0aW9uXG4gICAgaWYgKG9wdGlvbnMuaWdub3JlRnVuY3Rpb24pIHtcbiAgICAgIGRlbGV0ZUZ1bmN0aW9ucyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gbGV0IG9yaWdWYWx1ZTogYW55ID0gdGhpc1trZXldO1xuICAgIGxldCBvcmlnVmFsdWU6IGFueSA9IHZhbHVlO1xuICAgIGxldCB0eXBlID0gdHlwZW9mIG9yaWdWYWx1ZTtcblxuICAgIHN3aXRjaCAodHlwZSl7XG4gICAgICBjYXNlICdvYmplY3QnOlxuXG4gICAgICAgIGlmIChvcmlnVmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgICByZXR1cm4gJ0BfX1ItJyArIFVJRCArICctJyArIChyZWdleHBzLnB1c2gob3JpZ1ZhbHVlKSAtIDEpICsgJ19fQCc7XG4gICAgICAgIH0gZWxzZSBpZiAob3JpZ1ZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgIHJldHVybiAnQF9fRC0nICsgVUlEICsgJy0nICsgKGRhdGVzLnB1c2gob3JpZ1ZhbHVlKSAtIDEpICsgJ19fQCc7XG4gICAgICAgIH0gZWxzZSBpZiAob3JpZ1ZhbHVlIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICAgICAgcmV0dXJuICdAX19NLScgKyBVSUQgKyAnLScgKyAobWFwcy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xuICAgICAgICB9IGVsc2UgaWYgKG9yaWdWYWx1ZSBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgICAgIHJldHVybiAnQF9fUy0nICsgVUlEICsgJy0nICsgKHNldHMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcmlnVmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIGxldCBpc1NwYXJzZSA9IG9yaWdWYWx1ZS5maWx0ZXIoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9KS5sZW5ndGggIT09IG9yaWdWYWx1ZS5sZW5ndGg7XG4gICAgICAgICAgaWYgKGlzU3BhcnNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJ0BfX0EtJyArIFVJRCArICctJyArIChhcnJheXMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3JpZ1ZhbHVlIGluc3RhbmNlb2YgVVJMKSB7XG4gICAgICAgICAgcmV0dXJuICdAX19MLScgKyBVSUQgKyAnLScgKyAodXJscy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgICAgICByZXR1cm4gJ0BfX0YtJyArIFVJRCArICctJyArIChmdW5jdGlvbnMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcbiAgICAgIGNhc2UgJ3VuZGVmaW5lZCc6XG4gICAgICAgIHJldHVybiAnQF9fVS0nICsgVUlEICsgJy0nICsgKHVuZGVmcy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xuICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgcmV0dXJuICdAX19JLScgKyBVSUQgKyAnLScgKyAoaW5maW5pdGllcy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xuICAgICAgY2FzZSAnYmlnaW50JzpcbiAgICAgICAgcmV0dXJuICdAX19CLScgKyBVSUQgKyAnLScgKyAoYmlnSW50cy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNlcmlhbGl6ZUZ1bmMoZm46IEZ1bmN0aW9uKSB7XG4gICAgbGV0IHNlcmlhbGl6ZWRGbiA9IGZuLnRvU3RyaW5nKCk7XG4gICAgaWYgKElTX05BVElWRV9DT0RFX1JFR0VYUC50ZXN0KHNlcmlhbGl6ZWRGbikpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1NlcmlhbGl6aW5nIG5hdGl2ZSBmdW5jdGlvbjogJyArIGZuLm5hbWUpO1xuICAgIH1cblxuICAgIC8vIHB1cmUgZnVuY3Rpb25zLCBleGFtcGxlOiB7a2V5OiBmdW5jdGlvbigpIHt9fVxuICAgIGlmIChJU19QVVJFX0ZVTkNUSU9OLnRlc3Qoc2VyaWFsaXplZEZuKSkge1xuICAgICAgcmV0dXJuIHNlcmlhbGl6ZWRGbjtcbiAgICB9XG5cbiAgICAvLyBhcnJvdyBmdW5jdGlvbnMsIGV4YW1wbGU6IGFyZzEgPT4gYXJnMSs1XG4gICAgaWYgKElTX0FSUk9XX0ZVTkNUSU9OLnRlc3Qoc2VyaWFsaXplZEZuKSkge1xuICAgICAgcmV0dXJuIHNlcmlhbGl6ZWRGbjtcbiAgICB9XG5cbiAgICBsZXQgYXJnc1N0YXJ0c0F0ID0gc2VyaWFsaXplZEZuLmluZGV4T2YoJygnKTtcbiAgICBsZXQgZGVmID0gc2VyaWFsaXplZEZuLnNsaWNlKDAsIGFyZ3NTdGFydHNBdClcbiAgICAudHJpbSgpXG4gICAgLnNwbGl0KCcgJylcbiAgICAuZmlsdGVyKGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgIHJldHVybiB2YWwubGVuZ3RoID4gMFxuICAgIH0pO1xuXG4gICAgbGV0IG5vblJlc2VydmVkU3ltYm9scyA9IGRlZi5maWx0ZXIoZnVuY3Rpb24gKHZhbCkge1xuICAgICAgcmV0dXJuIFJFU0VSVkVEX1NZTUJPTFMuaW5kZXhPZih2YWwpID09PSAtMVxuICAgIH0pO1xuXG4gICAgLy8gZW5oYW5jZWQgbGl0ZXJhbCBvYmplY3RzLCBleGFtcGxlOiB7a2V5KCkge319XG4gICAgaWYgKG5vblJlc2VydmVkU3ltYm9scy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gKGRlZi5pbmRleE9mKCdhc3luYycpID4gLTEgPyAnYXN5bmMgJyA6ICcnKSArICdmdW5jdGlvbidcbiAgICAgICAgKyAoZGVmLmpvaW4oJycpLmluZGV4T2YoJyonKSA+IC0xID8gJyonIDogJycpXG4gICAgICAgICsgc2VyaWFsaXplZEZuLnNsaWNlKGFyZ3NTdGFydHNBdCk7XG4gICAgfVxuXG4gICAgLy8gYXJyb3cgZnVuY3Rpb25zXG4gICAgcmV0dXJuIHNlcmlhbGl6ZWRGbjtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwYXJhbWV0ZXIgaXMgZnVuY3Rpb25cbiAgaWYgKG9wdGlvbnMuaWdub3JlRnVuY3Rpb24gJiYgdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgb2JqID0gdW5kZWZpbmVkO1xuICB9XG4gIC8vIFByb3RlY3RzIGFnYWluc3QgYEpTT04uc3RyaW5naWZ5KClgIHJldHVybmluZyBgdW5kZWZpbmVkYCwgYnkgc2VyaWFsaXppbmdcbiAgLy8gdG8gdGhlIGxpdGVyYWwgc3RyaW5nOiBcInVuZGVmaW5lZFwiLlxuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gU3RyaW5nKG9iaik7XG4gIH1cblxuICBsZXQgc3RyOiBzdHJpbmcgPSAnJztcblxuICAvLyBDcmVhdGVzIGEgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlLlxuICAvLyBOT1RFOiBOb2RlIDAuMTIgZ29lcyBpbnRvIHNsb3cgbW9kZSB3aXRoIGV4dHJhIEpTT04uc3RyaW5naWZ5KCkgYXJncy5cbiAgaWYgKG9wdGlvbnMuaXNKU09OICYmICFvcHRpb25zLnNwYWNlKSB7XG4gICAgc3RyID0gSlNPTi5zdHJpbmdpZnkob2JqKTtcbiAgfSBlbHNlIHtcbiAgICBzdHIgPSBKU09OLnN0cmluZ2lmeShvYmosIG9wdGlvbnMuaXNKU09OID8gdW5kZWZpbmVkIDogcmVwbGFjZXIsIG9wdGlvbnMuc3BhY2UpO1xuICB9XG5cbiAgLy8gUmVwbGFjZSB1bnNhZmUgSFRNTCBhbmQgaW52YWxpZCBKYXZhU2NyaXB0IGxpbmUgdGVybWluYXRvciBjaGFycyB3aXRoXG4gIC8vIHRoZWlyIHNhZmUgVW5pY29kZSBjaGFyIGNvdW50ZXJwYXJ0LiBUaGlzIF9tdXN0XyBoYXBwZW4gYmVmb3JlIHRoZVxuICAvLyByZWdleHBzIGFuZCBmdW5jdGlvbnMgYXJlIHNlcmlhbGl6ZWQgYW5kIGFkZGVkIGJhY2sgdG8gdGhlIHN0cmluZy5cbiAgaWYgKG9wdGlvbnMudW5zYWZlICE9PSB0cnVlKSB7XG4gICAgc3RyID0gc3RyLnJlcGxhY2UoVU5TQUZFX0NIQVJTX1JFR0VYUCwgZXNjYXBlVW5zYWZlQ2hhcnMpO1xuICB9XG5cbiAgaWYgKGZ1bmN0aW9ucy5sZW5ndGggPT09IDAgJiYgcmVnZXhwcy5sZW5ndGggPT09IDAgJiYgZGF0ZXMubGVuZ3RoID09PSAwICYmIG1hcHMubGVuZ3RoID09PSAwICYmIHNldHMubGVuZ3RoID09PSAwICYmIGFycmF5cy5sZW5ndGggPT09IDAgJiYgdW5kZWZzLmxlbmd0aCA9PT0gMCAmJiBpbmZpbml0aWVzLmxlbmd0aCA9PT0gMCAmJiBiaWdJbnRzLmxlbmd0aCA9PT0gMCAmJiB1cmxzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICAvLyBSZXBsYWNlcyBhbGwgb2NjdXJyZW5jZXMgb2YgZnVuY3Rpb24sIHJlZ2V4cCwgZGF0ZSwgbWFwIGFuZCBzZXQgcGxhY2Vob2xkZXJzIGluIHRoZVxuICAvLyBKU09OIHN0cmluZyB3aXRoIHRoZWlyIHN0cmluZyByZXByZXNlbnRhdGlvbnMuIElmIHRoZSBvcmlnaW5hbCB2YWx1ZSBjYW5cbiAgLy8gbm90IGJlIGZvdW5kLCB0aGVuIGB1bmRlZmluZWRgIGlzIHVzZWQuXG4gIHJldHVybiBzdHIucmVwbGFjZShQTEFDRV9IT0xERVJfUkVHRVhQLCBmdW5jdGlvbiAobWF0Y2gsIGJhY2tTbGFzaCwgdHlwZSwgdmFsdWVJbmRleCkge1xuICAgIC8vIFRoZSBwbGFjZWhvbGRlciBtYXkgbm90IGJlIHByZWNlZGVkIGJ5IGEgYmFja3NsYXNoLiBUaGlzIGlzIHRvIHByZXZlbnRcbiAgICAvLyByZXBsYWNpbmcgdGhpbmdzIGxpa2UgYFwiYVxcXCJAX19SLTxVSUQ+LTBfX0BcImAgYW5kIHRodXMgb3V0cHV0dGluZ1xuICAgIC8vIGludmFsaWQgSlMuXG4gICAgaWYgKGJhY2tTbGFzaCkge1xuICAgICAgcmV0dXJuIG1hdGNoO1xuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZSl7XG4gICAgICBjYXNlICdEJzpcbiAgICAgICAgcmV0dXJuIFwibmV3IERhdGUoXFxcIlwiICsgZGF0ZXNbdmFsdWVJbmRleF0udG9JU09TdHJpbmcoKSArIFwiXFxcIilcIlxuICAgICAgY2FzZSAnUic6XG4gICAgICAgIHJldHVybiBcIm5ldyBSZWdFeHAoXCIgKyBzZXJpYWxpemUocmVnZXhwc1t2YWx1ZUluZGV4XS5zb3VyY2UpICsgXCIsIFxcXCJcIiArIHJlZ2V4cHNbdmFsdWVJbmRleF0uZmxhZ3MgKyBcIlxcXCIpXCJcbiAgICAgIGNhc2UgJ00nOlxuICAgICAgICByZXR1cm4gXCJuZXcgTWFwKFwiICsgc2VyaWFsaXplKEFycmF5LmZyb20obWFwc1t2YWx1ZUluZGV4XS5lbnRyaWVzKCkpLCBvcHRpb25zKSArIFwiKVwiXG4gICAgICBjYXNlICdTJzpcbiAgICAgICAgcmV0dXJuIFwibmV3IFNldChcIiArIHNlcmlhbGl6ZShBcnJheS5mcm9tKHNldHNbdmFsdWVJbmRleF0udmFsdWVzKCkpLCBvcHRpb25zKSArIFwiKVwiXG4gICAgICBjYXNlICdBJzpcbiAgICAgICAgcmV0dXJuIFwiQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoXCIgKyBzZXJpYWxpemUoT2JqZWN0LmFzc2lnbih7bGVuZ3RoOiBhcnJheXNbdmFsdWVJbmRleF0ubGVuZ3RofSwgYXJyYXlzW3ZhbHVlSW5kZXhdKSwgb3B0aW9ucykgKyBcIilcIlxuICAgICAgY2FzZSAnVSc6XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJ1xuICAgICAgY2FzZSAnSSc6XG4gICAgICAgIHJldHVybiBpbmZpbml0aWVzW3ZhbHVlSW5kZXhdXG4gICAgICBjYXNlICdCJzpcbiAgICAgICAgcmV0dXJuIFwiQmlnSW50KFxcXCJcIiArIGJpZ0ludHNbdmFsdWVJbmRleF0gKyBcIlxcXCIpXCJcbiAgICAgIGNhc2UgJ0wnOlxuICAgICAgICByZXR1cm4gXCJuZXcgVVJMKFxcXCJcIiArIHVybHNbdmFsdWVJbmRleF0udG9TdHJpbmcoKSArIFwiXFxcIilcIlxuICAgIH1cblxuICAgIGxldCBmbiA9IGZ1bmN0aW9uc1t2YWx1ZUluZGV4XTtcblxuICAgIHJldHVybiBzZXJpYWxpemVGdW5jKGZuKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHNlcmlhbGl6ZVxuIl19
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplSmF2YXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL2Z1bmN0aW9ucy9zZXJpYWxpemVKYXZhc2NyaXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVFQUF1RTtBQUN2RSxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxHQUFHLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFDMUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQ0FBbUMsR0FBRyxHQUFHLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXZHLE1BQU0scUJBQXFCLEdBQUcsMEJBQTBCLENBQUM7QUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUFDekMsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFDckMsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQztBQUVsRCxNQUFNLGdCQUFnQixHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRXhDLCtFQUErRTtBQUMvRSx5RUFBeUU7QUFDekUsTUFBTSxhQUFhLEdBQTZCO0lBQzlDLEdBQUcsRUFBRSxTQUFTO0lBQ2QsR0FBRyxFQUFFLFNBQVM7SUFDZCxHQUFHLEVBQUUsU0FBUztJQUNkLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0NBQ3BCLENBQUM7QUFFRixTQUFTLGlCQUFpQixDQUFDLFVBQWtCO0lBQzNDLE9BQU8sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFTLFdBQVc7SUFDbEIsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxX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QyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHZW5lcmF0ZSBhbiBpbnRlcm5hbCBVSUQgdG8gbWFrZSB0aGUgcmVnZXhwIHBhdHRlcm4gaGFyZGVyIHRvIGd1ZXNzLlxyXG5jb25zdCBVSURfTEVOR1RIID0gMTY7XHJcbmNvbnN0IFVJRCA9IGdlbmVyYXRlVUlEKCk7XHJcbmNvbnN0IFBMQUNFX0hPTERFUl9SRUdFWFAgPSBuZXcgUmVnRXhwKCcoXFxcXFxcXFwpP1wiQF9fKEZ8UnxEfE18U3xBfFV8SXxCfEwpLScgKyBVSUQgKyAnLShcXFxcZCspX19AXCInLCAnZycpO1xyXG5cclxuY29uc3QgSVNfTkFUSVZFX0NPREVfUkVHRVhQID0gL1xce1xccypcXFtuYXRpdmUgY29kZV1cXHMqfS9nO1xyXG5jb25zdCBJU19QVVJFX0ZVTkNUSU9OID0gL2Z1bmN0aW9uLio/XFwoLztcclxuY29uc3QgSVNfQVJST1dfRlVOQ1RJT04gPSAvLio/PT4uKj8vO1xyXG5jb25zdCBVTlNBRkVfQ0hBUlNfUkVHRVhQID0gL1s8PlxcL1xcdTIwMjhcXHUyMDI5XS9nO1xyXG5cclxuY29uc3QgUkVTRVJWRURfU1lNQk9MUyA9IFsnKicsICdhc3luYyddO1xyXG5cclxuLy8gTWFwcGluZyBvZiB1bnNhZmUgSFRNTCBhbmQgaW52YWxpZCBKYXZhU2NyaXB0IGxpbmUgdGVybWluYXRvciBjaGFycyB0byB0aGVpclxyXG4vLyBVbmljb2RlIGNoYXIgY291bnRlcnBhcnRzIHdoaWNoIGFyZSBzYWZlIHRvIHVzZSBpbiBKYXZhU2NyaXB0IHN0cmluZ3MuXHJcbmNvbnN0IEVTQ0FQRURfQ0hBUlM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ICA9IHtcclxuICAnPCc6ICdcXFxcdTAwM0MnLFxyXG4gICc+JzogJ1xcXFx1MDAzRScsXHJcbiAgJy8nOiAnXFxcXHUwMDJGJyxcclxuICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxyXG4gICdcXHUyMDI5JzogJ1xcXFx1MjAyOSdcclxufTtcclxuXHJcbmZ1bmN0aW9uIGVzY2FwZVVuc2FmZUNoYXJzKHVuc2FmZUNoYXI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIChFU0NBUEVEX0NIQVJTLmhhc093blByb3BlcnR5KHVuc2FmZUNoYXIpKSA/IEVTQ0FQRURfQ0hBUlNbdW5zYWZlQ2hhcl0gOiAnJztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2VuZXJhdGVVSUQoKSB7XHJcbiAgbGV0IGJ5dGVzID0gd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KFVJRF9MRU5HVEgpKVxyXG4gIGxldCByZXN1bHQgPSAnJztcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IFVJRF9MRU5HVEg7ICsraSkge1xyXG4gICAgcmVzdWx0ICs9IGJ5dGVzW2ldLnRvU3RyaW5nKDE2KTtcclxuICB9XHJcbiAgcmV0dXJuIHJlc3VsdDtcclxufVxyXG5cclxuZnVuY3Rpb24gZGVsZXRlRnVuY3Rpb25zKG9iajogYW55KSB7XHJcbiAgbGV0IGZ1bmN0aW9uS2V5cyA9IFtdO1xyXG4gIGZvciAobGV0IGtleSBpbiBvYmopIHtcclxuICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICBmdW5jdGlvbktleXMucHVzaChrZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZ1bmN0aW9uS2V5cy5sZW5ndGg7IGkrKykge1xyXG4gICAgZGVsZXRlIG9ialtmdW5jdGlvbktleXNbaV1dO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc2VyaWFsaXplKG9iajogYW55LCBvcHRpb25zOiBhbnkgPSB7fSk6IGFueSB7XHJcbiAgLy8gQmFja3dhcmRzLWNvbXBhdGliaWxpdHkgZm9yIGBzcGFjZWAgYXMgdGhlIHNlY29uZCBhcmd1bWVudC5cclxuICBpZiAodHlwZW9mIG9wdGlvbnMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJykge1xyXG4gICAgb3B0aW9ucyA9IHtzcGFjZTogb3B0aW9uc307XHJcbiAgfVxyXG5cclxuICBsZXQgZnVuY3Rpb25zOiBGdW5jdGlvbltdID0gW107XHJcbiAgbGV0IHJlZ2V4cHM6IGFueVtdID0gW107XHJcbiAgbGV0IGRhdGVzOiBhbnlbXSA9IFtdO1xyXG4gIGxldCBtYXBzOiBhbnlbXSA9IFtdO1xyXG4gIGxldCBzZXRzOiBhbnlbXSA9IFtdO1xyXG4gIGxldCBhcnJheXM6IGFueVtdID0gW107XHJcbiAgbGV0IHVuZGVmczogYW55W10gPSBbXTtcclxuICBsZXQgaW5maW5pdGllczogYW55W10gPSBbXTtcclxuICBsZXQgYmlnSW50czogYW55W10gPSBbXTtcclxuICBsZXQgdXJsczogYW55W10gPSBbXTtcclxuXHJcbiAgLy8gUmV0dXJucyBwbGFjZWhvbGRlcnMgZm9yIGZ1bmN0aW9ucyBhbmQgcmVnZXhwcyAoaWRlbnRpZmllZCBieSBpbmRleClcclxuICAvLyB3aGljaCBhcmUgbGF0ZXIgcmVwbGFjZWQgYnkgdGhlaXIgc3RyaW5nIHJlcHJlc2VudGF0aW9uLlxyXG4gIGZ1bmN0aW9uIHJlcGxhY2VyKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcblxyXG4gICAgLy8gRm9yIG5lc3RlZCBmdW5jdGlvblxyXG4gICAgaWYgKG9wdGlvbnMuaWdub3JlRnVuY3Rpb24pIHtcclxuICAgICAgZGVsZXRlRnVuY3Rpb25zKHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXZhbHVlICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGxldCBvcmlnVmFsdWU6IGFueSA9IHRoaXNba2V5XTtcclxuICAgIGxldCBvcmlnVmFsdWU6IGFueSA9IHZhbHVlO1xyXG4gICAgbGV0IHR5cGUgPSB0eXBlb2Ygb3JpZ1ZhbHVlO1xyXG5cclxuICAgIHN3aXRjaCAodHlwZSl7XHJcbiAgICAgIGNhc2UgJ29iamVjdCc6XHJcblxyXG4gICAgICAgIGlmIChvcmlnVmFsdWUgaW5zdGFuY2VvZiBSZWdFeHApIHtcclxuICAgICAgICAgIHJldHVybiAnQF9fUi0nICsgVUlEICsgJy0nICsgKHJlZ2V4cHMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgICB9IGVsc2UgaWYgKG9yaWdWYWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgIHJldHVybiAnQF9fRC0nICsgVUlEICsgJy0nICsgKGRhdGVzLnB1c2gob3JpZ1ZhbHVlKSAtIDEpICsgJ19fQCc7XHJcbiAgICAgICAgfSBlbHNlIGlmIChvcmlnVmFsdWUgaW5zdGFuY2VvZiBNYXApIHtcclxuICAgICAgICAgIHJldHVybiAnQF9fTS0nICsgVUlEICsgJy0nICsgKG1hcHMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgICB9IGVsc2UgaWYgKG9yaWdWYWx1ZSBpbnN0YW5jZW9mIFNldCkge1xyXG4gICAgICAgICAgcmV0dXJuICdAX19TLScgKyBVSUQgKyAnLScgKyAoc2V0cy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9yaWdWYWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICBsZXQgaXNTcGFyc2UgPSBvcmlnVmFsdWUuZmlsdGVyKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWVcclxuICAgICAgICAgIH0pLmxlbmd0aCAhPT0gb3JpZ1ZhbHVlLmxlbmd0aDtcclxuICAgICAgICAgIGlmIChpc1NwYXJzZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gJ0BfX0EtJyArIFVJRCArICctJyArIChhcnJheXMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcmlnVmFsdWUgaW5zdGFuY2VvZiBVUkwpIHtcclxuICAgICAgICAgIHJldHVybiAnQF9fTC0nICsgVUlEICsgJy0nICsgKHVybHMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcclxuICAgICAgICByZXR1cm4gJ0BfX0YtJyArIFVJRCArICctJyArIChmdW5jdGlvbnMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgY2FzZSAndW5kZWZpbmVkJzpcclxuICAgICAgICByZXR1cm4gJ0BfX1UtJyArIFVJRCArICctJyArICh1bmRlZnMucHVzaChvcmlnVmFsdWUpIC0gMSkgKyAnX19AJztcclxuICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICByZXR1cm4gJ0BfX0ktJyArIFVJRCArICctJyArIChpbmZpbml0aWVzLnB1c2gob3JpZ1ZhbHVlKSAtIDEpICsgJ19fQCc7XHJcbiAgICAgIGNhc2UgJ2JpZ2ludCc6XHJcbiAgICAgICAgcmV0dXJuICdAX19CLScgKyBVSUQgKyAnLScgKyAoYmlnSW50cy5wdXNoKG9yaWdWYWx1ZSkgLSAxKSArICdfX0AnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHNlcmlhbGl6ZUZ1bmMoZm46IEZ1bmN0aW9uKSB7XHJcbiAgICBsZXQgc2VyaWFsaXplZEZuID0gZm4udG9TdHJpbmcoKTtcclxuICAgIGlmIChJU19OQVRJVkVfQ09ERV9SRUdFWFAudGVzdChzZXJpYWxpemVkRm4pKSB7XHJcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1NlcmlhbGl6aW5nIG5hdGl2ZSBmdW5jdGlvbjogJyArIGZuLm5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHB1cmUgZnVuY3Rpb25zLCBleGFtcGxlOiB7a2V5OiBmdW5jdGlvbigpIHt9fVxyXG4gICAgaWYgKElTX1BVUkVfRlVOQ1RJT04udGVzdChzZXJpYWxpemVkRm4pKSB7XHJcbiAgICAgIHJldHVybiBzZXJpYWxpemVkRm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYXJyb3cgZnVuY3Rpb25zLCBleGFtcGxlOiBhcmcxID0+IGFyZzErNVxyXG4gICAgaWYgKElTX0FSUk9XX0ZVTkNUSU9OLnRlc3Qoc2VyaWFsaXplZEZuKSkge1xyXG4gICAgICByZXR1cm4gc2VyaWFsaXplZEZuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBhcmdzU3RhcnRzQXQgPSBzZXJpYWxpemVkRm4uaW5kZXhPZignKCcpO1xyXG4gICAgbGV0IGRlZiA9IHNlcmlhbGl6ZWRGbi5zbGljZSgwLCBhcmdzU3RhcnRzQXQpXHJcbiAgICAudHJpbSgpXHJcbiAgICAuc3BsaXQoJyAnKVxyXG4gICAgLmZpbHRlcihmdW5jdGlvbiAodmFsKSB7XHJcbiAgICAgIHJldHVybiB2YWwubGVuZ3RoID4gMFxyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IG5vblJlc2VydmVkU3ltYm9scyA9IGRlZi5maWx0ZXIoZnVuY3Rpb24gKHZhbCkge1xyXG4gICAgICByZXR1cm4gUkVTRVJWRURfU1lNQk9MUy5pbmRleE9mKHZhbCkgPT09IC0xXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBlbmhhbmNlZCBsaXRlcmFsIG9iamVjdHMsIGV4YW1wbGU6IHtrZXkoKSB7fX1cclxuICAgIGlmIChub25SZXNlcnZlZFN5bWJvbHMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gKGRlZi5pbmRleE9mKCdhc3luYycpID4gLTEgPyAnYXN5bmMgJyA6ICcnKSArICdmdW5jdGlvbidcclxuICAgICAgICArIChkZWYuam9pbignJykuaW5kZXhPZignKicpID4gLTEgPyAnKicgOiAnJylcclxuICAgICAgICArIHNlcmlhbGl6ZWRGbi5zbGljZShhcmdzU3RhcnRzQXQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGFycm93IGZ1bmN0aW9uc1xyXG4gICAgcmV0dXJuIHNlcmlhbGl6ZWRGbjtcclxuICB9XHJcblxyXG4gIC8vIENoZWNrIGlmIHRoZSBwYXJhbWV0ZXIgaXMgZnVuY3Rpb25cclxuICBpZiAob3B0aW9ucy5pZ25vcmVGdW5jdGlvbiAmJiB0eXBlb2Ygb2JqID09PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgIG9iaiA9IHVuZGVmaW5lZDtcclxuICB9XHJcbiAgLy8gUHJvdGVjdHMgYWdhaW5zdCBgSlNPTi5zdHJpbmdpZnkoKWAgcmV0dXJuaW5nIGB1bmRlZmluZWRgLCBieSBzZXJpYWxpemluZ1xyXG4gIC8vIHRvIHRoZSBsaXRlcmFsIHN0cmluZzogXCJ1bmRlZmluZWRcIi5cclxuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiBTdHJpbmcob2JqKTtcclxuICB9XHJcblxyXG4gIGxldCBzdHI6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvLyBDcmVhdGVzIGEgSlNPTiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlLlxyXG4gIC8vIE5PVEU6IE5vZGUgMC4xMiBnb2VzIGludG8gc2xvdyBtb2RlIHdpdGggZXh0cmEgSlNPTi5zdHJpbmdpZnkoKSBhcmdzLlxyXG4gIGlmIChvcHRpb25zLmlzSlNPTiAmJiAhb3B0aW9ucy5zcGFjZSkge1xyXG4gICAgc3RyID0gSlNPTi5zdHJpbmdpZnkob2JqKTtcclxuICB9IGVsc2Uge1xyXG4gICAgc3RyID0gSlNPTi5zdHJpbmdpZnkob2JqLCBvcHRpb25zLmlzSlNPTiA/IHVuZGVmaW5lZCA6IHJlcGxhY2VyLCBvcHRpb25zLnNwYWNlKTtcclxuICB9XHJcblxyXG4gIC8vIFJlcGxhY2UgdW5zYWZlIEhUTUwgYW5kIGludmFsaWQgSmF2YVNjcmlwdCBsaW5lIHRlcm1pbmF0b3IgY2hhcnMgd2l0aFxyXG4gIC8vIHRoZWlyIHNhZmUgVW5pY29kZSBjaGFyIGNvdW50ZXJwYXJ0LiBUaGlzIF9tdXN0XyBoYXBwZW4gYmVmb3JlIHRoZVxyXG4gIC8vIHJlZ2V4cHMgYW5kIGZ1bmN0aW9ucyBhcmUgc2VyaWFsaXplZCBhbmQgYWRkZWQgYmFjayB0byB0aGUgc3RyaW5nLlxyXG4gIGlmIChvcHRpb25zLnVuc2FmZSAhPT0gdHJ1ZSkge1xyXG4gICAgc3RyID0gc3RyLnJlcGxhY2UoVU5TQUZFX0NIQVJTX1JFR0VYUCwgZXNjYXBlVW5zYWZlQ2hhcnMpO1xyXG4gIH1cclxuXHJcbiAgaWYgKGZ1bmN0aW9ucy5sZW5ndGggPT09IDAgJiYgcmVnZXhwcy5sZW5ndGggPT09IDAgJiYgZGF0ZXMubGVuZ3RoID09PSAwICYmIG1hcHMubGVuZ3RoID09PSAwICYmIHNldHMubGVuZ3RoID09PSAwICYmIGFycmF5cy5sZW5ndGggPT09IDAgJiYgdW5kZWZzLmxlbmd0aCA9PT0gMCAmJiBpbmZpbml0aWVzLmxlbmd0aCA9PT0gMCAmJiBiaWdJbnRzLmxlbmd0aCA9PT0gMCAmJiB1cmxzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuIHN0cjtcclxuICB9XHJcblxyXG4gIC8vIFJlcGxhY2VzIGFsbCBvY2N1cnJlbmNlcyBvZiBmdW5jdGlvbiwgcmVnZXhwLCBkYXRlLCBtYXAgYW5kIHNldCBwbGFjZWhvbGRlcnMgaW4gdGhlXHJcbiAgLy8gSlNPTiBzdHJpbmcgd2l0aCB0aGVpciBzdHJpbmcgcmVwcmVzZW50YXRpb25zLiBJZiB0aGUgb3JpZ2luYWwgdmFsdWUgY2FuXHJcbiAgLy8gbm90IGJlIGZvdW5kLCB0aGVuIGB1bmRlZmluZWRgIGlzIHVzZWQuXHJcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKFBMQUNFX0hPTERFUl9SRUdFWFAsIGZ1bmN0aW9uIChtYXRjaCwgYmFja1NsYXNoLCB0eXBlLCB2YWx1ZUluZGV4KSB7XHJcbiAgICAvLyBUaGUgcGxhY2Vob2xkZXIgbWF5IG5vdCBiZSBwcmVjZWRlZCBieSBhIGJhY2tzbGFzaC4gVGhpcyBpcyB0byBwcmV2ZW50XHJcbiAgICAvLyByZXBsYWNpbmcgdGhpbmdzIGxpa2UgYFwiYVxcXCJAX19SLTxVSUQ+LTBfX0BcImAgYW5kIHRodXMgb3V0cHV0dGluZ1xyXG4gICAgLy8gaW52YWxpZCBKUy5cclxuICAgIGlmIChiYWNrU2xhc2gpIHtcclxuICAgICAgcmV0dXJuIG1hdGNoO1xyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaCAodHlwZSl7XHJcbiAgICAgIGNhc2UgJ0QnOlxyXG4gICAgICAgIHJldHVybiBcIm5ldyBEYXRlKFxcXCJcIiArIGRhdGVzW3ZhbHVlSW5kZXhdLnRvSVNPU3RyaW5nKCkgKyBcIlxcXCIpXCJcclxuICAgICAgY2FzZSAnUic6XHJcbiAgICAgICAgcmV0dXJuIFwibmV3IFJlZ0V4cChcIiArIHNlcmlhbGl6ZShyZWdleHBzW3ZhbHVlSW5kZXhdLnNvdXJjZSkgKyBcIiwgXFxcIlwiICsgcmVnZXhwc1t2YWx1ZUluZGV4XS5mbGFncyArIFwiXFxcIilcIlxyXG4gICAgICBjYXNlICdNJzpcclxuICAgICAgICByZXR1cm4gXCJuZXcgTWFwKFwiICsgc2VyaWFsaXplKEFycmF5LmZyb20obWFwc1t2YWx1ZUluZGV4XS5lbnRyaWVzKCkpLCBvcHRpb25zKSArIFwiKVwiXHJcbiAgICAgIGNhc2UgJ1MnOlxyXG4gICAgICAgIHJldHVybiBcIm5ldyBTZXQoXCIgKyBzZXJpYWxpemUoQXJyYXkuZnJvbShzZXRzW3ZhbHVlSW5kZXhdLnZhbHVlcygpKSwgb3B0aW9ucykgKyBcIilcIlxyXG4gICAgICBjYXNlICdBJzpcclxuICAgICAgICByZXR1cm4gXCJBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChcIiArIHNlcmlhbGl6ZShPYmplY3QuYXNzaWduKHtsZW5ndGg6IGFycmF5c1t2YWx1ZUluZGV4XS5sZW5ndGh9LCBhcnJheXNbdmFsdWVJbmRleF0pLCBvcHRpb25zKSArIFwiKVwiXHJcbiAgICAgIGNhc2UgJ1UnOlxyXG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJ1xyXG4gICAgICBjYXNlICdJJzpcclxuICAgICAgICByZXR1cm4gaW5maW5pdGllc1t2YWx1ZUluZGV4XVxyXG4gICAgICBjYXNlICdCJzpcclxuICAgICAgICByZXR1cm4gXCJCaWdJbnQoXFxcIlwiICsgYmlnSW50c1t2YWx1ZUluZGV4XSArIFwiXFxcIilcIlxyXG4gICAgICBjYXNlICdMJzpcclxuICAgICAgICByZXR1cm4gXCJuZXcgVVJMKFxcXCJcIiArIHVybHNbdmFsdWVJbmRleF0udG9TdHJpbmcoKSArIFwiXFxcIilcIlxyXG4gICAgfVxyXG5cclxuICAgIGxldCBmbiA9IGZ1bmN0aW9uc1t2YWx1ZUluZGV4XTtcclxuXHJcbiAgICByZXR1cm4gc2VyaWFsaXplRnVuYyhmbik7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IHNlcmlhbGl6ZVxyXG4iXX0=
|
|
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
30
30
|
providedIn: 'root'
|
|
31
31
|
}]
|
|
32
32
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9tYXAvdGFzay9lbGFwc2VkaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUE7O0FBS3pDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxlQUFlO0lBQzNELE1BQU0sQ0FBQyxDQUFPO1FBQ1osT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQTtJQUNwQixDQUFDO0lBRUQsT0FBTyxDQUFDLENBQTJDO1FBQ2pELE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDM0UsQ0FBQztJQUVELDRCQUE0QixDQUFDLElBQWdDO1FBQzNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDekIsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDakMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNqQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2pDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDL0IsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM1QyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ3hDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDdkMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs4R0FyQlUsd0JBQXdCO2tIQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7MkZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VGFza0VsYXBzZWRJdGVtLCBpQlhSZXN0VGFza0VsYXBzZWRJdGVtSHR0cCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vaXRlbSdcclxuaW1wb3J0IHsgQmFzZU1hcFNlcnZpY2VzIH0gZnJvbSAnLi4vYmFzZSdcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE1hcFRhc2tFbGFwc2VkaXRlbSBleHRlbmRzIEJhc2VNYXBTZXJ2aWNlcyB7XHJcbiAgdXBkYXRlKHA6IG51bGwpIHtcclxuICAgIHJldHVybiAocCA9PSBudWxsKVxyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdCh2OiBpQlhSZXN0VGFza0VsYXBzZWRJdGVtSHR0cFtdIHwgdW5kZWZpbmVkKSB7XHJcbiAgICByZXR1cm4gKHYpID8gdi5tYXAoaSA9PiB0aGlzLkVsYXBzZWRJdGVtSHR0cFRvRWxhcHNlZEl0ZW0oaSkpIDogdW5kZWZpbmVkXHJcbiAgfVxyXG5cclxuICBFbGFwc2VkSXRlbUh0dHBUb0VsYXBzZWRJdGVtKGl0ZW06IGlCWFJlc3RUYXNrRWxhcHNlZEl0ZW1IdHRwKTogaUJYUmVzdFRhc2tFbGFwc2VkSXRlbSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihpdGVtLCB7XHJcbiAgICAgIElEOiB0aGlzLnRvTnVtKGl0ZW0uSUQpLFxyXG4gICAgICBNSU5VVEVTOiB0aGlzLnRvTnVtKGl0ZW0uTUlOVVRFUyksXHJcbiAgICAgIFNFQ09ORFM6IHRoaXMudG9OdW0oaXRlbS5TRUNPTkRTKSxcclxuICAgICAgVEFTS19JRDogdGhpcy50b051bShpdGVtLlRBU0tfSUQpLFxyXG4gICAgICBVU0VSX0lEOiB0aGlzLnRvTnVtKGl0ZW0uVVNFUl9JRCksXHJcbiAgICAgIFNPVVJDRTogdGhpcy50b051bShpdGVtLlNPVVJDRSksXHJcbiAgICAgIENSRUFURURfREFURTogdGhpcy50b0RhdGUoaXRlbS5DUkVBVEVEX0RBVEUpLFxyXG4gICAgICBEQVRFX1NUQVJUOiB0aGlzLnRvRGF0ZShpdGVtLkRBVEVfU1RBUlQpLFxyXG4gICAgICBEQVRFX1NUT1A6IHRoaXMudG9EYXRlKGl0ZW0uREFURV9TVE9QKSxcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -6,4 +6,4 @@ export { BXRestMapResult } from './functions/mapResult';
|
|
|
6
6
|
export { BXRest, BXRestNavvy, BXRestMap } from './rest';
|
|
7
7
|
export { Navvy } from './services/navvy';
|
|
8
8
|
export { Map as BXMap } from './map';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxFQUFFLEdBQUcsSUFBSSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYngtcmVzdFxyXG4gKi9cclxuZXhwb3J0IHsgQlhfUkVTVF9TRVRUSU5HUyB9IGZyb20gJy4vc2V0dGluZ3MnO1xyXG5leHBvcnQgeyBCWFJlc3RNYXBSZXN1bHQgfSBmcm9tICcuL2Z1bmN0aW9ucy9tYXBSZXN1bHQnXHJcbmV4cG9ydCB7IEJYUmVzdCwgQlhSZXN0TmF2dnksIEJYUmVzdE1hcCB9IGZyb20gJy4vcmVzdCdcclxuZXhwb3J0IHsgTmF2dnkgfSBmcm9tICcuL3NlcnZpY2VzL25hdnZ5J1xyXG5leHBvcnQgeyBNYXAgYXMgQlhNYXAgfSBmcm9tICcuL21hcCdcclxuIl19
|
|
@@ -25,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
25
25
|
]
|
|
26
26
|
}]
|
|
27
27
|
}] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYngtcmVzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0L2J4LXJlc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7QUFjMUQsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLFlBUnJCLGFBQWE7WUFDYixlQUFlLGFBR2YsZUFBZTtZQUNmLGFBQWE7K0dBR0osWUFBWSxZQVJyQixhQUFhO1lBQ2IsZUFBZSxFQUdmLGVBQWU7WUFDZixhQUFhOzsyRkFHSixZQUFZO2tCQVp4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxhQUFhO3dCQUNiLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJ4UmVzdE1vZHVsZSB7IH1cclxuIl19
|
|
@@ -59,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
59
59
|
providedIn: 'root'
|
|
60
60
|
}]
|
|
61
61
|
}], ctorParameters: function () { return [{ type: i1.HttpBXServices }]; } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0L3Rhc2svZWxhcHNlZGl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQ0wsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFDNUYsTUFBTSwrQkFBK0IsQ0FBQTs7O0FBWXRDLE1BQU0sT0FBTyxpQkFBaUI7SUFZNUIsWUFBb0IsSUFBb0I7UUFBcEIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFWeEMsUUFBRyxHQUFHO1lBQ0osV0FBVyxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxZQUFZLENBQUM7WUFDaEQsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUM7WUFDeEMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUM7WUFDaEMsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUM7WUFDaEMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUM7WUFDdEMsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQztZQUN4RCxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFLGtEQUFrRDtTQUMzRixDQUFBO0lBR0QsQ0FBQztJQUVELE9BQU8sQ0FDTCxRQUFvQyxFQUFFO1FBRXRDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQStCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQzlFLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBaUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ1osS0FBSyxFQUNMO1lBQ0UsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxLQUFLO2dCQUNYLFFBQVEsRUFBRSxLQUFLO2FBQ2hCO1NBQ0YsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFvQztRQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUVuQixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFDZixLQUFLLEVBQ0w7WUFDRSxRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsUUFBUSxFQUFFLEtBQUs7YUFDaEI7U0FDRixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQWlDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUNmLEtBQUssQ0FDTixDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILGVBQWUsQ0FBQyxLQUE0QjtRQUMxQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFVLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ2pFLENBQUM7OEdBbkVVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHtcclxuICAkYWRkLCAkZGVsZXRlLCAkZWxhcHNlZGl0ZW0sICRnZXQsICRnZXRsaXN0LCAkZ2V0bWFuaWZlc3QsICRpc2FjdGlvbmFsbG93ZWQsICR0YXNrLCAkdXBkYXRlXHJcbn0gZnJvbSAnLi4vLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRvZHMnXHJcbmltcG9ydCB7IEh0dHBCWFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC9IdHRwQlgnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0IH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9nZXQnXHJcbmltcG9ydCB7IGlCWFJlc3RUYXNrRWxhcHNlZEl0ZW1IdHRwIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9pdGVtJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1BZGRFbGFwc2VkaXRlbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vYWRkJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1VcGRhdGVFbGFwc2VkaXRlbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vdXBkYXRlJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1EZWxFbGFwc2VkaXRlbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vZGVsJ1xyXG5pbXBvcnQgeyBpSXNBY3Rpb25BbGxvd2VkUGFyYW0gfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2VsYXBzZWRpdGVtL2lzQWN0aW9uQWxsb3dlZFBhcmFtJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0RWxhcHNlZGl0ZW0ge1xyXG5cclxuICB1cmwgPSB7XHJcbiAgICBnZXRtYW5pZmVzdDogWyR0YXNrLCAkZWxhcHNlZGl0ZW0sICRnZXRtYW5pZmVzdF0sIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQvNC10YLQvtC00L7QsiDQuCDQuNGFINC+0L/QuNGB0LDQvdC40LVcclxuICAgIGdldGxpc3Q6IFskdGFzaywgJGVsYXBzZWRpdGVtLCAkZ2V0bGlzdF0sIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQt9Cw0L/QuNGB0LXQuSDQviDQt9Cw0YLRgNCw0YfQtdC90L3QvtC8INCy0YDQtdC80LXQvdC4INC/0L4g0LfQsNC00LDRh9C1XHJcbiAgICBnZXQ6IFskdGFzaywgJGVsYXBzZWRpdGVtLCAkZ2V0XSwgLy8g0JLQvtC30LLRgNCw0YnQsNC10YIg0LfQsNC/0LjRgdGMINC+INC30LDRgtGA0LDRh9C10L3QvdC+0Lwg0LLRgNC10LzQtdC90Lgg0L/QviDQtdC1INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YNcclxuICAgIGFkZDogWyR0YXNrLCAkZWxhcHNlZGl0ZW0sICRhZGRdLCAvLyDQlNC+0LHQsNCy0LvRj9C10YIg0LfQsNGC0YDQsNGH0LXQvdC90L7QtSDQstGA0LXQvNGPINC6INC30LDQtNCw0YfQtVxyXG4gICAgZGVsZXRlOiBbJHRhc2ssICRlbGFwc2VkaXRlbSwgJGRlbGV0ZV0sIC8vINCj0LTQsNC70Y/QtdGCINC30LDQv9C40YHRjCDQviDQt9Cw0YLRgNCw0YfQtdC90L3QvtC8INCy0YDQtdC80LXQvdC4XHJcbiAgICBpc2FjdGlvbmFsbG93ZWQ6IFskdGFzaywgJGVsYXBzZWRpdGVtLCAkaXNhY3Rpb25hbGxvd2VkXSwgLy8g0J/RgNC+0LLQtdGA0Y/QtdGCINGA0LDQt9GA0LXRiNC10L3QviDQu9C4INC00LXQudGB0YLQstC40LVcclxuICAgIHVwZGF0ZTogWyR0YXNrLCAkZWxhcHNlZGl0ZW0sICR1cGRhdGVdLCAvLyDQmNC30LzQtdC90Y/QtdGCINC/0LDRgNCw0LzQtdGC0YDRiyDQt9Cw0L/QuNGB0Lgg0L4g0LfQsNGC0YDQsNGH0LXQvdC90L7QvCDQstGA0LXQvNC10L3QuFxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQlhTZXJ2aWNlcykge1xyXG4gIH1cclxuXHJcbiAgZ2V0TGlzdChcclxuICAgIHBhcmFtOiBpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCA9IHt9XHJcbiAgKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFRhc2tFbGFwc2VkSXRlbUh0dHBbXT4odGhpcy51cmwuZ2V0bGlzdCwgcGFyYW0pXHJcbiAgfVxyXG5cclxuICBhZGQocGFyYW06IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVtYmVyPihcclxuICAgICAgdGhpcy51cmwuYWRkLFxyXG4gICAgICBwYXJhbSxcclxuICAgICAge1xyXG4gICAgICAgIHRpbWVab25lOiB7XHJcbiAgICAgICAgICBjYWxjOiBmYWxzZSxcclxuICAgICAgICAgIGxldmVsT3V0OiBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlKHBhcmFtOiBpQlhSZXN0UGFyYW1VcGRhdGVFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+XHJcbiAgICAoXHJcbiAgICAgIHRoaXMudXJsLnVwZGF0ZSxcclxuICAgICAgcGFyYW0sXHJcbiAgICAgIHtcclxuICAgICAgICB0aW1lWm9uZToge1xyXG4gICAgICAgICAgY2FsYzogZmFsc2UsXHJcbiAgICAgICAgICBsZXZlbE91dDogZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIGRlbChwYXJhbTogaUJYUmVzdFBhcmFtRGVsRWxhcHNlZGl0ZW0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPihcclxuICAgICAgdGhpcy51cmwuZGVsZXRlLFxyXG4gICAgICBwYXJhbVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogaWRBY3Rpb246XHJcbiAgICogMSAtIEFDVElPTl9FTEFQU0VEX1RJTUVfQUREXHJcbiAgICogMiAtIEFDVElPTl9FTEFQU0VEX1RJTUVfTU9ESUZZXHJcbiAgICogMyAtIEFDVElPTl9FTEFQU0VEX1RJTUVfUkVNT1ZFXHJcbiAgICogSVRFTUlEIC0g0L7QsdGP0LfQsNGC0LXQu9C10L0g0LIg0LrQvtC90LXRh9C90L7QuSDQvtGC0L/RgNCw0LLQutC1INC90L4g0L3QtSDQvtCx0Y/Qt9Cw0YLQtdC70LXQvSDQtNC70Y8gQUNUSU9OX0VMQVBTRURfVElNRV9BREQsXHJcbiAgICog0L/QvtGN0YLQvtC80YMg0Y3RgtC+0Lwg0LzQtdGC0L7QtNC1INC80L7QttC90L4g0YHRgtCw0LLQuNGC0YwgXCIxXCIg0L3QsNC/0YDQuNC80LXRgCwg0YLQsNC6INC20LUg0LzQtdGC0L7QtCDQvNC+0LbQtdGCINCy0YvQtNCw0LLQsNGC0Ywg0L7RiNC40LHQutC4INC+INC90LUg0LTQvtGB0YLRg9C/0L3QvtGB0YLQuCDQt9Cw0LTQsNGH0LhcclxuICAgKiDQv9C+0Y3RgtC+0LzRgyDRgNC10LrQvtC80LXQvdC00YPRjiDQstC+0YHQv9C+0LvRjNC30L7QstCw0YLRjNGB0Y8g0LDQvdCw0LvQvtCz0LjRh9C90YvQvCDQvNC10YLQvtC00L7QvCDQsiDQv9GA0L7RgdGC0YDQsNC90YHRgtCy0LUg0LjQvNC10L0gbmF2dnlcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBpc0FjdGlvbkFsbG93ZWQocGFyYW06IGlJc0FjdGlvbkFsbG93ZWRQYXJhbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGJvb2xlYW4+KHRoaXMudXJsLmlzYWN0aW9uYWxsb3dlZCwgcGFyYW0pXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|
|
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
224
224
|
providedIn: 'root'
|
|
225
225
|
}]
|
|
226
226
|
}], ctorParameters: function () { return [{ type: i1.HttpBXServices }]; } });
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFDTCxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUN6RyxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUNsRyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFDdkIsTUFBTSwrQkFBK0IsQ0FBQTs7O0FBY3RDLE1BQU0sT0FBTyxlQUFlO0lBMkMxQixZQUNVLElBQW9CO1FBQXBCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBMUM5QixRQUFHLEdBQUc7WUFDSixHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQztZQUNsQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUNwQyxRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsZ0NBQWdDO2FBQ3hFO1lBQ0QsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7WUFDOUIsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUM7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LENBQUE7SUFDekYsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BeUJFO0lBRUYsR0FBRyxDQUFDLFlBQWlDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzFGLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBNEI7SUFDL0IsT0FBTzs7UUFFUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE0QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BdUhHO0lBRUgsU0FBUyxDQUFDLEtBQWdDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXVCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3hFLENBQUM7OEdBaE9VLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQge1xuICAkYWRkLCAkYXBwcm92ZSwgJGF0dGFjaCwgJGNvbXBsZXRlLCAkY291bnRlcnMsICRkZWZlciwgJGRlbGVnYXRlLCAkZGVsZXRlLCAkZGlzYXBwcm92ZSwgJGZhdm9yaXRlLCAkZmlsZXMsXG4gICRnZXQsICRnZXRhY2Nlc3MsICRnZXRGaWVsZHMsICRnZXRsaXN0LCAkaGlzdG9yeSwgJGxpc3QsICRwYXVzZSwgJHBsYW5uZXIsICRyZW5ldywgJHJlc3VsdCwgJHN0YXJ0LFxuICAkdGFzaywgJHRhc2tzLCAkdXBkYXRlXG59IGZyb20gJy4uLy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0b2RzJ1xuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcbmltcG9ydCB7IGlCWFJlc3RIdHRwVGFzayB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svdGFzaydcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVRhc2tBZGQgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2FkZCdcbmltcG9ydCBpQlhSZXN0UGFyYW1UYXNrR2V0IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svZ2V0J1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza3NMaXN0LCBpQlhSZXN0UGFyYW1UYXNrc0xpc3RIdHRwIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9saXN0J1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0dldEFjY2VzcywgaUJYUmVzdFRhc2tHZXRBY2Nlc3MgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2FjY2Vzcy9nZXRhY2Nlc3MnXG5pbXBvcnQgeyBCWFJlc3RUYXNrc1Rhc2tBcHByb3ZlSHR0cCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svYXBwcm92ZSdcbmltcG9ydCB7IEJYUmVzdFRhc2tzVGFza0NvbXBsZXRlSHR0cCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svY29tcGxldGUnXG5pbXBvcnQgeyBCWFJlc3RUYXNrc1Rhc2tEZWZlckh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2RlZmVyJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBCWFJlc3RUYXNrc1Rhc2sge1xuXG4gIHVybCA9IHtcbiAgICBhZGQ6IFskdGFza3MsICR0YXNrLCAkYWRkXSwgLy8g0KHQvtC30LTQsNC10YIg0LfQsNC00LDRh9GDXG4gICAgYXBwcm92ZTogWyR0YXNrcywgJHRhc2ssICRhcHByb3ZlXSwgLy8g0J/QvtC30LLQvtC70Y/QtdGCINC/0YDQuNC90Y/RgtGMINC30LDQtNCw0YfRg1xuICAgIGNvbXBsZXRlOiBbJHRhc2tzLCAkdGFzaywgJGNvbXBsZXRlXSwgLy8g0J/QtdGA0LXQstC+0LTQuNGCINC30LDQtNCw0YfRgyDQsiDRgdGC0LDRgtGD0YEgwqvQt9Cw0LLQtdGA0YjQtdC90LDCu1xuICAgIGNvdW50ZXJzOiB7XG4gICAgICBnZXQ6IFskdGFza3MsICR0YXNrLCAkY291bnRlcnMsICRnZXRdLCAvL9Cf0L7Qu9GD0YfQsNC10YIg0YHRh9C10YLRh9C40LrQuCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y9cbiAgICB9LFxuICAgIGRlZmVyOiBbJHRhc2tzLCAkdGFzaywgJGRlZmVyXSwgLy8g0J/QtdGA0LXQstC+0LTQuNGCINC30LDQtNCw0YfRgyDQsiDRgdGC0LDRgtGD0YEgwqvQvtGC0LvQvtC20LXQvdCwwrtcbiAgICBkZWxlZ2F0ZTogWyR0YXNrcywgJHRhc2ssICRkZWxlZ2F0ZV0sIC8vINCc0LXRgtC+0LQg0LTQu9GPINC00LXQu9C10LPQuNGA0L7QstCw0L3QuNGPINC30LDQtNCw0YfQuFxuICAgIGRlbGV0ZTogWyR0YXNrcywgJHRhc2ssICRkZWxldGVdLCAvLyDQo9C00LDQu9GP0LXRgiDQt9Cw0LTQsNGH0YNcbiAgICBkaXNhcHByb3ZlOiBbJHRhc2tzLCAkdGFzaywgJGRpc2FwcHJvdmVdLCAvLyDQn9C+0LfQstC+0LvRj9C10YIg0L7RgtC60LvQvtC90LjRgtGMINC30LDQtNCw0YfRg1xuICAgIGZhdm9yaXRlOiB7XG4gICAgICBhZGQ6IFskdGFza3MsICR0YXNrLCAkZmF2b3JpdGUsICRhZGRdLCAvLyDQlNC+0LHQsNCy0LvRj9C10YIg0LfQsNC00LDRh9C4INCyIFwi0JjQt9Cx0YDQsNC90L3QvtC1XCJcbiAgICAgIGRlbGV0ZTogWyR0YXNrcywgJHRhc2ssICRmYXZvcml0ZSwgJGRlbGV0ZV0sIC8vINCj0LTQsNC70Y/QtdGCINC30LDQtNCw0YfQuCDQuNC3IFwi0JjQt9Cx0YDQsNC90L3QvtCz0L5cIlxuICAgIH0sXG4gICAgZmlsZXM6IHtcbiAgICAgIGF0dGFjaDogWyR0YXNrcywgJHRhc2ssICRmaWxlcywgJGF0dGFjaF0sIC8vINCf0YDQuNC60YDQtdC/0LvRj9C10YIg0LfQsNCz0YDRg9C20LXQvdC90YvQuSDQvdCwINC00LjRgdC6INGE0LDQudC7INC6INC30LDQtNCw0YfQtVxuICAgIH0sXG4gICAgZ2V0OiBbJHRhc2tzLCAkdGFzaywgJGdldF0sIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INC60L7QvdC60YDQtdGC0L3QvtC5INC30LDQtNCw0YfQtVxuICAgIGdldEZpZWxkczogWyR0YXNrcywgJHRhc2ssICRnZXRGaWVsZHNdLCAvLyDQktC+0LfQstGA0LDRidCw0LXRgiDQstGB0LUg0LTQvtGB0YLRg9C/0L3Ri9C1INC/0L7Qu9GPXG4gICAgZ2V0YWNjZXNzOiBbJHRhc2tzLCAkdGFzaywgJGdldGFjY2Vzc10sIC8vINCc0LXRgtC+0LQg0LTQu9GPINC/0YDQvtCy0LXRgNC60Lgg0LTQvtGB0YLRg9C/0LAg0Log0LfQsNC00LDRh9C1XG4gICAgaGlzdG9yeToge1xuICAgICAgbGlzdDogWyR0YXNrcywgJHRhc2ssICRoaXN0b3J5LCAkbGlzdF0sIC8vINCf0L7Qu9GD0YfQsNC10YIg0LjRgdGC0L7RgNC40Y4g0LfQsNC00LDRh9C4XG4gICAgfSxcbiAgICBsaXN0OiBbJHRhc2tzLCAkdGFzaywgJGxpc3RdLCAvLyDQktC+0LfQstGA0LDRidCw0LXRgiDQvNCw0YHRgdC40LIg0LfQsNC00LDRhywg0LrQsNC20LTQsNGPINC40Lcg0LrQvtGC0L7RgNGL0YUg0YHQvtC00LXRgNC20LjRgiDQvNCw0YHRgdC40LIg0L/QvtC70LXQuVxuICAgIHBhdXNlOiBbJHRhc2tzLCAkdGFzaywgJHBhdXNlXSwgLy8g0J7RgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRi9C/0L7Qu9C90LXQvdC40LUg0LfQsNC00LDRh9C4LCDQv9C10YDQtdCy0L7QtNGPINC10LUg0LIg0YHRgtCw0YLRg9GBIFwi0LbQtNC10YIg0LLRi9C/0L7Qu9C90LXQvdC40Y9cIlxuICAgIHJlbmV3OiBbJHRhc2tzLCAkdGFzaywgJHJlbmV3XSwgLy8g0JLQvtC30L7QsdC90L7QstC70Y/QtdGCINC30LDQtNCw0YfRgyDQv9C+0YHQu9C1INC10LUg0LfQsNCy0LXRgNGI0LXQvdC40Y9cbiAgICBzdGFydDogWyR0YXNrcywgJHRhc2ssICRzdGFydF0sIC8vINCf0LXRgNC10LLQvtC00LjRgiDQt9Cw0LTQsNGH0YMg0LIg0YHRgtCw0YLRg9GBIMKr0LLRi9C/0L7Qu9C90Y/QtdGC0YHRj8K7XG4gICAgc3RhcnR3YXRjaDogWyR0YXNrcywgJHRhc2ssICdzdGFydHdhdGNoJ10sIC8vINCf0L7Qt9Cy0L7Qu9GP0LXRgiDQvdCw0LHQu9GO0LTQsNGC0Ywg0LfQsCDQt9Cw0LTQsNGH0LXQuVxuICAgIHN0b3B3YXRjaDogWyR0YXNrcywgJHRhc2ssICdzdG9wd2F0Y2gnXSwgLy8g0J7RgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0L3QsNCx0LvRjtC00LXQvdC40LUg0LfQsCDQt9Cw0LTQsNGH0LXQuVxuICAgIHVwZGF0ZTogWyR0YXNrcywgJHRhc2ssICR1cGRhdGVdLCAvLyDQntCx0L3QvtCy0LvRj9C10YIg0LfQsNC00LDRh9GDXG4gICAgcmVzdWx0OiB7XG4gICAgICBsaXN0OiBbJHRhc2tzLCAkdGFzaywgJHJlc3VsdCwgJGxpc3RdLCAvLyDQn9GA0L7RgdC80L7RgtGAINGB0L/QuNGB0LrQsCDRgNC10LfRg9C70YzRgtCw0YLQvtCyINC6INC30LDQtNCw0YfQtVxuICAgICAgYWRkRnJvbUNvbW1lbnQ6IFskdGFza3MsICR0YXNrLCAkcmVzdWx0LCAnYWRkRnJvbUNvbW1lbnQnXSwgLy8g0KHQvtC30LTQsNC90LjQtSDRgNC10LfRg9C70YzRgtCw0YLQsCDQt9Cw0LTQsNGH0Lgg0LjQtyDQutC+0LzQvNC10L3RgtCw0YDQuNGPXG4gICAgICBkZWxldGVGcm9tQ29tbWVudDogWyR0YXNrcywgJHRhc2ssICRyZXN1bHQsICdkZWxldGVGcm9tQ29tbWVudCddLCAvLyDQo9C00LDQu9C10L3QuNC1INGA0LXQt9GD0LvRjNGC0LDRgtCwINC30LDQtNCw0YfQuCDQv9C+INC60L7QvNC80LXQvdGC0LDRgNC40Y4g0LjQtyDQutC+0YLQvtGA0L7Qs9C+INC+0L0g0LHRi9C7INGB0L7Qt9C00LDQvVxuICAgIH0sXG4gICAgcGxhbm5lcjoge1xuICAgICAgZ2V0bGlzdDogWyR0YXNrLCAkcGxhbm5lciwgJGdldGxpc3RdLCAvLyDQktC+0LfQstGA0LDRidCw0LXRgiDQvNCw0YHRgdC40LIsINGB0L7QtNC10YDQttCw0YnQuNC5INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0Ysg0LfQsNC00LDRhyDQsiDQv9C70LDQvdC1INC90LAg0LTQtdC90YxcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBCWFNlcnZpY2VzXG4gICkge1xuICB9XG5cbiAgYWRkKHBhcmFtOiB7IGZpZWxkczogaUJYUmVzdFBhcmFtVGFza0FkZCB9KSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogaUJYUmVzdEh0dHBUYXNrIH0+KHRoaXMudXJsLmFkZCwgcGFyYW0pXG4gIH1cblxuICBhcHByb3ZlKGlkOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8eyB0YXNrOiBCWFJlc3RUYXNrc1Rhc2tBcHByb3ZlSHR0cCB9Pih0aGlzLnVybC5hcHByb3ZlLCB7dGFza0lkOiBpZH0pXG4gIH1cblxuICBjb21wbGV0ZShpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogQlhSZXN0VGFza3NUYXNrQ29tcGxldGVIdHRwIH0+KHRoaXMudXJsLmNvbXBsZXRlLCB7dGFza0lkOiBpZH0pXG4gIH1cblxuICBkZWZlcihpZDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogQlhSZXN0VGFza3NUYXNrRGVmZXJIdHRwIH0+KHRoaXMudXJsLmRlZmVyLCB7dGFza0lkOiBpZH0pXG4gIH1cblxuICAvKlxuICB1cGRhdGUodGFza0lkOiBudW1iZXIsIHVwZGF0ZUZpZWxkczogaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10sIHRhc2s6IGlCWFJlc3RUYXNrKSB7XG4gICAgbGV0IHNlbmRUYXNrOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cbiAgICBsZXQgdGFza1RTOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdGFza1xuICAgIGlmICh1cGRhdGVGaWVsZHMubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCB1cGRhdGVGaWVsZCBvZiB1cGRhdGVGaWVsZHMpIHtcbiAgICAgICAgaWYgKHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXSkge1xuICAgICAgICAgIHNlbmRUYXNrW3VwZGF0ZUZpZWxkXSA9IHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoT2JqZWN0LnZhbHVlcyhzZW5kVGFzaykubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcbiAgICAgICAgICB0aGlzLnVybC51cGRhdGUsXG4gICAgICAgICAge3Rhc2tJZDogdGFza0lkLCBmaWVsZHM6IHNlbmRUYXNrfSxcbiAgICAgICAgICAnZXJyb3IgdG8gdXBkYXRlIHRhc2snKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcignbm90IHZhbGlkIHNlbmQgZGF0YSB0YXNrJylcbiAgICAgICAgY29uc29sZS5lcnJvcignbm90IHZhbGlkIHNlbmQgZGF0YSB0YXNrJywgc2VuZFRhc2ssIHRhc2spXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zbmFja0Jhci53YXJuaW5nKCdub3QgaGF2ZSBmaWVsZCBmb3IgdXBkYXRlJylcbiAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICB9XG4gICovXG5cbiAgZ2V0KHJlcXVlc3RBcnJheTogaUJYUmVzdFBhcmFtVGFza0dldCkge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx7IHRhc2s6IGlCWFJlc3RIdHRwVGFzayB8IHVuZGVmaW5lZCB9Pih0aGlzLnVybC5nZXQsIHJlcXVlc3RBcnJheSlcbiAgfVxuXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzTGlzdFxuICAgIC8vID0ge31cbiAgKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RQYXJhbVRhc2tzTGlzdEh0dHA+KHRoaXMudXJsLmxpc3QsIHBhcmFtKVxuICB9XG5cbiAgLypcbiAgbGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXG4gICAgICBtYXAodiA9PiAodiAmJiB2LnRhc2tzKSA/IHYudGFza3MgOiBbXSlcbiAgICApXG4gIH1cblxuICBsaXN0QWxsKHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlggPSB7fSwgY2FjaGUgPSBmYWxzZSk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcbiAgICAgIHJlcXVlc3RBcnJheS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICAgIGlmIChjYWNoZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICBtZXJnZU1hcCh0YXNrcyA9PiB7XG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGlkcyA9ICh0eXBlb2YgcmVxdWVzdEFycmF5LmZpbHRlci5JRCA9PT0gJ251bWJlcicpID8gW3JlcXVlc3RBcnJheS5maWx0ZXIuSURdIDogcmVxdWVzdEFycmF5LmZpbHRlci5JRFxuICAgICAgICAgICAgICBsZXQgZmlsdGVyID0gdGFza3MuZGF0YS5odHRwLmxpc3QuZmlsdGVyKGkgPT4gKGkuaWQpID8gaWRzLmluY2x1ZGVzKGkuaWQpIDogZmFsc2UpXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZpbHRlcilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICB9XG5cbiAgZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheTogUmVxdWVzdEFwaVRhc2tMaXN0QlgpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XG4gICAgcmV0dXJuIHRoaXMubGlzdChyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0ICYmIHR5cGVvZiBpdGVtcy5yZXN1bHQudGFza3MgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3QgaXRlbXMkID0gb2YoaXRlbXMucmVzdWx0LnRhc2tzKVxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XG4gICAgICAgICAgICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgICAgICAgICAgICB0b3RhbDogKGl0ZW1zLnRvdGFsKSA/IGl0ZW1zLnRvdGFsIDogMCxcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHJlcXVlc3RBcnJheS5zdGFydCA9IGl0ZW1zLm5leHRcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCh2RW5kID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodkVuZCAmJiBpdGVtcy5yZXN1bHQudGFza3MpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zLnJlc3VsdC50YXNrcykgPyBpdGVtcy5yZXN1bHQudGFza3MgOiBbXVxuICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5ub3dMb2FkJC5uZXh0KHtcbiAgICAgICAgICAgIHRvdGFsOiAwLFxuICAgICAgICAgICAgbmV4dDogMFxuICAgICAgICAgIH0pXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBnZXRGaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVUYXNrJC5waXBlKFxuICAgICAgbWVyZ2VNYXAodiA9PiB7XG4gICAgICAgIGlmICh2ICYmICF2LmRhdGEuZmllbGRzKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBmaWVsZHM6IGlHZXRGaWVsZHNEZXNjcmlwdGlvbiB9Pj4odGhpcy51cmwuZ2V0RmllbGRzKS5waXBlKFxuICAgICAgICAgICAgdGFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZpZWxkcyh2LnJlc3VsdCkpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCAmJiB2LnJlc3VsdC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdi5yZXN1bHQuZmllbGRzfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYuZGF0YS5maWVsZHMpIHtcbiAgICAgICAgICByZXR1cm4gb2Yoe3Jlc3VsdDogY2xvbmU8aUdldEZpZWxkc0Rlc2NyaXB0aW9uPih2LmRhdGEuZmllbGRzKX0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBkZWxldGVSZXN1bHRGcm9tQ29tbWVudChjb21tZW50SUQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGFueT4+KHRoaXMudXJsLnJlc3VsdC5kZWxldGVGcm9tQ29tbWVudCwge2NvbW1lbnRJZDogY29tbWVudElEfSlcbiAgfVxuXG4gIGFkZFJlc3VsdEZyb21Db21tZW50KGNvbW1lbnRJRDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8aVRhc2tSZXN1bHRIdHRwPj4odGhpcy51cmwucmVzdWx0LmFkZEZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQodi5yZXN1bHQpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gIH1cblxuICBnZXRSZXN1bExpc3QodGFza0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGlUYXNrUmVzdWx0W10gfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxpVGFza1Jlc3VsdEh0dHBbXT4+KHRoaXMudXJsLnJlc3VsdC5saXN0LCB7dGFza0lkOiB0YXNrSWR9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh2ID0+IHtcbiAgICAgICAgICBpZiAodiAmJiB2LnJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHYucmVzdWx0Lm1hcChpID0+IHRoaXMudGFza1Jlc3VsdE1hcC5pVGFza1Jlc3VsdEh0dHBUb2lUYXNrUmVzdWx0KGkpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgIH0pKVxuICB9XG5cbiAgZ2V0UGxhbm5lckxpc3QoKSB7c1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPChzdHJpbmcgfCBudW1iZXIpW10+Pih0aGlzLnVybC5wbGFubmVyLmdldGxpc3QpXG4gIH1cbiAgICovXG5cbiAgZ2V0YWNjZXNzKHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrR2V0QWNjZXNzKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RUYXNrR2V0QWNjZXNzPih0aGlzLnVybC5nZXRhY2Nlc3MsIHBhcmFtKVxuICB9XG5cbn1cblxuIl19
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFDTCxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUN6RyxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUNsRyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFDdkIsTUFBTSwrQkFBK0IsQ0FBQTs7O0FBY3RDLE1BQU0sT0FBTyxlQUFlO0lBMkMxQixZQUNVLElBQW9CO1FBQXBCLFNBQUksR0FBSixJQUFJLENBQWdCO1FBMUM5QixRQUFHLEdBQUc7WUFDSixHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQztZQUNsQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQztZQUNwQyxRQUFRLEVBQUU7Z0JBQ1IsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsZ0NBQWdDO2FBQ3hFO1lBQ0QsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7WUFDOUIsUUFBUSxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUM7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LENBQUE7SUFDMUYsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BeUJFO0lBRUYsR0FBRyxDQUFDLFlBQWlDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzFGLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBNEI7SUFDL0IsT0FBTzs7UUFFUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUE0QixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUN4RSxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BdUhHO0lBRUgsU0FBUyxDQUFDLEtBQWdDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXVCLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQ3hFLENBQUM7OEdBaE9VLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgJGFkZCwgJGFwcHJvdmUsICRhdHRhY2gsICRjb21wbGV0ZSwgJGNvdW50ZXJzLCAkZGVmZXIsICRkZWxlZ2F0ZSwgJGRlbGV0ZSwgJGRpc2FwcHJvdmUsICRmYXZvcml0ZSwgJGZpbGVzLFxyXG4gICRnZXQsICRnZXRhY2Nlc3MsICRnZXRGaWVsZHMsICRnZXRsaXN0LCAkaGlzdG9yeSwgJGxpc3QsICRwYXVzZSwgJHBsYW5uZXIsICRyZW5ldywgJHJlc3VsdCwgJHN0YXJ0LFxyXG4gICR0YXNrLCAkdGFza3MsICR1cGRhdGVcclxufSBmcm9tICcuLi8uLi9jb25zdHMvcGFydC1uYW1lLW1ldG9kcydcclxuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHsgaUJYUmVzdEh0dHBUYXNrIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay90YXNrJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrQWRkIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9hZGQnXHJcbmltcG9ydCBpQlhSZXN0UGFyYW1UYXNrR2V0IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svZ2V0J1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrc0xpc3QsIGlCWFJlc3RQYXJhbVRhc2tzTGlzdEh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2xpc3QnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVRhc2tHZXRBY2Nlc3MsIGlCWFJlc3RUYXNrR2V0QWNjZXNzIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9hY2Nlc3MvZ2V0YWNjZXNzJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VGFza3NUYXNrQXBwcm92ZUh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2FwcHJvdmUnXHJcbmltcG9ydCB7IGlCWFJlc3RUYXNrc1Rhc2tDb21wbGV0ZUh0dHAgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2NvbXBsZXRlJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VGFza3NUYXNrRGVmZXJIdHRwIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9kZWZlcidcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdFRhc2tzVGFzayB7XHJcblxyXG4gIHVybCA9IHtcclxuICAgIGFkZDogWyR0YXNrcywgJHRhc2ssICRhZGRdLCAvLyDQodC+0LfQtNCw0LXRgiDQt9Cw0LTQsNGH0YNcclxuICAgIGFwcHJvdmU6IFskdGFza3MsICR0YXNrLCAkYXBwcm92ZV0sIC8vINCf0L7Qt9Cy0L7Qu9GP0LXRgiDQv9GA0LjQvdGP0YLRjCDQt9Cw0LTQsNGH0YNcclxuICAgIGNvbXBsZXRlOiBbJHRhc2tzLCAkdGFzaywgJGNvbXBsZXRlXSwgLy8g0J/QtdGA0LXQstC+0LTQuNGCINC30LDQtNCw0YfRgyDQsiDRgdGC0LDRgtGD0YEgwqvQt9Cw0LLQtdGA0YjQtdC90LDCu1xyXG4gICAgY291bnRlcnM6IHtcclxuICAgICAgZ2V0OiBbJHRhc2tzLCAkdGFzaywgJGNvdW50ZXJzLCAkZ2V0XSwgLy/Qn9C+0LvRg9GH0LDQtdGCINGB0YfQtdGC0YfQuNC60Lgg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPXHJcbiAgICB9LFxyXG4gICAgZGVmZXI6IFskdGFza3MsICR0YXNrLCAkZGVmZXJdLCAvLyDQn9C10YDQtdCy0L7QtNC40YIg0LfQsNC00LDRh9GDINCyINGB0YLQsNGC0YPRgSDCq9C+0YLQu9C+0LbQtdC90LDCu1xyXG4gICAgZGVsZWdhdGU6IFskdGFza3MsICR0YXNrLCAkZGVsZWdhdGVdLCAvLyDQnNC10YLQvtC0INC00LvRjyDQtNC10LvQtdCz0LjRgNC+0LLQsNC90LjRjyDQt9Cw0LTQsNGH0LhcclxuICAgIGRlbGV0ZTogWyR0YXNrcywgJHRhc2ssICRkZWxldGVdLCAvLyDQo9C00LDQu9GP0LXRgiDQt9Cw0LTQsNGH0YNcclxuICAgIGRpc2FwcHJvdmU6IFskdGFza3MsICR0YXNrLCAkZGlzYXBwcm92ZV0sIC8vINCf0L7Qt9Cy0L7Qu9GP0LXRgiDQvtGC0LrQu9C+0L3QuNGC0Ywg0LfQsNC00LDRh9GDXHJcbiAgICBmYXZvcml0ZToge1xyXG4gICAgICBhZGQ6IFskdGFza3MsICR0YXNrLCAkZmF2b3JpdGUsICRhZGRdLCAvLyDQlNC+0LHQsNCy0LvRj9C10YIg0LfQsNC00LDRh9C4INCyIFwi0JjQt9Cx0YDQsNC90L3QvtC1XCJcclxuICAgICAgZGVsZXRlOiBbJHRhc2tzLCAkdGFzaywgJGZhdm9yaXRlLCAkZGVsZXRlXSwgLy8g0KPQtNCw0LvRj9C10YIg0LfQsNC00LDRh9C4INC40LcgXCLQmNC30LHRgNCw0L3QvdC+0LPQvlwiXHJcbiAgICB9LFxyXG4gICAgZmlsZXM6IHtcclxuICAgICAgYXR0YWNoOiBbJHRhc2tzLCAkdGFzaywgJGZpbGVzLCAkYXR0YWNoXSwgLy8g0J/RgNC40LrRgNC10L/Qu9GP0LXRgiDQt9Cw0LPRgNGD0LbQtdC90L3Ri9C5INC90LAg0LTQuNGB0Log0YTQsNC50Lsg0Log0LfQsNC00LDRh9C1XHJcbiAgICB9LFxyXG4gICAgZ2V0OiBbJHRhc2tzLCAkdGFzaywgJGdldF0sIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC40L3RhNC+0YDQvNCw0YbQuNGOINC+INC60L7QvdC60YDQtdGC0L3QvtC5INC30LDQtNCw0YfQtVxyXG4gICAgZ2V0RmllbGRzOiBbJHRhc2tzLCAkdGFzaywgJGdldEZpZWxkc10sIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINCy0YHQtSDQtNC+0YHRgtGD0L/QvdGL0LUg0L/QvtC70Y9cclxuICAgIGdldGFjY2VzczogWyR0YXNrcywgJHRhc2ssICRnZXRhY2Nlc3NdLCAvLyDQnNC10YLQvtC0INC00LvRjyDQv9GA0L7QstC10YDQutC4INC00L7RgdGC0YPQv9CwINC6INC30LDQtNCw0YfQtVxyXG4gICAgaGlzdG9yeToge1xyXG4gICAgICBsaXN0OiBbJHRhc2tzLCAkdGFzaywgJGhpc3RvcnksICRsaXN0XSwgLy8g0J/QvtC70YPRh9Cw0LXRgiDQuNGB0YLQvtGA0LjRjiDQt9Cw0LTQsNGH0LhcclxuICAgIH0sXHJcbiAgICBsaXN0OiBbJHRhc2tzLCAkdGFzaywgJGxpc3RdLCAvLyDQktC+0LfQstGA0LDRidCw0LXRgiDQvNCw0YHRgdC40LIg0LfQsNC00LDRhywg0LrQsNC20LTQsNGPINC40Lcg0LrQvtGC0L7RgNGL0YUg0YHQvtC00LXRgNC20LjRgiDQvNCw0YHRgdC40LIg0L/QvtC70LXQuVxyXG4gICAgcGF1c2U6IFskdGFza3MsICR0YXNrLCAkcGF1c2VdLCAvLyDQntGB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstGL0L/QvtC70L3QtdC90LjQtSDQt9Cw0LTQsNGH0LgsINC/0LXRgNC10LLQvtC00Y8g0LXQtSDQsiDRgdGC0LDRgtGD0YEgXCLQttC00LXRgiDQstGL0L/QvtC70L3QtdC90LjRj1wiXHJcbiAgICByZW5ldzogWyR0YXNrcywgJHRhc2ssICRyZW5ld10sIC8vINCS0L7Qt9C+0LHQvdC+0LLQu9GP0LXRgiDQt9Cw0LTQsNGH0YMg0L/QvtGB0LvQtSDQtdC1INC30LDQstC10YDRiNC10L3QuNGPXHJcbiAgICBzdGFydDogWyR0YXNrcywgJHRhc2ssICRzdGFydF0sIC8vINCf0LXRgNC10LLQvtC00LjRgiDQt9Cw0LTQsNGH0YMg0LIg0YHRgtCw0YLRg9GBIMKr0LLRi9C/0L7Qu9C90Y/QtdGC0YHRj8K7XHJcbiAgICBzdGFydHdhdGNoOiBbJHRhc2tzLCAkdGFzaywgJ3N0YXJ0d2F0Y2gnXSwgLy8g0J/QvtC30LLQvtC70Y/QtdGCINC90LDQsdC70Y7QtNCw0YLRjCDQt9CwINC30LDQtNCw0YfQtdC5XHJcbiAgICBzdG9wd2F0Y2g6IFskdGFza3MsICR0YXNrLCAnc3RvcHdhdGNoJ10sIC8vINCe0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC90LDQsdC70Y7QtNC10L3QuNC1INC30LAg0LfQsNC00LDRh9C10LlcclxuICAgIHVwZGF0ZTogWyR0YXNrcywgJHRhc2ssICR1cGRhdGVdLCAvLyDQntCx0L3QvtCy0LvRj9C10YIg0LfQsNC00LDRh9GDXHJcbiAgICByZXN1bHQ6IHtcclxuICAgICAgbGlzdDogWyR0YXNrcywgJHRhc2ssICRyZXN1bHQsICRsaXN0XSwgLy8g0J/RgNC+0YHQvNC+0YLRgCDRgdC/0LjRgdC60LAg0YDQtdC30YPQu9GM0YLQsNGC0L7QsiDQuiDQt9Cw0LTQsNGH0LVcclxuICAgICAgYWRkRnJvbUNvbW1lbnQ6IFskdGFza3MsICR0YXNrLCAkcmVzdWx0LCAnYWRkRnJvbUNvbW1lbnQnXSwgLy8g0KHQvtC30LTQsNC90LjQtSDRgNC10LfRg9C70YzRgtCw0YLQsCDQt9Cw0LTQsNGH0Lgg0LjQtyDQutC+0LzQvNC10L3RgtCw0YDQuNGPXHJcbiAgICAgIGRlbGV0ZUZyb21Db21tZW50OiBbJHRhc2tzLCAkdGFzaywgJHJlc3VsdCwgJ2RlbGV0ZUZyb21Db21tZW50J10sIC8vINCj0LTQsNC70LXQvdC40LUg0YDQtdC30YPQu9GM0YLQsNGC0LAg0LfQsNC00LDRh9C4INC/0L4g0LrQvtC80LzQtdC90YLQsNGA0LjRjiDQuNC3INC60L7RgtC+0YDQvtCz0L4g0L7QvSDQsdGL0Lsg0YHQvtC30LTQsNC9XHJcbiAgICB9LFxyXG4gICAgcGxhbm5lcjoge1xyXG4gICAgICBnZXRsaXN0OiBbJHRhc2ssICRwbGFubmVyLCAkZ2V0bGlzdF0sIC8vINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINC80LDRgdGB0LjQsiwg0YHQvtC00LXRgNC20LDRidC40Lkg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRiyDQt9Cw0LTQsNGHINCyINC/0LvQsNC90LUg0L3QsCDQtNC10L3RjFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBCWFNlcnZpY2VzXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhZGQocGFyYW06IHsgZmllbGRzOiBpQlhSZXN0UGFyYW1UYXNrQWRkIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx7IHRhc2s6IGlCWFJlc3RIdHRwVGFzayB9Pih0aGlzLnVybC5hZGQsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgYXBwcm92ZShpZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8eyB0YXNrOiBpQlhSZXN0VGFza3NUYXNrQXBwcm92ZUh0dHAgfT4odGhpcy51cmwuYXBwcm92ZSwge3Rhc2tJZDogaWR9KVxyXG4gIH1cclxuXHJcbiAgY29tcGxldGUoaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogaUJYUmVzdFRhc2tzVGFza0NvbXBsZXRlSHR0cCB9Pih0aGlzLnVybC5jb21wbGV0ZSwge3Rhc2tJZDogaWR9KVxyXG4gIH1cclxuXHJcbiAgZGVmZXIoaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogaUJYUmVzdFRhc2tzVGFza0RlZmVySHR0cCB9Pih0aGlzLnVybC5kZWZlciwge3Rhc2tJZDogaWR9KVxyXG4gIH1cclxuXHJcbiAgLypcclxuICB1cGRhdGUodGFza0lkOiBudW1iZXIsIHVwZGF0ZUZpZWxkczogaUJYUmVzdFRhc2tGaWVsZHNOYW1lW10sIHRhc2s6IGlCWFJlc3RUYXNrKSB7XHJcbiAgICBsZXQgc2VuZFRhc2s6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxyXG4gICAgbGV0IHRhc2tUUzogUmVjb3JkPHN0cmluZywgYW55PiA9IHRhc2tcclxuICAgIGlmICh1cGRhdGVGaWVsZHMubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IHVwZGF0ZUZpZWxkIG9mIHVwZGF0ZUZpZWxkcykge1xyXG4gICAgICAgIGlmICh0YXNrVFNbY2FtZWxDYXNlKHVwZGF0ZUZpZWxkKV0pIHtcclxuICAgICAgICAgIHNlbmRUYXNrW3VwZGF0ZUZpZWxkXSA9IHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoT2JqZWN0LnZhbHVlcyhzZW5kVGFzaykubGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICAgICAgdGhpcy51cmwudXBkYXRlLFxyXG4gICAgICAgICAge3Rhc2tJZDogdGFza0lkLCBmaWVsZHM6IHNlbmRUYXNrfSxcclxuICAgICAgICAgICdlcnJvciB0byB1cGRhdGUgdGFzaycpXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zbmFja0Jhci5lcnJvcignbm90IHZhbGlkIHNlbmQgZGF0YSB0YXNrJylcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdub3QgdmFsaWQgc2VuZCBkYXRhIHRhc2snLCBzZW5kVGFzaywgdGFzaylcclxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zbmFja0Jhci53YXJuaW5nKCdub3QgaGF2ZSBmaWVsZCBmb3IgdXBkYXRlJylcclxuICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgfVxyXG4gICovXHJcblxyXG4gIGdldChyZXF1ZXN0QXJyYXk6IGlCWFJlc3RQYXJhbVRhc2tHZXQpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx7IHRhc2s6IGlCWFJlc3RIdHRwVGFzayB8IHVuZGVmaW5lZCB9Pih0aGlzLnVybC5nZXQsIHJlcXVlc3RBcnJheSlcclxuICB9XHJcblxyXG4gIGxpc3QocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tzTGlzdFxyXG4gICAgLy8gPSB7fVxyXG4gICkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RQYXJhbVRhc2tzTGlzdEh0dHA+KHRoaXMudXJsLmxpc3QsIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBsaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCA9IHt9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0KHJlcXVlc3RBcnJheSkucGlwZShcclxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXHJcbiAgICAgIG1hcCh2ID0+ICh2ICYmIHYudGFza3MpID8gdi50YXNrcyA6IFtdKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbGlzdEFsbChyZXF1ZXN0QXJyYXk6IFJlcXVlc3RBcGlUYXNrTGlzdEJYID0ge30sIGNhY2hlID0gZmFsc2UpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XHJcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcclxuICAgICAgcmVxdWVzdEFycmF5LnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxyXG4gICAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXHJcbiAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgbWVyZ2VNYXAodGFza3MgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gKHR5cGVvZiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEID09PSAnbnVtYmVyJykgPyBbcmVxdWVzdEFycmF5LmZpbHRlci5JRF0gOiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEXHJcbiAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IHRhc2tzLmRhdGEuaHR0cC5saXN0LmZpbHRlcihpID0+IChpLmlkKSA/IGlkcy5pbmNsdWRlcyhpLmlkKSA6IGZhbHNlKVxyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsdGVyKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpXHJcbiAgfVxyXG5cclxuICBnZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcclxuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdC50YXNrcyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1zJCA9IG9mKGl0ZW1zLnJlc3VsdC50YXNrcylcclxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgICAgdG90YWw6IChpdGVtcy50b3RhbCkgPyBpdGVtcy50b3RhbCA6IDAsXHJcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICByZXF1ZXN0QXJyYXkuc3RhcnQgPSBpdGVtcy5uZXh0XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKHZFbmQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0LnRhc2tzKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChpdGVtcy5yZXN1bHQudGFza3MpID8gaXRlbXMucmVzdWx0LnRhc2tzIDogW11cclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgIHRvdGFsOiAwLFxyXG4gICAgICAgICAgICBuZXh0OiAwXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YoW10pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmVUYXNrJC5waXBlKFxyXG4gICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICBpZiAodiAmJiAhdi5kYXRhLmZpZWxkcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBmaWVsZHM6IGlHZXRGaWVsZHNEZXNjcmlwdGlvbiB9Pj4odGhpcy51cmwuZ2V0RmllbGRzKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZpZWxkcyh2LnJlc3VsdCkpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0ICYmIHYucmVzdWx0LmZpZWxkcykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHYucmVzdWx0LmZpZWxkc31cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHYuZGF0YS5maWVsZHMpIHtcclxuICAgICAgICAgIHJldHVybiBvZih7cmVzdWx0OiBjbG9uZTxpR2V0RmllbGRzRGVzY3JpcHRpb24+KHYuZGF0YS5maWVsZHMpfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBkZWxldGVSZXN1bHRGcm9tQ29tbWVudChjb21tZW50SUQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8YW55Pj4odGhpcy51cmwucmVzdWx0LmRlbGV0ZUZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxyXG4gIH1cclxuXHJcbiAgYWRkUmVzdWx0RnJvbUNvbW1lbnQoY29tbWVudElEOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlUYXNrUmVzdWx0SHR0cD4+KHRoaXMudXJsLnJlc3VsdC5hZGRGcm9tQ29tbWVudCwge2NvbW1lbnRJZDogY29tbWVudElEfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQodi5yZXN1bHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfSkpXHJcbiAgfVxyXG5cclxuICBnZXRSZXN1bExpc3QodGFza0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGlUYXNrUmVzdWx0W10gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlUYXNrUmVzdWx0SHR0cFtdPj4odGhpcy51cmwucmVzdWx0Lmxpc3QsIHt0YXNrSWQ6IHRhc2tJZH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2LnJlc3VsdC5tYXAoaSA9PiB0aGlzLnRhc2tSZXN1bHRNYXAuaVRhc2tSZXN1bHRIdHRwVG9pVGFza1Jlc3VsdChpKSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICB9KSlcclxuICB9XHJcblxyXG4gIGdldFBsYW5uZXJMaXN0KCkge3NcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPChzdHJpbmcgfCBudW1iZXIpW10+Pih0aGlzLnVybC5wbGFubmVyLmdldGxpc3QpXHJcbiAgfVxyXG4gICAqL1xyXG5cclxuICBnZXRhY2Nlc3MocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tHZXRBY2Nlc3MpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VGFza0dldEFjY2Vzcz4odGhpcy51cmwuZ2V0YWNjZXNzLCBwYXJhbSlcclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=
|
|
@@ -14,4 +14,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
14
14
|
providedIn: 'root'
|
|
15
15
|
}]
|
|
16
16
|
}], ctorParameters: function () { return [{ type: i1.BXRestTasksTask }]; } });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0L3Rhc2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7OztBQU0xQyxNQUFNLE9BQU8sV0FBVztJQUV0QixZQUNTLElBQXFCO1FBQXJCLFNBQUksR0FBSixJQUFJLENBQWlCO0lBRTlCLENBQUM7OEdBTFUsV0FBVztrSEFBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0VGFza3NUYXNrIH0gZnJvbSAnLi90YXNrcy90YXNrJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQlhSZXN0VGFza3Mge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0YXNrOiBCWFJlc3RUYXNrc1Rhc2ssXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19
|
package/esm2022/request/user.mjs
CHANGED
|
@@ -22,13 +22,13 @@ export class BXRestUser {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
admin() {
|
|
25
|
-
return this.http.
|
|
25
|
+
return this.http.post(this.url.admin);
|
|
26
26
|
}
|
|
27
27
|
get(params = {}) {
|
|
28
28
|
return this.http.post(this.url.get, params);
|
|
29
29
|
}
|
|
30
30
|
current(update = false) {
|
|
31
|
-
let request = this.http.
|
|
31
|
+
let request = this.http.post(this.url.current, {});
|
|
32
32
|
if (update) {
|
|
33
33
|
return request;
|
|
34
34
|
}
|
|
@@ -40,13 +40,13 @@ export class BXRestUser {
|
|
|
40
40
|
return this.http.post(this.url.update, user);
|
|
41
41
|
}
|
|
42
42
|
search(params) {
|
|
43
|
-
return this.http.
|
|
43
|
+
return this.http.post(this.url.search, params);
|
|
44
44
|
}
|
|
45
45
|
access(access) {
|
|
46
|
-
return this.http.
|
|
46
|
+
return this.http.post(this.url.access, { ACCESS: access });
|
|
47
47
|
}
|
|
48
48
|
fields() {
|
|
49
|
-
return this.http.
|
|
49
|
+
return this.http.post(this.url.fields);
|
|
50
50
|
}
|
|
51
51
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestUser, deps: [{ token: i1.HttpBXServices }, { token: i2.BXRestUserUserfield }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
52
52
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: BXRestUser, providedIn: 'root' }); }
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
57
57
|
providedIn: 'root'
|
|
58
58
|
}]
|
|
59
59
|
}], ctorParameters: function () { return [{ type: i1.HttpBXServices }, { type: i2.BXRestUserUserfield }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBSTVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOzs7O0FBUTFDLE1BQU0sT0FBTyxVQUFVO0lBZXJCLFlBQ1UsSUFBb0IsRUFDckIsU0FBOEI7UUFEN0IsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFmdkMsUUFBRyxHQUFHO1lBQ0osS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN2QixHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUM7WUFDM0IsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN4QixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7WUFDekIsdUNBQXVDO1lBQ3ZDLDRCQUE0QjtZQUM1QixxQkFBcUI7WUFDckIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztTQUMxQixDQUFBO0lBTUQsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFVLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELEdBQUcsQ0FBQyxTQUE4QixFQUFFO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBRW5CLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUNaLE1BQU0sQ0FDUCxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsS0FBSztRQUNwQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBa0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDbkUsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLE9BQU8sQ0FBQTtTQUNmO2FBQU07WUFDTCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEtBQUssRUFBRSxDQUNSLENBQUE7U0FDRjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsSUFBMEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQ2YsSUFBSSxDQUNMLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQThCO1FBQ25DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQW9CLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBcUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQTtJQUM5RixDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXNDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDN0UsQ0FBQzs4R0E3RFUsVUFBVTtrSEFBVixVQUFVLGNBRlQsTUFBTTs7MkZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaGFyZSB9IGZyb20gJ3J4anMnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJHZXQgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL2dldCdcclxuaW1wb3J0IHsgSHR0cEJYU2VydmljZXMgfSBmcm9tICcuLi9zZXJ2aWNlcy9odHRwL0h0dHBCWCdcclxuaW1wb3J0IHsgaUJYUmVzdFVzZXIsIGlCWFJlc3RVc2VySHR0cCwgaUJYUmVzdFVzZXJIdHRwRmllbGQgfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3VzZXInXHJcbmltcG9ydCB7ICRnZXQsICRzZWFyY2gsICR1cGRhdGUsICR1c2VyIH0gZnJvbSAnLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRvZHMnXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBpQlhSZXN0QW5zd2VyIH0gZnJvbSAnLi4vdHlwaWZpY2F0aW9uL3Jlc3QvYmFzZS9hbnN3ZXInXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVzZXJTZWFyY2ggfSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyL3NlYXJjaCdcclxuaW1wb3J0IHsgQlhSZXN0VXNlclVzZXJmaWVsZCB9IGZyb20gJy4vdXNlci91c2VyZmllbGQnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3RVc2VyIHtcclxuXHJcbiAgdXJsID0ge1xyXG4gICAgYWRtaW46IFskdXNlciwgJ2FkbWluJ10sXHJcbiAgICBnZXQ6IFskdXNlciwgJGdldF0sXHJcbiAgICBjdXJyZW50OiBbJHVzZXIsICdjdXJyZW50J10sXHJcbiAgICB1cGRhdGU6IFskdXNlciwgJHVwZGF0ZV0sXHJcbiAgICBzZWFyY2g6IFskdXNlciwgJHNlYXJjaF0sXHJcbiAgICBhY2Nlc3M6IFskdXNlciwgJ2FjY2VzcyddLCAvLyBVMSAtINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRgSBpZCA9MVxyXG4gICAgLy8gQVUgLSDQstGB0LUg0LDQstGC0L7RgNC40LfQvtCy0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LhcclxuICAgIC8vIEQxIC0g0L/QvtC00YDQsNC30LTQtdC70LXQvdC40LUg0YEgaWQ9MVxyXG4gICAgLy8gRzEgLSDQs9GA0YPQv9C/0LAg0YEgaWQ9MVxyXG4gICAgZmllbGRzOiBbJHVzZXIsICdmaWVsZHMnXSxcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQlhTZXJ2aWNlcyxcclxuICAgIHB1YmxpYyB1c2VyZmllbGQ6IEJYUmVzdFVzZXJVc2VyZmllbGRcclxuICApIHtcclxuICB9XHJcblxyXG4gIGFkbWluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGJvb2xlYW4+KHRoaXMudXJsLmFkbWluKVxyXG4gIH1cclxuXHJcbiAgZ2V0KHBhcmFtczogaUJYUmVzdFBhcmFtVXNlckdldCA9IHt9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFVzZXJIdHRwW10+XHJcbiAgICAoXHJcbiAgICAgIHRoaXMudXJsLmdldCxcclxuICAgICAgcGFyYW1zXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjdXJyZW50KHVwZGF0ZSA9IGZhbHNlKSB7XHJcbiAgICBsZXQgcmVxdWVzdCA9IHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RVc2VySHR0cD4odGhpcy51cmwuY3VycmVudCwge30pXHJcbiAgICBpZiAodXBkYXRlKSB7XHJcbiAgICAgIHJldHVybiByZXF1ZXN0XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gcmVxdWVzdC5waXBlKFxyXG4gICAgICAgIHNoYXJlKClcclxuICAgICAgKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlKHVzZXI6IFBhcnRpYWw8aUJYUmVzdFVzZXI+KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFVzZXJIdHRwW10+KFxyXG4gICAgICB0aGlzLnVybC51cGRhdGUsXHJcbiAgICAgIHVzZXJcclxuICAgIClcclxuICB9XHJcblxyXG4gIHNlYXJjaChwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJTZWFyY2gpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0VXNlckh0dHBbXT4odGhpcy51cmwuc2VhcmNoLCBwYXJhbXMpXHJcbiAgfVxyXG5cclxuICBhY2Nlc3MoYWNjZXNzOiBzdHJpbmdbXSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlCWFJlc3RBbnN3ZXI8Ym9vbGVhbj4gfCB1bmRlZmluZWQ+KHRoaXMudXJsLmFjY2Vzcywge0FDQ0VTUzogYWNjZXNzfSlcclxuICB9XHJcblxyXG4gIGZpZWxkcygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpQlhSZXN0QW5zd2VyPGlCWFJlc3RVc2VySHR0cEZpZWxkPj4odGhpcy51cmwuZmllbGRzKVxyXG4gIH1cclxufVxyXG5cclxuIl19
|
|
@@ -216,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
|
|
|
216
216
|
providedIn: 'root'
|
|
217
217
|
}]
|
|
218
218
|
}], ctorParameters: function () { return [{ type: i1.BXRestTasksTask }, { type: i2.BXRestMapTasksTask }]; } });
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7OztBQUs1QyxpQ0FBaUM7QUFDakMsbUJBQW1CO0FBQ25CLGlCQUFpQjtBQUNqQixJQUFJO0FBTUosTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0IsWUFDVSxlQUFnQztJQUN4QyxxQ0FBcUM7SUFDckMsZ0RBQWdEO0lBQ3hDLGtCQUFzQztRQUh0QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFHaEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQW5CaEQsZ0JBQWdCO1FBQ2hCLCtDQUErQztRQUUvQyxRQUFHLEdBQXdDO1lBQ3pDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXO2dCQUMzRixVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFVBQVU7Z0JBQ2pHLFlBQVksRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYTtnQkFDNUcsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsb0JBQW9CO2dCQUM5RyxNQUFNLEVBQUUscUJBQXFCO2FBQzlCO1NBQ0YsQ0FBQTtRQWFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNyRSxnREFBZ0Q7UUFDaEQsd0JBQXdCO1FBQ3hCLGVBQWU7UUFDZixhQUFhO1FBQ2IsTUFBTTtJQUNSLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBc0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQ3hCLEtBQUssRUFDTCw0QkFBNEIsRUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDNUIsQ0FBQTtRQUNELG1GQUFtRjtRQUNuRixlQUFlO1FBQ2YsOENBQThDO1FBQzlDLGdDQUFnQztRQUNoQyxlQUFlO1FBQ2YsY0FBYztRQUNkLHVFQUF1RTtRQUN2RSxlQUFlO1FBQ2YsVUFBVTtRQUNWLHlCQUF5QjtRQUN6QixRQUFRO1FBQ1IsT0FBTztJQUNULENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXlCRTtJQUVGLEdBQUcsQ0FBQyxLQUEwQjtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFBO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQ3hCLEtBQUssRUFDTCw0QkFBNEIsRUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDNUIsQ0FBQTtJQUNILENBQUM7SUFHRCxJQUFJLENBQUMsUUFBK0IsRUFBRTtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFBO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQ3pCLEtBQUssRUFDTCxrQ0FBa0MsRUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDN0IsQ0FBQTtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F1SEc7SUFFSCxTQUFTLENBQUMsS0FBZ0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQzlCLEtBQUssRUFDTCxzREFBc0QsRUFDdEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FDbEMsQ0FBQTtJQUNILENBQUM7OEdBMU9VLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJYUmVzdFRhc2tzVGFzayB9IGZyb20gJy4uLy4uL3JlcXVlc3QvdGFza3MvdGFzaydcbmltcG9ydCB7IGlCWFJlc3RUYXNrRmllbGRzTmFtZSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svYmFzZS9maWVsZHNOYW1lJ1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0FkZCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svYWRkJ1xuaW1wb3J0IGlCWFJlc3RQYXJhbVRhc2tHZXQgZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9nZXQnXG5pbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25hdnZ5J1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza3NMaXN0IH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9saXN0J1xuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0dldEFjY2VzcyB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svYWNjZXNzL2dldGFjY2VzcydcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tzVGFzayB9IGZyb20gJy4uLy4uL21hcC90YXNrcy90YXNrJ1xuXG4vLyBleHBvcnQgaW50ZXJmYWNlIFRpbWVQcm9jZXNzIHtcbi8vICAgdG90YWw6IG51bWJlcixcbi8vICAgbmV4dDogbnVtYmVyXG4vLyB9XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQlhSZXN0TmF2dnlUYXNrc1Rhc2sge1xuXG4gIC8vIHBhZ2VTaXplID0gNTBcbiAgLy8gbm93TG9hZCQgPSBuZXcgUmVwbGF5U3ViamVjdDxUaW1lUHJvY2Vzcz4oMSlcblxuICBkZWY6IHsgc2VsZWN0OiBpQlhSZXN0VGFza0ZpZWxkc05hbWVbXSB9ID0ge1xuICAgIHNlbGVjdDogWydJRCcsICdQQVJFTlRfSUQnLCAnVElUTEUnLCAnREVTQ1JJUFRJT04nLCAnTUFSSycsICdQUklPUklUWScsICdTVEFUVVMnLCAnTVVMVElUQVNLJyxcbiAgICAgICdHUk9VUF9JRCcsICdTVEFHRV9JRCcsICdDUkVBVEVEX0JZJywgJ0NSRUFURURfREFURScsICdSRVNQT05TSUJMRV9JRCcsICdBQ0NPTVBMSUNFUycsICdBVURJVE9SUycsXG4gICAgICAnQ0hBTkdFRF9CWScsICdDSEFOR0VEX0RBVEUnLCAnU1RBVFVTX0NIQU5HRURfREFURScsICdDTE9TRURfQlknLCAnQ0xPU0VEX0RBVEUnLCAnREFURV9TVEFSVCcsICdWSUVXRURfREFURScsXG4gICAgICAnREVBRExJTkUnLCAnU1RBUlRfREFURV9QTEFOJywgJ0VORF9EQVRFX1BMQU4nLCAnRk9SS0VEX0JZX1RFTVBMQVRFX0lEJywgJ1RJTUVfRVNUSU1BVEUnLCAnVElNRV9TUEVOVF9JTl9MT0dTJyxcbiAgICAgICdUQUdTJywgJ0FMTE9XX1RJTUVfVFJBQ0tJTkcnXG4gICAgXVxuICB9XG5cbiAgLy8gc3RvcmVUYXNrJDogT2JzZXJ2YWJsZTxpU3RvcmVUYXNrPlxuICBOYXZ2eTogTmF2dnk8QlhSZXN0VGFza3NUYXNrLCBCWFJlc3RNYXBUYXNrc1Rhc2s+XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBCWFJlc3RUYXNrc1Rhc2s6IEJYUmVzdFRhc2tzVGFzayxcbiAgICAvLyBwcml2YXRlIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsXG4gICAgLy8gIHByaXZhdGUgc3RvcmU6IFN0b3JlPHsgdGFza3M6IElTdG9yZVRhc2sgfT4sXG4gICAgcHJpdmF0ZSBCWFJlc3RNYXBUYXNrc1Rhc2s6IEJYUmVzdE1hcFRhc2tzVGFzayxcblxuICAgIC8vIHByaXZhdGUgdGFza1Jlc3VsdE1hcDogQml0cml4QXBpVGFza1Jlc3VsdE1hcFNlcnZpY2VzXG4gICkge1xuICAgIHRoaXMuTmF2dnkgPSBuZXcgTmF2dnkodGhpcy5CWFJlc3RUYXNrc1Rhc2ssIHRoaXMuQlhSZXN0TWFwVGFza3NUYXNrKVxuICAgIC8vICB0aGlzLnN0b3JlVGFzayQgPSB0aGlzLnN0b3JlLnNlbGVjdCgndGFza3MnKVxuICAgIC8vICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgIC8vICAgIHRvdGFsOiAwLFxuICAgIC8vICAgIG5leHQ6IDBcbiAgICAvLyAgfSlcbiAgfVxuXG4gIGFkZChwYXJhbTogeyBmaWVsZHM6IGlCWFJlc3RQYXJhbVRhc2tBZGQgfSkge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZVdpdGhBcmcoXG4gICAgICB0aGlzLkJYUmVzdFRhc2tzVGFzay5hZGQsXG4gICAgICBwYXJhbSxcbiAgICAgICfQndC1INGD0LTQsNC70L7RgdGMINC00L7QsdCw0LLQuNGC0Ywg0LfQsNC00LDRh9GDJyxcbiAgICAgIHRoaXMuQlhSZXN0TWFwVGFza3NUYXNrLmFkZFxuICAgIClcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnBvc3Q8eyB0YXNrOiBUYXNrQlhIdHRwIH0+KHRoaXMudXJsLmFkZCwge2ZpZWxkczogcGFyYW19KS5waXBlKFxuICAgIC8vICAgbWFwKHYgPT4ge1xuICAgIC8vICAgICAgIGlmICh2ICYmIHYucmVzdWx0ICYmIHYucmVzdWx0LnRhc2spIHtcbiAgICAvLyAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgIC8vICAgICAgICAgICB2LFxuICAgIC8vICAgICAgICAgICB7XG4gICAgLy8gICAgICAgICAgICAgcmVzdWx0OiB0aGlzLnRhc2tCWE1hcC5UYXNrQlhIdHRwVG9UYXNrQlgodi5yZXN1bHQudGFzaylcbiAgICAvLyAgICAgICAgICAgfSlcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgIC8vICAgICB9XG4gICAgLy8gICApKVxuICB9XG5cbiAgLypcbiAgdXBkYXRlKHRhc2tJZDogbnVtYmVyLCB1cGRhdGVGaWVsZHM6IGlCWFJlc3RUYXNrRmllbGRzTmFtZVtdLCB0YXNrOiBpQlhSZXN0VGFzaykge1xuICAgIGxldCBzZW5kVGFzazogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XG4gICAgbGV0IHRhc2tUUzogUmVjb3JkPHN0cmluZywgYW55PiA9IHRhc2tcbiAgICBpZiAodXBkYXRlRmllbGRzLmxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgdXBkYXRlRmllbGQgb2YgdXBkYXRlRmllbGRzKSB7XG4gICAgICAgIGlmICh0YXNrVFNbY2FtZWxDYXNlKHVwZGF0ZUZpZWxkKV0pIHtcbiAgICAgICAgICBzZW5kVGFza1t1cGRhdGVGaWVsZF0gPSB0YXNrVFNbY2FtZWxDYXNlKHVwZGF0ZUZpZWxkKV1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKE9iamVjdC52YWx1ZXMoc2VuZFRhc2spLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXG4gICAgICAgICAgdGhpcy51cmwudXBkYXRlLFxuICAgICAgICAgIHt0YXNrSWQ6IHRhc2tJZCwgZmllbGRzOiBzZW5kVGFza30sXG4gICAgICAgICAgJ2Vycm9yIHRvIHVwZGF0ZSB0YXNrJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIuZXJyb3IoJ25vdCB2YWxpZCBzZW5kIGRhdGEgdGFzaycpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ25vdCB2YWxpZCBzZW5kIGRhdGEgdGFzaycsIHNlbmRUYXNrLCB0YXNrKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuc25hY2tCYXIud2FybmluZygnbm90IGhhdmUgZmllbGQgZm9yIHVwZGF0ZScpXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgfVxuICAqL1xuXG4gIGdldChwYXJhbTogaUJYUmVzdFBhcmFtVGFza0dldCkge1xuICAgIGlmICghcGFyYW0uc2VsZWN0KSB7XG4gICAgICBwYXJhbS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlV2l0aEFyZyhcbiAgICAgIHRoaXMuQlhSZXN0VGFza3NUYXNrLmdldCxcbiAgICAgIHBhcmFtLFxuICAgICAgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQt9Cw0LTQsNGH0YMnLFxuICAgICAgdGhpcy5CWFJlc3RNYXBUYXNrc1Rhc2suZ2V0XG4gICAgKVxuICB9XG5cblxuICBsaXN0KHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrc0xpc3QgPSB7fSkge1xuICAgIGlmICghcGFyYW0uc2VsZWN0KSB7XG4gICAgICBwYXJhbS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuUGFnTmF2VGFza3MoXG4gICAgICB0aGlzLkJYUmVzdFRhc2tzVGFzay5saXN0LFxuICAgICAgcGFyYW0sXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINGB0L/QuNGB0L7QuiDQt9Cw0LTQsNGHJyxcbiAgICAgIHRoaXMuQlhSZXN0TWFwVGFza3NUYXNrLmxpc3RcbiAgICApXG4gIH1cblxuICAvKlxuICBsaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMubGlzdChyZXF1ZXN0QXJyYXkpLnBpcGUoXG4gICAgICBtYXAodiA9PiB0aGlzLmh0dHAubWFwUmVzdWx0KHYpKSxcbiAgICAgIG1hcCh2ID0+ICh2ICYmIHYudGFza3MpID8gdi50YXNrcyA6IFtdKVxuICAgIClcbiAgfVxuXG4gIGxpc3RBbGwocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCA9IHt9LCBjYWNoZSA9IGZhbHNlKTogT2JzZXJ2YWJsZTxUYXNrQlhbXT4ge1xuICAgIGlmICghcmVxdWVzdEFycmF5LnNlbGVjdCkge1xuICAgICAgcmVxdWVzdEFycmF5LnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxuICAgICAgaWYgKGNhY2hlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlVGFzayQucGlwZShcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgIG1lcmdlTWFwKHRhc2tzID0+IHtcbiAgICAgICAgICAgIGlmICh0YXNrcyAmJiB0YXNrcy5kYXRhLmh0dHAubGlzdCAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyICYmIHJlcXVlc3RBcnJheS5maWx0ZXIuSUQpIHtcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gKHR5cGVvZiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEID09PSAnbnVtYmVyJykgPyBbcmVxdWVzdEFycmF5LmZpbHRlci5JRF0gOiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEXG4gICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSB0YXNrcy5kYXRhLmh0dHAubGlzdC5maWx0ZXIoaSA9PiAoaS5pZCkgPyBpZHMuaW5jbHVkZXMoaS5pZCkgOiBmYWxzZSlcbiAgICAgICAgICAgICAgaWYgKGZpbHRlci5sZW5ndGggPT09IGlkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsdGVyKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpXG4gIH1cblxuICBnZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcbiAgICByZXR1cm4gdGhpcy5saXN0KHJlcXVlc3RBcnJheSkucGlwZShcbiAgICAgIG1lcmdlTWFwKChpdGVtczogQW5zd2VyQXBpVGFza0JYIHwgdW5kZWZpbmVkKTogT2JzZXJ2YWJsZUlucHV0PGFueT4gfCBPYnNlcnZhYmxlPEFuc3dlckFwaVRhc2tCWFtdPiA9PiB7XG4gICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdC50YXNrcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBpdGVtcyQgPSBvZihpdGVtcy5yZXN1bHQudGFza3MpXG4gICAgICAgICAgaWYgKGl0ZW1zLm5leHQpIHtcbiAgICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XG4gICAgICAgICAgICAgIHRvdGFsOiAoaXRlbXMudG90YWwpID8gaXRlbXMudG90YWwgOiAwLFxuICAgICAgICAgICAgICBuZXh0OiBpdGVtcy5uZXh0XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmVxdWVzdEFycmF5LnN0YXJ0ID0gaXRlbXMubmV4dFxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSkucGlwZShcbiAgICAgICAgICAgICAgbWFwKHZFbmQgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2RW5kICYmIGl0ZW1zLnJlc3VsdC50YXNrcykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIFsuLi5pdGVtcy5yZXN1bHQudGFza3MsIC4uLnZFbmRdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAoaXRlbXMucmVzdWx0LnRhc2tzKSA/IGl0ZW1zLnJlc3VsdC50YXNrcyA6IFtdXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLm5vd0xvYWQkLm5leHQoe1xuICAgICAgICAgICAgdG90YWw6IDAsXG4gICAgICAgICAgICBuZXh0OiAwXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm4gaXRlbXMkXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGdldEZpZWxkcygpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXG4gICAgICBtZXJnZU1hcCh2ID0+IHtcbiAgICAgICAgaWYgKHYgJiYgIXYuZGF0YS5maWVsZHMpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDx7IGZpZWxkczogaUdldEZpZWxkc0Rlc2NyaXB0aW9uIH0+Pih0aGlzLnVybC5nZXRGaWVsZHMpLnBpcGUoXG4gICAgICAgICAgICB0YXAodiA9PiB7XG4gICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlRmllbGRzKHYucmVzdWx0KSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAodiA9PiB7XG4gICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0ICYmIHYucmVzdWx0LmZpZWxkcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB2LnJlc3VsdC5maWVsZHN9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBpZiAodi5kYXRhLmZpZWxkcykge1xuICAgICAgICAgIHJldHVybiBvZih7cmVzdWx0OiBjbG9uZTxpR2V0RmllbGRzRGVzY3JpcHRpb24+KHYuZGF0YS5maWVsZHMpfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGRlbGV0ZVJlc3VsdEZyb21Db21tZW50KGNvbW1lbnRJRDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8YW55Pj4odGhpcy51cmwucmVzdWx0LmRlbGV0ZUZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxuICB9XG5cbiAgYWRkUmVzdWx0RnJvbUNvbW1lbnQoY29tbWVudElEOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDxpVGFza1Jlc3VsdEh0dHA+Pih0aGlzLnVybC5yZXN1bHQuYWRkRnJvbUNvbW1lbnQsIHtjb21tZW50SWQ6IGNvbW1lbnRJRH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLnRhc2tSZXN1bHRNYXAuaVRhc2tSZXN1bHRIdHRwVG9pVGFza1Jlc3VsdCh2LnJlc3VsdClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB9KSlcbiAgfVxuXG4gIGdldFJlc3VsTGlzdCh0YXNrSWQ6IG51bWJlcik6IE9ic2VydmFibGU8aVRhc2tSZXN1bHRbXSB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlUYXNrUmVzdWx0SHR0cFtdPj4odGhpcy51cmwucmVzdWx0Lmxpc3QsIHt0YXNrSWQ6IHRhc2tJZH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHYgPT4ge1xuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XG4gICAgICAgICAgICByZXR1cm4gdi5yZXN1bHQubWFwKGkgPT4gdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQoaSkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICAgICAgfSkpXG4gIH1cblxuICBnZXRQbGFubmVyTGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUh0dHBBbnN3ZXJCWDwoc3RyaW5nIHwgbnVtYmVyKVtdPj4odGhpcy51cmwucGxhbm5lci5nZXRsaXN0KVxuICB9XG4gICAqL1xuXG4gIGdldGFjY2VzcyhwYXJhbTogaUJYUmVzdFBhcmFtVGFza0dldEFjY2Vzcykge1xuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZVdpdGhBcmcoXG4gICAgICB0aGlzLkJYUmVzdFRhc2tzVGFzay5nZXRhY2Nlc3MsXG4gICAgICBwYXJhbSxcbiAgICAgICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0L/RgNCw0LLQsCDQvdCwINGD0LrQsNC30LDQvdC90YvRhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuScsXG4gICAgICB0aGlzLkJYUmVzdE1hcFRhc2tzVGFzay5nZXRhY2Nlc3NcbiAgICApXG4gIH1cblxufVxuIl19
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFza3MvdGFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBSzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7OztBQUs1QyxpQ0FBaUM7QUFDakMsbUJBQW1CO0FBQ25CLGlCQUFpQjtBQUNqQixJQUFJO0FBTUosTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0IsWUFDVSxlQUFnQztJQUN4QyxxQ0FBcUM7SUFDckMsZ0RBQWdEO0lBQ3hDLGtCQUFzQztRQUh0QyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFHaEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQW5CaEQsZ0JBQWdCO1FBQ2hCLCtDQUErQztRQUUvQyxRQUFHLEdBQXdDO1lBQ3pDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXO2dCQUMzRixVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFVBQVU7Z0JBQ2pHLFlBQVksRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYTtnQkFDNUcsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsb0JBQW9CO2dCQUM5RyxNQUFNLEVBQUUscUJBQXFCO2FBQzlCO1NBQ0YsQ0FBQTtRQWFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUNyRSxnREFBZ0Q7UUFDaEQsd0JBQXdCO1FBQ3hCLGVBQWU7UUFDZixhQUFhO1FBQ2IsTUFBTTtJQUNSLENBQUM7SUFFRCxHQUFHLENBQUMsS0FBc0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQ3hCLEtBQUssRUFDTCw0QkFBNEIsRUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDNUIsQ0FBQTtRQUNELG1GQUFtRjtRQUNuRixlQUFlO1FBQ2YsOENBQThDO1FBQzlDLGdDQUFnQztRQUNoQyxlQUFlO1FBQ2YsY0FBYztRQUNkLHVFQUF1RTtRQUN2RSxlQUFlO1FBQ2YsVUFBVTtRQUNWLHlCQUF5QjtRQUN6QixRQUFRO1FBQ1IsT0FBTztJQUNULENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXlCRTtJQUVGLEdBQUcsQ0FBQyxLQUEwQjtRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFBO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQ3hCLEtBQUssRUFDTCw0QkFBNEIsRUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FDNUIsQ0FBQTtJQUNILENBQUM7SUFHRCxJQUFJLENBQUMsUUFBK0IsRUFBRTtRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQixLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFBO1NBQy9CO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQ3pCLEtBQUssRUFDTCxrQ0FBa0MsRUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDN0IsQ0FBQTtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F1SEc7SUFFSCxTQUFTLENBQUMsS0FBZ0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQzlCLEtBQUssRUFDTCxzREFBc0QsRUFDdEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FDbEMsQ0FBQTtJQUNILENBQUM7OEdBMU9VLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0VGFza3NUYXNrIH0gZnJvbSAnLi4vLi4vcmVxdWVzdC90YXNrcy90YXNrJ1xyXG5pbXBvcnQgeyBpQlhSZXN0VGFza0ZpZWxkc05hbWUgfSBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2Jhc2UvZmllbGRzTmFtZSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza0FkZCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2tzL3Rhc2svYWRkJ1xyXG5pbXBvcnQgaUJYUmVzdFBhcmFtVGFza0dldCBmcm9tICcuLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrcy90YXNrL2dldCdcclxuaW1wb3J0IHsgTmF2dnkgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uYXZ2eSdcclxuaW1wb3J0IHsgaUJYUmVzdFBhcmFtVGFza3NMaXN0IH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFza3MvdGFzay9saXN0J1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1UYXNrR2V0QWNjZXNzIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9hY2Nlc3MvZ2V0YWNjZXNzJ1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBUYXNrc1Rhc2sgfSBmcm9tICcuLi8uLi9tYXAvdGFza3MvdGFzaydcclxuXHJcbi8vIGV4cG9ydCBpbnRlcmZhY2UgVGltZVByb2Nlc3Mge1xyXG4vLyAgIHRvdGFsOiBudW1iZXIsXHJcbi8vICAgbmV4dDogbnVtYmVyXHJcbi8vIH1cclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eVRhc2tzVGFzayB7XHJcblxyXG4gIC8vIHBhZ2VTaXplID0gNTBcclxuICAvLyBub3dMb2FkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFRpbWVQcm9jZXNzPigxKVxyXG5cclxuICBkZWY6IHsgc2VsZWN0OiBpQlhSZXN0VGFza0ZpZWxkc05hbWVbXSB9ID0ge1xyXG4gICAgc2VsZWN0OiBbJ0lEJywgJ1BBUkVOVF9JRCcsICdUSVRMRScsICdERVNDUklQVElPTicsICdNQVJLJywgJ1BSSU9SSVRZJywgJ1NUQVRVUycsICdNVUxUSVRBU0snLFxyXG4gICAgICAnR1JPVVBfSUQnLCAnU1RBR0VfSUQnLCAnQ1JFQVRFRF9CWScsICdDUkVBVEVEX0RBVEUnLCAnUkVTUE9OU0lCTEVfSUQnLCAnQUNDT01QTElDRVMnLCAnQVVESVRPUlMnLFxyXG4gICAgICAnQ0hBTkdFRF9CWScsICdDSEFOR0VEX0RBVEUnLCAnU1RBVFVTX0NIQU5HRURfREFURScsICdDTE9TRURfQlknLCAnQ0xPU0VEX0RBVEUnLCAnREFURV9TVEFSVCcsICdWSUVXRURfREFURScsXHJcbiAgICAgICdERUFETElORScsICdTVEFSVF9EQVRFX1BMQU4nLCAnRU5EX0RBVEVfUExBTicsICdGT1JLRURfQllfVEVNUExBVEVfSUQnLCAnVElNRV9FU1RJTUFURScsICdUSU1FX1NQRU5UX0lOX0xPR1MnLFxyXG4gICAgICAnVEFHUycsICdBTExPV19USU1FX1RSQUNLSU5HJ1xyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgLy8gc3RvcmVUYXNrJDogT2JzZXJ2YWJsZTxpU3RvcmVUYXNrPlxyXG4gIE5hdnZ5OiBOYXZ2eTxCWFJlc3RUYXNrc1Rhc2ssIEJYUmVzdE1hcFRhc2tzVGFzaz5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIEJYUmVzdFRhc2tzVGFzazogQlhSZXN0VGFza3NUYXNrLFxyXG4gICAgLy8gcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgLy8gIHByaXZhdGUgc3RvcmU6IFN0b3JlPHsgdGFza3M6IElTdG9yZVRhc2sgfT4sXHJcbiAgICBwcml2YXRlIEJYUmVzdE1hcFRhc2tzVGFzazogQlhSZXN0TWFwVGFza3NUYXNrLFxyXG5cclxuICAgIC8vIHByaXZhdGUgdGFza1Jlc3VsdE1hcDogQml0cml4QXBpVGFza1Jlc3VsdE1hcFNlcnZpY2VzXHJcbiAgKSB7XHJcbiAgICB0aGlzLk5hdnZ5ID0gbmV3IE5hdnZ5KHRoaXMuQlhSZXN0VGFza3NUYXNrLCB0aGlzLkJYUmVzdE1hcFRhc2tzVGFzaylcclxuICAgIC8vICB0aGlzLnN0b3JlVGFzayQgPSB0aGlzLnN0b3JlLnNlbGVjdCgndGFza3MnKVxyXG4gICAgLy8gIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAvLyAgICB0b3RhbDogMCxcclxuICAgIC8vICAgIG5leHQ6IDBcclxuICAgIC8vICB9KVxyXG4gIH1cclxuXHJcbiAgYWRkKHBhcmFtOiB7IGZpZWxkczogaUJYUmVzdFBhcmFtVGFza0FkZCB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGVXaXRoQXJnKFxyXG4gICAgICB0aGlzLkJYUmVzdFRhc2tzVGFzay5hZGQsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQtNC+0LHQsNCy0LjRgtGMINC30LDQtNCw0YfRgycsXHJcbiAgICAgIHRoaXMuQlhSZXN0TWFwVGFza3NUYXNrLmFkZFxyXG4gICAgKVxyXG4gICAgLy8gcmV0dXJuIHRoaXMuaHR0cC5wb3N0PHsgdGFzazogVGFza0JYSHR0cCB9Pih0aGlzLnVybC5hZGQsIHtmaWVsZHM6IHBhcmFtfSkucGlwZShcclxuICAgIC8vICAgbWFwKHYgPT4ge1xyXG4gICAgLy8gICAgICAgaWYgKHYgJiYgdi5yZXN1bHQgJiYgdi5yZXN1bHQudGFzaykge1xyXG4gICAgLy8gICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihcclxuICAgIC8vICAgICAgICAgICB2LFxyXG4gICAgLy8gICAgICAgICAgIHtcclxuICAgIC8vICAgICAgICAgICAgIHJlc3VsdDogdGhpcy50YXNrQlhNYXAuVGFza0JYSHR0cFRvVGFza0JYKHYucmVzdWx0LnRhc2spXHJcbiAgICAvLyAgICAgICAgICAgfSlcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICkpXHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIHVwZGF0ZSh0YXNrSWQ6IG51bWJlciwgdXBkYXRlRmllbGRzOiBpQlhSZXN0VGFza0ZpZWxkc05hbWVbXSwgdGFzazogaUJYUmVzdFRhc2spIHtcclxuICAgIGxldCBzZW5kVGFzazogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9XHJcbiAgICBsZXQgdGFza1RTOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gdGFza1xyXG4gICAgaWYgKHVwZGF0ZUZpZWxkcy5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgdXBkYXRlRmllbGQgb2YgdXBkYXRlRmllbGRzKSB7XHJcbiAgICAgICAgaWYgKHRhc2tUU1tjYW1lbENhc2UodXBkYXRlRmllbGQpXSkge1xyXG4gICAgICAgICAgc2VuZFRhc2tbdXBkYXRlRmllbGRdID0gdGFza1RTW2NhbWVsQ2FzZSh1cGRhdGVGaWVsZCldXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChPYmplY3QudmFsdWVzKHNlbmRUYXNrKS5sZW5ndGgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgICAgICB0aGlzLnVybC51cGRhdGUsXHJcbiAgICAgICAgICB7dGFza0lkOiB0YXNrSWQsIGZpZWxkczogc2VuZFRhc2t9LFxyXG4gICAgICAgICAgJ2Vycm9yIHRvIHVwZGF0ZSB0YXNrJylcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNuYWNrQmFyLmVycm9yKCdub3QgdmFsaWQgc2VuZCBkYXRhIHRhc2snKVxyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ25vdCB2YWxpZCBzZW5kIGRhdGEgdGFzaycsIHNlbmRUYXNrLCB0YXNrKVxyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNuYWNrQmFyLndhcm5pbmcoJ25vdCBoYXZlIGZpZWxkIGZvciB1cGRhdGUnKVxyXG4gICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICB9XHJcbiAgKi9cclxuXHJcbiAgZ2V0KHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrR2V0KSB7XHJcbiAgICBpZiAoIXBhcmFtLnNlbGVjdCkge1xyXG4gICAgICBwYXJhbS5zZWxlY3QgPSB0aGlzLmRlZi5zZWxlY3RcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZVdpdGhBcmcoXHJcbiAgICAgIHRoaXMuQlhSZXN0VGFza3NUYXNrLmdldCxcclxuICAgICAgcGFyYW0sXHJcbiAgICAgICfQndC1INGD0LTQsNC70L7RgdGMINC/0L7Qu9GD0YfQuNGC0Ywg0LfQsNC00LDRh9GDJyxcclxuICAgICAgdGhpcy5CWFJlc3RNYXBUYXNrc1Rhc2suZ2V0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuXHJcbiAgbGlzdChwYXJhbTogaUJYUmVzdFBhcmFtVGFza3NMaXN0ID0ge30pIHtcclxuICAgIGlmICghcGFyYW0uc2VsZWN0KSB7XHJcbiAgICAgIHBhcmFtLnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuUGFnTmF2VGFza3MoXHJcbiAgICAgIHRoaXMuQlhSZXN0VGFza3NUYXNrLmxpc3QsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICAn0J3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINGB0L/QuNGB0L7QuiDQt9Cw0LTQsNGHJyxcclxuICAgICAgdGhpcy5CWFJlc3RNYXBUYXNrc1Rhc2subGlzdFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBsaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCA9IHt9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0KHJlcXVlc3RBcnJheSkucGlwZShcclxuICAgICAgbWFwKHYgPT4gdGhpcy5odHRwLm1hcFJlc3VsdCh2KSksXHJcbiAgICAgIG1hcCh2ID0+ICh2ICYmIHYudGFza3MpID8gdi50YXNrcyA6IFtdKVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbGlzdEFsbChyZXF1ZXN0QXJyYXk6IFJlcXVlc3RBcGlUYXNrTGlzdEJYID0ge30sIGNhY2hlID0gZmFsc2UpOiBPYnNlcnZhYmxlPFRhc2tCWFtdPiB7XHJcbiAgICBpZiAoIXJlcXVlc3RBcnJheS5zZWxlY3QpIHtcclxuICAgICAgcmVxdWVzdEFycmF5LnNlbGVjdCA9IHRoaXMuZGVmLnNlbGVjdFxyXG4gICAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdG9yZVRhc2skLnBpcGUoXHJcbiAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgbWVyZ2VNYXAodGFza3MgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGFza3MgJiYgdGFza3MuZGF0YS5odHRwLmxpc3QgJiYgcmVxdWVzdEFycmF5LmZpbHRlciAmJiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgaWRzID0gKHR5cGVvZiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEID09PSAnbnVtYmVyJykgPyBbcmVxdWVzdEFycmF5LmZpbHRlci5JRF0gOiByZXF1ZXN0QXJyYXkuZmlsdGVyLklEXHJcbiAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IHRhc2tzLmRhdGEuaHR0cC5saXN0LmZpbHRlcihpID0+IChpLmlkKSA/IGlkcy5pbmNsdWRlcyhpLmlkKSA6IGZhbHNlKVxyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSBpZHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsdGVyKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5KVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kTGlzdEFycmF5KHJlcXVlc3RBcnJheSlcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpXHJcbiAgfVxyXG5cclxuICBnZXRFbmRMaXN0QXJyYXkocmVxdWVzdEFycmF5OiBSZXF1ZXN0QXBpVGFza0xpc3RCWCk6IE9ic2VydmFibGU8VGFza0JYW10+IHtcclxuICAgIHJldHVybiB0aGlzLmxpc3QocmVxdWVzdEFycmF5KS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoaXRlbXM6IEFuc3dlckFwaVRhc2tCWCB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGVJbnB1dDxhbnk+IHwgT2JzZXJ2YWJsZTxBbnN3ZXJBcGlUYXNrQlhbXT4gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtcyAmJiBpdGVtcy5yZXN1bHQgJiYgdHlwZW9mIGl0ZW1zLnJlc3VsdC50YXNrcyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1zJCA9IG9mKGl0ZW1zLnJlc3VsdC50YXNrcylcclxuICAgICAgICAgIGlmIChpdGVtcy5uZXh0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgICAgdG90YWw6IChpdGVtcy50b3RhbCkgPyBpdGVtcy50b3RhbCA6IDAsXHJcbiAgICAgICAgICAgICAgbmV4dDogaXRlbXMubmV4dFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICByZXF1ZXN0QXJyYXkuc3RhcnQgPSBpdGVtcy5uZXh0XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZExpc3RBcnJheShyZXF1ZXN0QXJyYXkpLnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKHZFbmQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0LnRhc2tzKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbLi4uaXRlbXMucmVzdWx0LnRhc2tzLCAuLi52RW5kXVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChpdGVtcy5yZXN1bHQudGFza3MpID8gaXRlbXMucmVzdWx0LnRhc2tzIDogW11cclxuICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMubm93TG9hZCQubmV4dCh7XHJcbiAgICAgICAgICAgIHRvdGFsOiAwLFxyXG4gICAgICAgICAgICBuZXh0OiAwXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgcmV0dXJuIGl0ZW1zJFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YoW10pXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmVUYXNrJC5waXBlKFxyXG4gICAgICBtZXJnZU1hcCh2ID0+IHtcclxuICAgICAgICBpZiAodiAmJiAhdi5kYXRhLmZpZWxkcykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8eyBmaWVsZHM6IGlHZXRGaWVsZHNEZXNjcmlwdGlvbiB9Pj4odGhpcy51cmwuZ2V0RmllbGRzKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAodiA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUZpZWxkcyh2LnJlc3VsdCkpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0ICYmIHYucmVzdWx0LmZpZWxkcykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHYucmVzdWx0LmZpZWxkc31cclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHYuZGF0YS5maWVsZHMpIHtcclxuICAgICAgICAgIHJldHVybiBvZih7cmVzdWx0OiBjbG9uZTxpR2V0RmllbGRzRGVzY3JpcHRpb24+KHYuZGF0YS5maWVsZHMpfSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBkZWxldGVSZXN1bHRGcm9tQ29tbWVudChjb21tZW50SUQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8YW55Pj4odGhpcy51cmwucmVzdWx0LmRlbGV0ZUZyb21Db21tZW50LCB7Y29tbWVudElkOiBjb21tZW50SUR9KVxyXG4gIH1cclxuXHJcbiAgYWRkUmVzdWx0RnJvbUNvbW1lbnQoY29tbWVudElEOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlUYXNrUmVzdWx0SHR0cD4+KHRoaXMudXJsLnJlc3VsdC5hZGRGcm9tQ29tbWVudCwge2NvbW1lbnRJZDogY29tbWVudElEfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAgICAgICAgICAgdGhpcy50YXNrUmVzdWx0TWFwLmlUYXNrUmVzdWx0SHR0cFRvaVRhc2tSZXN1bHQodi5yZXN1bHQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfSkpXHJcbiAgfVxyXG5cclxuICBnZXRSZXN1bExpc3QodGFza0lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGlUYXNrUmVzdWx0W10gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxpSHR0cEFuc3dlckJYPGlUYXNrUmVzdWx0SHR0cFtdPj4odGhpcy51cmwucmVzdWx0Lmxpc3QsIHt0YXNrSWQ6IHRhc2tJZH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2LnJlc3VsdC5tYXAoaSA9PiB0aGlzLnRhc2tSZXN1bHRNYXAuaVRhc2tSZXN1bHRIdHRwVG9pVGFza1Jlc3VsdChpKSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWRcclxuICAgICAgICB9KSlcclxuICB9XHJcblxyXG4gIGdldFBsYW5uZXJMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8KHN0cmluZyB8IG51bWJlcilbXT4+KHRoaXMudXJsLnBsYW5uZXIuZ2V0bGlzdClcclxuICB9XHJcbiAgICovXHJcblxyXG4gIGdldGFjY2VzcyhwYXJhbTogaUJYUmVzdFBhcmFtVGFza0dldEFjY2Vzcykge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlV2l0aEFyZyhcclxuICAgICAgdGhpcy5CWFJlc3RUYXNrc1Rhc2suZ2V0YWNjZXNzLFxyXG4gICAgICBwYXJhbSxcclxuICAgICAgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L/QvtC70YPRh9C40YLRjCDQv9GA0LDQstCwINC90LAg0YPQutCw0LfQsNC90L3Ri9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5JyxcclxuICAgICAgdGhpcy5CWFJlc3RNYXBUYXNrc1Rhc2suZ2V0YWNjZXNzXHJcbiAgICApXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|