@dsivd/prestations-ng 17.0.0-beta.3 → 17.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -1
- package/UPGRADING_V17.md +30 -21
- package/dsivd-prestations-ng-17.0.0-beta.4.tgz +0 -0
- package/esm2022/foehn-breadcrumb/breadcrumb-event.service.mjs +22 -15
- package/esm2022/foehn-input-time/foehn-input-time.component.mjs +3 -3
- package/esm2022/gesdem-confirmation/gesdem-confirmation.component.mjs +14 -10
- package/esm2022/sdk-appinfo/application-info.mjs +7 -1
- package/esm2022/sdk-appinfo/application-info.service.mjs +21 -3
- package/esm2022/sdk-dictionary/default-dictionary.mjs +5 -3
- package/esm2022/sdk-redirect/iam-expired-interceptor.service.mjs +4 -6
- package/esm2022/sdk-redirect/redirect.component.mjs +26 -15
- package/fesm2022/dsivd-prestations-ng.mjs +279 -237
- package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-breadcrumb/breadcrumb-event.service.d.ts +3 -1
- package/gesdem-confirmation/gesdem-confirmation.component.d.ts +2 -0
- package/package.json +1 -1
- package/sdk-appinfo/application-info.d.ts +3 -2
- package/sdk-redirect/redirect.component.d.ts +4 -2
- package/dsivd-prestations-ng-17.0.0-beta.3.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -14,7 +14,26 @@
|
|
|
14
14
|
|
|
15
15
|
- Added migration guide
|
|
16
16
|
|
|
17
|
-
## [16.5.
|
|
17
|
+
## [16.5.4]
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- [foehn-input-time.component.html](projects/prestations-ng/src/foehn-input-time/foehn-input-time.component.html)
|
|
22
|
+
|
|
23
|
+
- added `allowLeadingZero` to true to allowed leading 0 in hours and minutes
|
|
24
|
+
|
|
25
|
+
- [ApplicationInfo](projects/prestations-ng/src/sdk-appinfo/application-info.ts)
|
|
26
|
+
|
|
27
|
+
- added `baseVdChUrl?: string` to `ApplicationInfo.Configuration.Portail`
|
|
28
|
+
- with default value by environnement
|
|
29
|
+
- use in `BreadcrumbEventService` and `GesdemConfirmationComponent`
|
|
30
|
+
|
|
31
|
+
### Fixed
|
|
32
|
+
|
|
33
|
+
- [redirect.component.ts](projects/prestations-ng/src/sdk-redirect/redirect.component.ts)
|
|
34
|
+
- fixed redirect url when IAM ACV session is expired
|
|
35
|
+
|
|
36
|
+
## [16.5.3]
|
|
18
37
|
|
|
19
38
|
### Added
|
|
20
39
|
|
package/UPGRADING_V17.md
CHANGED
|
@@ -7,11 +7,12 @@ to `^17.2.4`, using `node 20+` to build, `npm 10+` for package manager and `Foeh
|
|
|
7
7
|
|
|
8
8
|
### Migrating to ESLint
|
|
9
9
|
|
|
10
|
-
Follow [our migration guide](ESLINT_MIGRATION_GUIDE.md) to migrate your project from TSLint to ESLint
|
|
10
|
+
Follow [our migration guide](ESLINT_MIGRATION_GUIDE.md) to migrate your project from TSLint to ESLint.
|
|
11
11
|
|
|
12
12
|
### Package manager NPM instead of YARN
|
|
13
13
|
|
|
14
14
|
We now recommend using `npm` instead of `yarn`.
|
|
15
|
+
|
|
15
16
|
**NB: Don't need `run` when running `npm` for https://docs.npmjs.com/cli/v10/commands**
|
|
16
17
|
|
|
17
18
|
- When using `prestations-ng` as a link, you need to run:
|
|
@@ -40,7 +41,7 @@ npm update
|
|
|
40
41
|
|
|
41
42
|
[https://update.angular.io/?l=3&v=15.0-16.0](https://update.angular.io/?l=3&v=15.0-16.0)
|
|
42
43
|
|
|
43
|
-
**NB: Commit before continuing so your repository is clean
|
|
44
|
+
**NB: Commit before continuing so your repository is clean.**
|
|
44
45
|
|
|
45
46
|
```bash
|
|
46
47
|
# Remove your resolutions in package.json before starting
|
|
@@ -57,7 +58,9 @@ ng update @angular/core@16 @angular/cli@16
|
|
|
57
58
|
|
|
58
59
|
##### If you are using our `slave-apps`
|
|
59
60
|
|
|
60
|
-
Be sure to update your `slave-apps` git repository and source your bashrc (or whatever
|
|
61
|
+
Be sure to update your `slave-apps` git repository and source your `.bashrc` (or whatever file you're using).
|
|
62
|
+
|
|
63
|
+
Verify your node version in your terminal by executing:
|
|
61
64
|
|
|
62
65
|
```bash
|
|
63
66
|
node -v
|
|
@@ -71,11 +74,15 @@ node20
|
|
|
71
74
|
|
|
72
75
|
##### If you are NOT using our `slave-apps`
|
|
73
76
|
|
|
74
|
-
Be sure to use a node version 20+
|
|
77
|
+
Be sure to use a node version 20+ in your terminal:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
node -v
|
|
81
|
+
```
|
|
75
82
|
|
|
76
83
|
#### In your project
|
|
77
84
|
|
|
78
|
-
Update your `package.json` to specify node engine
|
|
85
|
+
Update your `package.json` file to specify the node engine:
|
|
79
86
|
|
|
80
87
|
```json
|
|
81
88
|
{
|
|
@@ -87,8 +94,8 @@ Update your `package.json` to specify node engine
|
|
|
87
94
|
|
|
88
95
|
#### Update your jenkins files
|
|
89
96
|
|
|
90
|
-
Add `nodeVersion: 20` to use node 20
|
|
91
|
-
Add `nodeLabel: 'rhel8pee'` to use a RedHat 8 which support node 20
|
|
97
|
+
- Add `nodeVersion: 20` to use node 20
|
|
98
|
+
- Add `nodeLabel: 'rhel8pee'` to use a RedHat 8 which support node 20
|
|
92
99
|
|
|
93
100
|
##### UT folder
|
|
94
101
|
|
|
@@ -119,8 +126,9 @@ def args = [
|
|
|
119
126
|
|
|
120
127
|
### Updating to Angular 17
|
|
121
128
|
|
|
122
|
-
`prestations-ng` **v17+** now supports **Angular v17**.
|
|
123
|
-
|
|
129
|
+
`prestations-ng` **v17+** now supports **Angular v17**.
|
|
130
|
+
|
|
131
|
+
You can follow the Angular update guide at this address [https://update.angular.io/?l=3&v=16.0-17.0](https://update.angular.io/?l=3&v=16.0-17.0).
|
|
124
132
|
|
|
125
133
|
#### When having migrated to ESLint
|
|
126
134
|
|
|
@@ -162,18 +170,20 @@ ng g @dsivd/prestations-ng:foehn2-bootstrap5-migration
|
|
|
162
170
|
|
|
163
171
|
**NB: Be aware that you will have to check every changes made to your repository to be sure everything is fine.**
|
|
164
172
|
|
|
165
|
-
You will need to check manually your
|
|
166
|
-
|
|
173
|
+
You will need to check manually your:
|
|
174
|
+
|
|
175
|
+
- Java `dictionary.properties` for any HTML styling (search for: `class=`)
|
|
176
|
+
- TypeScript (`.ts`) files for any dynamique CSS classes or tests (`.spec.ts`)
|
|
167
177
|
|
|
168
178
|
##### More information here
|
|
169
179
|
|
|
170
|
-
-
|
|
171
|
-
-
|
|
172
|
-
-
|
|
180
|
+
- https://getbootstrap.com/docs/5.0/migration/ for Bootstrap 5 migration.
|
|
181
|
+
- https://github.com/twbs/bootstrap/issues/32753 for the list of class changes in Bootstrap 5.
|
|
182
|
+
- https://github.com/DSI-VD/foehn/blob/master/CHANGELOG.md for Foehn 2 migration.
|
|
173
183
|
|
|
174
184
|
### Update ".eslintrc.json" file if your project was already migrated to ESLint
|
|
175
185
|
|
|
176
|
-
**NB: Replace your current `.eslintrc.json` file by the one found in [ESLINT_MIGRATION.GUIDE](ESLINT_MIGRATION_GUIDE.md#customizing_eslint__inspired_from_otia_and_prestations-ng_s_files_for_rules_)
|
|
186
|
+
**NB: Replace your current `.eslintrc.json` file by the one found in [ESLINT_MIGRATION.GUIDE](ESLINT_MIGRATION_GUIDE.md#customizing_eslint__inspired_from_otia_and_prestations-ng_s_files_for_rules_).**
|
|
177
187
|
|
|
178
188
|
Then run
|
|
179
189
|
|
|
@@ -181,12 +191,11 @@ Then run
|
|
|
181
191
|
ng lint --fix=true
|
|
182
192
|
```
|
|
183
193
|
|
|
184
|
-
and finally fix manually remaining errors
|
|
194
|
+
and finally fix manually remaining errors. When encountering following warning in your `*.spec.ts`:
|
|
185
195
|
|
|
186
|
-
|
|
187
|
-
`warning Deprecated: Use `provideRouter`or`RouterModule`/`RouterModule.forRoot` instead`
|
|
196
|
+
**`warning Deprecated: Use provideRouter or RouterModule/RouterModule.forRoot instead`**
|
|
188
197
|
|
|
189
|
-
|
|
198
|
+
replace `RouterTestingModule` by `RouterModule.forRoot([])`
|
|
190
199
|
|
|
191
200
|
### Cloudflare (`app.module.ts`)
|
|
192
201
|
|
|
@@ -208,8 +217,8 @@ Need to remove `CAPTCHA_URL_TOKEN` override
|
|
|
208
217
|
|
|
209
218
|
When using `intellij`, you can run code inspection on your project to fix manually deprecations. Two ways:
|
|
210
219
|
|
|
211
|
-
- Intellij window menu, go to: `Code > Analyze code > Run inspection by name...` (or **Ctrl+Alt+Maj+i**) and type `Deprecated symbol used
|
|
212
|
-
- Or select your project in your project panel and `right click` on it then `Analyze > Run inspection by name...` (or **Ctrl+Alt+Maj+i**) and type `Deprecated symbol used
|
|
220
|
+
- Intellij window menu, go to: `Code > Analyze code > Run inspection by name...` (or **Ctrl+Alt+Maj+i**) and type `Deprecated symbol used`.
|
|
221
|
+
- Or select your project in your project panel and `right click` on it then `Analyze > Run inspection by name...` (or **Ctrl+Alt+Maj+i**) and type `Deprecated symbol used`.
|
|
213
222
|
|
|
214
223
|
### Last but not least, check if your application is working!!!
|
|
215
224
|
|
|
Binary file
|
|
@@ -4,18 +4,19 @@ import { map } from 'rxjs/operators';
|
|
|
4
4
|
import { Breadcrumb } from './breadcrumb';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../sdk-session-info/session-info.service";
|
|
7
|
+
import * as i2 from "../sdk-appinfo/application-info.service";
|
|
7
8
|
const DEFAULT_VALUES = {
|
|
8
9
|
espaceSecuriseUrl: '/100002/accueil',
|
|
9
10
|
allPrestationsUrl: '/100002/prestations',
|
|
10
|
-
vdChUrl:
|
|
11
|
-
descriptionPageBaseUrl:
|
|
11
|
+
vdChUrl: null,
|
|
12
|
+
descriptionPageBaseUrl: null,
|
|
12
13
|
// It's better to not display the breadcrumb item if the prestation doesn't give its code.
|
|
13
14
|
prestationCode: null
|
|
14
15
|
};
|
|
15
16
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
16
|
-
function getNotConnectedBreadcrumb({ vdChUrl
|
|
17
|
+
function getNotConnectedBreadcrumb({ vdChUrl, descriptionPageBaseUrl, prestationCode = DEFAULT_VALUES.prestationCode }, vdChUrlFromAppInfo) {
|
|
17
18
|
const rootElement = {
|
|
18
|
-
url: vdChUrl,
|
|
19
|
+
url: vdChUrl || vdChUrlFromAppInfo,
|
|
19
20
|
routerLink: null,
|
|
20
21
|
label: 'vd.ch'
|
|
21
22
|
};
|
|
@@ -29,7 +30,9 @@ function getNotConnectedBreadcrumb({ vdChUrl = DEFAULT_VALUES.vdChUrl, descripti
|
|
|
29
30
|
rootElement,
|
|
30
31
|
{
|
|
31
32
|
// e.g. https://www.vd.ch/go.to?prestation=101016
|
|
32
|
-
url:
|
|
33
|
+
url: descriptionPageBaseUrl
|
|
34
|
+
? `${descriptionPageBaseUrl}${prestationCode}`
|
|
35
|
+
: `${vdChUrlFromAppInfo}/go.to?prestation=${prestationCode}`,
|
|
33
36
|
routerLink: null,
|
|
34
37
|
label: 'Description de la prestation'
|
|
35
38
|
}
|
|
@@ -55,22 +58,23 @@ function getConnectedBreadcrumb({ espaceSecuriseUrl = DEFAULT_VALUES.espaceSecur
|
|
|
55
58
|
* @param sessionInfoData data info on session
|
|
56
59
|
* @param configuration as breadcrumb config.
|
|
57
60
|
* @param currentItem as breadcrumb current item
|
|
61
|
+
* @param vdChBaseUrl typo3 base url for current env
|
|
58
62
|
* @returns Breadcrumb
|
|
59
63
|
*/
|
|
60
|
-
function getBreadcrumb(sessionInfoData, configuration, currentItem) {
|
|
64
|
+
function getBreadcrumb(sessionInfoData, configuration, currentItem, vdChBaseUrl) {
|
|
61
65
|
// Whether the user has a context we consider it as connected.
|
|
62
66
|
const isConnectedCyber = !!sessionInfoData && !!sessionInfoData.context;
|
|
63
67
|
const breadcrumb = new Breadcrumb();
|
|
64
68
|
// Depending on whether the user is connected, the content of the items change.
|
|
65
69
|
breadcrumb.breadcrumbItems = isConnectedCyber
|
|
66
70
|
? getConnectedBreadcrumb(configuration, sessionInfoData)
|
|
67
|
-
: getNotConnectedBreadcrumb(configuration);
|
|
71
|
+
: getNotConnectedBreadcrumb(configuration, vdChBaseUrl);
|
|
68
72
|
// Optionally set the current item.
|
|
69
73
|
breadcrumb.current = currentItem;
|
|
70
74
|
return breadcrumb;
|
|
71
75
|
}
|
|
72
76
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
73
|
-
function mapBreadcrumb([override, configuration, currentItem, sessionInfoData]) {
|
|
77
|
+
function mapBreadcrumb([override, configuration, currentItem, sessionInfoData, applicationInfo]) {
|
|
74
78
|
// Take the override if it exists
|
|
75
79
|
if (override) {
|
|
76
80
|
// Although there's an override, we do want to assign the current item
|
|
@@ -83,14 +87,15 @@ function mapBreadcrumb([override, configuration, currentItem, sessionInfoData])
|
|
|
83
87
|
}
|
|
84
88
|
// Otherwise get a breadcrumb based on the configuration
|
|
85
89
|
if (configuration) {
|
|
86
|
-
return getBreadcrumb(sessionInfoData, configuration, currentItem);
|
|
90
|
+
return getBreadcrumb(sessionInfoData, configuration, currentItem, applicationInfo.configuration.portail.baseVdChUrl);
|
|
87
91
|
}
|
|
88
92
|
// Only output a breadcrumb of there's a configuration or an override
|
|
89
93
|
return null;
|
|
90
94
|
}
|
|
91
95
|
export class BreadcrumbEventService {
|
|
92
|
-
constructor(sessionInfo) {
|
|
96
|
+
constructor(sessionInfo, applicationInfoService) {
|
|
93
97
|
this.sessionInfo = sessionInfo;
|
|
98
|
+
this.applicationInfoService = applicationInfoService;
|
|
94
99
|
this._breadcrumbOverride = new BehaviorSubject(null);
|
|
95
100
|
this._breadcrumbConfiguration = new BehaviorSubject(null);
|
|
96
101
|
this._currentBreadcrumbItem = new BehaviorSubject(null);
|
|
@@ -100,7 +105,8 @@ export class BreadcrumbEventService {
|
|
|
100
105
|
this._breadcrumbOverride,
|
|
101
106
|
this._breadcrumbConfiguration,
|
|
102
107
|
this._currentBreadcrumbItem,
|
|
103
|
-
this.sessionInfo.data
|
|
108
|
+
this.sessionInfo.data,
|
|
109
|
+
this.applicationInfoService.data
|
|
104
110
|
]).pipe(
|
|
105
111
|
// Put together the breadcrumb, or just take the override if it exists.
|
|
106
112
|
map(mapBreadcrumb));
|
|
@@ -109,7 +115,8 @@ export class BreadcrumbEventService {
|
|
|
109
115
|
this._breadcrumbOverride,
|
|
110
116
|
this._breadcrumbConfiguration,
|
|
111
117
|
this._currentBreadcrumbItem,
|
|
112
|
-
of(null)
|
|
118
|
+
of(null),
|
|
119
|
+
this.applicationInfoService.data
|
|
113
120
|
]).pipe(
|
|
114
121
|
// Put together the breadcrumb, or just take the override if it exists.
|
|
115
122
|
map(mapBreadcrumb));
|
|
@@ -158,7 +165,7 @@ export class BreadcrumbEventService {
|
|
|
158
165
|
setConfiguration(configuration) {
|
|
159
166
|
this._breadcrumbConfiguration.next(configuration);
|
|
160
167
|
}
|
|
161
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BreadcrumbEventService, deps: [{ token: i1.SessionInfo }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
168
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BreadcrumbEventService, deps: [{ token: i1.SessionInfo }, { token: i2.ApplicationInfoService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
162
169
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BreadcrumbEventService, providedIn: 'root' }); }
|
|
163
170
|
}
|
|
164
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: BreadcrumbEventService, decorators: [{
|
|
@@ -166,5 +173,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
166
173
|
args: [{
|
|
167
174
|
providedIn: 'root'
|
|
168
175
|
}]
|
|
169
|
-
}], ctorParameters: () => [{ type: i1.SessionInfo }] });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlyQyxPQUFPLEVBQ0gsVUFBVSxFQUdiLE1BQU0sY0FBYyxDQUFDOzs7QUFFdEIsTUFBTSxjQUFjLEdBQTRCO0lBQzVDLGlCQUFpQixFQUFFLGlCQUFpQjtJQUNwQyxpQkFBaUIsRUFBRSxxQkFBcUI7SUFDeEMsT0FBTyxFQUFFLG9CQUFvQjtJQUM3QixzQkFBc0IsRUFBRSxxQ0FBcUM7SUFDN0QsMEZBQTBGO0lBQzFGLGNBQWMsRUFBRSxJQUFJO0NBQ3ZCLENBQUM7QUFFRiwrQ0FBK0M7QUFDL0MsU0FBUyx5QkFBeUIsQ0FBQyxFQUMvQixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sRUFDaEMsc0JBQXNCLEdBQUcsY0FBYyxDQUFDLHNCQUFzQixFQUM5RCxjQUFjLEdBQUcsY0FBYyxDQUFDLGNBQWMsRUFDeEI7SUFDdEIsTUFBTSxXQUFXLEdBQW1CO1FBQ2hDLEdBQUcsRUFBRSxPQUFPO1FBQ1osVUFBVSxFQUFFLElBQUk7UUFDaEIsS0FBSyxFQUFFLE9BQU87S0FDakIsQ0FBQztJQUVGLG1GQUFtRjtJQUNuRixzRkFBc0Y7SUFDdEYsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU87UUFDSCxX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QUN2RSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQ3JCLENBQUM7SUFDTixDQUFDO0lBRUQsSUFBSSwwQ0FBMEM7UUFDMUMsT0FBTyxJQUFJLENBQUMsMkNBQTJDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksMENBQTBDLENBQUMsS0FBYztRQUN6RCxJQUFJLENBQUMsMkNBQTJDLEdBQUcsS0FBSyxDQUFDO0lBQzdELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLFVBQXNCO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0NBQWtDO1FBQzlCLE9BQU8sSUFBSSxDQUFDLG1DQUFtQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSCxvQkFBb0IsQ0FBQyxXQUEyQjtRQUM1QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLGFBQXNDO1FBQ25ELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQzs4R0FuRlEsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FGbkIsTUFBTTs7MkZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25JbmZvRGF0YSB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLWRhdGEnO1xuaW1wb3J0IHtcbiAgICBCcmVhZGNydW1iLFxuICAgIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIEJyZWFkY3J1bWJJdGVtXG59IGZyb20gJy4vYnJlYWRjcnVtYic7XG5cbmNvbnN0IERFRkFVTFRfVkFMVUVTOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbiA9IHtcbiAgICBlc3BhY2VTZWN1cmlzZVVybDogJy8xMDAwMDIvYWNjdWVpbCcsXG4gICAgYWxsUHJlc3RhdGlvbnNVcmw6ICcvMTAwMDAyL3ByZXN0YXRpb25zJyxcbiAgICB2ZENoVXJsOiAnaHR0cHM6Ly93d3cudmQuY2gvJyxcbiAgICBkZXNjcmlwdGlvblBhZ2VCYXNlVXJsOiAnaHR0cHM6Ly93d3cudmQuY2gvZ28udG8/cHJlc3RhdGlvbj0nLFxuICAgIC8vIEl0J3MgYmV0dGVyIHRvIG5vdCBkaXNwbGF5IHRoZSBicmVhZGNydW1iIGl0ZW0gaWYgdGhlIHByZXN0YXRpb24gZG9lc24ndCBnaXZlIGl0cyBjb2RlLlxuICAgIHByZXN0YXRpb25Db2RlOiBudWxsXG59O1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZnVuY3Rpb24gZ2V0Tm90Q29ubmVjdGVkQnJlYWRjcnVtYih7XG4gICAgdmRDaFVybCA9IERFRkFVTFRfVkFMVUVTLnZkQ2hVcmwsXG4gICAgZGVzY3JpcHRpb25QYWdlQmFzZVVybCA9IERFRkFVTFRfVkFMVUVTLmRlc2NyaXB0aW9uUGFnZUJhc2VVcmwsXG4gICAgcHJlc3RhdGlvbkNvZGUgPSBERUZBVUxUX1ZBTFVFUy5wcmVzdGF0aW9uQ29kZVxufTogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24pOiBCcmVhZGNydW1iSXRlbVtdIHtcbiAgICBjb25zdCByb290RWxlbWVudDogQnJlYWRjcnVtYkl0ZW0gPSB7XG4gICAgICAgIHVybDogdmRDaFVybCxcbiAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgbGFiZWw6ICd2ZC5jaCdcbiAgICB9O1xuXG4gICAgLy8gRG8gbm90IGRpc3BsYXkgdGhlIHNlY29uZCBlbGVtZW50IGlmIHRoZSBwcmVzdGF0aW9uIGNvZGUgaXMgbm90IHRoZXJlIHNvIHdlIGhhdmVcbiAgICAvLyBhIGNoYW5jZSB0byByZWFsaXplIHRoYXQgc29tZXRoaW5nJ3MgbWlzc2luZyByYXRoZXIgdGhhbiBoYXZpbmcgYSBsaW5rIHRoYXQgZG9lc24ndFxuICAgIC8vIHBvaW50IHRvIHNvbWV0aGluZyBtZWFuaW5nZnVsLlxuICAgIGlmICghcHJlc3RhdGlvbkNvZGUpIHtcbiAgICAgICAgcmV0dXJuIFtyb290RWxlbWVudF07XG4gICAgfVxuXG4gICAgcmV0dXJuIFtcbiAgICAgICAgcm9vdEVsZW1lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICAgIC8vIGUuZy4gaHR0cHM6Ly93d3cudmQuY2gvZ28udG8/cHJlc3RhdGlvbj0xMDEwMTZcbiAgICAgICAgICAgIHVybDogYCR7ZGVzY3JpcHRpb25QYWdlQmFzZVVybH0ke3ByZXN0YXRpb25Db2RlfWAsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgbGFiZWw6ICdEZXNjcmlwdGlvbiBkZSBsYSBwcmVzdGF0aW9uJ1xuICAgICAgICB9XG4gICAgXTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIGdldENvbm5lY3RlZEJyZWFkY3J1bWIoXG4gICAge1xuICAgICAgICBlc3BhY2VTZWN1cmlzZVVybCA9IERFRkFVTFRfVkFMVUVTLmVzcGFjZVNlY3VyaXNlVXJsXG4gICAgfTogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgc2Vzc2lvbkluZm9EYXRhOiBTZXNzaW9uSW5mb0RhdGFcbik6IEJyZWFkY3J1bWJJdGVtW10ge1xuICAgIHJldHVybiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHVybDogZXNwYWNlU2VjdXJpc2VVcmwsXG4gICAgICAgICAgICByb3V0ZXJMaW5rOiBudWxsLFxuICAgICAgICAgICAgbGFiZWw6IHNlc3Npb25JbmZvRGF0YS5lc3BhY2VMYWJlbFxuICAgICAgICB9XG4gICAgXTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGJyZWFkY3J1bWIgZGVwZW5kaW5nIG9uIHRoZSBzdGF0ZSBvZiB0aGUgdXNlci5cbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIENvbm5lY3RlZCB1c2VyIDogXCJNb24gZXNwYWNlXCJcbiAqIEFub255bW91cyB1c2VyIDogXCJ2ZC5jaCA+IERlc2NyaXB0aW9uIGRlIGxhIHByZXN0YXRpb25cIlxuICogQHBhcmFtIHNlc3Npb25JbmZvRGF0YSBkYXRhIGluZm8gb24gc2Vzc2lvblxuICogQHBhcmFtIGNvbmZpZ3VyYXRpb24gYXMgYnJlYWRjcnVtYiBjb25maWcuXG4gKiBAcGFyYW0gY3VycmVudEl0ZW0gYXMgYnJlYWRjcnVtYiBjdXJyZW50IGl0ZW1cbiAqIEByZXR1cm5zIEJyZWFkY3J1bWJcbiAqL1xuZnVuY3Rpb24gZ2V0QnJlYWRjcnVtYihcbiAgICBzZXNzaW9uSW5mb0RhdGE6IFNlc3Npb25JbmZvRGF0YSxcbiAgICBjb25maWd1cmF0aW9uOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICBjdXJyZW50SXRlbTogQnJlYWRjcnVtYkl0ZW1cbik6IEJyZWFkY3J1bWIge1xuICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGEgY29udGV4dCB3ZSBjb25zaWRlciBpdCBhcyBjb25uZWN0ZWQuXG4gICAgY29uc3QgaXNDb25uZWN0ZWRDeWJlciA9ICEhc2Vzc2lvbkluZm9EYXRhICYmICEhc2Vzc2lvbkluZm9EYXRhLmNvbnRleHQ7XG5cbiAgICBjb25zdCBicmVhZGNydW1iID0gbmV3IEJyZWFkY3J1bWIoKTtcblxuICAgIC8vIERlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB1c2VyIGlzIGNvbm5lY3RlZCwgdGhlIGNvbnRlbnQgb2YgdGhlIGl0ZW1zIGNoYW5nZS5cbiAgICBicmVhZGNydW1iLmJyZWFkY3J1bWJJdGVtcyA9IGlzQ29ubmVjdGVkQ3liZXJcbiAgICAgICAgPyBnZXRDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24sIHNlc3Npb25JbmZvRGF0YSlcbiAgICAgICAgOiBnZXROb3RDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24pO1xuXG4gICAgLy8gT3B0aW9uYWxseSBzZXQgdGhlIGN1cnJlbnQgaXRlbS5cbiAgICBicmVhZGNydW1iLmN1cnJlbnQgPSBjdXJyZW50SXRlbTtcblxuICAgIHJldHVybiBicmVhZGNydW1iO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuZnVuY3Rpb24gbWFwQnJlYWRjcnVtYihbXG4gICAgb3ZlcnJpZGUsXG4gICAgY29uZmlndXJhdGlvbixcbiAgICBjdXJyZW50SXRlbSxcbiAgICBzZXNzaW9uSW5mb0RhdGFcbl06IFtcbiAgICBCcmVhZGNydW1iLFxuICAgIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIEJyZWFkY3J1bWJJdGVtLFxuICAgIFNlc3Npb25JbmZvRGF0YVxuXSk6IEJyZWFkY3J1bWIge1xuICAgIC8vIFRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0c1xuICAgIGlmIChvdmVycmlkZSkge1xuICAgICAgICAvLyBBbHRob3VnaCB0aGVyZSdzIGFuIG92ZXJyaWRlLCB3ZSBkbyB3YW50IHRvIGFzc2lnbiB0aGUgY3VycmVudCBpdGVtXG4gICAgICAgIC8vIHNvIGVhY2ggcGFnZSBkYW5zIHNldCBpdHMgb3duIG5hbWUgcmF0aGVyIHRoYW4gbGV0dGluZyB0aGUgb3ZlcnJpZGVcbiAgICAgICAgLy8gaGFuZGxlIHRoaXMuXG4gICAgICAgIGlmIChjdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgb3ZlcnJpZGUuY3VycmVudCA9IGN1cnJlbnRJdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdmVycmlkZTtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UgZ2V0IGEgYnJlYWRjcnVtYiBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvblxuICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHJldHVybiBnZXRCcmVhZGNydW1iKHNlc3Npb25JbmZvRGF0YSwgY29uZmlndXJhdGlvbiwgY3VycmVudEl0ZW0pO1xuICAgIH1cblxuICAgIC8vIE9ubHkgb3V0cHV0IGEgYnJlYWRjcnVtYiBvZiB0aGVyZSdzIGEgY29uZmlndXJhdGlvbiBvciBhbiBvdmVycmlkZVxuICAgIHJldHVybiBudWxsO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJFdmVudFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2JyZWFkY3J1bWJPdmVycmlkZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYj4obnVsbCk7XG4gICAgcHJpdmF0ZSBfYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24gPVxuICAgICAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJDb25maWd1cmF0aW9uPihudWxsKTtcbiAgICBwcml2YXRlIF9jdXJyZW50QnJlYWRjcnVtYkl0ZW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJJdGVtPihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9icmVhZGNydW1iT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+O1xuXG4gICAgcHJpdmF0ZSBfc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlc3Npb25JbmZvOiBTZXNzaW9uSW5mbykge1xuICAgICAgICAvLyBXaGVuIHRoZSB1c2VyIG1pZ2h0IGJlIGNvbm5lY3RlZFxuICAgICAgICB0aGlzLl9icmVhZGNydW1iT2JzZXJ2YWJsZSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYk92ZXJyaWRlLFxuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50QnJlYWRjcnVtYkl0ZW0sXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JbmZvLmRhdGFcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIC8vIFB1dCB0b2dldGhlciB0aGUgYnJlYWRjcnVtYiwgb3IganVzdCB0YWtlIHRoZSBvdmVycmlkZSBpZiBpdCBleGlzdHMuXG4gICAgICAgICAgICBtYXAobWFwQnJlYWRjcnVtYilcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBJZiB0aGUgdXNlciBpcyBORVZFUiBjb25uZWN0ZWQgKGZvciBpbnN0YW5jZSBpbiBjeWJlcmxvZ2luKVxuICAgICAgICB0aGlzLl9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iT3ZlcnJpZGUsXG4gICAgICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRCcmVhZGNydW1iSXRlbSxcbiAgICAgICAgICAgIG9mKG51bGwpXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICAvLyBQdXQgdG9nZXRoZXIgdGhlIGJyZWFkY3J1bWIsIG9yIGp1c3QgdGFrZSB0aGUgb3ZlcnJpZGUgaWYgaXQgZXhpc3RzLlxuICAgICAgICAgICAgbWFwKG1hcEJyZWFkY3J1bWIpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IHNraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZDtcbiAgICB9XG5cbiAgICBzZXQgc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3NraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgYnJlYWRjcnVtYi4gVGhpcyB2YWx1ZSB3aWxsIG92ZXJyaWRlIGFueSBjb25maWd1cmF0aW9uIGluamVjdGVkIHdpdGhcbiAgICAgKiBgc2V0Q29uZmlndXJhdGlvbmAuIE9ubHkgdXNlIGlmIHlvdSB3YW50IHRvIGhhbmRsZSB0aGUgYnJlYWRjcnVtYiBtYW51YWxseS5cbiAgICAgKiBAcGFyYW0gYnJlYWRjcnVtYiBhcyBCcmVhZGNydW1iXG4gICAgICovXG4gICAgc2V0QnJlYWRjcnVtYihicmVhZGNydW1iOiBCcmVhZGNydW1iKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2JyZWFkY3J1bWJPdmVycmlkZS5uZXh0KGJyZWFkY3J1bWIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBicmVhZGNydW1iIHZhbHVlLlxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8QnJlYWRjcnVtYj5cbiAgICAgKi9cbiAgICBicmVhZGNydW1iT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JyZWFkY3J1bWJPYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBicmVhZGNydW1iIHZhbHVlIGlmIG5ldmVyIGNvbm5lY3RlZC5cbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+XG4gICAgICovXG4gICAgbmV2ZXJDb25uZWN0ZWRCcmVhZGNydW1iT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25ldmVyQ29ubmVjdGVkQnJlYWRjcnVtYk9ic2VydmFibGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjdXJyZW50IGl0ZW0uIFVzZWQgZm9yIGFjY2Vzc2liaWxpdHkgcHVycG9zZXMuXG4gICAgICogQHBhcmFtIGN1cnJlbnRJdGVtIGFzIEJyZWFkY3J1bWJJdGVtXG4gICAgICovXG4gICAgc2V0Q3VycmVudEJyZWFkY3J1bWIoY3VycmVudEl0ZW06IEJyZWFkY3J1bWJJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRCcmVhZGNydW1iSXRlbS5uZXh0KGN1cnJlbnRJdGVtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGN1cnJlbnQgYnJlYWRjcnVtYiBjb25maWd1cmF0aW9uLlxuICAgICAqXG4gICAgICogU2V0IHRvIGBudWxsYCB0byBkaXNhYmxlIHRoZSBicmVhZGNydW1iLlxuICAgICAqIEBwYXJhbSBjb25maWd1cmF0aW9uIGFzIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgc2V0Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iQ29uZmlndXJhdGlvbi5uZXh0KGNvbmZpZ3VyYXRpb24pO1xuICAgIH1cbn1cbiJdfQ==
|
|
176
|
+
}], ctorParameters: () => [{ type: i1.SessionInfo }, { type: i2.ApplicationInfoService }] });
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWJyZWFkY3J1bWIvYnJlYWRjcnVtYi1ldmVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU1yQyxPQUFPLEVBQ0gsVUFBVSxFQUdiLE1BQU0sY0FBYyxDQUFDOzs7O0FBRXRCLE1BQU0sY0FBYyxHQUE0QjtJQUM1QyxpQkFBaUIsRUFBRSxpQkFBaUI7SUFDcEMsaUJBQWlCLEVBQUUscUJBQXFCO0lBQ3hDLE9BQU8sRUFBRSxJQUFJO0lBQ2Isc0JBQXNCLEVBQUUsSUFBSTtJQUM1QiwwRkFBMEY7SUFDMUYsY0FBYyxFQUFFLElBQUk7Q0FDdkIsQ0FBQztBQUVGLCtDQUErQztBQUMvQyxTQUFTLHlCQUF5QixDQUM5QixFQUNJLE9BQU8sRUFDUCxzQkFBc0IsRUFDdEIsY0FBYyxHQUFHLGNBQWMsQ0FBQyxjQUFjLEVBQ3hCLEVBQzFCLGtCQUEwQjtJQUUxQixNQUFNLFdBQVcsR0FBbUI7UUFDaEMsR0FBRyxFQUFFLE9BQU8sSUFBSSxrQkFBa0I7UUFDbEMsVUFBVSxFQUFFLElBQUk7UUFDaEIsS0FBSyxFQUFFLE9BQU87S0FDakIsQ0FBQztJQUVGLG1GQUFtRjtJQUNuRixzRkFBc0Y7SUFDdEYsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE9BQU87UUFDSCxXQUFXO1FBQ1g7WUFDSSxpREFBaUQ7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c0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBcHBsaWNhdGlvbkluZm8gfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UgfSBmcm9tICcuLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25JbmZvRGF0YSB9IGZyb20gJy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLWRhdGEnO1xuaW1wb3J0IHtcbiAgICBCcmVhZGNydW1iLFxuICAgIEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIEJyZWFkY3J1bWJJdGVtXG59IGZyb20gJy4vYnJlYWRjcnVtYic7XG5cbmNvbnN0IERFRkFVTFRfVkFMVUVTOiBCcmVhZGNydW1iQ29uZmlndXJhdGlvbiA9IHtcbiAgICBlc3BhY2VTZWN1cmlzZVVybDogJy8xMDAwMDIvYWNjdWVpbCcsXG4gICAgYWxsUHJlc3RhdGlvbnNVcmw6ICcvMTAwMDAyL3ByZXN0YXRpb25zJyxcbiAgICB2ZENoVXJsOiBudWxsLFxuICAgIGRlc2NyaXB0aW9uUGFnZUJhc2VVcmw6IG51bGwsXG4gICAgLy8gSXQncyBiZXR0ZXIgdG8gbm90IGRpc3BsYXkgdGhlIGJyZWFkY3J1bWIgaXRlbSBpZiB0aGUgcHJlc3RhdGlvbiBkb2Vzbid0IGdpdmUgaXRzIGNvZGUuXG4gICAgcHJlc3RhdGlvbkNvZGU6IG51bGxcbn07XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5mdW5jdGlvbiBnZXROb3RDb25uZWN0ZWRCcmVhZGNydW1iKFxuICAgIHtcbiAgICAgICAgdmRDaFVybCxcbiAgICAgICAgZGVzY3JpcHRpb25QYWdlQmFzZVVybCxcbiAgICAgICAgcHJlc3RhdGlvbkNvZGUgPSBERUZBVUxUX1ZBTFVFUy5wcmVzdGF0aW9uQ29kZVxuICAgIH06IEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIHZkQ2hVcmxGcm9tQXBwSW5mbzogc3RyaW5nXG4pOiBCcmVhZGNydW1iSXRlbVtdIHtcbiAgICBjb25zdCByb290RWxlbWVudDogQnJlYWRjcnVtYkl0ZW0gPSB7XG4gICAgICAgIHVybDogdmRDaFVybCB8fCB2ZENoVXJsRnJvbUFwcEluZm8sXG4gICAgICAgIHJvdXRlckxpbms6IG51bGwsXG4gICAgICAgIGxhYmVsOiAndmQuY2gnXG4gICAgfTtcblxuICAgIC8vIERvIG5vdCBkaXNwbGF5IHRoZSBzZWNvbmQgZWxlbWVudCBpZiB0aGUgcHJlc3RhdGlvbiBjb2RlIGlzIG5vdCB0aGVyZSBzbyB3ZSBoYXZlXG4gICAgLy8gYSBjaGFuY2UgdG8gcmVhbGl6ZSB0aGF0IHNvbWV0aGluZydzIG1pc3NpbmcgcmF0aGVyIHRoYW4gaGF2aW5nIGEgbGluayB0aGF0IGRvZXNuJ3RcbiAgICAvLyBwb2ludCB0byBzb21ldGhpbmcgbWVhbmluZ2Z1bC5cbiAgICBpZiAoIXByZXN0YXRpb25Db2RlKSB7XG4gICAgICAgIHJldHVybiBbcm9vdEVsZW1lbnRdO1xuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICAgIHJvb3RFbGVtZW50LFxuICAgICAgICB7XG4gICAgICAgICAgICAvLyBlLmcuIGh0dHBzOi8vd3d3LnZkLmNoL2dvLnRvP3ByZXN0YXRpb249MTAxMDE2XG4gICAgICAgICAgICB1cmw6IGRlc2NyaXB0aW9uUGFnZUJhc2VVcmxcbiAgICAgICAgICAgICAgICA/IGAke2Rlc2NyaXB0aW9uUGFnZUJhc2VVcmx9JHtwcmVzdGF0aW9uQ29kZX1gXG4gICAgICAgICAgICAgICAgOiBgJHt2ZENoVXJsRnJvbUFwcEluZm99L2dvLnRvP3ByZXN0YXRpb249JHtwcmVzdGF0aW9uQ29kZX1gLFxuICAgICAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgICAgIGxhYmVsOiAnRGVzY3JpcHRpb24gZGUgbGEgcHJlc3RhdGlvbidcbiAgICAgICAgfVxuICAgIF07XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5mdW5jdGlvbiBnZXRDb25uZWN0ZWRCcmVhZGNydW1iKFxuICAgIHtcbiAgICAgICAgZXNwYWNlU2VjdXJpc2VVcmwgPSBERUZBVUxUX1ZBTFVFUy5lc3BhY2VTZWN1cmlzZVVybFxuICAgIH06IEJyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgIHNlc3Npb25JbmZvRGF0YTogU2Vzc2lvbkluZm9EYXRhXG4pOiBCcmVhZGNydW1iSXRlbVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgICB1cmw6IGVzcGFjZVNlY3VyaXNlVXJsLFxuICAgICAgICAgICAgcm91dGVyTGluazogbnVsbCxcbiAgICAgICAgICAgIGxhYmVsOiBzZXNzaW9uSW5mb0RhdGEuZXNwYWNlTGFiZWxcbiAgICAgICAgfVxuICAgIF07XG59XG5cbi8qKlxuICogR2V0IHRoZSBicmVhZGNydW1iIGRlcGVuZGluZyBvbiB0aGUgc3RhdGUgb2YgdGhlIHVzZXIuXG4gKlxuICogRXhhbXBsZTpcbiAqXG4gKiBDb25uZWN0ZWQgdXNlciA6IFwiTW9uIGVzcGFjZVwiXG4gKiBBbm9ueW1vdXMgdXNlciA6IFwidmQuY2ggPiBEZXNjcmlwdGlvbiBkZSBsYSBwcmVzdGF0aW9uXCJcbiAqIEBwYXJhbSBzZXNzaW9uSW5mb0RhdGEgZGF0YSBpbmZvIG9uIHNlc3Npb25cbiAqIEBwYXJhbSBjb25maWd1cmF0aW9uIGFzIGJyZWFkY3J1bWIgY29uZmlnLlxuICogQHBhcmFtIGN1cnJlbnRJdGVtIGFzIGJyZWFkY3J1bWIgY3VycmVudCBpdGVtXG4gKiBAcGFyYW0gdmRDaEJhc2VVcmwgdHlwbzMgYmFzZSB1cmwgZm9yIGN1cnJlbnQgZW52XG4gKiBAcmV0dXJucyBCcmVhZGNydW1iXG4gKi9cbmZ1bmN0aW9uIGdldEJyZWFkY3J1bWIoXG4gICAgc2Vzc2lvbkluZm9EYXRhOiBTZXNzaW9uSW5mb0RhdGEsXG4gICAgY29uZmlndXJhdGlvbjogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgY3VycmVudEl0ZW06IEJyZWFkY3J1bWJJdGVtLFxuICAgIHZkQ2hCYXNlVXJsOiBzdHJpbmdcbik6IEJyZWFkY3J1bWIge1xuICAgIC8vIFdoZXRoZXIgdGhlIHVzZXIgaGFzIGEgY29udGV4dCB3ZSBjb25zaWRlciBpdCBhcyBjb25uZWN0ZWQuXG4gICAgY29uc3QgaXNDb25uZWN0ZWRDeWJlciA9ICEhc2Vzc2lvbkluZm9EYXRhICYmICEhc2Vzc2lvbkluZm9EYXRhLmNvbnRleHQ7XG5cbiAgICBjb25zdCBicmVhZGNydW1iID0gbmV3IEJyZWFkY3J1bWIoKTtcblxuICAgIC8vIERlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB1c2VyIGlzIGNvbm5lY3RlZCwgdGhlIGNvbnRlbnQgb2YgdGhlIGl0ZW1zIGNoYW5nZS5cbiAgICBicmVhZGNydW1iLmJyZWFkY3J1bWJJdGVtcyA9IGlzQ29ubmVjdGVkQ3liZXJcbiAgICAgICAgPyBnZXRDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24sIHNlc3Npb25JbmZvRGF0YSlcbiAgICAgICAgOiBnZXROb3RDb25uZWN0ZWRCcmVhZGNydW1iKGNvbmZpZ3VyYXRpb24sIHZkQ2hCYXNlVXJsKTtcblxuICAgIC8vIE9wdGlvbmFsbHkgc2V0IHRoZSBjdXJyZW50IGl0ZW0uXG4gICAgYnJlYWRjcnVtYi5jdXJyZW50ID0gY3VycmVudEl0ZW07XG5cbiAgICByZXR1cm4gYnJlYWRjcnVtYjtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIG1hcEJyZWFkY3J1bWIoW1xuICAgIG92ZXJyaWRlLFxuICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgY3VycmVudEl0ZW0sXG4gICAgc2Vzc2lvbkluZm9EYXRhLFxuICAgIGFwcGxpY2F0aW9uSW5mb1xuXTogW1xuICAgIEJyZWFkY3J1bWIsXG4gICAgQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgQnJlYWRjcnVtYkl0ZW0sXG4gICAgU2Vzc2lvbkluZm9EYXRhLFxuICAgIEFwcGxpY2F0aW9uSW5mb1xuXSk6IEJyZWFkY3J1bWIge1xuICAgIC8vIFRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0c1xuICAgIGlmIChvdmVycmlkZSkge1xuICAgICAgICAvLyBBbHRob3VnaCB0aGVyZSdzIGFuIG92ZXJyaWRlLCB3ZSBkbyB3YW50IHRvIGFzc2lnbiB0aGUgY3VycmVudCBpdGVtXG4gICAgICAgIC8vIHNvIGVhY2ggcGFnZSBkYW5zIHNldCBpdHMgb3duIG5hbWUgcmF0aGVyIHRoYW4gbGV0dGluZyB0aGUgb3ZlcnJpZGVcbiAgICAgICAgLy8gaGFuZGxlIHRoaXMuXG4gICAgICAgIGlmIChjdXJyZW50SXRlbSkge1xuICAgICAgICAgICAgb3ZlcnJpZGUuY3VycmVudCA9IGN1cnJlbnRJdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdmVycmlkZTtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UgZ2V0IGEgYnJlYWRjcnVtYiBiYXNlZCBvbiB0aGUgY29uZmlndXJhdGlvblxuICAgIGlmIChjb25maWd1cmF0aW9uKSB7XG4gICAgICAgIHJldHVybiBnZXRCcmVhZGNydW1iKFxuICAgICAgICAgICAgc2Vzc2lvbkluZm9EYXRhLFxuICAgICAgICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgICAgICAgIGN1cnJlbnRJdGVtLFxuICAgICAgICAgICAgYXBwbGljYXRpb25JbmZvLmNvbmZpZ3VyYXRpb24ucG9ydGFpbC5iYXNlVmRDaFVybFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIE9ubHkgb3V0cHV0IGEgYnJlYWRjcnVtYiBvZiB0aGVyZSdzIGEgY29uZmlndXJhdGlvbiBvciBhbiBvdmVycmlkZVxuICAgIHJldHVybiBudWxsO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJFdmVudFNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2JyZWFkY3J1bWJPdmVycmlkZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QnJlYWRjcnVtYj4obnVsbCk7XG4gICAgcHJpdmF0ZSBfYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24gPVxuICAgICAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJDb25maWd1cmF0aW9uPihudWxsKTtcbiAgICBwcml2YXRlIF9jdXJyZW50QnJlYWRjcnVtYkl0ZW0gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEJyZWFkY3J1bWJJdGVtPihudWxsKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9icmVhZGNydW1iT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+O1xuXG4gICAgcHJpdmF0ZSBfc2tpcExlYXZpbmdBbGVydEJlY2F1c2VEZW1hbmRJc1RyYW5zbWl0dGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uSW5mbzogU2Vzc2lvbkluZm8sXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25JbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZVxuICAgICkge1xuICAgICAgICAvLyBXaGVuIHRoZSB1c2VyIG1pZ2h0IGJlIGNvbm5lY3RlZFxuICAgICAgICB0aGlzLl9icmVhZGNydW1iT2JzZXJ2YWJsZSA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYk92ZXJyaWRlLFxuICAgICAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50QnJlYWRjcnVtYkl0ZW0sXG4gICAgICAgICAgICB0aGlzLnNlc3Npb25JbmZvLmRhdGEsXG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgLy8gUHV0IHRvZ2V0aGVyIHRoZSBicmVhZGNydW1iLCBvciBqdXN0IHRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0cy5cbiAgICAgICAgICAgIG1hcChtYXBCcmVhZGNydW1iKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIElmIHRoZSB1c2VyIGlzIE5FVkVSIGNvbm5lY3RlZCAoZm9yIGluc3RhbmNlIGluIGN5YmVybG9naW4pXG4gICAgICAgIHRoaXMuX25ldmVyQ29ubmVjdGVkQnJlYWRjcnVtYk9ic2VydmFibGUgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJPdmVycmlkZSxcbiAgICAgICAgICAgIHRoaXMuX2JyZWFkY3J1bWJDb25maWd1cmF0aW9uLFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEJyZWFkY3J1bWJJdGVtLFxuICAgICAgICAgICAgb2YobnVsbCksXG4gICAgICAgICAgICB0aGlzLmFwcGxpY2F0aW9uSW5mb1NlcnZpY2UuZGF0YVxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgLy8gUHV0IHRvZ2V0aGVyIHRoZSBicmVhZGNydW1iLCBvciBqdXN0IHRha2UgdGhlIG92ZXJyaWRlIGlmIGl0IGV4aXN0cy5cbiAgICAgICAgICAgIG1hcChtYXBCcmVhZGNydW1iKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBza2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQ7XG4gICAgfVxuXG4gICAgc2V0IHNraXBMZWF2aW5nQWxlcnRCZWNhdXNlRGVtYW5kSXNUcmFuc21pdHRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9za2lwTGVhdmluZ0FsZXJ0QmVjYXVzZURlbWFuZElzVHJhbnNtaXR0ZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGJyZWFkY3J1bWIuIFRoaXMgdmFsdWUgd2lsbCBvdmVycmlkZSBhbnkgY29uZmlndXJhdGlvbiBpbmplY3RlZCB3aXRoXG4gICAgICogYHNldENvbmZpZ3VyYXRpb25gLiBPbmx5IHVzZSBpZiB5b3Ugd2FudCB0byBoYW5kbGUgdGhlIGJyZWFkY3J1bWIgbWFudWFsbHkuXG4gICAgICogQHBhcmFtIGJyZWFkY3J1bWIgYXMgQnJlYWRjcnVtYlxuICAgICAqL1xuICAgIHNldEJyZWFkY3J1bWIoYnJlYWRjcnVtYjogQnJlYWRjcnVtYik6IHZvaWQge1xuICAgICAgICB0aGlzLl9icmVhZGNydW1iT3ZlcnJpZGUubmV4dChicmVhZGNydW1iKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYnJlYWRjcnVtYiB2YWx1ZS5cbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPEJyZWFkY3J1bWI+XG4gICAgICovXG4gICAgYnJlYWRjcnVtYk9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9icmVhZGNydW1iT2JzZXJ2YWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYnJlYWRjcnVtYiB2YWx1ZSBpZiBuZXZlciBjb25uZWN0ZWQuXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxCcmVhZGNydW1iPlxuICAgICAqL1xuICAgIG5ldmVyQ29ubmVjdGVkQnJlYWRjcnVtYk9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxCcmVhZGNydW1iPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uZXZlckNvbm5lY3RlZEJyZWFkY3J1bWJPYnNlcnZhYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgY3VycmVudCBpdGVtLiBVc2VkIGZvciBhY2Nlc3NpYmlsaXR5IHB1cnBvc2VzLlxuICAgICAqIEBwYXJhbSBjdXJyZW50SXRlbSBhcyBCcmVhZGNydW1iSXRlbVxuICAgICAqL1xuICAgIHNldEN1cnJlbnRCcmVhZGNydW1iKGN1cnJlbnRJdGVtOiBCcmVhZGNydW1iSXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50QnJlYWRjcnVtYkl0ZW0ubmV4dChjdXJyZW50SXRlbSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBjdXJyZW50IGJyZWFkY3J1bWIgY29uZmlndXJhdGlvbi5cbiAgICAgKlxuICAgICAqIFNldCB0byBgbnVsbGAgdG8gZGlzYWJsZSB0aGUgYnJlYWRjcnVtYi5cbiAgICAgKiBAcGFyYW0gY29uZmlndXJhdGlvbiBhcyBCcmVhZGNydW1iQ29uZmlndXJhdGlvblxuICAgICAqL1xuICAgIHNldENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbjogQnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYnJlYWRjcnVtYkNvbmZpZ3VyYXRpb24ubmV4dChjb25maWd1cmF0aW9uKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -72,7 +72,7 @@ export class FoehnTimeComponent extends FoehnInputStringComponent {
|
|
|
72
72
|
useExisting: forwardRef(() => FoehnTimeComponent),
|
|
73
73
|
multi: true
|
|
74
74
|
}
|
|
75
|
-
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 'vd-p'\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_hours'\"\n [name]=\"name + '_hours'\"\n [label]=\"'foehn-input-time.hours.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"24\"\n [(model)]=\"hour\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_minutes'\"\n [name]=\"name + '_minutes'\"\n [label]=\"'foehn-input-time.minutes.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"59\"\n [(model)]=\"minute\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n ></foehn-input-number>\n </div>\n <div\n class=\"align-self-center position-relative\"\n *ngIf=\"!isEmpty() && (displayClearButton() | async)\"\n >\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label' | fromDictionary\n \"\n ></foehn-icon-times>\n </button>\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"], dependencies: [{ kind: "component", type: i1.FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i4.FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["hideStandardHelpText", "allowDecimal", "allowNegative", "maxDecimalCount", "allowFreeInput", "allowLeadingZero", "model"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
75
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 'vd-p'\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_hours'\"\n [name]=\"name + '_hours'\"\n [label]=\"'foehn-input-time.hours.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"24\"\n [(model)]=\"hour\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n [allowLeadingZero]=\"true\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_minutes'\"\n [name]=\"name + '_minutes'\"\n [label]=\"'foehn-input-time.minutes.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"59\"\n [(model)]=\"minute\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n <div\n class=\"align-self-center position-relative\"\n *ngIf=\"!isEmpty() && (displayClearButton() | async)\"\n >\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label' | fromDictionary\n \"\n ></foehn-icon-times>\n </button>\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"], dependencies: [{ kind: "component", type: i1.FoehnIconTimesComponent, selector: "foehn-icon-times" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { kind: "component", type: i4.FoehnInputNumberComponent, selector: "foehn-input-number", inputs: ["hideStandardHelpText", "allowDecimal", "allowNegative", "maxDecimalCount", "allowFreeInput", "allowLeadingZero", "model"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.SdkDictionaryPipe, name: "fromDictionary" }] }); }
|
|
76
76
|
}
|
|
77
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FoehnTimeComponent, decorators: [{
|
|
78
78
|
type: Component,
|
|
@@ -82,8 +82,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
82
82
|
useExisting: forwardRef(() => FoehnTimeComponent),
|
|
83
83
|
multi: true
|
|
84
84
|
}
|
|
85
|
-
], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 'vd-p'\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_hours'\"\n [name]=\"name + '_hours'\"\n [label]=\"'foehn-input-time.hours.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"24\"\n [(model)]=\"hour\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_minutes'\"\n [name]=\"name + '_minutes'\"\n [label]=\"'foehn-input-time.minutes.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"59\"\n [(model)]=\"minute\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n ></foehn-input-number>\n </div>\n <div\n class=\"align-self-center position-relative\"\n *ngIf=\"!isEmpty() && (displayClearButton() | async)\"\n >\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label' | fromDictionary\n \"\n ></foehn-icon-times>\n </button>\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"] }]
|
|
85
|
+
], template: "<div\n class=\"form-group\"\n [class.has-danger]=\"hasErrorsToDisplay()\"\n [class.vd-form-group-danger]=\"hasErrorsToDisplay()\"\n [attr.id]=\"buildId('Container')\"\n tabindex=\"-1\"\n>\n <fieldset\n [attr.aria-describedby]=\"getDescribedBy()\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n >\n <legend\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'visually-hidden' : 'vd-p'\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </legend>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildId() + 'Help'\"\n class=\"text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <ng-content></ng-content>\n\n <div class=\"vd-form-flex\">\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_hours'\"\n [name]=\"name + '_hours'\"\n [label]=\"'foehn-input-time.hours.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"24\"\n [(model)]=\"hour\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n [allowLeadingZero]=\"true\"\n #entryComponent\n ></foehn-input-number>\n </div>\n <div\n [ngClass]=\"{\n 'vd-form-flex__item--3-char-width':\n displayClearButton() | async,\n 'vd-form-flex__item--2-char-width': !(\n displayClearButton() | async\n )\n }\"\n class=\"vd-form-flex__item\"\n >\n <foehn-input-number\n [id]=\"buildId() + '_minutes'\"\n [name]=\"name + '_minutes'\"\n [label]=\"'foehn-input-time.minutes.label' | fromDictionary\"\n [maxlength]=\"2\"\n [max]=\"59\"\n [(model)]=\"minute\"\n (focusout)=\"updateTime()\"\n [required]=\"required\"\n [hideNotRequiredExtraLabel]=\"true\"\n (userInput)=\"handleUserInput()\"\n [isErrorInherited]=\"hasErrorsToDisplay()\"\n [disabled]=\"disabled\"\n [hideStandardHelpText]=\"true\"\n [isLabelSrOnly]=\"childrenLabelSrOnly\"\n [allowLeadingZero]=\"true\"\n ></foehn-input-number>\n </div>\n <div\n class=\"align-self-center position-relative\"\n *ngIf=\"!isEmpty() && (displayClearButton() | async)\"\n >\n <button\n [id]=\"buildId() + '_clearButton'\"\n type=\"button\"\n class=\"clear-button btn btn-link d-flex\"\n (click)=\"resetModel()\"\n >\n <foehn-icon-times\n [title]=\"\n 'foehn-input.clear-button.label' | fromDictionary\n \"\n ></foehn-icon-times>\n </button>\n </div>\n </div>\n </fieldset>\n</div>\n", styles: [":host ::ng-deep .clear-button.btn .svg-inline--fa{font-size:1.5rem;color:#000!important}:host ::ng-deep foehn-input-number div.form-group{margin-bottom:0!important}\n"] }]
|
|
86
86
|
}], ctorParameters: () => [], propDecorators: { childrenLabelSrOnly: [{
|
|
87
87
|
type: Input
|
|
88
88
|
}] } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4taW5wdXQtdGltZS9mb2Vobi1pbnB1dC10aW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC10aW1lL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBY3JELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSx5QkFBeUI7SUFRN0Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVBaLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUlwQixlQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUlsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7YUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCw4RUFBOEU7UUFDOUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbkQsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNILE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBRUQsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDbkUsSUFBSSxDQUFDLE1BQU0sQ0FDZCxFQUFFLENBQUM7SUFDUixDQUFDOzhHQXRFUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixtR0FSaEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2dCQUNqRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osaURDakJMLG1zSUErR0E7OzJGRDVGYSxrQkFBa0I7a0JBWjlCLFNBQVM7K0JBQ0ksa0JBQWtCLGFBR2pCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDOzRCQUNqRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjt3REFJRCxtQkFBbUI7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC1zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tICcuLi9zZGstZGF0ZS9kYXRlLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4taW5wdXQtdGltZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50LmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5UaW1lQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuVGltZUNvbXBvbmVudCBleHRlbmRzIEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgY2hpbGRyZW5MYWJlbFNyT25seSA9IGZhbHNlO1xuICAgIGhvdXI6IHN0cmluZztcbiAgICBtaW51dGU6IHN0cmluZztcblxuICAgIHByaXZhdGUgZGF0ZUhlbHBlciA9IG5ldyBEYXRlSGVscGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jbGVhckJ1dHRvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgdXBkYXRlVGltZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0VmFsaWRWYWx1ZSgpO1xuICAgICAgICBpZiAodHlwZW9mIHZhbGlkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVVc2VySW5wdXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldFZhbGlkVmFsdWUoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWxpZFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGltZVBhcnRzID0gISF2YWx1ZSA/IHZhbHVlLnNwbGl0KCc6JykgOiBudWxsO1xuICAgICAgICBpZiAodGltZVBhcnRzICYmIHRpbWVQYXJ0cy5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgdGhpcy5ob3VyID0gdGltZVBhcnRzWzBdO1xuICAgICAgICAgICAgdGhpcy5taW51dGUgPSB0aW1lUGFydHNbMV07XG4gICAgICAgIH0gZWxzZSBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmhvdXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5taW51dGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzcGxheUNsZWFyQnV0dG9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICAvLyBPdmVycmlkZSB0aGUgY2xlYXIgYnV0dG9uIGZvbmN0aW9uIG5vdCB3b3JyeSBhYm91dCB0aGUgbW9kZWwgYXQgdGhpcyBzdGFnZS5cbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IHRoaXMuY2xlYXJCdXR0b24gJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgICAgIHJldHVybiBvZih2aXNpYmxlKTtcbiAgICB9XG5cbiAgICByZXNldE1vZGVsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdXIgPSBudWxsO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMubW9kZWxfID0gbnVsbDtcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlVXNlcklucHV0KCk7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgIH1cblxuICAgIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBzdXBlci5pc0VtcHR5KHRoaXMuaG91cikgJiYgc3VwZXIuaXNFbXB0eSh0aGlzLm1pbnV0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZFZhbHVlKCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsXyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7dGhpcy5kYXRlSGVscGVyLmxlZnRQYWQodGhpcy5ob3VyKX06JHt0aGlzLmRhdGVIZWxwZXIubGVmdFBhZChcbiAgICAgICAgICAgIHRoaXMubWludXRlXG4gICAgICAgICl9YDtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGZpZWxkc2V0XG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICA+XG4gICAgICAgIDxsZWdlbmRcbiAgICAgICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3Zpc3VhbGx5LWhpZGRlbicgOiAndmQtcCdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sZWdlbmQ+XG5cbiAgICAgICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzIFtjb21wb25lbnRdPVwidGhpc1wiPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICAqbmdJZj1cImhlbHBUZXh0XCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgICAgICA+PC9zbWFsbD5cblxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZkLWZvcm0tZmxleFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ3ZkLWZvcm0tZmxleF9faXRlbS0tMy1jaGFyLXdpZHRoJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICd2ZC1mb3JtLWZsZXhfX2l0ZW0tLTItY2hhci13aWR0aCc6ICEoXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZkLWZvcm0tZmxleF9faXRlbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWlucHV0LW51bWJlclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgpICsgJ19ob3VycydcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJ19ob3VycydcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2ZvZWhuLWlucHV0LXRpbWUuaG91cnMubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiaG91clwiXG4gICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJ1cGRhdGVUaW1lKClcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKHVzZXJJbnB1dCk9XCJoYW5kbGVVc2VySW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0Vycm9ySW5oZXJpdGVkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVTdGFuZGFyZEhlbHBUZXh0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbaXNMYWJlbFNyT25seV09XCJjaGlsZHJlbkxhYmVsU3JPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgI2VudHJ5Q29tcG9uZW50XG4gICAgICAgICAgICAgICAgPjwvZm9laG4taW5wdXQtbnVtYmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAndmQtZm9ybS1mbGV4X19pdGVtLS0zLWNoYXItd2lkdGgnOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheUNsZWFyQnV0dG9uKCkgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgJ3ZkLWZvcm0tZmxleF9faXRlbS0tMi1jaGFyLXdpZHRoJzogIShcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmQtZm9ybS1mbGV4X19pdGVtXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Zm9laG4taW5wdXQtbnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCkgKyAnX21pbnV0ZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZSArICdfbWludXRlcydcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2ZvZWhuLWlucHV0LXRpbWUubWludXRlcy5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiNTlcIlxuICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtaW51dGVcIlxuICAgICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwidXBkYXRlVGltZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICh1c2VySW5wdXQpPVwiaGFuZGxlVXNlcklucHV0KClcIlxuICAgICAgICAgICAgICAgICAgICBbaXNFcnJvckluaGVyaXRlZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRlU3RhbmRhcmRIZWxwVGV4dF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzTGFiZWxTck9ubHldPVwiY2hpbGRyZW5MYWJlbFNyT25seVwiXG4gICAgICAgICAgICAgICAgPjwvZm9laG4taW5wdXQtbnVtYmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhbGlnbi1zZWxmLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhaXNFbXB0eSgpICYmIChkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgpICsgJ19jbGVhckJ1dHRvbidcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjbGVhci1idXR0b24gYnRuIGJ0bi1saW5rIGQtZmxleFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXNldE1vZGVsKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tdGltZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9laG4taW5wdXQuY2xlYXItYnV0dG9uLmxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mb2Vobi1pY29uLXRpbWVzPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG48L2Rpdj5cbiJdfQ==
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQtdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4taW5wdXQtdGltZS9mb2Vobi1pbnB1dC10aW1lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1pbnB1dC10aW1lL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7O0FBY3JELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSx5QkFBeUI7SUFRN0Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVBaLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUlwQixlQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUlsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLE9BQU8sVUFBVSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCxlQUFlO1FBQ1gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksT0FBTyxVQUFVLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7YUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDZCw4RUFBOEU7UUFDOUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbkQsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsT0FBTztRQUNILE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO1FBRUQsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDbkUsSUFBSSxDQUFDLE1BQU0sQ0FDZCxFQUFFLENBQUM7SUFDUixDQUFDOzhHQXRFUSxrQkFBa0I7a0dBQWxCLGtCQUFrQixtR0FSaEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDO2dCQUNqRCxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osaURDakJMLHF5SUFpSEE7OzJGRDlGYSxrQkFBa0I7a0JBWjlCLFNBQVM7K0JBQ0ksa0JBQWtCLGFBR2pCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDOzRCQUNqRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjt3REFJRCxtQkFBbUI7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQgfSBmcm9tICcuLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC1zdHJpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVIZWxwZXIgfSBmcm9tICcuLi9zZGstZGF0ZS9kYXRlLmhlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4taW5wdXQtdGltZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLWlucHV0LXRpbWUuY29tcG9uZW50LmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGb2VobklucHV0Q29tcG9uZW50LFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRm9laG5UaW1lQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuVGltZUNvbXBvbmVudCBleHRlbmRzIEZvZWhuSW5wdXRTdHJpbmdDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgY2hpbGRyZW5MYWJlbFNyT25seSA9IGZhbHNlO1xuICAgIGhvdXI6IHN0cmluZztcbiAgICBtaW51dGU6IHN0cmluZztcblxuICAgIHByaXZhdGUgZGF0ZUhlbHBlciA9IG5ldyBEYXRlSGVscGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jbGVhckJ1dHRvbiA9IHRydWU7XG4gICAgfVxuXG4gICAgdXBkYXRlVGltZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsaWRWYWx1ZSA9IHRoaXMuZ2V0VmFsaWRWYWx1ZSgpO1xuICAgICAgICBpZiAodHlwZW9mIHZhbGlkVmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoYW5kbGVVc2VySW5wdXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldFZhbGlkVmFsdWUoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWxpZFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UodmFsaWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGltZVBhcnRzID0gISF2YWx1ZSA/IHZhbHVlLnNwbGl0KCc6JykgOiBudWxsO1xuICAgICAgICBpZiAodGltZVBhcnRzICYmIHRpbWVQYXJ0cy5sZW5ndGggPj0gMikge1xuICAgICAgICAgICAgdGhpcy5ob3VyID0gdGltZVBhcnRzWzBdO1xuICAgICAgICAgICAgdGhpcy5taW51dGUgPSB0aW1lUGFydHNbMV07XG4gICAgICAgIH0gZWxzZSBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmhvdXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5taW51dGUgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGlzcGxheUNsZWFyQnV0dG9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICAvLyBPdmVycmlkZSB0aGUgY2xlYXIgYnV0dG9uIGZvbmN0aW9uIG5vdCB3b3JyeSBhYm91dCB0aGUgbW9kZWwgYXQgdGhpcyBzdGFnZS5cbiAgICAgICAgY29uc3QgdmlzaWJsZSA9IHRoaXMuY2xlYXJCdXR0b24gJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgICAgIHJldHVybiBvZih2aXNpYmxlKTtcbiAgICB9XG5cbiAgICByZXNldE1vZGVsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhvdXIgPSBudWxsO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMubW9kZWxfID0gbnVsbDtcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlVXNlcklucHV0KCk7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgIH1cblxuICAgIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBzdXBlci5pc0VtcHR5KHRoaXMuaG91cikgJiYgc3VwZXIuaXNFbXB0eSh0aGlzLm1pbnV0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZFZhbHVlKCk6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy5pc0VtcHR5KCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsXyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7dGhpcy5kYXRlSGVscGVyLmxlZnRQYWQodGhpcy5ob3VyKX06JHt0aGlzLmRhdGVIZWxwZXIubGVmdFBhZChcbiAgICAgICAgICAgIHRoaXMubWludXRlXG4gICAgICAgICl9YDtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICBbYXR0ci5pZF09XCJidWlsZElkKCdDb250YWluZXInKVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGZpZWxkc2V0XG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZ2V0RGVzY3JpYmVkQnkoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJoYXNFcnJvcnNUb0Rpc3BsYXkoKSB8fCBudWxsXCJcbiAgICA+XG4gICAgICAgIDxsZWdlbmRcbiAgICAgICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3Zpc3VhbGx5LWhpZGRlbicgOiAndmQtcCdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9sZWdlbmQ+XG5cbiAgICAgICAgPGZvZWhuLXZhbGlkYXRpb24tYWxlcnRzIFtjb21wb25lbnRdPVwidGhpc1wiPjwvZm9laG4tdmFsaWRhdGlvbi1hbGVydHM+XG5cbiAgICAgICAgPHNtYWxsXG4gICAgICAgICAgICAqbmdJZj1cImhlbHBUZXh0XCJcbiAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgICAgICA+PC9zbWFsbD5cblxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZkLWZvcm0tZmxleFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ3ZkLWZvcm0tZmxleF9faXRlbS0tMy1jaGFyLXdpZHRoJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICd2ZC1mb3JtLWZsZXhfX2l0ZW0tLTItY2hhci13aWR0aCc6ICEoXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZkLWZvcm0tZmxleF9faXRlbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWlucHV0LW51bWJlclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgpICsgJ19ob3VycydcIlxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lICsgJ19ob3VycydcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2ZvZWhuLWlucHV0LXRpbWUuaG91cnMubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjI0XCJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiaG91clwiXG4gICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJ1cGRhdGVUaW1lKClcIlxuICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgKHVzZXJJbnB1dCk9XCJoYW5kbGVVc2VySW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0Vycm9ySW5oZXJpdGVkXT1cImhhc0Vycm9yc1RvRGlzcGxheSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGVTdGFuZGFyZEhlbHBUZXh0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbaXNMYWJlbFNyT25seV09XCJjaGlsZHJlbkxhYmVsU3JPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgW2FsbG93TGVhZGluZ1plcm9dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICNlbnRyeUNvbXBvbmVudFxuICAgICAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LW51bWJlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ3ZkLWZvcm0tZmxleF9faXRlbS0tMy1jaGFyLXdpZHRoJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICd2ZC1mb3JtLWZsZXhfX2l0ZW0tLTItY2hhci13aWR0aCc6ICEoXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5Q2xlYXJCdXR0b24oKSB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZkLWZvcm0tZmxleF9faXRlbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZvZWhuLWlucHV0LW51bWJlclxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRJZCgpICsgJ19taW51dGVzJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWUgKyAnX21pbnV0ZXMnXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidmb2Vobi1pbnB1dC10aW1lLm1pbnV0ZXMubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjU5XCJcbiAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibWludXRlXCJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cInVwZGF0ZVRpbWUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAodXNlcklucHV0KT1cImhhbmRsZVVzZXJJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzRXJyb3JJbmhlcml0ZWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KClcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbaGlkZVN0YW5kYXJkSGVscFRleHRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpc0xhYmVsU3JPbmx5XT1cImNoaWxkcmVuTGFiZWxTck9ubHlcIlxuICAgICAgICAgICAgICAgICAgICBbYWxsb3dMZWFkaW5nWmVyb109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9mb2Vobi1pbnB1dC1udW1iZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFsaWduLXNlbGYtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFpc0VtcHR5KCkgJiYgKGRpc3BsYXlDbGVhckJ1dHRvbigpIHwgYXN5bmMpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZElkKCkgKyAnX2NsZWFyQnV0dG9uJ1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNsZWFyLWJ1dHRvbiBidG4gYnRuLWxpbmsgZC1mbGV4XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0TW9kZWwoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb2Vobi1pbnB1dC5jbGVhci1idXR0b24ubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZvZWhuLWljb24tdGltZXM+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9maWVsZHNldD5cbjwvZGl2PlxuIl19
|