valtech-components 4.0.944 → 4.0.945
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/esm2022/lib/components/atoms/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/components/atoms/box/box.component.mjs +3 -3
- package/esm2022/lib/components/atoms/button/button.component.mjs +15 -5
- package/esm2022/lib/components/atoms/container/container.component.mjs +2 -2
- package/esm2022/lib/components/atoms/display/display.component.mjs +3 -3
- package/esm2022/lib/components/atoms/divider/divider.component.mjs +3 -3
- package/esm2022/lib/components/atoms/href/href.component.mjs +3 -3
- package/esm2022/lib/components/atoms/icon/icon.component.mjs +3 -3
- package/esm2022/lib/components/atoms/image/image.component.mjs +3 -3
- package/esm2022/lib/components/atoms/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +3 -3
- package/esm2022/lib/components/atoms/text/text.component.mjs +3 -3
- package/esm2022/lib/components/atoms/title/title.component.mjs +3 -3
- package/esm2022/lib/components/molecules/alert-box/alert-box.component.mjs +3 -3
- package/esm2022/lib/components/molecules/button-group/button-group.component.mjs +3 -3
- package/esm2022/lib/components/molecules/card/card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/chip-group/chip-group.component.mjs +3 -3
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +3 -3
- package/esm2022/lib/components/molecules/command-display/command-display.component.mjs +3 -3
- package/esm2022/lib/components/molecules/comment/comment.component.mjs +3 -3
- package/esm2022/lib/components/molecules/content-loader/content-loader.component.mjs +3 -3
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/glow-card/glow-card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/hint/hint.component.mjs +3 -3
- package/esm2022/lib/components/molecules/layered-card/layered-card.component.mjs +3 -3
- package/esm2022/lib/components/molecules/link/link.component.mjs +3 -3
- package/esm2022/lib/components/molecules/links-cake/links-cake.component.mjs +3 -3
- package/esm2022/lib/components/molecules/notes-box/notes-box.component.mjs +3 -3
- package/esm2022/lib/components/molecules/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/pill/pill.component.mjs +3 -3
- package/esm2022/lib/components/molecules/pin-input/pin-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +3 -3
- package/esm2022/lib/components/molecules/progress-status/progress-status.component.mjs +3 -3
- package/esm2022/lib/components/molecules/prompter/prompter.component.mjs +3 -3
- package/esm2022/lib/components/molecules/rating/rating.component.mjs +3 -3
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +3 -3
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/stepper/stepper.component.mjs +3 -3
- package/esm2022/lib/components/molecules/text-input/text-input.component.mjs +3 -3
- package/esm2022/lib/components/molecules/title-block/title-block.component.mjs +3 -3
- package/esm2022/lib/components/organisms/about-view/about-view.component.mjs +209 -195
- package/esm2022/lib/components/organisms/account-view/account-view.component.mjs +315 -309
- package/esm2022/lib/components/organisms/api-keys-view/api-keys-view.component.mjs +105 -99
- package/esm2022/lib/components/organisms/article/article.component.mjs +3 -3
- package/esm2022/lib/components/organisms/banner/banner.component.mjs +3 -3
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +3 -3
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +3 -3
- package/esm2022/lib/components/organisms/form/form.component.mjs +3 -3
- package/esm2022/lib/components/organisms/header/header.component.mjs +3 -3
- package/esm2022/lib/components/organisms/item-list/item-list.component.mjs +3 -3
- package/esm2022/lib/components/organisms/no-content/no-content.component.mjs +3 -3
- package/esm2022/lib/components/organisms/notification-preferences-view/notification-preferences-view.component.mjs +217 -204
- package/esm2022/lib/components/organisms/notifications-view/notifications-view.component.mjs +277 -271
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +497 -483
- package/esm2022/lib/components/organisms/permissions-view/permissions-view.component.mjs +269 -263
- package/esm2022/lib/components/organisms/preferences-view/preferences-view.component.mjs +135 -130
- package/esm2022/lib/components/organisms/profile-view/profile-content.component.mjs +111 -105
- package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +241 -235
- package/esm2022/lib/components/organisms/settings-hub/settings-hub.component.mjs +53 -48
- package/esm2022/lib/components/organisms/toolbar/toolbar.component.mjs +3 -3
- package/esm2022/lib/components/organisms/wizard/wizard.component.mjs +3 -3
- package/esm2022/lib/components/templates/simple/simple.component.mjs +3 -3
- package/esm2022/lib/components/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +2524 -2438
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/button/button.component.d.ts +6 -0
- package/lib/components/organisms/article/article.component.d.ts +1 -1
- package/lib/components/types.d.ts +12 -2
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/components/styles/variables.scss +5 -0
|
@@ -5,6 +5,7 @@ import { addIcons } from 'ionicons';
|
|
|
5
5
|
import { chatbubbleEllipsesOutline, copyOutline, helpCircleOutline, logoFacebook, logoInstagram, logoLinkedin, logoTiktok, logoTwitter, logoYoutube, shareSocialOutline, starOutline, } from 'ionicons/icons';
|
|
6
6
|
import { PillComponent } from '../../molecules/pill/pill.component';
|
|
7
7
|
import { ActionCardComponent } from '../../molecules/action-card/action-card.component';
|
|
8
|
+
import { ContainerComponent } from '../../atoms/container/container.component';
|
|
8
9
|
import { TextComponent } from '../../atoms/text/text.component';
|
|
9
10
|
import { TitleComponent } from '../../atoms/title/title.component';
|
|
10
11
|
import { ContentReactionModalComponent } from '../../molecules/content-reaction/content-reaction-modal.component';
|
|
@@ -246,229 +247,242 @@ export class AboutViewComponent {
|
|
|
246
247
|
}
|
|
247
248
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AboutViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
248
249
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AboutViewComponent, isStandalone: true, selector: "val-about-view", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
249
|
-
<
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
<!-- DESCRIPTION -->
|
|
300
|
-
<section class="about-section">
|
|
301
|
-
<val-title [props]="sectionTitle('descTitle')" />
|
|
302
|
-
<val-text
|
|
303
|
-
[props]="{
|
|
304
|
-
content: tt('descBody'),
|
|
305
|
-
size: 'medium',
|
|
306
|
-
color: 'dark',
|
|
307
|
-
bold: false,
|
|
308
|
-
}"
|
|
309
|
-
/>
|
|
310
|
-
</section>
|
|
311
|
-
|
|
312
|
-
<!-- ACTIONS — rating built-in + acciones del consumer. -->
|
|
313
|
-
@if (showRating() || actions().length > 0) {
|
|
314
|
-
<section class="about-section about-section--reviews">
|
|
315
|
-
<val-title [props]="sectionTitle('actionsTitle')" />
|
|
316
|
-
<div class="about-actions">
|
|
317
|
-
@if (showRating()) {
|
|
318
|
-
<val-action-card [props]="rateActionCard()" (onClick)="openRating()" />
|
|
319
|
-
}
|
|
320
|
-
@for (action of actions(); track action.label) {
|
|
321
|
-
<val-action-card [props]="extraActionCard(action)" (onClick)="action.onClick()" />
|
|
322
|
-
}
|
|
323
|
-
</div>
|
|
324
|
-
</section>
|
|
325
|
-
}
|
|
250
|
+
<val-container [props]="{ size: 'md', padding: 'none' }">
|
|
251
|
+
<ion-grid class="about-grid">
|
|
252
|
+
<!-- HERO: logo + name + version -->
|
|
253
|
+
<div class="about-hero">
|
|
254
|
+
@if (logoVar()) {
|
|
255
|
+
<div
|
|
256
|
+
class="about-hero__logo about-hero__logo--var"
|
|
257
|
+
role="img"
|
|
258
|
+
[attr.aria-label]="brandName()"
|
|
259
|
+
[style.background-image]="'var(' + logoVar() + ', url(' + logoSrc() + '))'"
|
|
260
|
+
(click)="handleLogoTap()"
|
|
261
|
+
></div>
|
|
262
|
+
} @else {
|
|
263
|
+
<img class="about-hero__logo" [src]="logoSrc()" [alt]="brandName()" (click)="handleLogoTap()" />
|
|
264
|
+
}
|
|
265
|
+
<val-title
|
|
266
|
+
[props]="{
|
|
267
|
+
content: brandName(),
|
|
268
|
+
size: 'xlarge',
|
|
269
|
+
color: 'dark',
|
|
270
|
+
bold: true,
|
|
271
|
+
}"
|
|
272
|
+
/>
|
|
273
|
+
<val-text
|
|
274
|
+
[props]="{
|
|
275
|
+
content: tt('tagline'),
|
|
276
|
+
size: 'medium',
|
|
277
|
+
color: 'dark',
|
|
278
|
+
bold: false,
|
|
279
|
+
}"
|
|
280
|
+
/>
|
|
281
|
+
@if (version()) {
|
|
282
|
+
<div
|
|
283
|
+
class="version-row"
|
|
284
|
+
(click)="copyVersion()"
|
|
285
|
+
role="button"
|
|
286
|
+
[attr.aria-label]="tt('versionLabel') + ' ' + version()"
|
|
287
|
+
>
|
|
288
|
+
<val-pill
|
|
289
|
+
[props]="{
|
|
290
|
+
label: tt('versionLabel') + ' ' + version(),
|
|
291
|
+
color: 'dark',
|
|
292
|
+
weight: 'bold',
|
|
293
|
+
size: 'small',
|
|
294
|
+
}"
|
|
295
|
+
/>
|
|
296
|
+
<ion-icon name="copy-outline" class="version-copy-icon" />
|
|
297
|
+
</div>
|
|
298
|
+
}
|
|
299
|
+
</div>
|
|
326
300
|
|
|
327
|
-
|
|
328
|
-
@if (socialLinks().length > 0) {
|
|
301
|
+
<!-- DESCRIPTION -->
|
|
329
302
|
<section class="about-section">
|
|
330
|
-
<val-title [props]="sectionTitle('
|
|
303
|
+
<val-title [props]="sectionTitle('descTitle')" />
|
|
331
304
|
<val-text
|
|
332
305
|
[props]="{
|
|
333
|
-
content: tt('
|
|
306
|
+
content: tt('descBody'),
|
|
334
307
|
size: 'medium',
|
|
335
308
|
color: 'dark',
|
|
336
309
|
bold: false,
|
|
337
310
|
}"
|
|
338
311
|
/>
|
|
339
|
-
<div class="about-social">
|
|
340
|
-
@for (s of socialLinks(); track s.url) {
|
|
341
|
-
<ion-button
|
|
342
|
-
fill="clear"
|
|
343
|
-
size="small"
|
|
344
|
-
class="social-btn"
|
|
345
|
-
[attr.aria-label]="s.label"
|
|
346
|
-
(click)="openUrl(s.url)"
|
|
347
|
-
>
|
|
348
|
-
<ion-icon [name]="s.icon" slot="icon-only" />
|
|
349
|
-
</ion-button>
|
|
350
|
-
}
|
|
351
|
-
</div>
|
|
352
312
|
</section>
|
|
353
|
-
}
|
|
354
313
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
class="about-hero__logo about-hero__logo--var"
|
|
369
|
-
role="img"
|
|
370
|
-
[attr.aria-label]="brandName()"
|
|
371
|
-
[style.background-image]="'var(' + logoVar() + ', url(' + logoSrc() + '))'"
|
|
372
|
-
(click)="handleLogoTap()"
|
|
373
|
-
></div>
|
|
374
|
-
} @else {
|
|
375
|
-
<img class="about-hero__logo" [src]="logoSrc()" [alt]="brandName()" (click)="handleLogoTap()" />
|
|
314
|
+
<!-- ACTIONS — rating built-in + acciones del consumer. -->
|
|
315
|
+
@if (showRating() || actions().length > 0) {
|
|
316
|
+
<section class="about-section about-section--reviews">
|
|
317
|
+
<val-title [props]="sectionTitle('actionsTitle')" />
|
|
318
|
+
<div class="about-actions">
|
|
319
|
+
@if (showRating()) {
|
|
320
|
+
<val-action-card [props]="rateActionCard()" (onClick)="openRating()" />
|
|
321
|
+
}
|
|
322
|
+
@for (action of actions(); track action.label) {
|
|
323
|
+
<val-action-card [props]="extraActionCard(action)" (onClick)="action.onClick()" />
|
|
324
|
+
}
|
|
325
|
+
</div>
|
|
326
|
+
</section>
|
|
376
327
|
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
}"
|
|
384
|
-
/>
|
|
385
|
-
<val-text
|
|
386
|
-
[props]="{
|
|
387
|
-
content: tt('tagline'),
|
|
388
|
-
size: 'medium',
|
|
389
|
-
color: 'dark',
|
|
390
|
-
bold: false,
|
|
391
|
-
}"
|
|
392
|
-
/>
|
|
393
|
-
@if (version()) {
|
|
394
|
-
<div
|
|
395
|
-
class="version-row"
|
|
396
|
-
(click)="copyVersion()"
|
|
397
|
-
role="button"
|
|
398
|
-
[attr.aria-label]="tt('versionLabel') + ' ' + version()"
|
|
399
|
-
>
|
|
400
|
-
<val-pill
|
|
328
|
+
|
|
329
|
+
<!-- SOCIAL — penúltimo, justo antes del footer de derechos. -->
|
|
330
|
+
@if (socialLinks().length > 0) {
|
|
331
|
+
<section class="about-section">
|
|
332
|
+
<val-title [props]="sectionTitle('socialTitle')" />
|
|
333
|
+
<val-text
|
|
401
334
|
[props]="{
|
|
402
|
-
|
|
335
|
+
content: tt('socialDesc'),
|
|
336
|
+
size: 'medium',
|
|
403
337
|
color: 'dark',
|
|
404
|
-
|
|
405
|
-
size: 'small',
|
|
338
|
+
bold: false,
|
|
406
339
|
}"
|
|
407
340
|
/>
|
|
408
|
-
<
|
|
409
|
-
|
|
341
|
+
<div class="about-social">
|
|
342
|
+
@for (s of socialLinks(); track s.url) {
|
|
343
|
+
<ion-button
|
|
344
|
+
fill="clear"
|
|
345
|
+
size="small"
|
|
346
|
+
class="social-btn"
|
|
347
|
+
[attr.aria-label]="s.label"
|
|
348
|
+
(click)="openUrl(s.url)"
|
|
349
|
+
>
|
|
350
|
+
<ion-icon [name]="s.icon" slot="icon-only" />
|
|
351
|
+
</ion-button>
|
|
352
|
+
}
|
|
353
|
+
</div>
|
|
354
|
+
</section>
|
|
410
355
|
}
|
|
411
|
-
</div>
|
|
412
356
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
357
|
+
<!-- La línea legal la pone val-page-content, no este organism: si la
|
|
358
|
+
pintara acá, la vista Acerca de mostraría dos (le pasó). -->
|
|
359
|
+
</ion-grid>
|
|
360
|
+
</val-container>
|
|
361
|
+
`, isInline: true, styles: [":host{display:block}.about-grid{padding:16px 0}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-medium)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"], dependencies: [{ kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: PillComponent, selector: "val-pill", inputs: ["preset", "props"], outputs: ["pillClick", "pillAction"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: ContainerComponent, selector: "val-container", inputs: ["props"] }] }); }
|
|
362
|
+
}
|
|
363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AboutViewComponent, decorators: [{
|
|
364
|
+
type: Component,
|
|
365
|
+
args: [{ selector: 'val-about-view', standalone: true, imports: [
|
|
366
|
+
IonButton,
|
|
367
|
+
IonGrid,
|
|
368
|
+
IonIcon,
|
|
369
|
+
PillComponent,
|
|
370
|
+
TitleComponent,
|
|
371
|
+
TextComponent,
|
|
372
|
+
ActionCardComponent,
|
|
373
|
+
ContainerComponent,
|
|
374
|
+
], template: `
|
|
375
|
+
<val-container [props]="{ size: 'md', padding: 'none' }">
|
|
376
|
+
<ion-grid class="about-grid">
|
|
377
|
+
<!-- HERO: logo + name + version -->
|
|
378
|
+
<div class="about-hero">
|
|
379
|
+
@if (logoVar()) {
|
|
380
|
+
<div
|
|
381
|
+
class="about-hero__logo about-hero__logo--var"
|
|
382
|
+
role="img"
|
|
383
|
+
[attr.aria-label]="brandName()"
|
|
384
|
+
[style.background-image]="'var(' + logoVar() + ', url(' + logoSrc() + '))'"
|
|
385
|
+
(click)="handleLogoTap()"
|
|
386
|
+
></div>
|
|
387
|
+
} @else {
|
|
388
|
+
<img class="about-hero__logo" [src]="logoSrc()" [alt]="brandName()" (click)="handleLogoTap()" />
|
|
389
|
+
}
|
|
390
|
+
<val-title
|
|
391
|
+
[props]="{
|
|
392
|
+
content: brandName(),
|
|
393
|
+
size: 'xlarge',
|
|
394
|
+
color: 'dark',
|
|
395
|
+
bold: true,
|
|
396
|
+
}"
|
|
397
|
+
/>
|
|
398
|
+
<val-text
|
|
399
|
+
[props]="{
|
|
400
|
+
content: tt('tagline'),
|
|
401
|
+
size: 'medium',
|
|
402
|
+
color: 'dark',
|
|
403
|
+
bold: false,
|
|
404
|
+
}"
|
|
405
|
+
/>
|
|
406
|
+
@if (version()) {
|
|
407
|
+
<div
|
|
408
|
+
class="version-row"
|
|
409
|
+
(click)="copyVersion()"
|
|
410
|
+
role="button"
|
|
411
|
+
[attr.aria-label]="tt('versionLabel') + ' ' + version()"
|
|
412
|
+
>
|
|
413
|
+
<val-pill
|
|
414
|
+
[props]="{
|
|
415
|
+
label: tt('versionLabel') + ' ' + version(),
|
|
416
|
+
color: 'dark',
|
|
417
|
+
weight: 'bold',
|
|
418
|
+
size: 'small',
|
|
419
|
+
}"
|
|
420
|
+
/>
|
|
421
|
+
<ion-icon name="copy-outline" class="version-copy-icon" />
|
|
422
|
+
</div>
|
|
423
|
+
}
|
|
424
|
+
</div>
|
|
440
425
|
|
|
441
|
-
|
|
442
|
-
@if (socialLinks().length > 0) {
|
|
426
|
+
<!-- DESCRIPTION -->
|
|
443
427
|
<section class="about-section">
|
|
444
|
-
<val-title [props]="sectionTitle('
|
|
428
|
+
<val-title [props]="sectionTitle('descTitle')" />
|
|
445
429
|
<val-text
|
|
446
430
|
[props]="{
|
|
447
|
-
content: tt('
|
|
431
|
+
content: tt('descBody'),
|
|
448
432
|
size: 'medium',
|
|
449
433
|
color: 'dark',
|
|
450
434
|
bold: false,
|
|
451
435
|
}"
|
|
452
436
|
/>
|
|
453
|
-
<div class="about-social">
|
|
454
|
-
@for (s of socialLinks(); track s.url) {
|
|
455
|
-
<ion-button
|
|
456
|
-
fill="clear"
|
|
457
|
-
size="small"
|
|
458
|
-
class="social-btn"
|
|
459
|
-
[attr.aria-label]="s.label"
|
|
460
|
-
(click)="openUrl(s.url)"
|
|
461
|
-
>
|
|
462
|
-
<ion-icon [name]="s.icon" slot="icon-only" />
|
|
463
|
-
</ion-button>
|
|
464
|
-
}
|
|
465
|
-
</div>
|
|
466
437
|
</section>
|
|
467
|
-
}
|
|
468
438
|
|
|
469
|
-
|
|
439
|
+
<!-- ACTIONS — rating built-in + acciones del consumer. -->
|
|
440
|
+
@if (showRating() || actions().length > 0) {
|
|
441
|
+
<section class="about-section about-section--reviews">
|
|
442
|
+
<val-title [props]="sectionTitle('actionsTitle')" />
|
|
443
|
+
<div class="about-actions">
|
|
444
|
+
@if (showRating()) {
|
|
445
|
+
<val-action-card [props]="rateActionCard()" (onClick)="openRating()" />
|
|
446
|
+
}
|
|
447
|
+
@for (action of actions(); track action.label) {
|
|
448
|
+
<val-action-card [props]="extraActionCard(action)" (onClick)="action.onClick()" />
|
|
449
|
+
}
|
|
450
|
+
</div>
|
|
451
|
+
</section>
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
<!-- SOCIAL — penúltimo, justo antes del footer de derechos. -->
|
|
455
|
+
@if (socialLinks().length > 0) {
|
|
456
|
+
<section class="about-section">
|
|
457
|
+
<val-title [props]="sectionTitle('socialTitle')" />
|
|
458
|
+
<val-text
|
|
459
|
+
[props]="{
|
|
460
|
+
content: tt('socialDesc'),
|
|
461
|
+
size: 'medium',
|
|
462
|
+
color: 'dark',
|
|
463
|
+
bold: false,
|
|
464
|
+
}"
|
|
465
|
+
/>
|
|
466
|
+
<div class="about-social">
|
|
467
|
+
@for (s of socialLinks(); track s.url) {
|
|
468
|
+
<ion-button
|
|
469
|
+
fill="clear"
|
|
470
|
+
size="small"
|
|
471
|
+
class="social-btn"
|
|
472
|
+
[attr.aria-label]="s.label"
|
|
473
|
+
(click)="openUrl(s.url)"
|
|
474
|
+
>
|
|
475
|
+
<ion-icon [name]="s.icon" slot="icon-only" />
|
|
476
|
+
</ion-button>
|
|
477
|
+
}
|
|
478
|
+
</div>
|
|
479
|
+
</section>
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
<!-- La línea legal la pone val-page-content, no este organism: si la
|
|
470
483
|
pintara acá, la vista Acerca de mostraría dos (le pasó). -->
|
|
471
|
-
|
|
472
|
-
|
|
484
|
+
</ion-grid>
|
|
485
|
+
</val-container>
|
|
486
|
+
`, styles: [":host{display:block}.about-grid{padding:16px 0}.about-hero{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0 16px;text-align:center}.about-hero__logo{height:96px;width:auto;display:block}.about-hero__logo--var{width:96px;height:96px;background-position:center;background-repeat:no-repeat;background-size:contain}.version-row{display:flex;align-items:center;gap:6px;cursor:pointer;opacity:.85;transition:opacity .15s ease}.version-row:hover{opacity:1}.version-copy-icon{font-size:14px;color:var(--ion-color-medium)}.about-section{padding:16px 0 8px;display:flex;flex-direction:column;gap:8px}.about-actions{display:flex;flex-direction:column;gap:8px}.about-section--reviews val-action-card{display:block}.about-section--reviews val-action-card ::ng-deep .action-card{background:var(--ion-color-light, #f4f5f8);box-shadow:none}.about-section--reviews val-action-card ::ng-deep .action-card__description{color:var(--ion-color-dark);opacity:.7}.about-social{display:flex;flex-wrap:wrap;gap:10px;padding-top:8px}.about-social .social-btn{--border-radius: 50%;--background: var(--ion-color-light, #f4f5f8);--color: var(--ion-color-dark);--padding-start: 0;--padding-end: 0;width:48px;height:48px;margin:0;transition:transform .15s ease}.about-social .social-btn:hover{--background: var(--ion-color-primary-tint, #8a4ce5);--color: #fff;transform:translateY(-2px)}.about-social .social-btn ion-icon{font-size:22px}.about-footer{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px 0;text-align:center}:host-context(body.dark) val-action-card ::ng-deep .action-card,:host-context(html.ion-palette-dark) val-action-card ::ng-deep .action-card,:host-context([data-theme=\"dark\"]) val-action-card ::ng-deep .action-card{background:#ffffff0a}:host-context(body.dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context(html.ion-palette-dark) .about-section--reviews val-action-card ::ng-deep .action-card:hover,:host-context([data-theme=\"dark\"]) .about-section--reviews val-action-card ::ng-deep .action-card:hover{background:#ffffff14}:host-context(body.dark) .about-social .social-btn,:host-context(html.ion-palette-dark) .about-social .social-btn,:host-context([data-theme=\"dark\"]) .about-social .social-btn{--background: rgba(255, 255, 255, .04)}\n"] }]
|
|
473
487
|
}], ctorParameters: () => [] });
|
|
474
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Fib3V0LXZpZXcvYWJvdXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixhQUFhLEVBQ2IsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixXQUFXLEdBQ1osTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFeEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUdsSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUcvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRXBELFFBQVEsQ0FBQztJQUNQLFdBQVc7SUFDWCxXQUFXO0lBQ1gseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLGFBQWE7SUFDYixZQUFZO0lBQ1osV0FBVztJQUNYLFdBQVc7SUFDWCxVQUFVO0NBQ1gsQ0FBQyxDQUFDO0FBRUgsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztBQUMzQyxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztBQUNyQyxNQUFNLGdCQUFnQixHQUFHLDZCQUE2QixDQUFDO0FBQ3ZELGdGQUFnRjtBQUNoRiwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLHdFQUF3RTtBQUN4RSxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0FBQzVDLE1BQU0sd0JBQXdCLEdBQUcsWUFBWSxDQUFDO0FBQzlDLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUMxQixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUVsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBc1FILE1BQU0sT0FBTyxrQkFBa0I7SUE4QzdCLHNFQUFzRTtJQUN0RSxJQUFZLEVBQUU7UUFDWixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQXdCRDtRQXhFUSxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLFVBQUssR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0IsVUFBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRCxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUd6Qjs7Ozs7Ozs7Ozs7V0FXRztRQUNNLFdBQU0sR0FBRyxLQUFLLENBQThCLFNBQVMsQ0FBQyxDQUFDO1FBRXZELG1CQUFjLEdBQUcsUUFBUSxDQUNoQyxHQUFHLEVBQUU7WUFDSCxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQW9CLENBQUM7WUFDdEYsTUFBTSxNQUFNLEdBQW9CLEVBQUUsR0FBRyxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzNFLE9BQU87Z0JBQ0wsS0FBSyxFQUFFO29CQUNMLElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxrQkFBa0I7b0JBQzlDLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxnQkFBZ0I7b0JBQ2xELE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxnQkFBZ0I7aUJBQ25EO2dCQUNELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUU7Z0JBQzdCLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUU7Z0JBQ3JDLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUk7Z0JBQ3JDLGNBQWMsRUFBRSxNQUFNLENBQUMsY0FBYyxJQUFJLHdCQUF3QjtnQkFDakUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRTtnQkFDN0IsY0FBYyxFQUFFLE1BQU0sQ0FBQyxjQUFjLElBQUksRUFBRTtnQkFDM0MsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLElBQUksaUJBQWlCO2dCQUN4RCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87YUFDeEIsQ0FBQztRQUNKLENBQUMsQ0FDRixDQUFDO1FBT08sY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUssQ0FBQyxDQUFDO1FBQzlELFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFRLENBQUMsQ0FBQztRQUMvRCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRSxlQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0UseURBQXlEO1FBQ2hELG1CQUFjLEdBQUcsUUFBUSxDQUFxQixHQUFHLEVBQUU7WUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixPQUFPO2dCQUNMLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFDbkQsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO2dCQUMzQixXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUM7Z0JBQ2hDLElBQUksRUFBRSxRQUFRO2dCQUNkLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxLQUFLO2FBQ2hCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUdELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxzRUFBc0U7SUFDNUQsRUFBRSxDQUFDLEdBQVc7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELHlEQUF5RDtJQUMvQyxZQUFZLENBQUMsR0FBVztRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDckIsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxnRUFBZ0U7SUFDdEQsZUFBZSxDQUFDLE1BQW1CO1FBQzNDLE9BQU87WUFDTCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSw2QkFBNkIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ2pGLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztZQUNuQixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsS0FBSztZQUNmLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQsNkRBQTZEO0lBQzdELEtBQUssQ0FBQyxXQUFXO1FBQ2YsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTztRQUNmLElBQUksQ0FBQztZQUNILE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ2QsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxNQUFNO2dCQUNiLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLHVDQUF1QztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxPQUFPLENBQUMsR0FBVztRQUNqQixJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxVQUFVO1FBQ2QsTUFBTSxhQUFhLEdBQXFDO1lBQ3RELHFFQUFxRTtZQUNyRSxTQUFTLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsY0FBYyxFQUFFO1lBQ2hGLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQztZQUNqQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUMxQyxlQUFlLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDdEMsV0FBVyxFQUFFLElBQUk7WUFDakIsWUFBWSxFQUFFLElBQUk7WUFDbEIsdUVBQXVFO1lBQ3ZFLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUM7WUFDMUIsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUUsZUFBZSxFQUFFLEtBQUs7U0FDdkIsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQXFEO1lBQ3RHLFNBQVMsRUFBRSw2QkFBNkI7WUFDeEMsY0FBYyxFQUFFO2dCQUNkLEtBQUssRUFBRSxhQUFhO2dCQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDaEMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDO2dCQUNoQyxlQUFlLEVBQUUsSUFBSTthQUN0QjtTQUNGLENBQUMsQ0FBQztRQUNILElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUFFLE9BQU87UUFDbkMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDaEMsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsWUFBWSxHQUFHLGVBQWU7WUFBRSxPQUFPO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sS0FBSyxDQUFDLGFBQWE7UUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTztRQUNsQixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7K0dBNUxVLGtCQUFrQjttR0FBbEIsa0JBQWtCLGlOQWpRbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEdULDY5RUEvR1MsU0FBUyxvUEFBRSxPQUFPLHdFQUFFLE9BQU8sMkpBQUUsYUFBYSx3SEFBRSxjQUFjLHlFQUFFLGFBQWEsd0VBQUUsbUJBQW1COzs0RkFrUTdGLGtCQUFrQjtrQkFyUTlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLENBQUMsWUFDL0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEdUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkdyaWQsIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgY2hhdGJ1YmJsZUVsbGlwc2VzT3V0bGluZSxcbiAgY29weU91dGxpbmUsXG4gIGhlbHBDaXJjbGVPdXRsaW5lLFxuICBsb2dvRmFjZWJvb2ssXG4gIGxvZ29JbnN0YWdyYW0sXG4gIGxvZ29MaW5rZWRpbixcbiAgbG9nb1Rpa3RvayxcbiAgbG9nb1R3aXR0ZXIsXG4gIGxvZ29Zb3V0dWJlLFxuICBzaGFyZVNvY2lhbE91dGxpbmUsXG4gIHN0YXJPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFBpbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGlsbC9waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2FjdGlvbi1jYXJkL2FjdGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvdHlwZXMnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3R5cGVzJztcbmltcG9ydCB7IENvbnRlbnRSZWFjdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudFJlYWN0aW9uTWV0YWRhdGEsIFJlYWN0aW9uU3VibWl0RXZlbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY29udGVudC1yZWFjdGlvbi90eXBlcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5cbmltcG9ydCB7IEFib3V0QWN0aW9uLCBBYm91dFZpZXdDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFCT1VUX1ZJRVdfSTE4TiB9IGZyb20gJy4vYWJvdXQtdmlldy5pMThuJztcblxuYWRkSWNvbnMoe1xuICBjb3B5T3V0bGluZSxcbiAgc3Rhck91dGxpbmUsXG4gIGNoYXRidWJibGVFbGxpcHNlc091dGxpbmUsXG4gIHNoYXJlU29jaWFsT3V0bGluZSxcbiAgaGVscENpcmNsZU91dGxpbmUsXG4gIGxvZ29GYWNlYm9vayxcbiAgbG9nb0luc3RhZ3JhbSxcbiAgbG9nb0xpbmtlZGluLFxuICBsb2dvVHdpdHRlcixcbiAgbG9nb1lvdXR1YmUsXG4gIGxvZ29UaWt0b2ssXG59KTtcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQWJvdXQnO1xuY29uc3QgREVGQVVMVF9CUkFORF9OQU1FID0gJ1ZhbHRlY2gnO1xuY29uc3QgREVGQVVMVF9MT0dPX1NSQyA9ICdhc3NldHMvaW1hZ2VzL21haW4taWNvbi5wbmcnO1xuLy8gUG9yIGRlZmF1bHQgZWwgSEVSTyB1c2EgbGEgQ1NTIHZhciBkZSBtYXJjYSBkZWwgZmFjdG9yeSAoYC0tbWFpbi1sb2dvLW1pbmlgKSxcbi8vIHF1ZSBjYWRhIGFwcCBkZWZpbmUgZW4gc3UgYHRoZW1lL3ZhcmlhYmxlcy5zY3NzYCAodGhlbWUtYXdhcmUpLiBTaSBsYSBhcHAgbm9cbi8vIGxhIGRlZmluZSwgZWwgYHZhciguLi4pYCBjYWUgYWwgYGxvZ29TcmNgICh2ZXIgdGVtcGxhdGUpLiBFbCBjb25zdW1lciBwdWVkZVxuLy8gcGFzYXIgYGJyYW5kLmxvZ29WYXI6ICcnYCBwYXJhIGZvcnphciBlbCBgPGltZyBzcmM9bG9nb1NyYz5gIGNsw6FzaWNvLlxuY29uc3QgREVGQVVMVF9MT0dPX1ZBUiA9ICctLW1haW4tbG9nby1taW5pJztcbmNvbnN0IERFRkFVTFRfUkFUSU5HX0VOVElUWV9JRCA9ICdleHBlcmllbmNlJztcbmNvbnN0IEVBU1RFUl9FR0dfVEFQUyA9IDU7XG5jb25zdCBFQVNURVJfRUdHX1dJTkRPV19NUyA9IDIwMDA7XG5cbi8qKlxuICogYHZhbC1hYm91dC12aWV3YCDigJQgdmlzdGEgQWJvdXQgZnVsbC1mZWF0dXJlIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS5cbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZcO6bmU6XG4gKiAgLSAqKkhFUk8qKiDigJQgbG9nbyArIG5vbWJyZSBkZSBtYXJjYSArIHRhZ2xpbmUgKyBwaWxsIGRlIHZlcnNpw7NuIChjb3BpYWJsZSkuXG4gKiAgLSAqKkRlc2NyaXBjacOzbioqIOKAlCB0w610dWxvICsgY3VlcnBvLlxuICogIC0gKipBY2Npb25lcyoqIOKAlCBhY3Rpb24tY2FyZCBkZSByYXRpbmcgYnVpbHQtaW4gKGFicmUgYHZhbC1jb250ZW50LXJlYWN0aW9uYFxuICogICAgZGVudHJvIGRlbCBtb2RhbCBsYXlvdXQgY2Fuw7NuaWNvKSArIGxhcyBhY2Npb25lcyBnZW7DqXJpY2FzIHF1ZSBlbCBjb25zdW1lclxuICogICAgYXBvcnRlIHBvciBgY29uZmlnLmFjdGlvbnNgLlxuICogIC0gKipSZWRlcyoqIOKAlCBsaW5rcyBzb2NpYWxlcyAoYGNvbmZpZy5zb2NpYWxMaW5rc2ApOyBzZWNjacOzbiBvY3VsdGEgc2kgdmFjw61hLlxuICpcbiAqIExvIGFwcC1zcGVjaWZpYyAobG9nbywgbm9tYnJlLCB2ZXJzacOzbiwgcmVkZXMsIGFjY2lvbmVzIHNoYXJlL2ZhcSkgdmlhamEgY29tb1xuICogREFUQSBkZSBjb25maWcg4oCUIE5PIGNvbW8gc2xvdHMgKEFEUi0wMjEpLiBMYSB2ZXJzacOzbiBsYSBwYXNhIGVsIGNvbnN1bWVyXG4gKiAoYGNvbmZpZy52ZXJzaW9uYCA9IHN1IGBBUFBfVkVSU0lPTmApOyBsYSBsaWIgTk8gaW1wb3J0YSBlbCBgdmVyc2lvbi50c2AgZGUgbGFcbiAqIGFwcC4gU2kgbm8gc2UgcGFzYSB2ZXJzacOzbiwgZWwgcGlsbCBzZSBvY3VsdGEuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBgQWN0aXZhdGVkUm91dGVgXG4gKiBzZSBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGEgZGUgY29uZmlnLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbiBlbCBjb25zdHJ1Y3RvciBzaSBlbCBjb25zdW1lciBub1xuICogcHJvdmV5w7MgZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvIChkZWZhdWx0IGBTZXR0aW5ncy5BYm91dGApLlxuICpcbiAqIEdPVENIQSBpMThuIENvbnRlbnRSZWFjdGlvbjogYHZhbC1jb250ZW50LXJlYWN0aW9uYCBleGlnZSBzdSBuYW1lc3BhY2VcbiAqIGBDb250ZW50UmVhY3Rpb25gIHJlZ2lzdHJhZG8gZG9uZGUgc2UgdXNlIChrZXkgZmFsdGFudGUgZW4gYmluZGluZyArIENEID1cbiAqIG5hdmVnYWRvciBjb25nZWxhZG8gZW4gZGV2KS4gYENvbnRlbnRSZWFjdGlvbkNvbXBvbmVudGAgc2UgYXV0by1yZWdpc3RyYSBlc2VcbiAqIG5hbWVzcGFjZSBlbiBTVSBjb25zdHJ1Y3RvciwgeSBjb21vIHNlIGFicmUgdsOtYSBgTW9kYWxTZXJ2aWNlYCBlc2UgY29uc3RydWN0b3JcbiAqIGNvcnJlIGFudGVzIGRlIHF1ZSBzdSB0ZW1wbGF0ZSBiaW5kZSDigJQgcXVlZGEgY3ViaWVydG8uIElndWFsIGxvIGltcG9ydGFtb3NcbiAqIGNvbW8gZGVwZW5kZW5jaWEgZXhwbMOtY2l0YSBkZSBlc3RhIHZpc3RhIHBhcmEgcXVlIGxhIGdhcmFudMOtYSBzZWEgbG9jYWwuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hYm91dC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0lvbkJ1dHRvbiwgSW9uR3JpZCwgSW9uSWNvbiwgUGlsbENvbXBvbmVudCwgVGl0bGVDb21wb25lbnQsIFRleHRDb21wb25lbnQsIEFjdGlvbkNhcmRDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxpb24tZ3JpZCBjbGFzcz1cImFib3V0LWdyaWRcIj5cbiAgICAgIDwhLS0gSEVSTzogbG9nbyArIG5hbWUgKyB2ZXJzaW9uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImFib3V0LWhlcm9cIj5cbiAgICAgICAgQGlmIChsb2dvVmFyKCkpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImFib3V0LWhlcm9fX2xvZ28gYWJvdXQtaGVyb19fbG9nby0tdmFyXCJcbiAgICAgICAgICAgIHJvbGU9XCJpbWdcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJicmFuZE5hbWUoKVwiXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCIndmFyKCcgKyBsb2dvVmFyKCkgKyAnLCB1cmwoJyArIGxvZ29TcmMoKSArICcpKSdcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUxvZ29UYXAoKVwiXG4gICAgICAgICAgPjwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8aW1nIGNsYXNzPVwiYWJvdXQtaGVyb19fbG9nb1wiIFtzcmNdPVwibG9nb1NyYygpXCIgW2FsdF09XCJicmFuZE5hbWUoKVwiIChjbGljayk9XCJoYW5kbGVMb2dvVGFwKClcIiAvPlxuICAgICAgICB9XG4gICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgY29udGVudDogYnJhbmROYW1lKCksXG4gICAgICAgICAgICBzaXplOiAneGxhcmdlJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgY29udGVudDogdHQoJ3RhZ2xpbmUnKSxcbiAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgICBAaWYgKHZlcnNpb24oKSkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidmVyc2lvbi1yb3dcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNvcHlWZXJzaW9uKClcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInR0KCd2ZXJzaW9uTGFiZWwnKSArICcgJyArIHZlcnNpb24oKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHZhbC1waWxsXG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHR0KCd2ZXJzaW9uTGFiZWwnKSArICcgJyArIHZlcnNpb24oKSxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIHdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY29weS1vdXRsaW5lXCIgY2xhc3M9XCJ2ZXJzaW9uLWNvcHktaWNvblwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIERFU0NSSVBUSU9OIC0tPlxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJhYm91dC1zZWN0aW9uXCI+XG4gICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInNlY3Rpb25UaXRsZSgnZGVzY1RpdGxlJylcIiAvPlxuICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgY29udGVudDogdHQoJ2Rlc2NCb2R5JyksXG4gICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgPCEtLSBBQ1RJT05TIOKAlCByYXRpbmcgYnVpbHQtaW4gKyBhY2Npb25lcyBkZWwgY29uc3VtZXIuIC0tPlxuICAgICAgQGlmIChzaG93UmF0aW5nKCkgfHwgYWN0aW9ucygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJhYm91dC1zZWN0aW9uIGFib3V0LXNlY3Rpb24tLXJldmlld3NcIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ2FjdGlvbnNUaXRsZScpXCIgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJvdXQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgQGlmIChzaG93UmF0aW5nKCkpIHtcbiAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwicmF0ZUFjdGlvbkNhcmQoKVwiIChvbkNsaWNrKT1cIm9wZW5SYXRpbmcoKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgYWN0aW9ucygpOyB0cmFjayBhY3Rpb24ubGFiZWwpIHtcbiAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwiZXh0cmFBY3Rpb25DYXJkKGFjdGlvbilcIiAob25DbGljayk9XCJhY3Rpb24ub25DbGljaygpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICA8IS0tIFNPQ0lBTCDigJQgcGVuw7psdGltbywganVzdG8gYW50ZXMgZGVsIGZvb3RlciBkZSBkZXJlY2hvcy4gLS0+XG4gICAgICBAaWYgKHNvY2lhbExpbmtzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImFib3V0LXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ3NvY2lhbFRpdGxlJylcIiAvPlxuICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgY29udGVudDogdHQoJ3NvY2lhbERlc2MnKSxcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJvdXQtc29jaWFsXCI+XG4gICAgICAgICAgICBAZm9yIChzIG9mIHNvY2lhbExpbmtzKCk7IHRyYWNrIHMudXJsKSB7XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwic29jaWFsLWJ0blwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblVybChzLnVybClcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInMuaWNvblwiIHNsb3Q9XCJpY29uLW9ubHlcIiAvPlxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgPCEtLSBMYSBsw61uZWEgbGVnYWwgbGEgcG9uZSB2YWwtcGFnZS1jb250ZW50LCBubyBlc3RlIG9yZ2FuaXNtOiBzaSBsYVxuICAgICAgICAgICBwaW50YXJhIGFjw6EsIGxhIHZpc3RhIEFjZXJjYSBkZSBtb3N0cmFyw61hIGRvcyAobGUgcGFzw7MpLiAtLT5cbiAgICA8L2lvbi1ncmlkPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtZ3JpZCB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG5cbiAgICAgIC8qIFNlZ3VuZG8gYW5jaG8sIGRlc2t0b3AgY29uIGVsIHJhaWwgcmV0cmHDrWRvLiBWZXIgc2V0dGluZ3MtaHViIHBhcmEgbGFcbiAgICAgICAgIGV4cGxpY2FjacOzbiBjb21wbGV0YSBkZWwgbWVjYW5pc21vLiAqL1xuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS1tZW51PSdjb2xsYXBzZWQnXSkgLmFib3V0LWdyaWQge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA5MDBweDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAuYWJvdXQtaGVybyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDAgMTZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtaGVyb19fbG9nbyB7XG4gICAgICAgIGhlaWdodDogOTZweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtaGVyb19fbG9nby0tdmFyIHtcbiAgICAgICAgd2lkdGg6IDk2cHg7XG4gICAgICAgIGhlaWdodDogOTZweDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICB9XG5cbiAgICAgIC52ZXJzaW9uLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IDAuODU7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLnZlcnNpb24tcm93OmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cblxuICAgICAgLnZlcnNpb24tY29weS1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwIDhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNvY2lhbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuIHtcbiAgICAgICAgLS1ib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIC0tYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNWY4KTtcbiAgICAgICAgLS1jb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICAtLXBhZGRpbmctc3RhcnQ6IDA7XG4gICAgICAgIC0tcGFkZGluZy1lbmQ6IDA7XG4gICAgICAgIHdpZHRoOiA0OHB4O1xuICAgICAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG46aG92ZXIge1xuICAgICAgICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5LXRpbnQsICM4YTRjZTUpO1xuICAgICAgICAtLWNvbG9yOiAjZmZmO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG4gaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1mb290ZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogMjRweCAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQ6aG92ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQ6aG92ZXIsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG4sXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0bixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0biB7XG4gICAgICAgIC0tYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBYm91dFZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgbW9kYWxTZXJ2aWNlID0gaW5qZWN0KE1vZGFsU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBsb2dvVGFwQ291bnQgPSAwO1xuICBwcml2YXRlIGxvZ29UYXBUaW1lcj86IG51bWJlcjtcblxuICAvKipcbiAgICogQ29uZmlnIHbDrWEgaW5wdXQgKG9iamVjdC1maXJzdCkuIFNpIG5vIHNlIHBhc2EsIHNlIGNhZSBhbCByb3V0ZSBkYXRhXG4gICAqIGBhYm91dENvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaEFib3V0Um91dGVzYCkuIGByZXNvbHZlZENvbmZpZ2BcbiAgICogbWVyZ2VhIGNvbiBsb3MgZGVmYXVsdHMg4oCUIGVsIGlucHV0IGdhbmEgc29icmUgcm91dGUgZGF0YS5cbiAgICpcbiAgICogKipTaWduYWwgaW5wdXQqKiAobm8gYEBJbnB1dGAgY2zDoXNpY28pOiBgcmVzb2x2ZWRDb25maWdgIGVzIHVuIGBjb21wdXRlZGAgcXVlIHNlXG4gICAqIGV2YWzDumEgcG9yIHByaW1lcmEgdmV6IGVuIGVsIGNvbnN0cnVjdG9yICh2w61hIGB0aGlzLm5zYCDihpIgYHNldEJhY2tIZWFkZXJgKSwgQU5URVNcbiAgICogZGUgcXVlIHVuIGBASW5wdXRgIGNsw6FzaWNvIGVzdMOpIGJpbmRlYWRvLiBDb24gYEBJbnB1dGAgZWwgY29tcHV0ZWQgbWVtb2l6YWJhIGxhXG4gICAqIGNvbmZpZyB2YWPDrWEgeSwgYWwgbm8gZGVwZW5kZXIgZGUgbmluZ3VuYSBzZcOxYWwsIE5VTkNBIHJlY29tcHV0YWJhIOKGkiBpZ25vcmFiYVxuICAgKiBgW2NvbmZpZ11gIChzb2NpYWwvYWNjaW9uZXMvdmVyc2nDs24vbWFyY2EgcXVlZGFiYW4gZW4gZGVmYXVsdCkuIENvbW8gc2lnbmFsLCBlbFxuICAgKiBjb21wdXRlZCBsbyB0cmFja2VhIHkgcmVjb21wdXRhIGN1YW5kbyBlbCBiaW5kaW5nIGxsZWdhLlxuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlnID0gaW5wdXQ8QWJvdXRWaWV3Q29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IHJlc29sdmVkQ29uZmlnID0gY29tcHV0ZWQ8UmVxdWlyZWQ8T21pdDxBYm91dFZpZXdDb25maWcsICdvblJhdGVkJz4+ICYgUGljazxBYm91dFZpZXdDb25maWcsICdvblJhdGVkJz4+KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydhYm91dENvbmZpZyddID8/IHt9KSBhcyBBYm91dFZpZXdDb25maWc7XG4gICAgICBjb25zdCBtZXJnZWQ6IEFib3V0Vmlld0NvbmZpZyA9IHsgLi4uZnJvbVJvdXRlLCAuLi4odGhpcy5jb25maWcoKSA/PyB7fSkgfTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJyYW5kOiB7XG4gICAgICAgICAgbmFtZTogbWVyZ2VkLmJyYW5kPy5uYW1lID8/IERFRkFVTFRfQlJBTkRfTkFNRSxcbiAgICAgICAgICBsb2dvU3JjOiBtZXJnZWQuYnJhbmQ/LmxvZ29TcmMgPz8gREVGQVVMVF9MT0dPX1NSQyxcbiAgICAgICAgICBsb2dvVmFyOiBtZXJnZWQuYnJhbmQ/LmxvZ29WYXIgPz8gREVGQVVMVF9MT0dPX1ZBUixcbiAgICAgICAgfSxcbiAgICAgICAgdmVyc2lvbjogbWVyZ2VkLnZlcnNpb24gPz8gJycsXG4gICAgICAgIHNvY2lhbExpbmtzOiBtZXJnZWQuc29jaWFsTGlua3MgPz8gW10sXG4gICAgICAgIHNob3dSYXRpbmc6IG1lcmdlZC5zaG93UmF0aW5nID8/IHRydWUsXG4gICAgICAgIHJhdGluZ0VudGl0eUlkOiBtZXJnZWQucmF0aW5nRW50aXR5SWQgPz8gREVGQVVMVF9SQVRJTkdfRU5USVRZX0lELFxuICAgICAgICBhY3Rpb25zOiBtZXJnZWQuYWN0aW9ucyA/PyBbXSxcbiAgICAgICAgbWluaUdhbWVzUm91dGU6IG1lcmdlZC5taW5pR2FtZXNSb3V0ZSA/PyAnJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UsXG4gICAgICAgIG9uUmF0ZWQ6IG1lcmdlZC5vblJhdGVkLFxuICAgICAgfTtcbiAgICB9XG4gICk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIHJlc3VlbHRvIChjYXB0dXJhZG8gcGFyYSBsbGFtYWRhcyBuby1yZWFjdGl2YXMpLiAqL1xuICBwcml2YXRlIGdldCBucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIHJlYWRvbmx5IGJyYW5kTmFtZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5icmFuZC5uYW1lISk7XG4gIHJlYWRvbmx5IGxvZ29TcmMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuYnJhbmQubG9nb1NyYyEpO1xuICByZWFkb25seSBsb2dvVmFyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmJyYW5kLmxvZ29WYXIgPz8gJycpO1xuICByZWFkb25seSB2ZXJzaW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLnZlcnNpb24pO1xuICByZWFkb25seSBzb2NpYWxMaW5rcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5zb2NpYWxMaW5rcyk7XG4gIHJlYWRvbmx5IHNob3dSYXRpbmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuc2hvd1JhdGluZyk7XG4gIHJlYWRvbmx5IGFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuYWN0aW9ucyk7XG4gIHJlYWRvbmx5IG1pbmlHYW1lc1JvdXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLm1pbmlHYW1lc1JvdXRlKTtcblxuICAvKiogVGl0bGUgbWV0YWRhdGEgcGFyYSBzZWNjaW9uZXMg4oCUIGJvbGQgKyBzaXplIHNtYWxsLiAqL1xuICByZWFkb25seSByYXRlQWN0aW9uQ2FyZCA9IGNvbXB1dGVkPEFjdGlvbkNhcmRNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb246IHsgaW9uaWNvbjogJ3N0YXItb3V0bGluZScsIGNvbG9yOiAncHJpbWFyeScgfSxcbiAgICAgIHRpdGxlOiB0aGlzLnR0KCdyYXRlVGl0bGUnKSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLnR0KCdyYXRlRGVzYycpLFxuICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICBzaGFkb3dlZDogZmFsc2UsXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgbnMgPSB0aGlzLm5zO1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKG5zLCBBQk9VVF9WSUVXX0kxOE4pO1xuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIG5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqIEhlbHBlciBpMThuIGJvdW5kIGFsIG5hbWVzcGFjZSByZXN1ZWx0by4gUmVhY3Rpdm8gdsOtYSBgbGFuZygpYC4gKi9cbiAgcHJvdGVjdGVkIHR0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMubnMpO1xuICB9XG5cbiAgLyoqIFRpdGxlIG1ldGFkYXRhIHBhcmEgc2VjY2lvbmVzIOKAlCBib2xkICsgc2l6ZSBzbWFsbC4gKi9cbiAgcHJvdGVjdGVkIHNlY3Rpb25UaXRsZShrZXk6IHN0cmluZyk6IFRpdGxlTWV0YWRhdGEge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbnRlbnQ6IHRoaXMudHQoa2V5KSxcbiAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgYm9sZDogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEFjdGlvbkNhcmRNZXRhZGF0YSBwYXJhIHVuYSBhY2Npw7NuIGdlbsOpcmljYSBkZWwgY29uc3VtZXIuICovXG4gIHByb3RlY3RlZCBleHRyYUFjdGlvbkNhcmQoYWN0aW9uOiBBYm91dEFjdGlvbik6IEFjdGlvbkNhcmRNZXRhZGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGljb246IHsgaW9uaWNvbjogYWN0aW9uLmljb24gPz8gJ2NoYXRidWJibGUtZWxsaXBzZXMtb3V0bGluZScsIGNvbG9yOiAncHJpbWFyeScgfSxcbiAgICAgIHRpdGxlOiBhY3Rpb24ubGFiZWwsXG4gICAgICBkZXNjcmlwdGlvbjogYWN0aW9uLmRlc2NyaXB0aW9uLFxuICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgICBzaGFkb3dlZDogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBDb3BpYSBsYSB2ZXJzacOzbiBhbCBwb3J0YXBhcGVsZXMgKyB0b2FzdCAoY29sb3IgZGFyaykuICovXG4gIGFzeW5jIGNvcHlWZXJzaW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHYgPSB0aGlzLnZlcnNpb24oKTtcbiAgICBpZiAoIXYpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodik7XG4gICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLnR0KCd2ZXJzaW9uQ29waWVkJykucmVwbGFjZSgne3Z9JywgdiksXG4gICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgIGR1cmF0aW9uOiAxNTAwLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBjbGlwYm9hcmQgbm8gZGlzcG9uaWJsZSDigJQgc2lsZW5jaW9zb1xuICAgIH1cbiAgfVxuXG4gIC8qKiBBYnJlIHVuYSBVUkwgZXh0ZXJuYSBlbiBudWV2YSB0YWIuIGBtYWlsdG86YCBxdWVkYSBlbiBsYSBtaXNtYSB0YWIuICovXG4gIG9wZW5VcmwodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodXJsLnN0YXJ0c1dpdGgoJ21haWx0bzonKSkge1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdpbmRvdy5vcGVuKHVybCwgJ19ibGFuaycsICdub29wZW5lcixub3JlZmVycmVyJyk7XG4gIH1cblxuICAvKipcbiAgICogXCJDYWxpZmljYXIgbGEgYXBwXCIg4oCUIGFicmUgYHZhbC1jb250ZW50LXJlYWN0aW9uYCBkZW50cm8gZGVsIG1vZGFsIGxheW91dFxuICAgKiBjYW7Ds25pY28uIEVsIGxheW91dCBldml0YSBzb2xhcGVzIGNvbiBzdGF0dXMvc2FmZSBhcmVhIHkgbWFudGllbmUgdW4gcGF0csOzblxuICAgKiBjb25zaXN0ZW50ZSBlbnRyZSBtb2JpbGUgZnVsbHNjcmVlbiB5IGRlc2t0b3AgY2FyZC5cbiAgICovXG4gIGFzeW5jIG9wZW5SYXRpbmcoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVhY3Rpb25Qcm9wczogUGFydGlhbDxDb250ZW50UmVhY3Rpb25NZXRhZGF0YT4gPSB7XG4gICAgICAvLyBlbnRpdHlUeXBlIFwiYXBwXCIgZGlzdGluZ3VlIGVzdGEgcmVhY2Npw7NuIGRlIGxhcyBkZSBhcnTDrWN1bG9zL0ZBUXMuXG4gICAgICBlbnRpdHlSZWY6IHsgZW50aXR5VHlwZTogJ2FwcCcsIGVudGl0eUlkOiB0aGlzLnJlc29sdmVkQ29uZmlnKCkucmF0aW5nRW50aXR5SWQgfSxcbiAgICAgIHF1ZXN0aW9uOiB0aGlzLnR0KCdyYXRlUXVlc3Rpb24nKSxcbiAgICAgIGNvbW1lbnRQbGFjZWhvbGRlcjogdGhpcy50dCgncmF0ZUNvbW1lbnQnKSxcbiAgICAgIHRoYW5rWW91TWVzc2FnZTogdGhpcy50dCgncmF0ZVRoYW5rcycpLFxuICAgICAgc2hvd0NvbW1lbnQ6IHRydWUsXG4gICAgICBzaG93VGhhbmtZb3U6IHRydWUsXG4gICAgICAvLyBNb2RhbCBvbmUtc2hvdDogTk8gYmxvcXVlYXIgZWwgcmVuZGVyIGNvbiBlbCBjaGVjayBkZSByYXRpbmcgcHJldmlvLlxuICAgICAgc2tpcEluaXRpYWxDaGVjazogdHJ1ZSxcbiAgICAgIGVtb2ppczogWyfwn5iVJywgJ/CfmYInLCAn8J+YjSddLFxuICAgICAgZW1vamlMYWJlbHM6IFt0aGlzLnR0KCdyYXRlQmFkJyksIHRoaXMudHQoJ3JhdGVNaWQnKSwgdGhpcy50dCgncmF0ZUdvb2QnKV0sXG4gICAgICBzaG93Q2xvc2VCdXR0b246IGZhbHNlLFxuICAgIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbkFkYXB0aXZlPENvbnRlbnRSZWFjdGlvbk1vZGFsQ29tcG9uZW50LCBSZWFjdGlvblN1Ym1pdEV2ZW50Pih7XG4gICAgICBjb21wb25lbnQ6IENvbnRlbnRSZWFjdGlvbk1vZGFsQ29tcG9uZW50LFxuICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgcHJvcHM6IHJlYWN0aW9uUHJvcHMsXG4gICAgICAgIHRpdGxlOiB0aGlzLnR0KCdyYXRlTW9kYWxUaXRsZScpLFxuICAgICAgICBjbG9zZUxhYmVsOiB0aGlzLnR0KCdyYXRlQ2xvc2UnKSxcbiAgICAgICAgZGlzbWlzc09uU3VibWl0OiB0cnVlLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBpZiAocmVzdWx0LnJvbGUgPT09ICdzdWJtaXQnKSB7XG4gICAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25SYXRlZD8uKCk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlTG9nb1RhcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWluaUdhbWVzUm91dGUoKSkgcmV0dXJuO1xuICAgIHRoaXMubG9nb1RhcENvdW50ICs9IDE7XG4gICAgaWYgKHRoaXMubG9nb1RhcFRpbWVyKSB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMubG9nb1RhcFRpbWVyKTtcbiAgICB0aGlzLmxvZ29UYXBUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMubG9nb1RhcENvdW50ID0gMDtcbiAgICAgIHRoaXMubG9nb1RhcFRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH0sIEVBU1RFUl9FR0dfV0lORE9XX01TKTtcbiAgICBpZiAodGhpcy5sb2dvVGFwQ291bnQgPCBFQVNURVJfRUdHX1RBUFMpIHJldHVybjtcbiAgICB0aGlzLmxvZ29UYXBDb3VudCA9IDA7XG4gICAgaWYgKHRoaXMubG9nb1RhcFRpbWVyKSB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMubG9nb1RhcFRpbWVyKTtcbiAgICAgIHRoaXMubG9nb1RhcFRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB2b2lkIHRoaXMub3Blbk1pbmlHYW1lcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvcGVuTWluaUdhbWVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJhc2UgPSB0aGlzLm1pbmlHYW1lc1JvdXRlKCk7XG4gICAgaWYgKCFiYXNlKSByZXR1cm47XG4gICAgYXdhaXQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChiYXNlKTtcbiAgfVxufVxuIl19
|
|
488
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Fib3V0LXZpZXcvYWJvdXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixhQUFhLEVBQ2IsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixXQUFXLEdBQ1osTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFFeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUdsSCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFN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Q1AsT0FBTywySkFDUCxhQUFhLHdIQUNiLGNBQWMseUVBQ2QsYUFBYSx3RUFDYixtQkFBbUIscUdBQ25CLGtCQUFrQjs7NEZBNlBULGtCQUFrQjtrQkF4UTlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNuQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0hUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25CdXR0b24sIElvbkdyaWQsIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgY2hhdGJ1YmJsZUVsbGlwc2VzT3V0bGluZSxcbiAgY29weU91dGxpbmUsXG4gIGhlbHBDaXJjbGVPdXRsaW5lLFxuICBsb2dvRmFjZWJvb2ssXG4gIGxvZ29JbnN0YWdyYW0sXG4gIGxvZ29MaW5rZWRpbixcbiAgbG9nb1Rpa3RvayxcbiAgbG9nb1R3aXR0ZXIsXG4gIGxvZ29Zb3V0dWJlLFxuICBzaGFyZVNvY2lhbE91dGxpbmUsXG4gIHN0YXJPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFBpbGxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcGlsbC9waWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2FjdGlvbi1jYXJkL2FjdGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvdHlwZXMnO1xuaW1wb3J0IHsgQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvY29udGFpbmVyL2NvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3R5cGVzJztcbmltcG9ydCB7IENvbnRlbnRSZWFjdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vY29udGVudC1yZWFjdGlvbi1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29udGVudFJlYWN0aW9uTWV0YWRhdGEsIFJlYWN0aW9uU3VibWl0RXZlbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY29udGVudC1yZWFjdGlvbi90eXBlcyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5cbmltcG9ydCB7IEFib3V0QWN0aW9uLCBBYm91dFZpZXdDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEFCT1VUX1ZJRVdfSTE4TiB9IGZyb20gJy4vYWJvdXQtdmlldy5pMThuJztcblxuYWRkSWNvbnMoe1xuICBjb3B5T3V0bGluZSxcbiAgc3Rhck91dGxpbmUsXG4gIGNoYXRidWJibGVFbGxpcHNlc091dGxpbmUsXG4gIHNoYXJlU29jaWFsT3V0bGluZSxcbiAgaGVscENpcmNsZU91dGxpbmUsXG4gIGxvZ29GYWNlYm9vayxcbiAgbG9nb0luc3RhZ3JhbSxcbiAgbG9nb0xpbmtlZGluLFxuICBsb2dvVHdpdHRlcixcbiAgbG9nb1lvdXR1YmUsXG4gIGxvZ29UaWt0b2ssXG59KTtcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuQWJvdXQnO1xuY29uc3QgREVGQVVMVF9CUkFORF9OQU1FID0gJ1ZhbHRlY2gnO1xuY29uc3QgREVGQVVMVF9MT0dPX1NSQyA9ICdhc3NldHMvaW1hZ2VzL21haW4taWNvbi5wbmcnO1xuLy8gUG9yIGRlZmF1bHQgZWwgSEVSTyB1c2EgbGEgQ1NTIHZhciBkZSBtYXJjYSBkZWwgZmFjdG9yeSAoYC0tbWFpbi1sb2dvLW1pbmlgKSxcbi8vIHF1ZSBjYWRhIGFwcCBkZWZpbmUgZW4gc3UgYHRoZW1lL3ZhcmlhYmxlcy5zY3NzYCAodGhlbWUtYXdhcmUpLiBTaSBsYSBhcHAgbm9cbi8vIGxhIGRlZmluZSwgZWwgYHZhciguLi4pYCBjYWUgYWwgYGxvZ29TcmNgICh2ZXIgdGVtcGxhdGUpLiBFbCBjb25zdW1lciBwdWVkZVxuLy8gcGFzYXIgYGJyYW5kLmxvZ29WYXI6ICcnYCBwYXJhIGZvcnphciBlbCBgPGltZyBzcmM9bG9nb1NyYz5gIGNsw6FzaWNvLlxuY29uc3QgREVGQVVMVF9MT0dPX1ZBUiA9ICctLW1haW4tbG9nby1taW5pJztcbmNvbnN0IERFRkFVTFRfUkFUSU5HX0VOVElUWV9JRCA9ICdleHBlcmllbmNlJztcbmNvbnN0IEVBU1RFUl9FR0dfVEFQUyA9IDU7XG5jb25zdCBFQVNURVJfRUdHX1dJTkRPV19NUyA9IDIwMDA7XG5cbi8qKlxuICogYHZhbC1hYm91dC12aWV3YCDigJQgdmlzdGEgQWJvdXQgZnVsbC1mZWF0dXJlIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS5cbiAqIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLiBSZcO6bmU6XG4gKiAgLSAqKkhFUk8qKiDigJQgbG9nbyArIG5vbWJyZSBkZSBtYXJjYSArIHRhZ2xpbmUgKyBwaWxsIGRlIHZlcnNpw7NuIChjb3BpYWJsZSkuXG4gKiAgLSAqKkRlc2NyaXBjacOzbioqIOKAlCB0w610dWxvICsgY3VlcnBvLlxuICogIC0gKipBY2Npb25lcyoqIOKAlCBhY3Rpb24tY2FyZCBkZSByYXRpbmcgYnVpbHQtaW4gKGFicmUgYHZhbC1jb250ZW50LXJlYWN0aW9uYFxuICogICAgZGVudHJvIGRlbCBtb2RhbCBsYXlvdXQgY2Fuw7NuaWNvKSArIGxhcyBhY2Npb25lcyBnZW7DqXJpY2FzIHF1ZSBlbCBjb25zdW1lclxuICogICAgYXBvcnRlIHBvciBgY29uZmlnLmFjdGlvbnNgLlxuICogIC0gKipSZWRlcyoqIOKAlCBsaW5rcyBzb2NpYWxlcyAoYGNvbmZpZy5zb2NpYWxMaW5rc2ApOyBzZWNjacOzbiBvY3VsdGEgc2kgdmFjw61hLlxuICpcbiAqIExvIGFwcC1zcGVjaWZpYyAobG9nbywgbm9tYnJlLCB2ZXJzacOzbiwgcmVkZXMsIGFjY2lvbmVzIHNoYXJlL2ZhcSkgdmlhamEgY29tb1xuICogREFUQSBkZSBjb25maWcg4oCUIE5PIGNvbW8gc2xvdHMgKEFEUi0wMjEpLiBMYSB2ZXJzacOzbiBsYSBwYXNhIGVsIGNvbnN1bWVyXG4gKiAoYGNvbmZpZy52ZXJzaW9uYCA9IHN1IGBBUFBfVkVSU0lPTmApOyBsYSBsaWIgTk8gaW1wb3J0YSBlbCBgdmVyc2lvbi50c2AgZGUgbGFcbiAqIGFwcC4gU2kgbm8gc2UgcGFzYSB2ZXJzacOzbiwgZWwgcGlsbCBzZSBvY3VsdGEuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLiBgQWN0aXZhdGVkUm91dGVgXG4gKiBzZSBpbnllY3RhIGB7IG9wdGlvbmFsOiB0cnVlIH1gIHNvbG8gcGFyYSBsZWVyIGVsIHJvdXRlIGRhdGEgZGUgY29uZmlnLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbiBlbCBjb25zdHJ1Y3RvciBzaSBlbCBjb25zdW1lciBub1xuICogcHJvdmV5w7MgZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvIChkZWZhdWx0IGBTZXR0aW5ncy5BYm91dGApLlxuICpcbiAqIEdPVENIQSBpMThuIENvbnRlbnRSZWFjdGlvbjogYHZhbC1jb250ZW50LXJlYWN0aW9uYCBleGlnZSBzdSBuYW1lc3BhY2VcbiAqIGBDb250ZW50UmVhY3Rpb25gIHJlZ2lzdHJhZG8gZG9uZGUgc2UgdXNlIChrZXkgZmFsdGFudGUgZW4gYmluZGluZyArIENEID1cbiAqIG5hdmVnYWRvciBjb25nZWxhZG8gZW4gZGV2KS4gYENvbnRlbnRSZWFjdGlvbkNvbXBvbmVudGAgc2UgYXV0by1yZWdpc3RyYSBlc2VcbiAqIG5hbWVzcGFjZSBlbiBTVSBjb25zdHJ1Y3RvciwgeSBjb21vIHNlIGFicmUgdsOtYSBgTW9kYWxTZXJ2aWNlYCBlc2UgY29uc3RydWN0b3JcbiAqIGNvcnJlIGFudGVzIGRlIHF1ZSBzdSB0ZW1wbGF0ZSBiaW5kZSDigJQgcXVlZGEgY3ViaWVydG8uIElndWFsIGxvIGltcG9ydGFtb3NcbiAqIGNvbW8gZGVwZW5kZW5jaWEgZXhwbMOtY2l0YSBkZSBlc3RhIHZpc3RhIHBhcmEgcXVlIGxhIGdhcmFudMOtYSBzZWEgbG9jYWwuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hYm91dC12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIElvbkJ1dHRvbixcbiAgICBJb25HcmlkLFxuICAgIElvbkljb24sXG4gICAgUGlsbENvbXBvbmVudCxcbiAgICBUaXRsZUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIEFjdGlvbkNhcmRDb21wb25lbnQsXG4gICAgQ29udGFpbmVyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx2YWwtY29udGFpbmVyIFtwcm9wc109XCJ7IHNpemU6ICdtZCcsIHBhZGRpbmc6ICdub25lJyB9XCI+XG4gICAgICA8aW9uLWdyaWQgY2xhc3M9XCJhYm91dC1ncmlkXCI+XG4gICAgICAgIDwhLS0gSEVSTzogbG9nbyArIG5hbWUgKyB2ZXJzaW9uIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJvdXQtaGVyb1wiPlxuICAgICAgICAgIEBpZiAobG9nb1ZhcigpKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiYWJvdXQtaGVyb19fbG9nbyBhYm91dC1oZXJvX19sb2dvLS12YXJcIlxuICAgICAgICAgICAgICByb2xlPVwiaW1nXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJicmFuZE5hbWUoKVwiXG4gICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid2YXIoJyArIGxvZ29WYXIoKSArICcsIHVybCgnICsgbG9nb1NyYygpICsgJykpJ1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVMb2dvVGFwKClcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGltZyBjbGFzcz1cImFib3V0LWhlcm9fX2xvZ29cIiBbc3JjXT1cImxvZ29TcmMoKVwiIFthbHRdPVwiYnJhbmROYW1lKClcIiAoY2xpY2spPVwiaGFuZGxlTG9nb1RhcCgpXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgY29udGVudDogYnJhbmROYW1lKCksXG4gICAgICAgICAgICAgIHNpemU6ICd4bGFyZ2UnLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCd0YWdsaW5lJyksXG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgQGlmICh2ZXJzaW9uKCkpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJzaW9uLXJvd1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb3B5VmVyc2lvbigpXCJcbiAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidHQoJ3ZlcnNpb25MYWJlbCcpICsgJyAnICsgdmVyc2lvbigpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHZhbC1waWxsXG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiB0dCgndmVyc2lvbkxhYmVsJykgKyAnICcgKyB2ZXJzaW9uKCksXG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAnYm9sZCcsXG4gICAgICAgICAgICAgICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNvcHktb3V0bGluZVwiIGNsYXNzPVwidmVyc2lvbi1jb3B5LWljb25cIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIERFU0NSSVBUSU9OIC0tPlxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImFib3V0LXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ2Rlc2NUaXRsZScpXCIgLz5cbiAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdkZXNjQm9keScpLFxuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgPCEtLSBBQ1RJT05TIOKAlCByYXRpbmcgYnVpbHQtaW4gKyBhY2Npb25lcyBkZWwgY29uc3VtZXIuIC0tPlxuICAgICAgICBAaWYgKHNob3dSYXRpbmcoKSB8fCBhY3Rpb25zKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYWJvdXQtc2VjdGlvbiBhYm91dC1zZWN0aW9uLS1yZXZpZXdzXCI+XG4gICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJzZWN0aW9uVGl0bGUoJ2FjdGlvbnNUaXRsZScpXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhYm91dC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIEBpZiAoc2hvd1JhdGluZygpKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwicmF0ZUFjdGlvbkNhcmQoKVwiIChvbkNsaWNrKT1cIm9wZW5SYXRpbmcoKVwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbnMoKTsgdHJhY2sgYWN0aW9uLmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgPHZhbC1hY3Rpb24tY2FyZCBbcHJvcHNdPVwiZXh0cmFBY3Rpb25DYXJkKGFjdGlvbilcIiAob25DbGljayk9XCJhY3Rpb24ub25DbGljaygpXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPCEtLSBTT0NJQUwg4oCUIHBlbsO6bHRpbW8sIGp1c3RvIGFudGVzIGRlbCBmb290ZXIgZGUgZGVyZWNob3MuIC0tPlxuICAgICAgICBAaWYgKHNvY2lhbExpbmtzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiYWJvdXQtc2VjdGlvblwiPlxuICAgICAgICAgICAgPHZhbC10aXRsZSBbcHJvcHNdPVwic2VjdGlvblRpdGxlKCdzb2NpYWxUaXRsZScpXCIgLz5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHR0KCdzb2NpYWxEZXNjJyksXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFib3V0LXNvY2lhbFwiPlxuICAgICAgICAgICAgICBAZm9yIChzIG9mIHNvY2lhbExpbmtzKCk7IHRyYWNrIHMudXJsKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzb2NpYWwtYnRuXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblVybChzLnVybClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJzLmljb25cIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDwhLS0gTGEgbMOtbmVhIGxlZ2FsIGxhIHBvbmUgdmFsLXBhZ2UtY29udGVudCwgbm8gZXN0ZSBvcmdhbmlzbTogc2kgbGFcbiAgICAgICAgICAgcGludGFyYSBhY8OhLCBsYSB2aXN0YSBBY2VyY2EgZGUgbW9zdHJhcsOtYSBkb3MgKGxlIHBhc8OzKS4gLS0+XG4gICAgICA8L2lvbi1ncmlkPlxuICAgIDwvdmFsLWNvbnRhaW5lcj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLyogQW5jaG8geSBjcmVjaW1pZW50byBjb24gZWwgcmFpbCBjb2xhcHNhZG8gbG9zIGRhIHZhbC1jb250YWluZXIgKHNpemVcbiAgICAgICAgICdtZCcpLCBubyBDU1MgbG9jYWw6IHZlciBjb250YWluZXIuY29tcG9uZW50LnNjc3MuICovXG4gICAgICAuYWJvdXQtZ3JpZCB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWhlcm8ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMjRweCAwIDE2cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWhlcm9fX2xvZ28ge1xuICAgICAgICBoZWlnaHQ6IDk2cHg7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmFib3V0LWhlcm9fX2xvZ28tLXZhciB7XG4gICAgICAgIHdpZHRoOiA5NnB4O1xuICAgICAgICBoZWlnaHQ6IDk2cHg7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgfVxuXG4gICAgICAudmVyc2lvbi1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjg1O1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC52ZXJzaW9uLXJvdzpob3ZlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB9XG5cbiAgICAgIC52ZXJzaW9uLWNvcHktaWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMCA4cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNlY3Rpb24tLXJldmlld3MgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY1ZjgpO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZF9fZGVzY3JpcHRpb24ge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLWRhcmspO1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICB9XG5cbiAgICAgIC5hYm91dC1zb2NpYWwge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgIH1cblxuICAgICAgLmFib3V0LXNvY2lhbCAuc29jaWFsLWJ0biB7XG4gICAgICAgIC0tYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAtLWJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjVmOCk7XG4gICAgICAgIC0tY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYXJrKTtcbiAgICAgICAgLS1wYWRkaW5nLXN0YXJ0OiAwO1xuICAgICAgICAtLXBhZGRpbmctZW5kOiAwO1xuICAgICAgICB3aWR0aDogNDhweDtcbiAgICAgICAgaGVpZ2h0OiA0OHB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuOmhvdmVyIHtcbiAgICAgICAgLS1iYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeS10aW50LCAjOGE0Y2U1KTtcbiAgICAgICAgLS1jb2xvcjogI2ZmZjtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuIGlvbi1pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAyMnB4O1xuICAgICAgfVxuXG4gICAgICAuYWJvdXQtZm9vdGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGJvZHkuZGFyaykgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgdmFsLWFjdGlvbi1jYXJkIDo6bmctZGVlcCAuYWN0aW9uLWNhcmQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChib2R5LmRhcmspIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkOmhvdmVyLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5hYm91dC1zZWN0aW9uLS1yZXZpZXdzIHZhbC1hY3Rpb24tY2FyZCA6Om5nLWRlZXAgLmFjdGlvbi1jYXJkOmhvdmVyLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAuYWJvdXQtc2VjdGlvbi0tcmV2aWV3cyB2YWwtYWN0aW9uLWNhcmQgOjpuZy1kZWVwIC5hY3Rpb24tY2FyZDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoYm9keS5kYXJrKSAuYWJvdXQtc29jaWFsIC5zb2NpYWwtYnRuLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG4sXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5hYm91dC1zb2NpYWwgLnNvY2lhbC1idG4ge1xuICAgICAgICAtLWJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWJvdXRWaWV3Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIG1vZGFsU2VydmljZSA9IGluamVjdChNb2RhbFNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgbG9nb1RhcENvdW50ID0gMDtcbiAgcHJpdmF0ZSBsb2dvVGFwVGltZXI/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbmZpZyB2w61hIGlucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBzZSBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgYWJvdXRDb25maWdgIChwb2JsYWRvIHBvciBgcHJvdmlkZVZhbHRlY2hBYm91dFJvdXRlc2ApLiBgcmVzb2x2ZWRDb25maWdgXG4gICAqIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzIOKAlCBlbCBpbnB1dCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuXG4gICAqXG4gICAqICoqU2lnbmFsIGlucHV0KiogKG5vIGBASW5wdXRgIGNsw6FzaWNvKTogYHJlc29sdmVkQ29uZmlnYCBlcyB1biBgY29tcHV0ZWRgIHF1ZSBzZVxuICAgKiBldmFsw7phIHBvciBwcmltZXJhIHZleiBlbiBlbCBjb25zdHJ1Y3RvciAodsOtYSBgdGhpcy5uc2Ag4oaSIGBzZXRCYWNrSGVhZGVyYCksIEFOVEVTXG4gICAqIGRlIHF1ZSB1biBgQElucHV0YCBjbMOhc2ljbyBlc3TDqSBiaW5kZWFkby4gQ29uIGBASW5wdXRgIGVsIGNvbXB1dGVkIG1lbW9pemFiYSBsYVxuICAgKiBjb25maWcgdmFjw61hIHksIGFsIG5vIGRlcGVuZGVyIGRlIG5pbmd1bmEgc2XDsWFsLCBOVU5DQSByZWNvbXB1dGFiYSDihpIgaWdub3JhYmFcbiAgICogYFtjb25maWddYCAoc29jaWFsL2FjY2lvbmVzL3ZlcnNpw7NuL21hcmNhIHF1ZWRhYmFuIGVuIGRlZmF1bHQpLiBDb21vIHNpZ25hbCwgZWxcbiAgICogY29tcHV0ZWQgbG8gdHJhY2tlYSB5IHJlY29tcHV0YSBjdWFuZG8gZWwgYmluZGluZyBsbGVnYS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0PEFib3V0Vmlld0NvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICByZWFkb25seSByZXNvbHZlZENvbmZpZyA9IGNvbXB1dGVkPFJlcXVpcmVkPE9taXQ8QWJvdXRWaWV3Q29uZmlnLCAnb25SYXRlZCc+PiAmIFBpY2s8QWJvdXRWaWV3Q29uZmlnLCAnb25SYXRlZCc+PihcbiAgICAoKSA9PiB7XG4gICAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsnYWJvdXRDb25maWcnXSA/PyB7fSkgYXMgQWJvdXRWaWV3Q29uZmlnO1xuICAgICAgY29uc3QgbWVyZ2VkOiBBYm91dFZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnKCkgPz8ge30pIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBicmFuZDoge1xuICAgICAgICAgIG5hbWU6IG1lcmdlZC5icmFuZD8ubmFtZSA/PyBERUZBVUxUX0JSQU5EX05BTUUsXG4gICAgICAgICAgbG9nb1NyYzogbWVyZ2VkLmJyYW5kPy5sb2dvU3JjID8/IERFRkFVTFRfTE9HT19TUkMsXG4gICAgICAgICAgbG9nb1ZhcjogbWVyZ2VkLmJyYW5kPy5sb2dvVmFyID8/IERFRkFVTFRfTE9HT19WQVIsXG4gICAgICAgIH0sXG4gICAgICAgIHZlcnNpb246IG1lcmdlZC52ZXJzaW9uID8/ICcnLFxuICAgICAgICBzb2NpYWxMaW5rczogbWVyZ2VkLnNvY2lhbExpbmtzID8/IFtdLFxuICAgICAgICBzaG93UmF0aW5nOiBtZXJnZWQuc2hvd1JhdGluZyA/PyB0cnVlLFxuICAgICAgICByYXRpbmdFbnRpdHlJZDogbWVyZ2VkLnJhdGluZ0VudGl0eUlkID8/IERFRkFVTFRfUkFUSU5HX0VOVElUWV9JRCxcbiAgICAgICAgYWN0aW9uczogbWVyZ2VkLmFjdGlvbnMgPz8gW10sXG4gICAgICAgIG1pbmlHYW1lc1JvdXRlOiBtZXJnZWQubWluaUdhbWVzUm91dGUgPz8gJycsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IG1lcmdlZC5pMThuTmFtZXNwYWNlID8/IERFRkFVTFRfTkFNRVNQQUNFLFxuICAgICAgICBvblJhdGVkOiBtZXJnZWQub25SYXRlZCxcbiAgICAgIH07XG4gICAgfVxuICApO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biByZXN1ZWx0byAoY2FwdHVyYWRvIHBhcmEgbGxhbWFkYXMgbm8tcmVhY3RpdmFzKS4gKi9cbiAgcHJpdmF0ZSBnZXQgbnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmkxOG5OYW1lc3BhY2U7XG4gIH1cblxuICByZWFkb25seSBicmFuZE5hbWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuYnJhbmQubmFtZSEpO1xuICByZWFkb25seSBsb2dvU3JjID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmJyYW5kLmxvZ29TcmMhKTtcbiAgcmVhZG9ubHkgbG9nb1ZhciA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5icmFuZC5sb2dvVmFyID8/ICcnKTtcbiAgcmVhZG9ubHkgdmVyc2lvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS52ZXJzaW9uKTtcbiAgcmVhZG9ubHkgc29jaWFsTGlua3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuc29jaWFsTGlua3MpO1xuICByZWFkb25seSBzaG93UmF0aW5nID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLnNob3dSYXRpbmcpO1xuICByZWFkb25seSBhY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmFjdGlvbnMpO1xuICByZWFkb25seSBtaW5pR2FtZXNSb3V0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5taW5pR2FtZXNSb3V0ZSk7XG5cbiAgLyoqIFRpdGxlIG1ldGFkYXRhIHBhcmEgc2VjY2lvbmVzIOKAlCBib2xkICsgc2l6ZSBzbWFsbC4gKi9cbiAgcmVhZG9ubHkgcmF0ZUFjdGlvbkNhcmQgPSBjb21wdXRlZDxBY3Rpb25DYXJkTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiB7IGlvbmljb246ICdzdGFyLW91dGxpbmUnLCBjb2xvcjogJ3ByaW1hcnknIH0sXG4gICAgICB0aXRsZTogdGhpcy50dCgncmF0ZVRpdGxlJyksXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy50dCgncmF0ZURlc2MnKSxcbiAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgICAgc2hhZG93ZWQ6IGZhbHNlLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhucywgQUJPVVRfVklFV19JMThOKTtcbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKiBIZWxwZXIgaTE4biBib3VuZCBhbCBuYW1lc3BhY2UgcmVzdWVsdG8uIFJlYWN0aXZvIHbDrWEgYGxhbmcoKWAuICovXG4gIHByb3RlY3RlZCB0dChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLm5zKTtcbiAgfVxuXG4gIC8qKiBUaXRsZSBtZXRhZGF0YSBwYXJhIHNlY2Npb25lcyDigJQgYm9sZCArIHNpemUgc21hbGwuICovXG4gIHByb3RlY3RlZCBzZWN0aW9uVGl0bGUoa2V5OiBzdHJpbmcpOiBUaXRsZU1ldGFkYXRhIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiB0aGlzLnR0KGtleSksXG4gICAgICBzaXplOiAnc21hbGwnLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIGJvbGQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBBY3Rpb25DYXJkTWV0YWRhdGEgcGFyYSB1bmEgYWNjacOzbiBnZW7DqXJpY2EgZGVsIGNvbnN1bWVyLiAqL1xuICBwcm90ZWN0ZWQgZXh0cmFBY3Rpb25DYXJkKGFjdGlvbjogQWJvdXRBY3Rpb24pOiBBY3Rpb25DYXJkTWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBpY29uOiB7IGlvbmljb246IGFjdGlvbi5pY29uID8/ICdjaGF0YnViYmxlLWVsbGlwc2VzLW91dGxpbmUnLCBjb2xvcjogJ3ByaW1hcnknIH0sXG4gICAgICB0aXRsZTogYWN0aW9uLmxhYmVsLFxuICAgICAgZGVzY3JpcHRpb246IGFjdGlvbi5kZXNjcmlwdGlvbixcbiAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgICAgc2hhZG93ZWQ6IGZhbHNlLFxuICAgIH07XG4gIH1cblxuICAvKiogQ29waWEgbGEgdmVyc2nDs24gYWwgcG9ydGFwYXBlbGVzICsgdG9hc3QgKGNvbG9yIGRhcmspLiAqL1xuICBhc3luYyBjb3B5VmVyc2lvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB2ID0gdGhpcy52ZXJzaW9uKCk7XG4gICAgaWYgKCF2KSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHYpO1xuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50dCgndmVyc2lvbkNvcGllZCcpLnJlcGxhY2UoJ3t2fScsIHYpLFxuICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICBkdXJhdGlvbjogMTUwMCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gY2xpcGJvYXJkIG5vIGRpc3BvbmlibGUg4oCUIHNpbGVuY2lvc29cbiAgICB9XG4gIH1cblxuICAvKiogQWJyZSB1bmEgVVJMIGV4dGVybmEgZW4gbnVldmEgdGFiLiBgbWFpbHRvOmAgcXVlZGEgZW4gbGEgbWlzbWEgdGFiLiAqL1xuICBvcGVuVXJsKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHVybC5zdGFydHNXaXRoKCdtYWlsdG86JykpIHtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnLCAnbm9vcGVuZXIsbm9yZWZlcnJlcicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFwiQ2FsaWZpY2FyIGxhIGFwcFwiIOKAlCBhYnJlIGB2YWwtY29udGVudC1yZWFjdGlvbmAgZGVudHJvIGRlbCBtb2RhbCBsYXlvdXRcbiAgICogY2Fuw7NuaWNvLiBFbCBsYXlvdXQgZXZpdGEgc29sYXBlcyBjb24gc3RhdHVzL3NhZmUgYXJlYSB5IG1hbnRpZW5lIHVuIHBhdHLDs25cbiAgICogY29uc2lzdGVudGUgZW50cmUgbW9iaWxlIGZ1bGxzY3JlZW4geSBkZXNrdG9wIGNhcmQuXG4gICAqL1xuICBhc3luYyBvcGVuUmF0aW5nKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlYWN0aW9uUHJvcHM6IFBhcnRpYWw8Q29udGVudFJlYWN0aW9uTWV0YWRhdGE+ID0ge1xuICAgICAgLy8gZW50aXR5VHlwZSBcImFwcFwiIGRpc3Rpbmd1ZSBlc3RhIHJlYWNjacOzbiBkZSBsYXMgZGUgYXJ0w61jdWxvcy9GQVFzLlxuICAgICAgZW50aXR5UmVmOiB7IGVudGl0eVR5cGU6ICdhcHAnLCBlbnRpdHlJZDogdGhpcy5yZXNvbHZlZENvbmZpZygpLnJhdGluZ0VudGl0eUlkIH0sXG4gICAgICBxdWVzdGlvbjogdGhpcy50dCgncmF0ZVF1ZXN0aW9uJyksXG4gICAgICBjb21tZW50UGxhY2Vob2xkZXI6IHRoaXMudHQoJ3JhdGVDb21tZW50JyksXG4gICAgICB0aGFua1lvdU1lc3NhZ2U6IHRoaXMudHQoJ3JhdGVUaGFua3MnKSxcbiAgICAgIHNob3dDb21tZW50OiB0cnVlLFxuICAgICAgc2hvd1RoYW5rWW91OiB0cnVlLFxuICAgICAgLy8gTW9kYWwgb25lLXNob3Q6IE5PIGJsb3F1ZWFyIGVsIHJlbmRlciBjb24gZWwgY2hlY2sgZGUgcmF0aW5nIHByZXZpby5cbiAgICAgIHNraXBJbml0aWFsQ2hlY2s6IHRydWUsXG4gICAgICBlbW9qaXM6IFsn8J+YlScsICfwn5mCJywgJ/CfmI0nXSxcbiAgICAgIGVtb2ppTGFiZWxzOiBbdGhpcy50dCgncmF0ZUJhZCcpLCB0aGlzLnR0KCdyYXRlTWlkJyksIHRoaXMudHQoJ3JhdGVHb29kJyldLFxuICAgICAgc2hvd0Nsb3NlQnV0dG9uOiBmYWxzZSxcbiAgICB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW5BZGFwdGl2ZTxDb250ZW50UmVhY3Rpb25Nb2RhbENvbXBvbmVudCwgUmVhY3Rpb25TdWJtaXRFdmVudD4oe1xuICAgICAgY29tcG9uZW50OiBDb250ZW50UmVhY3Rpb25Nb2RhbENvbXBvbmVudCxcbiAgICAgIGNvbXBvbmVudFByb3BzOiB7XG4gICAgICAgIHByb3BzOiByZWFjdGlvblByb3BzLFxuICAgICAgICB0aXRsZTogdGhpcy50dCgncmF0ZU1vZGFsVGl0bGUnKSxcbiAgICAgICAgY2xvc2VMYWJlbDogdGhpcy50dCgncmF0ZUNsb3NlJyksXG4gICAgICAgIGRpc21pc3NPblN1Ym1pdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKHJlc3VsdC5yb2xlID09PSAnc3VibWl0Jykge1xuICAgICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uUmF0ZWQ/LigpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUxvZ29UYXAoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1pbmlHYW1lc1JvdXRlKCkpIHJldHVybjtcbiAgICB0aGlzLmxvZ29UYXBDb3VudCArPSAxO1xuICAgIGlmICh0aGlzLmxvZ29UYXBUaW1lcikgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmxvZ29UYXBUaW1lcik7XG4gICAgdGhpcy5sb2dvVGFwVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmxvZ29UYXBDb3VudCA9IDA7XG4gICAgICB0aGlzLmxvZ29UYXBUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9LCBFQVNURVJfRUdHX1dJTkRPV19NUyk7XG4gICAgaWYgKHRoaXMubG9nb1RhcENvdW50IDwgRUFTVEVSX0VHR19UQVBTKSByZXR1cm47XG4gICAgdGhpcy5sb2dvVGFwQ291bnQgPSAwO1xuICAgIGlmICh0aGlzLmxvZ29UYXBUaW1lcikge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLmxvZ29UYXBUaW1lcik7XG4gICAgICB0aGlzLmxvZ29UYXBUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdm9pZCB0aGlzLm9wZW5NaW5pR2FtZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb3Blbk1pbmlHYW1lcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5taW5pR2FtZXNSb3V0ZSgpO1xuICAgIGlmICghYmFzZSkgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYmFzZSk7XG4gIH1cbn1cbiJdfQ==
|