@rocketshow/designer 1.33.0 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/i18n/de.json +2 -1
- package/assets/i18n/en.json +2 -1
- package/esm2022/lib/designer.component.mjs +197 -130
- package/esm2022/lib/designer.module.mjs +5 -2
- package/esm2022/lib/dropzone/dropzone.component.mjs +93 -0
- package/esm2022/lib/effect/effect-curve/effect-curve.component.mjs +14 -6
- package/esm2022/lib/fixture/fixture-capability/fixture-capability.component.mjs +5 -5
- package/esm2022/lib/fixture/fixture-channel/fixture-channel.component.mjs +6 -4
- package/esm2022/lib/fixture/fixture.component.mjs +25 -15
- package/esm2022/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.mjs +4 -4
- package/esm2022/lib/fixture-pool/fixture-pool.component.mjs +75 -21
- package/esm2022/lib/models/cached-fixture.mjs +1 -1
- package/esm2022/lib/models/fixture-matrix-pixel-group-constraints.mjs +27 -0
- package/esm2022/lib/models/fixture-matrix-pixel-group.mjs +12 -0
- package/esm2022/lib/models/fixture-matrix.mjs +25 -0
- package/esm2022/lib/models/fixture-mode-channel.mjs +26 -0
- package/esm2022/lib/models/fixture-mode.mjs +5 -2
- package/esm2022/lib/models/fixture-physical.mjs +14 -0
- package/esm2022/lib/models/fixture-profile.mjs +16 -1
- package/esm2022/lib/models/fixture.mjs +2 -2
- package/esm2022/lib/models/preset-fixture.mjs +10 -0
- package/esm2022/lib/models/preset.mjs +10 -1
- package/esm2022/lib/models/project.mjs +11 -1
- package/esm2022/lib/preview/models/color-changer-3d.mjs +5 -108
- package/esm2022/lib/preview/models/fixture-3d.mjs +125 -1
- package/esm2022/lib/preview/models/moving-head-3d.mjs +3 -122
- package/esm2022/lib/preview/preview.component.mjs +21 -14
- package/esm2022/lib/services/config.service.mjs +2 -1
- package/esm2022/lib/services/fixture.service.mjs +251 -43
- package/esm2022/lib/services/preset.service.mjs +91 -42
- package/esm2022/lib/services/preview.service.mjs +65 -64
- package/esm2022/lib/services/project-load.service.mjs +64 -4
- package/esm2022/lib/services/project.service.mjs +11 -15
- package/esm2022/lib/timeline/composition-settings/composition-settings.component.mjs +14 -44
- package/fesm2022/rocketshow-designer.mjs +1336 -791
- package/fesm2022/rocketshow-designer.mjs.map +1 -1
- package/lib/designer.component.d.ts +5 -5
- package/lib/designer.module.d.ts +15 -14
- package/lib/dropzone/dropzone.component.d.ts +24 -0
- package/lib/fixture/fixture.component.d.ts +4 -3
- package/lib/models/cached-fixture.d.ts +1 -0
- package/lib/models/fixture-matrix-pixel-group-constraints.d.ts +8 -0
- package/lib/models/fixture-matrix-pixel-group.d.ts +6 -0
- package/lib/models/fixture-matrix.d.ts +6 -0
- package/lib/models/fixture-mode-channel.d.ts +8 -0
- package/lib/models/fixture-mode.d.ts +3 -1
- package/lib/models/fixture-physical.d.ts +4 -0
- package/lib/models/fixture-profile.d.ts +5 -0
- package/lib/models/preset-fixture.d.ts +5 -0
- package/lib/models/preset.d.ts +2 -0
- package/lib/models/project.d.ts +3 -0
- package/lib/preview/models/color-changer-3d.d.ts +1 -11
- package/lib/preview/models/fixture-3d.d.ts +11 -0
- package/lib/preview/models/moving-head-3d.d.ts +1 -11
- package/lib/services/config.service.d.ts +1 -0
- package/lib/services/fixture.service.d.ts +7 -2
- package/lib/services/preset.service.d.ts +4 -2
- package/lib/services/preview.service.d.ts +2 -4
- package/lib/services/project-load.service.d.ts +5 -1
- package/lib/services/project.service.d.ts +2 -3
- package/lib/services/timeline.service.d.ts +1 -1
- package/lib/timeline/composition-settings/composition-settings.component.d.ts +2 -1
- package/package.json +1 -1
- package/rocketshow-designer-1.35.0.tgz +0 -0
- package/esm2022/lib/models/universe.mjs +0 -11
- package/esm2022/lib/services/universe.service.mjs +0 -23
- package/lib/models/universe.d.ts +0 -8
- package/lib/services/universe.service.d.ts +0 -9
- package/rocketshow-designer-1.33.0.tgz +0 -0
|
@@ -49,6 +49,7 @@ import { UserLoginComponent } from './user/user-login/user-login.component';
|
|
|
49
49
|
import { UserRegisterComponent } from './user/user-register/user-register.component';
|
|
50
50
|
import { WaitDialogComponent } from './wait-dialog/wait-dialog.component';
|
|
51
51
|
import { WarningDialogComponent } from './warning-dialog/warning-dialog.component';
|
|
52
|
+
import { DropzoneComponent } from './dropzone/dropzone.component';
|
|
52
53
|
import * as i0 from "@angular/core";
|
|
53
54
|
import * as i1 from "@angular/router";
|
|
54
55
|
import * as i2 from "ngx-toastr";
|
|
@@ -112,6 +113,7 @@ export class DesignerModule {
|
|
|
112
113
|
SceneSettingsComponent,
|
|
113
114
|
ProjectSaveComponent,
|
|
114
115
|
FixturePoolCreateFromFileComponent,
|
|
116
|
+
DropzoneComponent,
|
|
115
117
|
],
|
|
116
118
|
imports: [
|
|
117
119
|
RouterModule.forRoot([], {}),
|
|
@@ -169,7 +171,8 @@ export class DesignerModule {
|
|
|
169
171
|
PresetSettingsComponent,
|
|
170
172
|
SceneSettingsComponent,
|
|
171
173
|
ProjectSaveComponent,
|
|
172
|
-
FixturePoolCreateFromFileComponent
|
|
174
|
+
FixturePoolCreateFromFileComponent,
|
|
175
|
+
DropzoneComponent], imports: [i1.RouterModule, BrowserModule,
|
|
173
176
|
BrowserAnimationsModule,
|
|
174
177
|
HttpClientModule,
|
|
175
178
|
FormsModule,
|
|
@@ -180,4 +183,4 @@ export class DesignerModule {
|
|
|
180
183
|
TypeaheadModule,
|
|
181
184
|
SortablejsModule,
|
|
182
185
|
DropzoneModule, i2.ToastrModule], exports: [DesignerComponent] }); })();
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8s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LG9CQUFvQjtRQUNwQixzQkFBc0I7UUFDdEIsY0FBYztRQUNkLGlCQUFpQjtRQUNqQiwrQkFBK0I7UUFDL0IsZ0JBQWdCO1FBQ2hCLGdDQUFnQztRQUNoQywwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQixnQ0FBZ0M7UUFDaEMscUJBQXFCO1FBQ3JCLDRCQUE0QjtRQUM1QixhQUFhO1FBQ2IsaUNBQWlDO1FBQ2pDLGlDQUFpQztRQUNqQyx1QkFBdUI7UUFDdkIsb0NBQW9DO1FBQ3BDLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsdUJBQXVCO1FBQ3ZCLG1CQUFtQjtRQUNuQixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLG9CQUFvQjtRQUNwQiw2QkFBNkI7UUFDN0IsY0FBYztRQUNkLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsb0JBQW9CO1FBQ3BCLGtDQUFrQyw4QkFJbEMsYUFBYTtRQUNiLHVCQUF1QjtRQUN2QixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLHdCQUF3QjtRQUN4QixlQUFlO1FBQ2YsZUFBZTtRQUNmLGFBQWE7UUFDYixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGNBQWMsOEJBS04saUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5neEJvb3RzdHJhcFNsaWRlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAtc2xpZGVyJztcbmltcG9ydCB7IEFjY29yZGlvbk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvYWNjb3JkaW9uJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuaW1wb3J0IHsgVHlwZWFoZWFkTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90eXBlYWhlYWQnO1xuaW1wb3J0IHsgRHJvcHpvbmVNb2R1bGUgfSBmcm9tICduZ3gtZHJvcHpvbmUtd3JhcHBlcic7XG5pbXBvcnQgeyBTb3J0YWJsZWpzTW9kdWxlIH0gZnJvbSAnbmd4LXNvcnRhYmxlanMtcGx1cyc7XG5pbXBvcnQgeyBUb2FzdHJNb2R1bGUgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IEFycmF5U29ydFBpcGUgfSBmcm9tICcuL2FycmF5LXNvcnQtcGlwZSc7XG5pbXBvcnQgeyBEZXNpZ25lckNvbXBvbmVudCB9IGZyb20gJy4vZGVzaWduZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVmZmVjdEN1cnZlQ29tcG9uZW50IH0gZnJvbSAnLi9lZmZlY3QvZWZmZWN0LWN1cnZlL2VmZmVjdC1jdXJ2ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWZmZWN0UGFuVGlsdENvbXBvbmVudCB9IGZyb20gJy4vZWZmZWN0L2VmZmVjdC1wYW4tdGlsdC9lZmZlY3QtcGFuLXRpbHQuY29tcG9uZW50JztcbmltcG9ydCB7IEVmZmVjdENvbXBvbmVudCB9IGZyb20gJy4vZWZmZWN0L2VmZmVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXJyb3JEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2Vycm9yLWRpYWxvZy9lcnJvci1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEZpeHR1cmVQb29sQ3JlYXRlRnJvbUZpbGVDb21wb25lbnQgfSBmcm9tICcuL2ZpeHR1cmUtcG9vbC9maXh0dXJlLXBvb2wtY3JlYXRlLWZyb20tZmlsZS9maXh0dXJlLXBvb2wtY3JlYXRlLWZyb20tZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZVBvb2xDb21wb25lbnQgfSBmcm9tICcuL2ZpeHR1cmUtcG9vbC9maXh0dXJlLXBvb2wuY29tcG9uZW50JztcbmltcG9ydCB7IEZpeHR1cmVDYXBhYmlsaXR5Q2hhbm5lbENvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LWNoYW5uZWwvZml4dHVyZS1jYXBhYmlsaXR5LWNoYW5uZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEZpeHR1cmVDYXBhYmlsaXR5Q29sb3JXaGVlbENvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LWNvbG9yLXdoZWVsL2ZpeHR1cmUtY2FwYWJpbGl0eS1jb2xvci13aGVlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZUNhcGFiaWxpdHlDb2xvckNvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LWNvbG9yL2ZpeHR1cmUtY2FwYWJpbGl0eS1jb2xvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZUNhcGFiaWxpdHlEaW1tZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpeHR1cmUvZml4dHVyZS1jYXBhYmlsaXR5L2ZpeHR1cmUtY2FwYWJpbGl0eS1kaW1tZXIvZml4dHVyZS1jYXBhYmlsaXR5LWRpbW1lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZUNhcGFiaWxpdHlQYW5UaWx0Q29tcG9uZW50IH0gZnJvbSAnLi9maXh0dXJlL2ZpeHR1cmUtY2FwYWJpbGl0eS9maXh0dXJlLWNhcGFiaWxpdHktcGFuLXRpbHQvZml4dHVyZS1jYXBhYmlsaXR5LXBhbi10aWx0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaXh0dXJlQ2FwYWJpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaXh0dXJlQ2hhbm5lbENvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLWNoYW5uZWwvZml4dHVyZS1jaGFubmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaXh0dXJlU2V0dGluZ3NQb3NpdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLXNldHRpbmdzL2ZpeHR1cmUtc2V0dGluZ3MtcG9zaXRpb24vZml4dHVyZS1zZXR0aW5ncy1wb3NpdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZVNldHRpbmdzU3RhZ2VDb21wb25lbnQgfSBmcm9tICcuL2ZpeHR1cmUvZml4dHVyZS1zZXR0aW5ncy9maXh0dXJlLXNldHRpbmdzLXN0YWdlL2ZpeHR1cmUtc2V0dGluZ3Mtc3RhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEZpeHR1cmVTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLXNldHRpbmdzL2ZpeHR1cmUtc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IEZpeHR1cmVDb21wb25lbnQgfSBmcm9tICcuL2ZpeHR1cmUvZml4dHVyZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW50cm9Db21wb25lbnQgfSBmcm9tICcuL2ludHJvL2ludHJvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXN0ZXJEaW1tZXJDb21wb25lbnQgfSBmcm9tICcuL21hc3Rlci1kaW1tZXIvbWFzdGVyLWRpbW1lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJlc2V0U2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3ByZXNldC9wcmVzZXQtc2V0dGluZ3MvcHJlc2V0LXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcmVzZXRDb21wb25lbnQgfSBmcm9tICcuL3ByZXNldC9wcmVzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdEJyb3dzZXJDb21wb25lbnQgfSBmcm9tICcuL3Byb2plY3QvcHJvamVjdC1icm93c2VyL3Byb2plY3QtYnJvd3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdEltcG9ydENvbXBvbmVudCB9IGZyb20gJy4vcHJvamVjdC9wcm9qZWN0LWltcG9ydC9wcm9qZWN0LWltcG9ydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdFNhdmVDb21wb25lbnQgfSBmcm9tICcuL3Byb2plY3QvcHJvamVjdC1zYXZlL3Byb2plY3Qtc2F2ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdFNoYXJlQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9qZWN0L3Byb2plY3Qtc2hhcmUvcHJvamVjdC1zaGFyZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NlbmVTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vc2NlbmUvc2NlbmUtc2V0dGluZ3Mvc2NlbmUtc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFNjZW5lQ29tcG9uZW50IH0gZnJvbSAnLi9zY2VuZS9zY2VuZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9zaXRpb25TZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vdGltZWxpbmUvY29tcG9zaXRpb24tc2V0dGluZ3MvY29tcG9zaXRpb24tc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVsaW5lR3JpZENvbXBvbmVudCB9IGZyb20gJy4vdGltZWxpbmUvdGltZWxpbmUtZ3JpZC90aW1lbGluZS1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lbGluZUNvbXBvbmVudCB9IGZyb20gJy4vdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4vdXNlci91c2VyLWxvZ2luL3VzZXItbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJSZWdpc3RlckNvbXBvbmVudCB9IGZyb20gJy4vdXNlci91c2VyLXJlZ2lzdGVyL3VzZXItcmVnaXN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdhaXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3dhaXQtZGlhbG9nL3dhaXQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXYXJuaW5nRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi93YXJuaW5nLWRpYWxvZy93YXJuaW5nLWRpYWxvZy5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBEZXNpZ25lckNvbXBvbmVudCxcbiAgICBXYXJuaW5nRGlhbG9nQ29tcG9uZW50LFxuICAgIFByZXZpZXdDb21wb25lbnQsXG4gICAgRWZmZWN0Q3VydmVDb21wb25lbnQsXG4gICAgRWZmZWN0UGFuVGlsdENvbXBvbmVudCxcbiAgICBTY2VuZUNvbXBvbmVudCxcbiAgICBUaW1lbGluZUNvbXBvbmVudCxcbiAgICBGaXh0dXJlQ2FwYWJpbGl0eUNvbG9yQ29tcG9uZW50LFxuICAgIEZpeHR1cmVDb21wb25lbnQsXG4gICAgRml4dHVyZVNldHRpbmdzUG9zaXRpb25Db21wb25lbnQsXG4gICAgRml4dHVyZUNhcGFiaWxpdHlDb21wb25lbnQsXG4gICAgRml4dHVyZVNldHRpbmdzQ29tcG9uZW50LFxuICAgIEVmZmVjdENvbXBvbmVudCxcbiAgICBGaXh0dXJlUG9vbENvbXBvbmVudCxcbiAgICBQcmVzZXRDb21wb25lbnQsXG4gICAgTWFzdGVyRGltbWVyQ29tcG9uZW50LFxuICAgIEZpeHR1cmVDYXBhYmlsaXR5RGltbWVyQ29tcG9uZW50LFxuICAgIFRpbWVsaW5lR3JpZENvbXBvbmVudCxcbiAgICBDb21wb3NpdGlvblNldHRpbmdzQ29tcG9uZW50LFxuICAgIEFycmF5U29ydFBpcGUsXG4gICAgRml4dHVyZUNhcGFiaWxpdHlQYW5UaWx0Q29tcG9uZW50LFxuICAgIEZpeHR1cmVDYXBhYmlsaXR5Q2hhbm5lbENvbXBvbmVudCxcbiAgICBGaXh0dXJlQ2hhbm5lbENvbXBvbmVudCxcbiAgICBGaXh0dXJlQ2FwYWJpbGl0eUNvbG9yV2hlZWxDb21wb25lbnQsXG4gICAgVXNlckxvZ2luQ29tcG9uZW50LFxuICAgIFVzZXJSZWdpc3RlckNvbXBvbmVudCxcbiAgICBQcm9qZWN0QnJvd3NlckNvbXBvbmVudCxcbiAgICBXYWl0RGlhbG9nQ29tcG9uZW50LFxuICAgIFByb2plY3RJbXBvcnRDb21wb25lbnQsXG4gICAgUHJvamVjdFNoYXJlQ29tcG9uZW50LFxuICAgIEVycm9yRGlhbG9nQ29tcG9uZW50LFxuICAgIEZpeHR1cmVTZXR0aW5nc1N0YWdlQ29tcG9uZW50LFxuICAgIEludHJvQ29tcG9uZW50LFxuICAgIFByZXNldFNldHRpbmdzQ29tcG9uZW50LFxuICAgIFNjZW5lU2V0dGluZ3NDb21wb25lbnQsXG4gICAgUHJvamVjdFNhdmVDb21wb25lbnQsXG4gICAgRml4dHVyZVBvb2xDcmVhdGVGcm9tRmlsZUNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIFJvdXRlck1vZHVsZS5mb3JSb290KFtdLCB7fSksXG4gICAgQnJvd3Nlck1vZHVsZSxcbiAgICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5neEJvb3RzdHJhcFNsaWRlck1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQWNjb3JkaW9uTW9kdWxlLFxuICAgIFBvcG92ZXJNb2R1bGUsXG4gICAgVHlwZWFoZWFkTW9kdWxlLFxuICAgIFNvcnRhYmxlanNNb2R1bGUsXG4gICAgRHJvcHpvbmVNb2R1bGUsXG4gICAgVG9hc3RyTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgbmV3ZXN0T25Ub3A6IHRydWUsXG4gICAgfSksXG4gIF0sXG4gIGV4cG9ydHM6IFtEZXNpZ25lckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIERlc2lnbmVyTW9kdWxlIHt9XG4iXX0=
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9kZXNpZ25lci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxzRkFBc0YsQ0FBQztBQUMxSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw4RkFBOEYsQ0FBQztBQUNqSixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxzR0FBc0csQ0FBQztBQUM1SixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUMzSSxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQztBQUM5SSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxnR0FBZ0csQ0FBQztBQUNuSixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUM1SSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvRkFBb0YsQ0FBQztBQUNuSSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM5RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQThEbEUsTUFBTSxPQUFPLGNBQWM7K0VBQWQsY0FBYzttRUFBZCxjQUFjO3VFQWxCdkIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQzVCLGFBQWE7WUFDYix1QkFBdUI7WUFDdkIsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCx3QkFBd0I7WUFDeEIsZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsWUFBWSxDQUFDLE9BQU8sQ0FBQztnQkFDbkIsV0FBVyxFQUFFLElBQUk7YUFDbEIsQ0FBQzs7aUZBSU8sY0FBYztjQTVEMUIsUUFBUTtlQUFDO2dCQUNSLFlBQVksRUFBRTtvQkFDWixpQkFBaUI7b0JBQ2pCLHNCQUFzQjtvQkFDdEIsZ0JBQWdCO29CQUNoQixvQkFBb0I7b0JBQ3BCLHNCQUFzQjtvQkFDdEIsY0FBYztvQkFDZCxpQkFBaUI7b0JBQ2pCLCtCQUErQjtvQkFDL0IsZ0JBQWdCO29CQUNoQixnQ0FBZ0M7b0JBQ2hDLDBCQUEwQjtvQkFDMUIsd0JBQXdCO29CQUN4QixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsZUFBZTtvQkFDZixxQkFBcUI7b0JBQ3JCLGdDQUFnQztvQkFDaEMscUJBQXFCO29CQUNyQiw0QkFBNEI7b0JBQzVCLGFBQWE7b0JBQ2IsaUNBQWlDO29CQUNqQyxpQ0FBaUM7b0JBQ2pDLHVCQUF1QjtvQkFDdkIsb0NBQW9DO29CQUNwQyxrQkFBa0I7b0JBQ2xCLHFCQUFxQjtvQkFDckIsdUJBQXVCO29CQUN2QixtQkFBbUI7b0JBQ25CLHNCQUFzQjtvQkFDdEIscUJBQXFCO29CQUNyQixvQkFBb0I7b0JBQ3BCLDZCQUE2QjtvQkFDN0IsY0FBYztvQkFDZCx1QkFBdUI7b0JBQ3ZCLHNCQUFzQjtvQkFDdEIsb0JBQW9CO29CQUNwQixrQ0FBa0M7b0JBQ2xDLGlCQUFpQjtpQkFDbEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDNUIsYUFBYTtvQkFDYix1QkFBdUI7b0JBQ3ZCLGdCQUFnQjtvQkFDaEIsV0FBVztvQkFDWCx3QkFBd0I7b0JBQ3hCLGVBQWU7b0JBQ2YsZUFBZTtvQkFDZixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsZ0JBQWdCO29CQUNoQixjQUFjO29CQUNkLFlBQVksQ0FBQyxPQUFPLENBQUM7d0JBQ25CLFdBQVcsRUFBRSxJQUFJO3FCQUNsQixDQUFDO2lCQUNIO2dCQUNELE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2FBQzdCOzt3RkFDWSxjQUFjLG1CQTFEdkIsaUJBQWlCO1FBQ2pCLHNCQUFzQjtRQUN0QixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLHNCQUFzQjtRQUN0QixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLCtCQUErQjtRQUMvQixnQkFBZ0I7UUFDaEIsZ0NBQWdDO1FBQ2hDLDBCQUEwQjtRQUMxQix3QkFBd0I7UUFDeEIsZUFBZTtRQUNmLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2YscUJBQXFCO1FBQ3JCLGdDQUFnQztRQUNoQyxxQkFBcUI7UUFDckIsNEJBQTRCO1FBQzVCLGFBQWE7UUFDYixpQ0FBaUM7UUFDakMsaUNBQWlDO1FBQ2pDLHVCQUF1QjtRQUN2QixvQ0FBb0M7UUFDcEMsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLHNCQUFzQjtRQUN0QixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLDZCQUE2QjtRQUM3QixjQUFjO1FBQ2QsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0QixvQkFBb0I7UUFDcEIsa0NBQWtDO1FBQ2xDLGlCQUFpQiw4QkFJakIsYUFBYTtRQUNiLHVCQUF1QjtRQUN2QixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLHdCQUF3QjtRQUN4QixlQUFlO1FBQ2YsZUFBZTtRQUNmLGFBQWE7UUFDYixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGNBQWMsOEJBS04saUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE5neEJvb3RzdHJhcFNsaWRlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAtc2xpZGVyJztcbmltcG9ydCB7IEFjY29yZGlvbk1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvYWNjb3JkaW9uJztcbmltcG9ydCB7IFBvcG92ZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3BvcG92ZXInO1xuaW1wb3J0IHsgVHlwZWFoZWFkTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90eXBlYWhlYWQnO1xuaW1wb3J0IHsgRHJvcHpvbmVNb2R1bGUgfSBmcm9tICduZ3gtZHJvcHpvbmUtd3JhcHBlcic7XG5pbXBvcnQgeyBTb3J0YWJsZWpzTW9kdWxlIH0gZnJvbSAnbmd4LXNvcnRhYmxlanMtcGx1cyc7XG5pbXBvcnQgeyBUb2FzdHJNb2R1bGUgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IEFycmF5U29ydFBpcGUgfSBmcm9tICcuL2FycmF5LXNvcnQtcGlwZSc7XG5pbXBvcnQgeyBEZXNpZ25lckNvbXBvbmVudCB9IGZyb20gJy4vZGVzaWduZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVmZmVjdEN1cnZlQ29tcG9uZW50IH0gZnJvbSAnLi9lZmZlY3QvZWZmZWN0LWN1cnZlL2VmZmVjdC1jdXJ2ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWZmZWN0UGFuVGlsdENvbXBvbmVudCB9IGZyb20gJy4vZWZmZWN0L2VmZmVjdC1wYW4tdGlsdC9lZmZlY3QtcGFuLXRpbHQuY29tcG9uZW50JztcbmltcG9ydCB7IEVmZmVjdENvbXBvbmVudCB9IGZyb20gJy4vZWZmZWN0L2VmZmVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXJyb3JEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2Vycm9yLWRpYWxvZy9lcnJvci1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEZpeHR1cmVQb29sQ3JlYXRlRnJvbUZpbGVDb21wb25lbnQgfSBmcm9tICcuL2ZpeHR1cmUtcG9vbC9maXh0dXJlLXBvb2wtY3JlYXRlLWZyb20tZmlsZS9maXh0dXJlLXBvb2wtY3JlYXRlLWZyb20tZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZVBvb2xDb21wb25lbnQgfSBmcm9tICcuL2ZpeHR1cmUtcG9vbC9maXh0dXJlLXBvb2wuY29tcG9uZW50JztcbmltcG9ydCB7IEZpeHR1cmVDYXBhYmlsaXR5Q2hhbm5lbENvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LWNoYW5uZWwvZml4dHVyZS1jYXBhYmlsaXR5LWNoYW5uZWwuY29tcG9uZW50JztcbmltcG9ydCB7IEZpeHR1cmVDYXBhYmlsaXR5Q29sb3JXaGVlbENvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LWNvbG9yLXdoZWVsL2ZpeHR1cmUtY2FwYWJpbGl0eS1jb2xvci13aGVlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZUNhcGFiaWxpdHlDb2xvckNvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LWNvbG9yL2ZpeHR1cmUtY2FwYWJpbGl0eS1jb2xvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZUNhcGFiaWxpdHlEaW1tZXJDb21wb25lbnQgfSBmcm9tICcuL2ZpeHR1cmUvZml4dHVyZS1jYXBhYmlsaXR5L2ZpeHR1cmUtY2FwYWJpbGl0eS1kaW1tZXIvZml4dHVyZS1jYXBhYmlsaXR5LWRpbW1lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZUNhcGFiaWxpdHlQYW5UaWx0Q29tcG9uZW50IH0gZnJvbSAnLi9maXh0dXJlL2ZpeHR1cmUtY2FwYWJpbGl0eS9maXh0dXJlLWNhcGFiaWxpdHktcGFuLXRpbHQvZml4dHVyZS1jYXBhYmlsaXR5LXBhbi10aWx0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaXh0dXJlQ2FwYWJpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaXh0dXJlQ2hhbm5lbENvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLWNoYW5uZWwvZml4dHVyZS1jaGFubmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaXh0dXJlU2V0dGluZ3NQb3NpdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLXNldHRpbmdzL2ZpeHR1cmUtc2V0dGluZ3MtcG9zaXRpb24vZml4dHVyZS1zZXR0aW5ncy1wb3NpdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRml4dHVyZVNldHRpbmdzU3RhZ2VDb21wb25lbnQgfSBmcm9tICcuL2ZpeHR1cmUvZml4dHVyZS1zZXR0aW5ncy9maXh0dXJlLXNldHRpbmdzLXN0YWdlL2ZpeHR1cmUtc2V0dGluZ3Mtc3RhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEZpeHR1cmVTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vZml4dHVyZS9maXh0dXJlLXNldHRpbmdzL2ZpeHR1cmUtc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IEZpeHR1cmVDb21wb25lbnQgfSBmcm9tICcuL2ZpeHR1cmUvZml4dHVyZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW50cm9Db21wb25lbnQgfSBmcm9tICcuL2ludHJvL2ludHJvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXN0ZXJEaW1tZXJDb21wb25lbnQgfSBmcm9tICcuL21hc3Rlci1kaW1tZXIvbWFzdGVyLWRpbW1lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJlc2V0U2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3ByZXNldC9wcmVzZXQtc2V0dGluZ3MvcHJlc2V0LXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcmVzZXRDb21wb25lbnQgfSBmcm9tICcuL3ByZXNldC9wcmVzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IFByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL3ByZXZpZXcvcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdEJyb3dzZXJDb21wb25lbnQgfSBmcm9tICcuL3Byb2plY3QvcHJvamVjdC1icm93c2VyL3Byb2plY3QtYnJvd3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdEltcG9ydENvbXBvbmVudCB9IGZyb20gJy4vcHJvamVjdC9wcm9qZWN0LWltcG9ydC9wcm9qZWN0LWltcG9ydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdFNhdmVDb21wb25lbnQgfSBmcm9tICcuL3Byb2plY3QvcHJvamVjdC1zYXZlL3Byb2plY3Qtc2F2ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvamVjdFNoYXJlQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9qZWN0L3Byb2plY3Qtc2hhcmUvcHJvamVjdC1zaGFyZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NlbmVTZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vc2NlbmUvc2NlbmUtc2V0dGluZ3Mvc2NlbmUtc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFNjZW5lQ29tcG9uZW50IH0gZnJvbSAnLi9zY2VuZS9zY2VuZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9zaXRpb25TZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gJy4vdGltZWxpbmUvY29tcG9zaXRpb24tc2V0dGluZ3MvY29tcG9zaXRpb24tc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVsaW5lR3JpZENvbXBvbmVudCB9IGZyb20gJy4vdGltZWxpbmUvdGltZWxpbmUtZ3JpZC90aW1lbGluZS1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaW1lbGluZUNvbXBvbmVudCB9IGZyb20gJy4vdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4vdXNlci91c2VyLWxvZ2luL3VzZXItbG9naW4uY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJSZWdpc3RlckNvbXBvbmVudCB9IGZyb20gJy4vdXNlci91c2VyLXJlZ2lzdGVyL3VzZXItcmVnaXN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdhaXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL3dhaXQtZGlhbG9nL3dhaXQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXYXJuaW5nRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi93YXJuaW5nLWRpYWxvZy93YXJuaW5nLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHJvcHpvbmVDb21wb25lbnQgfSBmcm9tICcuL2Ryb3B6b25lL2Ryb3B6b25lLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIERlc2lnbmVyQ29tcG9uZW50LFxuICAgIFdhcm5pbmdEaWFsb2dDb21wb25lbnQsXG4gICAgUHJldmlld0NvbXBvbmVudCxcbiAgICBFZmZlY3RDdXJ2ZUNvbXBvbmVudCxcbiAgICBFZmZlY3RQYW5UaWx0Q29tcG9uZW50LFxuICAgIFNjZW5lQ29tcG9uZW50LFxuICAgIFRpbWVsaW5lQ29tcG9uZW50LFxuICAgIEZpeHR1cmVDYXBhYmlsaXR5Q29sb3JDb21wb25lbnQsXG4gICAgRml4dHVyZUNvbXBvbmVudCxcbiAgICBGaXh0dXJlU2V0dGluZ3NQb3NpdGlvbkNvbXBvbmVudCxcbiAgICBGaXh0dXJlQ2FwYWJpbGl0eUNvbXBvbmVudCxcbiAgICBGaXh0dXJlU2V0dGluZ3NDb21wb25lbnQsXG4gICAgRWZmZWN0Q29tcG9uZW50LFxuICAgIEZpeHR1cmVQb29sQ29tcG9uZW50LFxuICAgIFByZXNldENvbXBvbmVudCxcbiAgICBNYXN0ZXJEaW1tZXJDb21wb25lbnQsXG4gICAgRml4dHVyZUNhcGFiaWxpdHlEaW1tZXJDb21wb25lbnQsXG4gICAgVGltZWxpbmVHcmlkQ29tcG9uZW50LFxuICAgIENvbXBvc2l0aW9uU2V0dGluZ3NDb21wb25lbnQsXG4gICAgQXJyYXlTb3J0UGlwZSxcbiAgICBGaXh0dXJlQ2FwYWJpbGl0eVBhblRpbHRDb21wb25lbnQsXG4gICAgRml4dHVyZUNhcGFiaWxpdHlDaGFubmVsQ29tcG9uZW50LFxuICAgIEZpeHR1cmVDaGFubmVsQ29tcG9uZW50LFxuICAgIEZpeHR1cmVDYXBhYmlsaXR5Q29sb3JXaGVlbENvbXBvbmVudCxcbiAgICBVc2VyTG9naW5Db21wb25lbnQsXG4gICAgVXNlclJlZ2lzdGVyQ29tcG9uZW50LFxuICAgIFByb2plY3RCcm93c2VyQ29tcG9uZW50LFxuICAgIFdhaXREaWFsb2dDb21wb25lbnQsXG4gICAgUHJvamVjdEltcG9ydENvbXBvbmVudCxcbiAgICBQcm9qZWN0U2hhcmVDb21wb25lbnQsXG4gICAgRXJyb3JEaWFsb2dDb21wb25lbnQsXG4gICAgRml4dHVyZVNldHRpbmdzU3RhZ2VDb21wb25lbnQsXG4gICAgSW50cm9Db21wb25lbnQsXG4gICAgUHJlc2V0U2V0dGluZ3NDb21wb25lbnQsXG4gICAgU2NlbmVTZXR0aW5nc0NvbXBvbmVudCxcbiAgICBQcm9qZWN0U2F2ZUNvbXBvbmVudCxcbiAgICBGaXh0dXJlUG9vbENyZWF0ZUZyb21GaWxlQ29tcG9uZW50LFxuICAgIERyb3B6b25lQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyTW9kdWxlLmZvclJvb3QoW10sIHt9KSxcbiAgICBCcm93c2VyTW9kdWxlLFxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTmd4Qm9vdHN0cmFwU2xpZGVyTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBBY2NvcmRpb25Nb2R1bGUsXG4gICAgUG9wb3Zlck1vZHVsZSxcbiAgICBUeXBlYWhlYWRNb2R1bGUsXG4gICAgU29ydGFibGVqc01vZHVsZSxcbiAgICBEcm9wem9uZU1vZHVsZSxcbiAgICBUb2FzdHJNb2R1bGUuZm9yUm9vdCh7XG4gICAgICBuZXdlc3RPblRvcDogdHJ1ZSxcbiAgICB9KSxcbiAgXSxcbiAgZXhwb3J0czogW0Rlc2lnbmVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRGVzaWduZXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import { ConfigService } from '../services/config.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ngx-translate/core";
|
|
7
|
+
import * as i2 from "../services/config.service";
|
|
8
|
+
import * as i3 from "ngx-dropzone-wrapper";
|
|
9
|
+
export class DropzoneComponent {
|
|
10
|
+
set url(value) {
|
|
11
|
+
this._url = value;
|
|
12
|
+
this.updateConfig();
|
|
13
|
+
}
|
|
14
|
+
set acceptedFiles(value) {
|
|
15
|
+
this._acceptedFiles = value;
|
|
16
|
+
this.updateConfig();
|
|
17
|
+
}
|
|
18
|
+
set maxFiles(value) {
|
|
19
|
+
this._maxFiles = value;
|
|
20
|
+
this.updateConfig();
|
|
21
|
+
}
|
|
22
|
+
constructor(translateService, configService) {
|
|
23
|
+
this.translateService = translateService;
|
|
24
|
+
this.configService = configService;
|
|
25
|
+
this.error = new EventEmitter();
|
|
26
|
+
this.success = new EventEmitter();
|
|
27
|
+
this.addedFile = new EventEmitter();
|
|
28
|
+
this._maxFiles = undefined;
|
|
29
|
+
this.translateService
|
|
30
|
+
.get('designer.misc.dropzone-message')
|
|
31
|
+
.pipe(map((result) => {
|
|
32
|
+
this.uploadMessage = '<h3 class="mb-0"><i class="fa fa-cloud-upload"></i></h3>' + result;
|
|
33
|
+
}))
|
|
34
|
+
.subscribe();
|
|
35
|
+
this.updateConfig();
|
|
36
|
+
}
|
|
37
|
+
updateConfig() {
|
|
38
|
+
this.dropzoneConfig = {
|
|
39
|
+
url: this.configService.restUrl + this._url,
|
|
40
|
+
paramName: 'file',
|
|
41
|
+
addRemoveLinks: false,
|
|
42
|
+
maxFilesize: null /* unlimited */,
|
|
43
|
+
acceptedFiles: this._acceptedFiles,
|
|
44
|
+
timeout: 0,
|
|
45
|
+
chunking: this.configService.dropzoneChunking,
|
|
46
|
+
forceChunking: this.configService.dropzoneChunking,
|
|
47
|
+
parallelUploads: 1,
|
|
48
|
+
maxFiles: this._maxFiles,
|
|
49
|
+
previewTemplate: `
|
|
50
|
+
<div class="dz-preview dz-file-preview">
|
|
51
|
+
<!-- The attachment details -->
|
|
52
|
+
<div class="dz-details" style="text-align: left">
|
|
53
|
+
<i class="fa fa-file-o"></i> <span data-dz-name></span> <small><span class="label label-default file-size" data-dz-size></span></small>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<!--div class="mt-5">
|
|
57
|
+
<span data-dz-errormessage></span>
|
|
58
|
+
</div-->
|
|
59
|
+
|
|
60
|
+
<div class="progress mt-4 mb-1" style="height: 10px">
|
|
61
|
+
<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" style="width:0%;" data-dz-uploadprogress></div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
`,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
static { this.ɵfac = function DropzoneComponent_Factory(t) { return new (t || DropzoneComponent)(i0.ɵɵdirectiveInject(i1.TranslateService), i0.ɵɵdirectiveInject(i2.ConfigService)); }; }
|
|
68
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DropzoneComponent, selectors: [["app-dropzone"]], inputs: { url: "url", acceptedFiles: "acceptedFiles", maxFiles: "maxFiles" }, outputs: { error: "error", success: "success", addedFile: "addedFile" }, decls: 1, vars: 3, consts: [[3, "error", "success", "addedFile", "config", "useDropzoneClass", "message"]], template: function DropzoneComponent_Template(rf, ctx) { if (rf & 1) {
|
|
69
|
+
i0.ɵɵelementStart(0, "dropzone", 0);
|
|
70
|
+
i0.ɵɵlistener("error", function DropzoneComponent_Template_dropzone_error_0_listener($event) { return ctx.error.emit($event); })("success", function DropzoneComponent_Template_dropzone_success_0_listener($event) { return ctx.success.emit($event); })("addedFile", function DropzoneComponent_Template_dropzone_addedFile_0_listener($event) { return ctx.addedFile.emit($event); });
|
|
71
|
+
i0.ɵɵelementEnd();
|
|
72
|
+
} if (rf & 2) {
|
|
73
|
+
i0.ɵɵproperty("config", ctx.dropzoneConfig)("useDropzoneClass", "false")("message", ctx.uploadMessage);
|
|
74
|
+
} }, dependencies: [i3.DropzoneComponent] }); }
|
|
75
|
+
}
|
|
76
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DropzoneComponent, [{
|
|
77
|
+
type: Component,
|
|
78
|
+
args: [{ selector: 'app-dropzone', template: "<dropzone\n [config]=\"dropzoneConfig\"\n [useDropzoneClass]=\"'false'\"\n [message]=\"uploadMessage\"\n (error)=\"error.emit($event)\"\n (success)=\"success.emit($event)\"\n (addedFile)=\"addedFile.emit($event)\"\n></dropzone>\n" }]
|
|
79
|
+
}], () => [{ type: i1.TranslateService }, { type: i2.ConfigService }], { error: [{
|
|
80
|
+
type: Output
|
|
81
|
+
}], success: [{
|
|
82
|
+
type: Output
|
|
83
|
+
}], addedFile: [{
|
|
84
|
+
type: Output
|
|
85
|
+
}], url: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], acceptedFiles: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], maxFiles: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}] }); })();
|
|
92
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DropzoneComponent, { className: "DropzoneComponent" }); })();
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9kcm9wem9uZS9kcm9wem9uZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL2Ryb3B6b25lL2Ryb3B6b25lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFPM0QsTUFBTSxPQUFPLGlCQUFpQjtJQVM1QixJQUNJLEdBQUcsQ0FBQyxLQUFhO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFDSSxhQUFhLENBQUMsS0FBYTtRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQ0ksUUFBUSxDQUFDLEtBQWE7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFLRCxZQUFvQixnQkFBa0MsRUFBVSxhQUE0QjtRQUF4RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUEzQmxGLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNCLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSWpDLGNBQVMsR0FBVyxTQUFTLENBQUM7UUFzQnBDLElBQUksQ0FBQyxnQkFBZ0I7YUFDbEIsR0FBRyxDQUFDLGdDQUFnQyxDQUFDO2FBQ3JDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsMERBQTBELEdBQUcsTUFBTSxDQUFDO1FBQzNGLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsY0FBYyxHQUFHO1lBQ3BCLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSTtZQUMzQyxTQUFTLEVBQUUsTUFBTTtZQUNqQixjQUFjLEVBQUUsS0FBSztZQUNyQixXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWU7WUFDakMsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ2xDLE9BQU8sRUFBRSxDQUFDO1lBQ1YsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCO1lBQzdDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQjtZQUNsRCxlQUFlLEVBQUUsQ0FBQztZQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDeEIsZUFBZSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7T0FlaEI7U0FDRixDQUFDO0lBQ0osQ0FBQztrRkF0RVUsaUJBQWlCO29FQUFqQixpQkFBaUI7WUNYOUIsbUNBT0M7WUFEQyxBQURBLEFBREEsc0dBQVMsc0JBQWtCLElBQUMsNkZBQ2pCLHdCQUFvQixJQUFDLGlHQUNuQiwwQkFBc0IsSUFBQztZQUNyQyxpQkFBVzs7WUFKVixBQURBLEFBREEsMkNBQXlCLDZCQUNHLDhCQUNIOzs7aUZEUWQsaUJBQWlCO2NBTDdCLFNBQVM7MkJBQ0UsY0FBYzs2RUFLZCxLQUFLO2tCQUFkLE1BQU07WUFDRyxPQUFPO2tCQUFoQixNQUFNO1lBQ0csU0FBUztrQkFBbEIsTUFBTTtZQU9ILEdBQUc7a0JBRE4sS0FBSztZQU1GLGFBQWE7a0JBRGhCLEtBQUs7WUFNRixRQUFRO2tCQURYLEtBQUs7O2tGQW5CSyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRHJvcHpvbmVDb25maWdJbnRlcmZhY2UgfSBmcm9tICduZ3gtZHJvcHpvbmUtd3JhcHBlcic7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZHJvcHpvbmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcHpvbmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZHJvcHpvbmUuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIERyb3B6b25lQ29tcG9uZW50IHtcbiAgQE91dHB1dCgpIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGFkZGVkRmlsZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF91cmw6IHN0cmluZztcbiAgcHJpdmF0ZSBfYWNjZXB0ZWRGaWxlczogc3RyaW5nO1xuICBwcml2YXRlIF9tYXhGaWxlczogbnVtYmVyID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHNldCB1cmwodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3VybCA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlQ29uZmlnKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGFjY2VwdGVkRmlsZXModmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2FjY2VwdGVkRmlsZXMgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUNvbmZpZygpO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBtYXhGaWxlcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbWF4RmlsZXMgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUNvbmZpZygpO1xuICB9XG5cbiAgZHJvcHpvbmVDb25maWc6IERyb3B6b25lQ29uZmlnSW50ZXJmYWNlO1xuICB1cGxvYWRNZXNzYWdlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UpIHtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgIC5nZXQoJ2Rlc2lnbmVyLm1pc2MuZHJvcHpvbmUtbWVzc2FnZScpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICB0aGlzLnVwbG9hZE1lc3NhZ2UgPSAnPGgzIGNsYXNzPVwibWItMFwiPjxpIGNsYXNzPVwiZmEgZmEtY2xvdWQtdXBsb2FkXCI+PC9pPjwvaDM+JyArIHJlc3VsdDtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMudXBkYXRlQ29uZmlnKCk7XG4gIH1cblxuICB1cGRhdGVDb25maWcoKSB7XG4gICAgdGhpcy5kcm9wem9uZUNvbmZpZyA9IHtcbiAgICAgIHVybDogdGhpcy5jb25maWdTZXJ2aWNlLnJlc3RVcmwgKyB0aGlzLl91cmwsXG4gICAgICBwYXJhbU5hbWU6ICdmaWxlJyxcbiAgICAgIGFkZFJlbW92ZUxpbmtzOiBmYWxzZSxcbiAgICAgIG1heEZpbGVzaXplOiBudWxsIC8qIHVubGltaXRlZCAqLyxcbiAgICAgIGFjY2VwdGVkRmlsZXM6IHRoaXMuX2FjY2VwdGVkRmlsZXMsXG4gICAgICB0aW1lb3V0OiAwLFxuICAgICAgY2h1bmtpbmc6IHRoaXMuY29uZmlnU2VydmljZS5kcm9wem9uZUNodW5raW5nLFxuICAgICAgZm9yY2VDaHVua2luZzogdGhpcy5jb25maWdTZXJ2aWNlLmRyb3B6b25lQ2h1bmtpbmcsXG4gICAgICBwYXJhbGxlbFVwbG9hZHM6IDEsXG4gICAgICBtYXhGaWxlczogdGhpcy5fbWF4RmlsZXMsXG4gICAgICBwcmV2aWV3VGVtcGxhdGU6IGBcbiAgICAgIDxkaXYgY2xhc3M9XCJkei1wcmV2aWV3IGR6LWZpbGUtcHJldmlld1wiPlxuICAgICAgICA8IS0tIFRoZSBhdHRhY2htZW50IGRldGFpbHMgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkei1kZXRhaWxzXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0XCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1maWxlLW9cIj48L2k+IDxzcGFuIGRhdGEtZHotbmFtZT48L3NwYW4+IDxzbWFsbD48c3BhbiBjbGFzcz1cImxhYmVsIGxhYmVsLWRlZmF1bHQgZmlsZS1zaXplXCIgZGF0YS1kei1zaXplPjwvc3Bhbj48L3NtYWxsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tZGl2IGNsYXNzPVwibXQtNVwiPlxuICAgICAgICAgIDxzcGFuIGRhdGEtZHotZXJyb3JtZXNzYWdlPjwvc3Bhbj5cbiAgICAgICAgPC9kaXYtLT5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MgbXQtNCBtYi0xXCIgc3R5bGU9XCJoZWlnaHQ6IDEwcHhcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdHJpcGVkIHByb2dyZXNzLWJhci1hbmltYXRlZFwiIHJvbGU9XCJwcm9ncmVzc2JhclwiIHN0eWxlPVwid2lkdGg6MCU7XCIgZGF0YS1kei11cGxvYWRwcm9ncmVzcz48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIGAsXG4gICAgfTtcbiAgfVxufVxuIiwiPGRyb3B6b25lXG4gIFtjb25maWddPVwiZHJvcHpvbmVDb25maWdcIlxuICBbdXNlRHJvcHpvbmVDbGFzc109XCInZmFsc2UnXCJcbiAgW21lc3NhZ2VdPVwidXBsb2FkTWVzc2FnZVwiXG4gIChlcnJvcik9XCJlcnJvci5lbWl0KCRldmVudClcIlxuICAoc3VjY2Vzcyk9XCJzdWNjZXNzLmVtaXQoJGV2ZW50KVwiXG4gIChhZGRlZEZpbGUpPVwiYWRkZWRGaWxlLmVtaXQoJGV2ZW50KVwiXG4+PC9kcm9wem9uZT5cbiJdfQ==
|
|
@@ -166,12 +166,20 @@ export class EffectCurveComponent {
|
|
|
166
166
|
}
|
|
167
167
|
getPhasingCount() {
|
|
168
168
|
let count = 0;
|
|
169
|
-
const
|
|
170
|
-
for (const
|
|
171
|
-
const fixture = this.fixtureService.getFixtureByUuid(fixtureUuid);
|
|
172
|
-
|
|
169
|
+
const countedFirstDmxChannelPixelKey = [];
|
|
170
|
+
for (const presetFixture of this.presetService.selectedPreset.fixtures) {
|
|
171
|
+
const fixture = this.fixtureService.getFixtureByUuid(presetFixture.fixtureUuid);
|
|
172
|
+
const firstDmxChannelAndFixtureUuid = {
|
|
173
|
+
firstDmxChannel: fixture.dmxFirstChannel,
|
|
174
|
+
pixelKey: presetFixture.pixelKey,
|
|
175
|
+
};
|
|
176
|
+
const exists = countedFirstDmxChannelPixelKey.some((item) => item.firstDmxChannel === firstDmxChannelAndFixtureUuid.firstDmxChannel &&
|
|
177
|
+
((!item.pixelKey && !firstDmxChannelAndFixtureUuid.pixelKey) || item.pixelKey === firstDmxChannelAndFixtureUuid.pixelKey));
|
|
178
|
+
// don't count it, if it has the same DMX address and pixel key (if available),
|
|
179
|
+
// as an already counted one
|
|
180
|
+
if (!exists) {
|
|
173
181
|
count++;
|
|
174
|
-
|
|
182
|
+
countedFirstDmxChannelPixelKey.push(firstDmxChannelAndFixtureUuid);
|
|
175
183
|
}
|
|
176
184
|
}
|
|
177
185
|
return count;
|
|
@@ -566,4 +574,4 @@ export class EffectCurveComponent {
|
|
|
566
574
|
args: ['curveGrid', { static: true }]
|
|
567
575
|
}] }); })();
|
|
568
576
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EffectCurveComponent, { className: "EffectCurveComponent" }); })();
|
|
569
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWN1cnZlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZWZmZWN0L2VmZmVjdC1jdXJ2ZS9lZmZlY3QtY3VydmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9lZmZlY3QvZWZmZWN0LWN1cnZlL2VmZmVjdC1jdXJ2ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBNEIsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ3lLOUQsQUFERiwrQkFBd0YsZ0JBT3BGO0lBREEsd05BQVUsOENBQW9DLEtBQUM7SUFMakQsaUJBTUU7SUFDRixpQ0FBNkU7SUFBQSxZQUEyQzs7SUFDMUgsQUFEMEgsaUJBQVEsRUFDNUg7Ozs7O0lB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Q0FBNkI7WUFHckUsZUFDRjtZQURFLDJFQUNGO1lBS0UsZUFDRjtZQURFLHNGQUNGO1lBSUksZUFBK0I7WUFBL0IscURBQStCO1lBSy9CLEFBREEsQUFEQSxBQURBLGdDQUFrQiw2QkFDTSw2QkFDQSxXQUNkO1lBSTRCLGVBQStCO1lBQS9CLGlEQUErQjtZQUd2RSxlQUNGO1lBREUsMkVBQ0Y7WUFVRSxlQUF3RDtZQUF4RCx5RkFBd0Q7WUFLeEQsbUlBQXFEO1lBVXJELGVBQW9EO1lBQXBELHFGQUFvRDtZQUtwRCwrSEFBaUQ7WUFZWCxlQUFrRDtZQUFsRCw4R0FBa0Q7WUFFNUQsY0FBMEI7WUFBMUIsbURBQTBCO1lBV3ZCLGNBQThDO1lBQTlDLDBHQUE4QztZQUl2RSxjQUFrQztZQUFsQyx1REFBa0M7WUFnQlIsY0FBaUM7WUFBakMsdUVBQWlDOzs7aUZEaE0xRCxvQkFBb0I7Y0FMaEMsU0FBUzsyQkFDRSxzQkFBc0I7eUlBNkJ2QixLQUFLO2tCQUFiLEtBQUs7WUFJRixVQUFVO2tCQURiLEtBQUs7WUFrQm9DLFNBQVM7a0JBQWxELFNBQVM7bUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7a0ZBOUM3QixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2FjaGVkRml4dHVyZUNoYW5uZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FjaGVkLWZpeHR1cmUtY2hhbm5lbCc7XG5pbXBvcnQgeyBFZmZlY3RDdXJ2ZVByb2ZpbGVDaGFubmVscyB9IGZyb20gJy4uLy4uL21vZGVscy9lZmZlY3QtY3VydmUtcHJvZmlsZS1jaGFubmVsJztcbmltcG9ydCB7IEZpeHR1cmVDYXBhYmlsaXR5LCBGaXh0dXJlQ2FwYWJpbGl0eUNvbG9yLCBGaXh0dXJlQ2FwYWJpbGl0eVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZml4dHVyZS1jYXBhYmlsaXR5JztcbmltcG9ydCB7IEZpeHR1cmVQcm9maWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpeHR1cmUtcHJvZmlsZSc7XG5pbXBvcnQgeyBGaXh0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpeHR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJlc2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRWZmZWN0Q3VydmUgfSBmcm9tICcuLy4uLy4uL21vZGVscy9lZmZlY3QtY3VydmUnO1xuaW1wb3J0IHsgQW5pbWF0aW9uU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvYW5pbWF0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXBwLWVmZmVjdC1jdXJ2ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZmZlY3QtY3VydmUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZmZlY3QtY3VydmUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFZmZlY3RDdXJ2ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgZ3JpZFVwZGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGN0eDogYW55O1xuICBwcml2YXRlIG1heFdpZHRoOiBudW1iZXI7XG4gIHByaXZhdGUgbWF4SGVpZ2h0OiBudW1iZXI7XG5cbiAgcHVibGljIGxlbmd0aE1pbGxpc01pbiA9IDIwO1xuICBwdWJsaWMgbGVuZ3RoTWlsbGlzTWF4ID0gODAwMDtcbiAgcHVibGljIGFtcGxpdHVkZU1pbiA9IDA7XG4gIHB1YmxpYyBhbXBsaXR1ZGVNYXggPSA0O1xuICBwdWJsaWMgcGVyY2VudGFnZU1pbiA9IDA7XG4gIHB1YmxpYyBwZXJjZW50YWdlTWF4ID0gMTtcbiAgcHVibGljIHBoYXNlTWlsbGlzTWluID0gLTEwMDA7XG4gIHB1YmxpYyBwaGFzZU1pbGxpc01heCA9IDEwMDA7XG4gIHB1YmxpYyBwaGFzaW5nTWlsbGlzTWluID0gMDtcbiAgcHVibGljIHBoYXNpbmdNaWxsaXNNYXggPSAxMDAwO1xuXG4gIC8vIHRoZSBzZWxlY3RlZCBjYXBhYmlsaXRpZXNcbiAgcHVibGljIGF2YWlsYWJsZUNhcGFiaWxpdGllczogRml4dHVyZUNhcGFiaWxpdHlbXSA9IFtdO1xuXG4gIC8vIHRoZSBzZWxlY3RlZCBjaGFubmVsc1xuICBwdWJsaWMgYXZhaWxhYmxlQ2hhbm5lbHM6IE1hcDxGaXh0dXJlUHJvZmlsZSwgQ2FjaGVkRml4dHVyZUNoYW5uZWxbXT4gPSBuZXcgTWFwPEZpeHR1cmVQcm9maWxlLCBDYWNoZWRGaXh0dXJlQ2hhbm5lbFtdPigpO1xuICBwdWJsaWMgYXZhaWxhYmxlUHJvZmlsZXM6IEZpeHR1cmVQcm9maWxlW10gPSBbXTtcbiAgcHVibGljIHNlbGVjdGVkUHJvZmlsZXM6IEZpeHR1cmVQcm9maWxlW10gPSBbXTtcblxuICBASW5wdXQoKSBjdXJ2ZTogRWZmZWN0Q3VydmU7XG5cbiAgLy8gd2hldGhlciB0aGUgZWZmZWN0IGlzIGN1cnJlbnRseSBiZWluZyBlZGl0ZWQgKG9wZW4pIG9yIG5vdFxuICBASW5wdXQoKVxuICBzZXQgaXNTZWxlY3RlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgLy8gc3RhcnQgdGhlIHVwZGF0ZSB0aW1lclxuICAgICAgaWYgKCF0aGlzLmdyaWRVcGRhdGVTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5ncmlkVXBkYXRlU3Vic2NyaXB0aW9uID0gdGltZXIoMCwgMTUpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWRyYXcoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHN0b3AgdGhlIHVwZGF0ZSB0aW1lclxuICAgICAgaWYgKHRoaXMuZ3JpZFVwZGF0ZVN1YnNjcmlwdGlvbikge1xuICAgICAgICB0aGlzLmdyaWRVcGRhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5ncmlkVXBkYXRlU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2N1cnZlR3JpZCcsIHsgc3RhdGljOiB0cnVlIH0pIGN1cnZlR3JpZDogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcHJlc2V0U2VydmljZTogUHJlc2V0U2VydmljZSxcbiAgICBwcml2YXRlIGFuaW1hdGlvblNlcnZpY2U6IEFuaW1hdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmaXh0dXJlU2VydmljZTogRml4dHVyZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5wcmVzZXRTZXJ2aWNlLmZpeHR1cmVTZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUNhcGFiaWxpdGllc0FuZENoYW5uZWxzKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZUNhcGFiaWxpdGllc0FuZENoYW5uZWxzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBjYW52YXMgPSB0aGlzLmN1cnZlR3JpZC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgdGhpcy5tYXhXaWR0aCA9IGNhbnZhcy53aWR0aDtcbiAgICB0aGlzLm1heEhlaWdodCA9IGNhbnZhcy5oZWlnaHQ7XG5cbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmF3Q3VycmVudFZhbHVlKGN1cnJNaWxsaXM6IG51bWJlciwgcmFkaXVzOiBudW1iZXIsIGxpbmVXaWR0aDogbnVtYmVyLCBkdXJhdGlvbk1pbGxpczogbnVtYmVyLCBtYXhIZWlnaHQ6IG51bWJlcikge1xuICAgIGNvbnN0IGN1cnJWYWwgPSAxIC0gdGhpcy5jdXJ2ZS5nZXRWYWx1ZUF0TWlsbGlzKGN1cnJNaWxsaXMpO1xuXG4gICAgY29uc3QgeCA9ICh0aGlzLm1heFdpZHRoICogKGN1cnJNaWxsaXMgJSBkdXJhdGlvbk1pbGxpcykpIC8gZHVyYXRpb25NaWxsaXM7XG4gICAgY29uc3QgeSA9IG1heEhlaWdodCAqIGN1cnJWYWwgKyBsaW5lV2lkdGg7XG5cbiAgICB0aGlzLmN0eC5iZWdpblBhdGgoKTtcbiAgICB0aGlzLmN0eC5hcmMoeCwgeSwgcmFkaXVzLCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xuICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9ICcjZmZmJztcbiAgICB0aGlzLmN0eC5maWxsKCk7XG4gICAgdGhpcy5jdHgubGluZVdpZHRoID0gMTtcbiAgICB0aGlzLmN0eC5zdHJva2VTdHlsZSA9ICcjMDAwJztcbiAgICB0aGlzLmN0eC5zdHJva2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGhhc2luZ0NvdW50KCk6IG51bWJlciB7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBjb25zdCBjb3VudGVkRG14Q2hhbm5lbHM6IG51bWJlcltdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGZpeHR1cmVVdWlkIG9mIHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldC5maXh0dXJlVXVpZHMpIHtcbiAgICAgIGNvbnN0IGZpeHR1cmUgPSB0aGlzLmZpeHR1cmVTZXJ2aWNlLmdldEZpeHR1cmVCeVV1aWQoZml4dHVyZVV1aWQpO1xuXG4gICAgICBpZiAoIWNvdW50ZWREbXhDaGFubmVscy5pbmNsdWRlcyhmaXh0dXJlLmRteEZpcnN0Q2hhbm5lbCkpIHtcbiAgICAgICAgY291bnQrKztcbiAgICAgICAgY291bnRlZERteENoYW5uZWxzLnB1c2goZml4dHVyZS5kbXhGaXJzdENoYW5uZWwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIHJlZHJhdygpIHtcbiAgICB0aGlzLmN0eC5jbGVhclJlY3QoMCwgMCwgdGhpcy5tYXhXaWR0aCwgdGhpcy5tYXhIZWlnaHQpO1xuICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9ICcjZmZmJztcbiAgICB0aGlzLmN0eC5zdHJva2VTdHlsZSA9ICcjZmZmJztcblxuICAgIC8vIHRoZSB3aWR0aCBvZiB0aGUgbGluZXNcbiAgICBjb25zdCB3aWR0aCA9IDM7XG5cbiAgICB0aGlzLmN0eC5saW5lV2lkdGggPSB3aWR0aDtcblxuICAgIGxldCBvbGRYOiBudW1iZXI7XG4gICAgbGV0IG9sZFk6IG51bWJlcjtcblxuICAgIGxldCBzdGVwID0gNTA7XG5cbiAgICBpZiAobGVuZ3RoIDwgNTAwKSB7XG4gICAgICBzdGVwID0gNTtcbiAgICB9XG5cbiAgICBjb25zdCBkdXJhdGlvbk1pbGxpcyA9IHRoaXMuY3VydmUubGVuZ3RoTWlsbGlzICogTWF0aC5tYXgoTWF0aC5yb3VuZCg0IC0gdGhpcy5jdXJ2ZS5sZW5ndGhNaWxsaXMgLyAxMDAwKSwgMSk7XG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gdGhpcy5tYXhIZWlnaHQgLSB3aWR0aCAqIDI7XG5cbiAgICAvLyBkcmF3IHRoZSBjdXJ2ZVxuICAgIGZvciAobGV0IGkgPSAtc3RlcCAqIDI7IGkgPCBkdXJhdGlvbk1pbGxpcyArIHN0ZXAgKiAyOyBpICs9IHN0ZXApIHtcbiAgICAgIGNvbnN0IHZhbCA9IDEgLSB0aGlzLmN1cnZlLmdldFZhbHVlQXRNaWxsaXMoaSk7XG5cbiAgICAgIC8vIFNjYWxlIHRoZSB2YWx1ZXMgdG8gdGhlIGdyaWQgZGltZW5zaW9uc1xuICAgICAgY29uc3QgeCA9ICh0aGlzLm1heFdpZHRoICogaSkgLyBkdXJhdGlvbk1pbGxpcztcbiAgICAgIGNvbnN0IHkgPSBtYXhIZWlnaHQgKiB2YWwgKyB3aWR0aDtcblxuICAgICAgaWYgKG9sZFkpIHtcbiAgICAgICAgdGhpcy5jdHguYmVnaW5QYXRoKCk7XG4gICAgICAgIHRoaXMuY3R4Lm1vdmVUbyhvbGRYLCBvbGRZKTtcbiAgICAgICAgdGhpcy5jdHgubGluZVRvKHgsIHkpO1xuICAgICAgICB0aGlzLmN0eC5zdHJva2UoKTtcbiAgICAgIH1cblxuICAgICAgb2xkWCA9IHg7XG4gICAgICBvbGRZID0geTtcbiAgICB9XG5cbiAgICAvLyBkcmF3IHRoZSBjdXJyZW50IHZhbHVlXG4gICAgdGhpcy5kcmF3Q3VycmVudFZhbHVlKHRoaXMuYW5pbWF0aW9uU2VydmljZS50aW1lTWlsbGlzICUgZHVyYXRpb25NaWxsaXMsIDUsIHdpZHRoLCBkdXJhdGlvbk1pbGxpcywgbWF4SGVpZ2h0KTtcblxuICAgIC8vIGRyYXcgdGhlIHBoYXNpbmcgdmFsdWVzIChjaGFzZSksIGlmIHJlcXVpcmVkXG4gICAgbGV0IHBoYXNpbmdDb3VudCA9IDA7XG5cbiAgICBpZiAodGhpcy5jdXJ2ZS5waGFzaW5nTWlsbGlzID4gMCAmJiB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQpIHtcbiAgICAgIHBoYXNpbmdDb3VudCA9IHRoaXMuZ2V0UGhhc2luZ0NvdW50KCk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBwaGFzaW5nQ291bnQ7IGkrKykge1xuICAgICAgdGhpcy5kcmF3Q3VycmVudFZhbHVlKFxuICAgICAgICAodGhpcy5hbmltYXRpb25TZXJ2aWNlLnRpbWVNaWxsaXMgLSBpICogdGhpcy5jdXJ2ZS5waGFzaW5nTWlsbGlzKSAlIGR1cmF0aW9uTWlsbGlzLFxuICAgICAgICAzLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgZHVyYXRpb25NaWxsaXMsXG4gICAgICAgIG1heEhlaWdodFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUNoYW5uZWxDYXBhYmlsaXRpZXMoKSB7XG4gICAgdGhpcy5hdmFpbGFibGVDaGFubmVscyA9IHRoaXMucHJlc2V0U2VydmljZS5nZXRTZWxlY3RlZFByb2ZpbGVDaGFubmVscyh0aGlzLnNlbGVjdGVkUHJvZmlsZXMpO1xuICB9XG5cbiAgY2hhbmdlUHJvZmlsZVNlbGVjdGlvbigkZXZlbnQ6IGFueSwgcHJvZmlsZTogRml4dHVyZVByb2ZpbGUpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFByb2ZpbGVzLmluZGV4T2YocHJvZmlsZSkgPj0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFByb2ZpbGVzLnNwbGljZSh0aGlzLnNlbGVjdGVkUHJvZmlsZXMuaW5kZXhPZihwcm9maWxlKSwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9maWxlcy5wdXNoKHByb2ZpbGUpO1xuICAgIH1cblxuICAgIHRoaXMuY2FsY3VsYXRlQ2hhbm5lbENhcGFiaWxpdGllcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDYXBhYmlsaXRpZXNBbmRDaGFubmVscygpIHtcbiAgICAvLyBjYXBhYmlsaXRpZXNcbiAgICB0aGlzLmF2YWlsYWJsZUNhcGFiaWxpdGllcyA9IFtdO1xuXG4gICAgaWYgKHRoaXMucHJlc2V0U2VydmljZS5oYXNDYXBhYmlsaXR5RGltbWVyKCkpIHtcbiAgICAgIGNvbnN0IGNhcGFiaWxpdHkgPSBuZXcgRml4dHVyZUNhcGFiaWxpdHkoKTtcbiAgICAgIGNhcGFiaWxpdHkudHlwZSA9IEZpeHR1cmVDYXBhYmlsaXR5VHlwZS5JbnRlbnNpdHk7XG4gICAgICB0aGlzLmF2YWlsYWJsZUNhcGFiaWxpdGllcy5wdXNoKGNhcGFiaWxpdHkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eUNvbG9yKCkpIHtcbiAgICAgIGxldCBjYXBhYmlsaXR5ID0gbmV3IEZpeHR1cmVDYXBhYmlsaXR5KCk7XG4gICAgICBjYXBhYmlsaXR5LnR5cGUgPSBGaXh0dXJlQ2FwYWJpbGl0eVR5cGUuQ29sb3JJbnRlbnNpdHk7XG4gICAgICBjYXBhYmlsaXR5LmNvbG9yID0gRml4dHVyZUNhcGFiaWxpdHlDb2xvci5SZWQ7XG4gICAgICB0aGlzLmF2YWlsYWJsZUNhcGFiaWxpdGllcy5wdXNoKGNhcGFiaWxpdHkpO1xuXG4gICAgICBjYXBhYmlsaXR5ID0gbmV3IEZpeHR1cmVDYXBhYmlsaXR5KCk7XG4gICAgICBjYXBhYmlsaXR5LnR5cGUgPSBGaXh0dXJlQ2FwYWJpbGl0eVR5cGUuQ29sb3JJbnRlbnNpdHk7XG4gICAgICBjYXBhYmlsaXR5LmNvbG9yID0gRml4dHVyZUNhcGFiaWxpdHlDb2xvci5HcmVlbjtcbiAgICAgIHRoaXMuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzLnB1c2goY2FwYWJpbGl0eSk7XG5cbiAgICAgIGNhcGFiaWxpdHkgPSBuZXcgRml4dHVyZUNhcGFiaWxpdHkoKTtcbiAgICAgIGNhcGFiaWxpdHkudHlwZSA9IEZpeHR1cmVDYXBhYmlsaXR5VHlwZS5Db2xvckludGVuc2l0eTtcbiAgICAgIGNhcGFiaWxpdHkuY29sb3IgPSBGaXh0dXJlQ2FwYWJpbGl0eUNvbG9yLkJsdWU7XG4gICAgICB0aGlzLmF2YWlsYWJsZUNhcGFiaWxpdGllcy5wdXNoKGNhcGFiaWxpdHkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eVBhblRpbHQoKSkge1xuICAgICAgbGV0IGNhcGFiaWxpdHkgPSBuZXcgRml4dHVyZUNhcGFiaWxpdHkoKTtcbiAgICAgIGNhcGFiaWxpdHkudHlwZSA9IEZpeHR1cmVDYXBhYmlsaXR5VHlwZS5QYW47XG4gICAgICB0aGlzLmF2YWlsYWJsZUNhcGFiaWxpdGllcy5wdXNoKGNhcGFiaWxpdHkpO1xuXG4gICAgICBjYXBhYmlsaXR5ID0gbmV3IEZpeHR1cmVDYXBhYmlsaXR5KCk7XG4gICAgICBjYXBhYmlsaXR5LnR5cGUgPSBGaXh0dXJlQ2FwYWJpbGl0eVR5cGUuVGlsdDtcbiAgICAgIHRoaXMuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzLnB1c2goY2FwYWJpbGl0eSk7XG4gICAgfVxuXG4gICAgLy8gY2FsY3VsYXRlIGFsbCBwcm9maWxlc1xuICAgIHRoaXMuYXZhaWxhYmxlUHJvZmlsZXMgPSB0aGlzLnByZXNldFNlcnZpY2UuZ2V0U2VsZWN0ZWRQcm9maWxlcygpO1xuXG4gICAgLy8gc2VsZWN0IGFsbCBwcm9maWxlcyBieSBkZWZhdWx0XG4gICAgdGhpcy5zZWxlY3RlZFByb2ZpbGVzID0gWy4uLnRoaXMuYXZhaWxhYmxlUHJvZmlsZXNdO1xuXG4gICAgLy8gY2FsY3VsYXRlIGFsbCBjaGFubmVsc1xuICAgIHRoaXMuY2FsY3VsYXRlQ2hhbm5lbENhcGFiaWxpdGllcygpO1xuICB9XG5cbiAgZ2V0Q2FwYWJpbGl0eU5hbWUoY2FwYWJpbGl0eTogRml4dHVyZUNhcGFiaWxpdHkpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVxuICAgICAgLmdldChbJ2Rlc2lnbmVyLmZpeHR1cmVDYXBhYmlsaXR5VHlwZS4nICsgY2FwYWJpbGl0eS50eXBlLCAnZGVzaWduZXIuZml4dHVyZUNhcGFiaWxpdHlDb2xvci4nICsgY2FwYWJpbGl0eS5jb2xvcl0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGxldCBuYW1lID0gJyc7XG4gICAgICAgICAgbmFtZSArPSByZXN1bHRbJ2Rlc2lnbmVyLmZpeHR1cmVDYXBhYmlsaXR5VHlwZS4nICsgY2FwYWJpbGl0eS50eXBlXTtcblxuICAgICAgICAgIGlmIChjYXBhYmlsaXR5LmNvbG9yKSB7XG4gICAgICAgICAgICBuYW1lICs9ICcsICcgKyByZXN1bHRbJ2Rlc2lnbmVyLmZpeHR1cmVDYXBhYmlsaXR5Q29sb3IuJyArIGNhcGFiaWxpdHkuY29sb3JdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBjYXBhYmlsaXR5Q2hlY2tlZChjYXBhYmlsaXR5OiBGaXh0dXJlQ2FwYWJpbGl0eSk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgZXhpc3RpbmdDYXBhYmlsaXR5IG9mIHRoaXMuY3VydmUuY2FwYWJpbGl0aWVzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuZml4dHVyZVNlcnZpY2UuY2FwYWJpbGl0aWVzTWF0Y2goXG4gICAgICAgICAgZXhpc3RpbmdDYXBhYmlsaXR5LnR5cGUsXG4gICAgICAgICAgY2FwYWJpbGl0eS50eXBlLFxuICAgICAgICAgIGV4aXN0aW5nQ2FwYWJpbGl0eS5jb2xvcixcbiAgICAgICAgICBjYXBhYmlsaXR5LmNvbG9yLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIG51bGxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVDYXBhYmlsaXR5KGV2ZW50OiBhbnksIGNhcGFiaWxpdHk6IEZpeHR1cmVDYXBhYmlsaXR5KSB7XG4gICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQuY2hlY2tlZCkge1xuICAgICAgLy8gYWRkIHRoZSBjYXBhYmlsaXR5XG4gICAgICB0aGlzLmN1cnZlLmNhcGFiaWxpdGllcy5wdXNoKGNhcGFiaWxpdHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZW1vdmUgdGhlIGNoYW5uZWxcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jdXJ2ZS5jYXBhYmlsaXRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdDYXBhYmlsaXR5ID0gdGhpcy5jdXJ2ZS5jYXBhYmlsaXRpZXNbaV07XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmZpeHR1cmVTZXJ2aWNlLmNhcGFiaWxpdGllc01hdGNoKFxuICAgICAgICAgICAgZXhpc3RpbmdDYXBhYmlsaXR5LnR5cGUsXG4gICAgICAgICAgICBjYXBhYmlsaXR5LnR5cGUsXG4gICAgICAgICAgICBleGlzdGluZ0NhcGFiaWxpdHkuY29sb3IsXG4gICAgICAgICAgICBjYXBhYmlsaXR5LmNvbG9yLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5jdXJ2ZS5jYXBhYmlsaXRpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wcmVzZXRTZXJ2aWNlLnByZXZpZXdMaXZlKCk7XG4gIH1cblxuICBnZXRDaGFubmVsTmFtZShwcm9maWxlTmFtZTogc3RyaW5nLCBjaGFubmVsTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuYXZhaWxhYmxlUHJvZmlsZXMubGVuZ3RoID4gMSkge1xuICAgICAgcmV0dXJuIHByb2ZpbGVOYW1lICsgJyAtICcgKyBjaGFubmVsTmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hhbm5lbE5hbWU7XG4gIH1cblxuICBjaGFubmVsQ2hlY2tlZChwcm9maWxlOiBGaXh0dXJlUHJvZmlsZSwgY2hhbm5lbDogQ2FjaGVkRml4dHVyZUNoYW5uZWwpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGVDaGFubmVscyBvZiB0aGlzLmN1cnZlLmNoYW5uZWxzKSB7XG4gICAgICBpZiAocHJvZmlsZUNoYW5uZWxzLnByb2ZpbGVVdWlkID09PSBwcm9maWxlLnV1aWQpIHtcbiAgICAgICAgaWYgKHByb2ZpbGVDaGFubmVscy5jaGFubmVscy5pbmNsdWRlcyhjaGFubmVsLm5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVDaGFubmVsKGV2ZW50OiBhbnksIHByb2ZpbGU6IEZpeHR1cmVQcm9maWxlLCBjaGFubmVsOiBDYWNoZWRGaXh0dXJlQ2hhbm5lbCkge1xuICAgIC8vIGFkZCB0aGUgcHJvZmlsZSwgaWYgbmVjZXNzYXJ5XG4gICAgbGV0IHByb2ZpbGVDb250YWluZWQgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGVDaGFubmVscyBvZiB0aGlzLmN1cnZlLmNoYW5uZWxzKSB7XG4gICAgICBpZiAocHJvZmlsZUNoYW5uZWxzLnByb2ZpbGVVdWlkID09PSBwcm9maWxlLnV1aWQpIHtcbiAgICAgICAgcHJvZmlsZUNvbnRhaW5lZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcHJvZmlsZUNvbnRhaW5lZCkge1xuICAgICAgY29uc3QgcHJvZmlsZUNoYW5uZWxzID0gbmV3IEVmZmVjdEN1cnZlUHJvZmlsZUNoYW5uZWxzKCk7XG4gICAgICBwcm9maWxlQ2hhbm5lbHMucHJvZmlsZVV1aWQgPSBwcm9maWxlLnV1aWQ7XG4gICAgICB0aGlzLmN1cnZlLmNoYW5uZWxzLnB1c2gocHJvZmlsZUNoYW5uZWxzKTtcbiAgICB9XG5cbiAgICAvLyBhZGQgb3IgZGVsZXRlIHRoZSBjaGFubmVsXG4gICAgZm9yIChjb25zdCBwcm9maWxlQ2hhbm5lbHMgb2YgdGhpcy5jdXJ2ZS5jaGFubmVscykge1xuICAgICAgaWYgKHByb2ZpbGVDaGFubmVscy5wcm9maWxlVXVpZCA9PT0gcHJvZmlsZS51dWlkKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gcHJvZmlsZUNoYW5uZWxzLmNoYW5uZWxzLmluZGV4T2YoY2hhbm5lbC5uYW1lKTtcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgIHByb2ZpbGVDaGFubmVscy5jaGFubmVscy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb2ZpbGVDaGFubmVscy5jaGFubmVscy5wdXNoKGNoYW5uZWwubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgfVxuXG4gIHNldExlbmd0aE1pbGxpcyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCFpc05hTih2YWx1ZSkgJiYgdmFsdWUgPj0gdGhpcy5sZW5ndGhNaWxsaXNNaW4gJiYgdmFsdWUgPD0gdGhpcy5sZW5ndGhNaWxsaXNNYXgpIHtcbiAgICAgIHRoaXMuY3VydmUubGVuZ3RoTWlsbGlzID0gK3ZhbHVlO1xuICAgICAgdGhpcy5wcmVzZXRTZXJ2aWNlLnByZXZpZXdMaXZlKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0QW1wbGl0dWRlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+PSB0aGlzLmFtcGxpdHVkZU1pbiAmJiB2YWx1ZSA8PSB0aGlzLmFtcGxpdHVkZU1heCkge1xuICAgICAgdGhpcy5jdXJ2ZS5hbXBsaXR1ZGUgPSArdmFsdWU7XG4gICAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgICB9XG4gIH1cblxuICBzZXRQb3NpdGlvbih2YWx1ZTogYW55KSB7XG4gICAgaWYgKCFpc05hTih2YWx1ZSkgJiYgdmFsdWUgPj0gdGhpcy5wZXJjZW50YWdlTWluICYmIHZhbHVlIDw9IHRoaXMucGVyY2VudGFnZU1heCkge1xuICAgICAgdGhpcy5jdXJ2ZS5wb3NpdGlvbiA9ICt2YWx1ZTtcbiAgICAgIHRoaXMucHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFBoYXNlTWlsbGlzKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+PSB0aGlzLnBoYXNlTWlsbGlzTWluICYmIHZhbHVlIDw9IHRoaXMucGhhc2VNaWxsaXNNYXgpIHtcbiAgICAgIHRoaXMuY3VydmUucGhhc2VNaWxsaXMgPSArdmFsdWU7XG4gICAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgICB9XG4gIH1cblxuICBzZXRQaGFzaW5nTWlsbGlzKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+PSB0aGlzLnBoYXNpbmdNaWxsaXNNaW4gJiYgdmFsdWUgPD0gdGhpcy5waGFzaW5nTWlsbGlzTWF4KSB7XG4gICAgICB0aGlzLmN1cnZlLnBoYXNpbmdNaWxsaXMgPSArdmFsdWU7XG4gICAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtci0zXCIgc3R5bGU9XCJmbG9hdDogbGVmdFwiPlxuICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgIDxzZWxlY3RcbiAgICAgIFtuZ01vZGVsXT1cImN1cnZlLmN1cnZlVHlwZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjdXJ2ZS5jdXJ2ZVR5cGUgPSAkZXZlbnQ7IHByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKVwiXG4gICAgICBzdHlsZT1cIndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMHB4XCJcbiAgICA+XG4gICAgICA8b3B0aW9uIFt2YWx1ZV09XCInc2luZSdcIj5cbiAgICAgICAge3sgJ2Rlc2lnbmVyLmVmZmVjdC5jdXJ2ZS1zaW5lJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9vcHRpb24+XG4gICAgICA8b3B0aW9uIFt2YWx1ZV09XCInc3F1YXJlJ1wiPlxuICAgICAgICB7eyAnZGVzaWduZXIuZWZmZWN0LmN1cnZlLXNxdWFyZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvb3B0aW9uPlxuICAgICAgPCEtLSA8b3B0aW9uIFt2YWx1ZV09XCIndHJpYW5nbGUnXCI+XG4gICAgICAgIHt7ICdkZXNpZ25lci5lZmZlY3QuY3VydmUtdHJpYW5nbGUnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XG4gICAgICA8b3B0aW9uIFt2YWx1ZV09XCInc2F3dG9vdGgnXCI+XG4gICAgICAgIHt7ICdkZXNpZ25lci5lZmZlY3QuY3VydmUtc2F3dG9vdGgnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XG4gICAgICA8b3B0aW9uIFt2YWx1ZV09XCIncmV2ZXJzZS1zYXd0b290aCdcIj5cbiAgICAgICAge3sgJ2Rlc2lnbmVyLmVmZmVjdC5jdXJ2ZS1yZXZlcnNlLXNhd3Rvb3RoJyB8IHRyYW5zbGF0ZSB9fTwvb3B0aW9uPiAtLT5cbiAgICA8L3NlbGVjdD5cbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPGNhbnZhcyAjY3VydmVHcmlkIGNsYXNzPVwiY3VydmUtZ3JpZFwiIHdpZHRoPVwiMjAwXCIgaGVpZ2h0PVwiMTAwXCIgdmlld0JveD1cIjE1MCAtNzUgNDg1MCA1MTUwXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIj48L2NhbnZhcz5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1yLTRcIiBzdHlsZT1cImZsb2F0OiBsZWZ0XCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiIHN0eWxlPVwid2lkdGg6IDEwMHB4OyBmbG9hdDogbGVmdFwiPlxuICAgICAge3sgJ2Rlc2lnbmVyLmVmZmVjdC5jdXJ2ZS1sZW5ndGgnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIiBzdHlsZT1cImZsb2F0OiBsZWZ0XCI+XG4gICAgICA8bXYtc2xpZGVyXG4gICAgICAgIChjaGFuZ2UpPVwicmVkcmF3KCk7IHByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKVwiXG4gICAgICAgIFsodmFsdWUpXT1cImN1cnZlLmxlbmd0aE1pbGxpc1wiXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDgwcHhcIlxuICAgICAgICBbdG9vbHRpcF09XCInaGlkZSdcIlxuICAgICAgICBbdmFsdWVdPVwiMFwiXG4gICAgICAgIFttaW5dPVwibGVuZ3RoTWlsbGlzTWluXCJcbiAgICAgICAgW21heF09XCJsZW5ndGhNaWxsaXNNYXhcIlxuICAgICAgICBbc3RlcF09XCIxXCJcbiAgICAgID48L212LXNsaWRlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJzbGlkZXItaW5wdXRcIiBbbmdNb2RlbF09XCJjdXJ2ZS5sZW5ndGhNaWxsaXNcIiAobmdNb2RlbENoYW5nZSk9XCJzZXRMZW5ndGhNaWxsaXMoJGV2ZW50KTsgcmVkcmF3KClcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvIG1sLTFcIj5cbiAgICAgIHt7ICdkZXNpZ25lci5taXNjLm1zJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIiBzdHlsZT1cIndpZHRoOiAxMDBweDsgZmxvYXQ6IGxlZnRcIj5cbiAgICAgIHt7ICdkZXNpZ25lci5lZmZlY3QuY3VydmUtYW1wbGl0dWRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCIgc3R5bGU9XCJmbG9hdDogbGVmdFwiPlxuICAgICAgPG12LXNsaWRlclxuICAgICAgICAoY2hhbmdlKT1cInJlZHJhdygpOyBwcmVzZXRTZXJ2aWNlLnByZXZpZXdMaXZlKClcIlxuICAgICAgICBbKHZhbHVlKV09XCJjdXJ2ZS5hbXBsaXR1ZGVcIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiA4MHB4XCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ2hpZGUnXCJcbiAgICAgICAgW21pbl09XCJhbXBsaXR1ZGVNaW5cIlxuICAgICAgICBbbWF4XT1cImFtcGxpdHVkZU1heFwiXG4gICAgICAgIFtzdGVwXT1cIjAuMDFcIlxuICAgICAgPjwvbXYtc2xpZGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInNsaWRlci1pbnB1dFwiIFtuZ01vZGVsXT1cImN1cnZlLmFtcGxpdHVkZVwiIChuZ01vZGVsQ2hhbmdlKT1cInNldEFtcGxpdHVkZSgkZXZlbnQpOyByZWRyYXcoKVwiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiIHN0eWxlPVwid2lkdGg6IDEwMHB4OyBmbG9hdDogbGVmdFwiPlxuICAgICAge3sgJ2Rlc2lnbmVyLmVmZmVjdC5jdXJ2ZS1wb3NpdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiIHN0eWxlPVwiZmxvYXQ6IGxlZnRcIj5cbiAgICAgIDxtdi1zbGlkZXJcbiAgICAgICAgKGNoYW5nZSk9XCJyZWRyYXcoKTsgcHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpXCJcbiAgICAgICAgWyh2YWx1ZSldPVwiY3VydmUucG9zaXRpb25cIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiA4MHB4OyBoZWlnaHQ6IDE4cHhcIlxuICAgICAgICBbdG9vbHRpcF09XCInaGlkZSdcIlxuICAgICAgICBbbWluXT1cInBlcmNlbnRhZ2VNaW5cIlxuICAgICAgICBbbWF4XT1cInBlcmNlbnRhZ2VNYXhcIlxuICAgICAgICBbc3RlcF09XCIwLjAxXCJcbiAgICAgID5cbiAgICAgIDwvbXYtc2xpZGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInNsaWRlci1pbnB1dFwiIFtuZ01vZGVsXT1cImN1cnZlLnBvc2l0aW9uXCIgKG5nTW9kZWxDaGFuZ2UpPVwic2V0UG9zaXRpb24oJGV2ZW50KTsgcmVkcmF3KClcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIiBzdHlsZT1cIndpZHRoOiAxMDBweDsgZmxvYXQ6IGxlZnRcIj5cbiAgICAgIHt7ICdkZXNpZ25lci5lZmZlY3QuY3VydmUtcGhhc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIiBzdHlsZT1cImZsb2F0OiBsZWZ0XCI+XG4gICAgICA8bXYtc2xpZGVyXG4gICAgICAgIChjaGFuZ2UpPVwicmVkcmF3KCk7IHByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKVwiXG4gICAgICAgIFsodmFsdWUpXT1cImN1cnZlLnBoYXNlTWlsbGlzXCJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogODBweDsgaGVpZ2h0OiAxOHB4XCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ2hpZGUnXCJcbiAgICAgICAgW21pbl09XCJwaGFzZU1pbGxpc01pblwiXG4gICAgICAgIFttYXhdPVwicGhhc2VNaWxsaXNNYXhcIlxuICAgICAgICBbc3RlcF09XCIxXCJcbiAgICAgID48L212LXNsaWRlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJzbGlkZXItaW5wdXRcIiBbbmdNb2RlbF09XCJjdXJ2ZS5waGFzZU1pbGxpc1wiIChuZ01vZGVsQ2hhbmdlKT1cInNldFBoYXNlTWlsbGlzKCRldmVudCk7IHJlZHJhdygpXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0byBtbC0xXCI+XG4gICAgICB7eyAnZGVzaWduZXIubWlzYy5tcycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCIgc3R5bGU9XCJ3aWR0aDogMTAwcHg7IGZsb2F0OiBsZWZ0XCI+XG4gICAgICB7eyAnZGVzaWduZXIuZWZmZWN0LmN1cnZlLWNoYXNlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCIgc3R5bGU9XCJmbG9hdDogbGVmdFwiPlxuICAgICAgPG12LXNsaWRlclxuICAgICAgICAoY2hhbmdlKT1cInJlZHJhdygpOyBwcmVzZXRTZXJ2aWNlLnByZXZpZXdMaXZlKClcIlxuICAgICAgICBbKHZhbHVlKV09XCJjdXJ2ZS5waGFzaW5nTWlsbGlzXCJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogODBweDsgaGVpZ2h0OiAxOHB4XCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ2hpZGUnXCJcbiAgICAgICAgW21pbl09XCJwaGFzaW5nTWlsbGlzTWluXCJcbiAgICAgICAgW21heF09XCJwaGFzaW5nTWlsbGlzTWF4XCJcbiAgICAgICAgW3N0ZXBdPVwiMVwiXG4gICAgICA+PC9tdi1zbGlkZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwic2xpZGVyLWlucHV0XCIgW25nTW9kZWxdPVwiY3VydmUucGhhc2luZ01pbGxpc1wiIChuZ01vZGVsQ2hhbmdlKT1cInNldFBoYXNpbmdNaWxsaXMoJGV2ZW50KTsgcmVkcmF3KClcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvIG1sLTFcIj5cbiAgICAgIHt7ICdkZXNpZ25lci5taXNjLm1zJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIE1lbnUgZm9yIHRoZSBjYXBhYmlsaXRpZXMgYW5kIGNoYW5uZWxzLS0+XG48ZGl2IGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMFwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxcHg7IHdpZHRoOiA1MHB4OyBmbG9hdDogbGVmdFwiPlxuICA8ZGl2IGNsYXNzPVwibmF2IGZsZXgtY29sdW1uIG5hdi1waWxsc1wiIGlkPVwidi1waWxscy10YWJcIiByb2xlPVwidGFibGlzdFwiIGFyaWEtb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiPlxuICAgIDxhXG4gICAgICBjbGFzcz1cIm5hdi1saW5rIHB4LTMgYWN0aXZlXCJcbiAgICAgIGlkPVwidi1waWxscy1lZmZlY3QtY2FwYWJpbGl0aWVzLXRhYlwiXG4gICAgICBwb3BvdmVyPVwie3sgJ2Rlc2lnbmVyLm1pc2MuY2FwYWJpbGl0aWVzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgIHRyaWdnZXJzPVwibW91c2VlbnRlcjptb3VzZWxlYXZlXCJcbiAgICAgIGRhdGEtdG9nZ2xlPVwicGlsbFwiXG4gICAgICBocmVmPVwiI3YtcGlsbHMtZWZmZWN0LWNhcGFiaWxpdGllcy17eyBjdXJ2ZT8udXVpZCB9fVwiXG4gICAgICByb2xlPVwidGFiXCJcbiAgICAgIGFyaWEtY29udHJvbHM9XCJ2LXBpbGxzLWNhcGFiaWxpdGllc1wiXG4gICAgICBhcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1ib2x0IGZhLWZ3XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYT5cbiAgICA8YVxuICAgICAgY2xhc3M9XCJuYXYtbGluayBweC0zXCJcbiAgICAgIGlkPVwidi1waWxscy1lZmZlY3QtY2hhbm5lbHMtdGFiXCJcbiAgICAgIHBvcG92ZXI9XCJ7eyAnZGVzaWduZXIubWlzYy5jaGFubmVscycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICB0cmlnZ2Vycz1cIm1vdXNlZW50ZXI6bW91c2VsZWF2ZVwiXG4gICAgICBkYXRhLXRvZ2dsZT1cInBpbGxcIlxuICAgICAgaHJlZj1cIiN2LXBpbGxzLWVmZmVjdC1jaGFubmVscy17eyBjdXJ2ZT8udXVpZCB9fVwiXG4gICAgICByb2xlPVwidGFiXCJcbiAgICAgIGFyaWEtY29udHJvbHM9XCJ2LXBpbGxzLWNoYW5uZWxzXCJcbiAgICAgIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zbGlkZXJzIGZhLWZ3XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImgtMTAwXCIgY2xhc3M9XCJhcHBseWluZy10b1wiPlxuICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgaC0xMDBcIiBpZD1cInYtcGlsbHMtdGFiQ29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBoLTEwMCBzaG93IGFjdGl2ZVwiIGlkPVwidi1waWxscy1lZmZlY3QtY2FwYWJpbGl0aWVzLXt7IGN1cnZlPy51dWlkIH19XCIgcm9sZT1cInRhYnBhbmVsXCI+XG4gICAgICA8IS0tIENhcGFiaWxpdGllcy0tPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY2FwYWJpbGl0eSBvZiBhdmFpbGFibGVDYXBhYmlsaXRpZXM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxuICAgICAgICAgIGlkPVwiY2FwYWJpbGl0eV97eyBjdXJ2ZT8udXVpZCArICdfJyArIGkgfX1cIlxuICAgICAgICAgIFtuZ01vZGVsXT1cImNhcGFiaWxpdHlDaGVja2VkKGNhcGFiaWxpdHkpXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUNhcGFiaWxpdHkoJGV2ZW50LCBjYXBhYmlsaXR5KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJjYXBhYmlsaXR5X3t7IGN1cnZlPy51dWlkICsgJ18nICsgaSB9fVwiPnt7IGdldENhcGFiaWxpdHlOYW1lKGNhcGFiaWxpdHkpIHwgYXN5bmMgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGgtMTAwIHNob3dcIiBpZD1cInYtcGlsbHMtZWZmZWN0LWNoYW5uZWxzLXt7IGN1cnZlPy51dWlkIH19XCIgcm9sZT1cInRhYnBhbmVsXCI+XG4gICAgICA8IS0tIGNoYW5uZWxzIC0tPlxuXG4gICAgICA8IS0tIHByb2ZpbGUgc2VsZWN0aW9uIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cImF2YWlsYWJsZVByb2ZpbGVzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcHJvZmlsZSBvZiBhdmFpbGFibGVQcm9maWxlczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiZm9ybS1jaGVja1wiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXG4gICAgICAgICAgICBpZD1cImNoYW5uZWxfcHJvZmlsZV97eyBjdXJ2ZT8udXVpZCB9fV97eyBwcm9maWxlLnV1aWQgfX1cIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRQcm9maWxlcy5pbmRleE9mKHByb2ZpbGUpID49IDBcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VQcm9maWxlU2VsZWN0aW9uKCRldmVudCwgcHJvZmlsZSlcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImNoYW5uZWxfcHJvZmlsZV97eyBjdXJ2ZT8udXVpZCB9fV97eyBwcm9maWxlLnV1aWQgfX1cIj57eyBwcm9maWxlLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8aHIgY2xhc3M9XCJteS0xXCIgc3R5bGU9XCJib3JkZXItY29sb3I6IHdoaXRlXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIGNoYW5uZWxzIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZW50cnkgb2YgYXZhaWxhYmxlQ2hhbm5lbHMgfCBrZXl2YWx1ZTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjaGFubmVsIG9mIGVudHJ5LnZhbHVlOyBsZXQgaiA9IGluZGV4XCIgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcbiAgICAgICAgICAgIGlkPVwiY2hhbm5lbF97eyBjdXJ2ZT8udXVpZCB9fV97eyBpIH19X3t7IGogfX1cIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiY2hhbm5lbENoZWNrZWQoZW50cnkua2V5LCBjaGFubmVsKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUNoYW5uZWwoJGV2ZW50LCBlbnRyeS5rZXksIGNoYW5uZWwpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJjaGFubmVsX3t7IGN1cnZlPy51dWlkIH19X3t7IGkgfX1fe3sgaiB9fVwiPnt7XG4gICAgICAgICAgICBnZXRDaGFubmVsTmFtZShlbnRyeS5rZXkubmFtZSwgY2hhbm5lbC5uYW1lKVxuICAgICAgICAgIH19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
577
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LWN1cnZlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZWZmZWN0L2VmZmVjdC1jdXJ2ZS9lZmZlY3QtY3VydmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9lZmZlY3QvZWZmZWN0LWN1cnZlL2VmZmVjdC1jdXJ2ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBNEIsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ3lLOUQsQUFERiwrQkFBd0YsZ0JBT3BGO0lBREEsd05BQVUsOENBQW9DLEtBQUM7SUFMakQsaUJBTUU7SUFDRixpQ0FBNkU7SUFBQSxZQUEyQzs7SUFDMUgsQUFEMEgsaUJBQVEsRUFDNUg7Ozs7O0lB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LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhY2hlZEZpeHR1cmVDaGFubmVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NhY2hlZC1maXh0dXJlLWNoYW5uZWwnO1xuaW1wb3J0IHsgRWZmZWN0Q3VydmVQcm9maWxlQ2hhbm5lbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZWZmZWN0LWN1cnZlLXByb2ZpbGUtY2hhbm5lbCc7XG5pbXBvcnQgeyBGaXh0dXJlQ2FwYWJpbGl0eSwgRml4dHVyZUNhcGFiaWxpdHlDb2xvciwgRml4dHVyZUNhcGFiaWxpdHlUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpeHR1cmUtY2FwYWJpbGl0eSc7XG5pbXBvcnQgeyBGaXh0dXJlUHJvZmlsZSB9IGZyb20gJy4uLy4uL21vZGVscy9maXh0dXJlLXByb2ZpbGUnO1xuaW1wb3J0IHsgRml4dHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maXh0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ByZXNldC5zZXJ2aWNlJztcbmltcG9ydCB7IEVmZmVjdEN1cnZlIH0gZnJvbSAnLi8uLi8uLi9tb2RlbHMvZWZmZWN0LWN1cnZlJztcbmltcG9ydCB7IEFuaW1hdGlvblNlcnZpY2UgfSBmcm9tICcuLy4uLy4uL3NlcnZpY2VzL2FuaW1hdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFwcC1lZmZlY3QtY3VydmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWZmZWN0LWN1cnZlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWZmZWN0LWN1cnZlLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRWZmZWN0Q3VydmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGdyaWRVcGRhdGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBjdHg6IGFueTtcbiAgcHJpdmF0ZSBtYXhXaWR0aDogbnVtYmVyO1xuICBwcml2YXRlIG1heEhlaWdodDogbnVtYmVyO1xuXG4gIHB1YmxpYyBsZW5ndGhNaWxsaXNNaW4gPSAyMDtcbiAgcHVibGljIGxlbmd0aE1pbGxpc01heCA9IDgwMDA7XG4gIHB1YmxpYyBhbXBsaXR1ZGVNaW4gPSAwO1xuICBwdWJsaWMgYW1wbGl0dWRlTWF4ID0gNDtcbiAgcHVibGljIHBlcmNlbnRhZ2VNaW4gPSAwO1xuICBwdWJsaWMgcGVyY2VudGFnZU1heCA9IDE7XG4gIHB1YmxpYyBwaGFzZU1pbGxpc01pbiA9IC0xMDAwO1xuICBwdWJsaWMgcGhhc2VNaWxsaXNNYXggPSAxMDAwO1xuICBwdWJsaWMgcGhhc2luZ01pbGxpc01pbiA9IDA7XG4gIHB1YmxpYyBwaGFzaW5nTWlsbGlzTWF4ID0gMTAwMDtcblxuICAvLyB0aGUgc2VsZWN0ZWQgY2FwYWJpbGl0aWVzXG4gIHB1YmxpYyBhdmFpbGFibGVDYXBhYmlsaXRpZXM6IEZpeHR1cmVDYXBhYmlsaXR5W10gPSBbXTtcblxuICAvLyB0aGUgc2VsZWN0ZWQgY2hhbm5lbHNcbiAgcHVibGljIGF2YWlsYWJsZUNoYW5uZWxzOiBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsW10+ID0gbmV3IE1hcDxGaXh0dXJlUHJvZmlsZSwgQ2FjaGVkRml4dHVyZUNoYW5uZWxbXT4oKTtcbiAgcHVibGljIGF2YWlsYWJsZVByb2ZpbGVzOiBGaXh0dXJlUHJvZmlsZVtdID0gW107XG4gIHB1YmxpYyBzZWxlY3RlZFByb2ZpbGVzOiBGaXh0dXJlUHJvZmlsZVtdID0gW107XG5cbiAgQElucHV0KCkgY3VydmU6IEVmZmVjdEN1cnZlO1xuXG4gIC8vIHdoZXRoZXIgdGhlIGVmZmVjdCBpcyBjdXJyZW50bHkgYmVpbmcgZWRpdGVkIChvcGVuKSBvciBub3RcbiAgQElucHV0KClcbiAgc2V0IGlzU2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIC8vIHN0YXJ0IHRoZSB1cGRhdGUgdGltZXJcbiAgICAgIGlmICghdGhpcy5ncmlkVXBkYXRlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIHRoaXMuZ3JpZFVwZGF0ZVN1YnNjcmlwdGlvbiA9IHRpbWVyKDAsIDE1KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBzdG9wIHRoZSB1cGRhdGUgdGltZXJcbiAgICAgIGlmICh0aGlzLmdyaWRVcGRhdGVTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5ncmlkVXBkYXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZ3JpZFVwZGF0ZVN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAVmlld0NoaWxkKCdjdXJ2ZUdyaWQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjdXJ2ZUdyaWQ6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHByZXNldFNlcnZpY2U6IFByZXNldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbmltYXRpb25TZXJ2aWNlOiBBbmltYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5maXh0dXJlU2VsZWN0aW9uQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDYXBhYmlsaXRpZXNBbmRDaGFubmVscygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy51cGRhdGVDYXBhYmlsaXRpZXNBbmRDaGFubmVscygpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgY2FudmFzID0gdGhpcy5jdXJ2ZUdyaWQubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLmN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIHRoaXMubWF4V2lkdGggPSBjYW52YXMud2lkdGg7XG4gICAgdGhpcy5tYXhIZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xuXG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd0N1cnJlbnRWYWx1ZShjdXJyTWlsbGlzOiBudW1iZXIsIHJhZGl1czogbnVtYmVyLCBsaW5lV2lkdGg6IG51bWJlciwgZHVyYXRpb25NaWxsaXM6IG51bWJlciwgbWF4SGVpZ2h0OiBudW1iZXIpIHtcbiAgICBjb25zdCBjdXJyVmFsID0gMSAtIHRoaXMuY3VydmUuZ2V0VmFsdWVBdE1pbGxpcyhjdXJyTWlsbGlzKTtcblxuICAgIGNvbnN0IHggPSAodGhpcy5tYXhXaWR0aCAqIChjdXJyTWlsbGlzICUgZHVyYXRpb25NaWxsaXMpKSAvIGR1cmF0aW9uTWlsbGlzO1xuICAgIGNvbnN0IHkgPSBtYXhIZWlnaHQgKiBjdXJyVmFsICsgbGluZVdpZHRoO1xuXG4gICAgdGhpcy5jdHguYmVnaW5QYXRoKCk7XG4gICAgdGhpcy5jdHguYXJjKHgsIHksIHJhZGl1cywgMCwgMiAqIE1hdGguUEksIGZhbHNlKTtcbiAgICB0aGlzLmN0eC5maWxsU3R5bGUgPSAnI2ZmZic7XG4gICAgdGhpcy5jdHguZmlsbCgpO1xuICAgIHRoaXMuY3R4LmxpbmVXaWR0aCA9IDE7XG4gICAgdGhpcy5jdHguc3Ryb2tlU3R5bGUgPSAnIzAwMCc7XG4gICAgdGhpcy5jdHguc3Ryb2tlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldFBoYXNpbmdDb3VudCgpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgY29uc3QgY291bnRlZEZpcnN0RG14Q2hhbm5lbFBpeGVsS2V5OiBhbnlbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBwcmVzZXRGaXh0dXJlIG9mIHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldC5maXh0dXJlcykge1xuICAgICAgY29uc3QgZml4dHVyZSA9IHRoaXMuZml4dHVyZVNlcnZpY2UuZ2V0Rml4dHVyZUJ5VXVpZChwcmVzZXRGaXh0dXJlLmZpeHR1cmVVdWlkKTtcbiAgICAgIGNvbnN0IGZpcnN0RG14Q2hhbm5lbEFuZEZpeHR1cmVVdWlkID0ge1xuICAgICAgICBmaXJzdERteENoYW5uZWw6IGZpeHR1cmUuZG14Rmlyc3RDaGFubmVsLFxuICAgICAgICBwaXhlbEtleTogcHJlc2V0Rml4dHVyZS5waXhlbEtleSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGV4aXN0cyA9IGNvdW50ZWRGaXJzdERteENoYW5uZWxQaXhlbEtleS5zb21lKFxuICAgICAgICAoaXRlbSkgPT5cbiAgICAgICAgICBpdGVtLmZpcnN0RG14Q2hhbm5lbCA9PT0gZmlyc3REbXhDaGFubmVsQW5kRml4dHVyZVV1aWQuZmlyc3REbXhDaGFubmVsICYmXG4gICAgICAgICAgKCghaXRlbS5waXhlbEtleSAmJiAhZmlyc3REbXhDaGFubmVsQW5kRml4dHVyZVV1aWQucGl4ZWxLZXkpIHx8IGl0ZW0ucGl4ZWxLZXkgPT09IGZpcnN0RG14Q2hhbm5lbEFuZEZpeHR1cmVVdWlkLnBpeGVsS2V5KVxuICAgICAgKTtcblxuICAgICAgLy8gZG9uJ3QgY291bnQgaXQsIGlmIGl0IGhhcyB0aGUgc2FtZSBETVggYWRkcmVzcyBhbmQgcGl4ZWwga2V5IChpZiBhdmFpbGFibGUpLFxuICAgICAgLy8gYXMgYW4gYWxyZWFkeSBjb3VudGVkIG9uZVxuICAgICAgaWYgKCFleGlzdHMpIHtcbiAgICAgICAgY291bnQrKztcbiAgICAgICAgY291bnRlZEZpcnN0RG14Q2hhbm5lbFBpeGVsS2V5LnB1c2goZmlyc3REbXhDaGFubmVsQW5kRml4dHVyZVV1aWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIHJlZHJhdygpIHtcbiAgICB0aGlzLmN0eC5jbGVhclJlY3QoMCwgMCwgdGhpcy5tYXhXaWR0aCwgdGhpcy5tYXhIZWlnaHQpO1xuICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9ICcjZmZmJztcbiAgICB0aGlzLmN0eC5zdHJva2VTdHlsZSA9ICcjZmZmJztcblxuICAgIC8vIHRoZSB3aWR0aCBvZiB0aGUgbGluZXNcbiAgICBjb25zdCB3aWR0aCA9IDM7XG5cbiAgICB0aGlzLmN0eC5saW5lV2lkdGggPSB3aWR0aDtcblxuICAgIGxldCBvbGRYOiBudW1iZXI7XG4gICAgbGV0IG9sZFk6IG51bWJlcjtcblxuICAgIGxldCBzdGVwID0gNTA7XG5cbiAgICBpZiAobGVuZ3RoIDwgNTAwKSB7XG4gICAgICBzdGVwID0gNTtcbiAgICB9XG5cbiAgICBjb25zdCBkdXJhdGlvbk1pbGxpcyA9IHRoaXMuY3VydmUubGVuZ3RoTWlsbGlzICogTWF0aC5tYXgoTWF0aC5yb3VuZCg0IC0gdGhpcy5jdXJ2ZS5sZW5ndGhNaWxsaXMgLyAxMDAwKSwgMSk7XG4gICAgY29uc3QgbWF4SGVpZ2h0ID0gdGhpcy5tYXhIZWlnaHQgLSB3aWR0aCAqIDI7XG5cbiAgICAvLyBkcmF3IHRoZSBjdXJ2ZVxuICAgIGZvciAobGV0IGkgPSAtc3RlcCAqIDI7IGkgPCBkdXJhdGlvbk1pbGxpcyArIHN0ZXAgKiAyOyBpICs9IHN0ZXApIHtcbiAgICAgIGNvbnN0IHZhbCA9IDEgLSB0aGlzLmN1cnZlLmdldFZhbHVlQXRNaWxsaXMoaSk7XG5cbiAgICAgIC8vIFNjYWxlIHRoZSB2YWx1ZXMgdG8gdGhlIGdyaWQgZGltZW5zaW9uc1xuICAgICAgY29uc3QgeCA9ICh0aGlzLm1heFdpZHRoICogaSkgLyBkdXJhdGlvbk1pbGxpcztcbiAgICAgIGNvbnN0IHkgPSBtYXhIZWlnaHQgKiB2YWwgKyB3aWR0aDtcblxuICAgICAgaWYgKG9sZFkpIHtcbiAgICAgICAgdGhpcy5jdHguYmVnaW5QYXRoKCk7XG4gICAgICAgIHRoaXMuY3R4Lm1vdmVUbyhvbGRYLCBvbGRZKTtcbiAgICAgICAgdGhpcy5jdHgubGluZVRvKHgsIHkpO1xuICAgICAgICB0aGlzLmN0eC5zdHJva2UoKTtcbiAgICAgIH1cblxuICAgICAgb2xkWCA9IHg7XG4gICAgICBvbGRZID0geTtcbiAgICB9XG5cbiAgICAvLyBkcmF3IHRoZSBjdXJyZW50IHZhbHVlXG4gICAgdGhpcy5kcmF3Q3VycmVudFZhbHVlKHRoaXMuYW5pbWF0aW9uU2VydmljZS50aW1lTWlsbGlzICUgZHVyYXRpb25NaWxsaXMsIDUsIHdpZHRoLCBkdXJhdGlvbk1pbGxpcywgbWF4SGVpZ2h0KTtcblxuICAgIC8vIGRyYXcgdGhlIHBoYXNpbmcgdmFsdWVzIChjaGFzZSksIGlmIHJlcXVpcmVkXG4gICAgbGV0IHBoYXNpbmdDb3VudCA9IDA7XG5cbiAgICBpZiAodGhpcy5jdXJ2ZS5waGFzaW5nTWlsbGlzID4gMCAmJiB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQpIHtcbiAgICAgIHBoYXNpbmdDb3VudCA9IHRoaXMuZ2V0UGhhc2luZ0NvdW50KCk7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCBwaGFzaW5nQ291bnQ7IGkrKykge1xuICAgICAgdGhpcy5kcmF3Q3VycmVudFZhbHVlKFxuICAgICAgICAodGhpcy5hbmltYXRpb25TZXJ2aWNlLnRpbWVNaWxsaXMgLSBpICogdGhpcy5jdXJ2ZS5waGFzaW5nTWlsbGlzKSAlIGR1cmF0aW9uTWlsbGlzLFxuICAgICAgICAzLFxuICAgICAgICB3aWR0aCxcbiAgICAgICAgZHVyYXRpb25NaWxsaXMsXG4gICAgICAgIG1heEhlaWdodFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUNoYW5uZWxDYXBhYmlsaXRpZXMoKSB7XG4gICAgdGhpcy5hdmFpbGFibGVDaGFubmVscyA9IHRoaXMucHJlc2V0U2VydmljZS5nZXRTZWxlY3RlZFByb2ZpbGVDaGFubmVscyh0aGlzLnNlbGVjdGVkUHJvZmlsZXMpO1xuICB9XG5cbiAgY2hhbmdlUHJvZmlsZVNlbGVjdGlvbigkZXZlbnQ6IGFueSwgcHJvZmlsZTogRml4dHVyZVByb2ZpbGUpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFByb2ZpbGVzLmluZGV4T2YocHJvZmlsZSkgPj0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFByb2ZpbGVzLnNwbGljZSh0aGlzLnNlbGVjdGVkUHJvZmlsZXMuaW5kZXhPZihwcm9maWxlKSwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9maWxlcy5wdXNoKHByb2ZpbGUpO1xuICAgIH1cblxuICAgIHRoaXMuY2FsY3VsYXRlQ2hhbm5lbENhcGFiaWxpdGllcygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDYXBhYmlsaXRpZXNBbmRDaGFubmVscygpIHtcbiAgICAvLyBjYXBhYmlsaXRpZXNcbiAgICB0aGlzLmF2YWlsYWJsZUNhcGFiaWxpdGllcyA9IFtdO1xuXG4gICAgaWYgKHRoaXMucHJlc2V0U2VydmljZS5oYXNDYXBhYmlsaXR5RGltbWVyKCkpIHtcbiAgICAgIGNvbnN0IGNhcGFiaWxpdHkgPSBuZXcgRml4dHVyZUNhcGFiaWxpdHkoKTtcbiAgICAgIGNhcGFiaWxpdHkudHlwZSA9IEZpeHR1cmVDYXBhYmlsaXR5VHlwZS5JbnRlbnNpdHk7XG4gICAgICB0aGlzLmF2YWlsYWJsZUNhcGFiaWxpdGllcy5wdXNoKGNhcGFiaWxpdHkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eUNvbG9yKCkpIHtcbiAgICAgIGxldCBjYXBhYmlsaXR5ID0gbmV3IEZpeHR1cmVDYXBhYmlsaXR5KCk7XG4gICAgICBjYXBhYmlsaXR5LnR5cGUgPSBGaXh0dXJlQ2FwYWJpbGl0eVR5cGUuQ29sb3JJbnRlbnNpdHk7XG4gICAgICBjYXBhYmlsaXR5LmNvbG9yID0gRml4dHVyZUNhcGFiaWxpdHlDb2xvci5SZWQ7XG4gICAgICB0aGlzLmF2YWlsYWJsZUNhcGFiaWxpdGllcy5wdXNoKGNhcGFiaWxpdHkpO1xuXG4gICAgICBjYXBhYmlsaXR5ID0gbmV3IEZpeHR1cmVDYXBhYmlsaXR5KCk7XG4gICAgICBjYXBhYmlsaXR5LnR5cGUgPSBGaXh0dXJlQ2FwYWJpbGl0eVR5cGUuQ29sb3JJbnRlbnNpdHk7XG4gICAgICBjYXBhYmlsaXR5LmNvbG9yID0gRml4dHVyZUNhcGFiaWxpdHlDb2xvci5HcmVlbjtcbiAgICAgIHRoaXMuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzLnB1c2goY2FwYWJpbGl0eSk7XG5cbiAgICAgIGNhcGFiaWxpdHkgPSBuZXcgRml4dHVyZUNhcGFiaWxpdHkoKTtcbiAgICAgIGNhcGFiaWxpdHkudHlwZSA9IEZpeHR1cmVDYXBhYmlsaXR5VHlwZS5Db2xvckludGVuc2l0eTtcbiAgICAgIGNhcGFiaWxpdHkuY29sb3IgPSBGaXh0dXJlQ2FwYWJpbGl0eUNvbG9yLkJsdWU7XG4gICAgICB0aGlzLmF2YWlsYWJsZUNhcGFiaWxpdGllcy5wdXNoKGNhcGFiaWxpdHkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eVBhblRpbHQoKSkge1xuICAgICAgbGV0IGNhcGFiaWxpdHkgPSBuZXcgRml4dHVyZUNhcGFiaWxpdHkoKTtcbiAgICAgIGNhcGFiaWxpdHkudHlwZSA9IEZpeHR1cmVDYXBhYmlsaXR5VHlwZS5QYW47XG4gICAgICB0aGlzLmF2YWlsYWJsZUNhcGFiaWxpdGllcy5wdXNoKGNhcGFiaWxpdHkpO1xuXG4gICAgICBjYXBhYmlsaXR5ID0gbmV3IEZpeHR1cmVDYXBhYmlsaXR5KCk7XG4gICAgICBjYXBhYmlsaXR5LnR5cGUgPSBGaXh0dXJlQ2FwYWJpbGl0eVR5cGUuVGlsdDtcbiAgICAgIHRoaXMuYXZhaWxhYmxlQ2FwYWJpbGl0aWVzLnB1c2goY2FwYWJpbGl0eSk7XG4gICAgfVxuXG4gICAgLy8gY2FsY3VsYXRlIGFsbCBwcm9maWxlc1xuICAgIHRoaXMuYXZhaWxhYmxlUHJvZmlsZXMgPSB0aGlzLnByZXNldFNlcnZpY2UuZ2V0U2VsZWN0ZWRQcm9maWxlcygpO1xuXG4gICAgLy8gc2VsZWN0IGFsbCBwcm9maWxlcyBieSBkZWZhdWx0XG4gICAgdGhpcy5zZWxlY3RlZFByb2ZpbGVzID0gWy4uLnRoaXMuYXZhaWxhYmxlUHJvZmlsZXNdO1xuXG4gICAgLy8gY2FsY3VsYXRlIGFsbCBjaGFubmVsc1xuICAgIHRoaXMuY2FsY3VsYXRlQ2hhbm5lbENhcGFiaWxpdGllcygpO1xuICB9XG5cbiAgZ2V0Q2FwYWJpbGl0eU5hbWUoY2FwYWJpbGl0eTogRml4dHVyZUNhcGFiaWxpdHkpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVxuICAgICAgLmdldChbJ2Rlc2lnbmVyLmZpeHR1cmVDYXBhYmlsaXR5VHlwZS4nICsgY2FwYWJpbGl0eS50eXBlLCAnZGVzaWduZXIuZml4dHVyZUNhcGFiaWxpdHlDb2xvci4nICsgY2FwYWJpbGl0eS5jb2xvcl0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGxldCBuYW1lID0gJyc7XG4gICAgICAgICAgbmFtZSArPSByZXN1bHRbJ2Rlc2lnbmVyLmZpeHR1cmVDYXBhYmlsaXR5VHlwZS4nICsgY2FwYWJpbGl0eS50eXBlXTtcblxuICAgICAgICAgIGlmIChjYXBhYmlsaXR5LmNvbG9yKSB7XG4gICAgICAgICAgICBuYW1lICs9ICcsICcgKyByZXN1bHRbJ2Rlc2lnbmVyLmZpeHR1cmVDYXBhYmlsaXR5Q29sb3IuJyArIGNhcGFiaWxpdHkuY29sb3JdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBjYXBhYmlsaXR5Q2hlY2tlZChjYXBhYmlsaXR5OiBGaXh0dXJlQ2FwYWJpbGl0eSk6IGJvb2xlYW4ge1xuICAgIGZvciAoY29uc3QgZXhpc3RpbmdDYXBhYmlsaXR5IG9mIHRoaXMuY3VydmUuY2FwYWJpbGl0aWVzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuZml4dHVyZVNlcnZpY2UuY2FwYWJpbGl0aWVzTWF0Y2goXG4gICAgICAgICAgZXhpc3RpbmdDYXBhYmlsaXR5LnR5cGUsXG4gICAgICAgICAgY2FwYWJpbGl0eS50eXBlLFxuICAgICAgICAgIGV4aXN0aW5nQ2FwYWJpbGl0eS5jb2xvcixcbiAgICAgICAgICBjYXBhYmlsaXR5LmNvbG9yLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIG51bGxcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVDYXBhYmlsaXR5KGV2ZW50OiBhbnksIGNhcGFiaWxpdHk6IEZpeHR1cmVDYXBhYmlsaXR5KSB7XG4gICAgaWYgKGV2ZW50LmN1cnJlbnRUYXJnZXQuY2hlY2tlZCkge1xuICAgICAgLy8gYWRkIHRoZSBjYXBhYmlsaXR5XG4gICAgICB0aGlzLmN1cnZlLmNhcGFiaWxpdGllcy5wdXNoKGNhcGFiaWxpdHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBSZW1vdmUgdGhlIGNoYW5uZWxcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jdXJ2ZS5jYXBhYmlsaXRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmdDYXBhYmlsaXR5ID0gdGhpcy5jdXJ2ZS5jYXBhYmlsaXRpZXNbaV07XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmZpeHR1cmVTZXJ2aWNlLmNhcGFiaWxpdGllc01hdGNoKFxuICAgICAgICAgICAgZXhpc3RpbmdDYXBhYmlsaXR5LnR5cGUsXG4gICAgICAgICAgICBjYXBhYmlsaXR5LnR5cGUsXG4gICAgICAgICAgICBleGlzdGluZ0NhcGFiaWxpdHkuY29sb3IsXG4gICAgICAgICAgICBjYXBhYmlsaXR5LmNvbG9yLFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5jdXJ2ZS5jYXBhYmlsaXRpZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wcmVzZXRTZXJ2aWNlLnByZXZpZXdMaXZlKCk7XG4gIH1cblxuICBnZXRDaGFubmVsTmFtZShwcm9maWxlTmFtZTogc3RyaW5nLCBjaGFubmVsTmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuYXZhaWxhYmxlUHJvZmlsZXMubGVuZ3RoID4gMSkge1xuICAgICAgcmV0dXJuIHByb2ZpbGVOYW1lICsgJyAtICcgKyBjaGFubmVsTmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hhbm5lbE5hbWU7XG4gIH1cblxuICBjaGFubmVsQ2hlY2tlZChwcm9maWxlOiBGaXh0dXJlUHJvZmlsZSwgY2hhbm5lbDogQ2FjaGVkRml4dHVyZUNoYW5uZWwpOiBib29sZWFuIHtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGVDaGFubmVscyBvZiB0aGlzLmN1cnZlLmNoYW5uZWxzKSB7XG4gICAgICBpZiAocHJvZmlsZUNoYW5uZWxzLnByb2ZpbGVVdWlkID09PSBwcm9maWxlLnV1aWQpIHtcbiAgICAgICAgaWYgKHByb2ZpbGVDaGFubmVscy5jaGFubmVscy5pbmNsdWRlcyhjaGFubmVsLm5hbWUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b2dnbGVDaGFubmVsKGV2ZW50OiBhbnksIHByb2ZpbGU6IEZpeHR1cmVQcm9maWxlLCBjaGFubmVsOiBDYWNoZWRGaXh0dXJlQ2hhbm5lbCkge1xuICAgIC8vIGFkZCB0aGUgcHJvZmlsZSwgaWYgbmVjZXNzYXJ5XG4gICAgbGV0IHByb2ZpbGVDb250YWluZWQgPSBmYWxzZTtcbiAgICBmb3IgKGNvbnN0IHByb2ZpbGVDaGFubmVscyBvZiB0aGlzLmN1cnZlLmNoYW5uZWxzKSB7XG4gICAgICBpZiAocHJvZmlsZUNoYW5uZWxzLnByb2ZpbGVVdWlkID09PSBwcm9maWxlLnV1aWQpIHtcbiAgICAgICAgcHJvZmlsZUNvbnRhaW5lZCA9IHRydWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghcHJvZmlsZUNvbnRhaW5lZCkge1xuICAgICAgY29uc3QgcHJvZmlsZUNoYW5uZWxzID0gbmV3IEVmZmVjdEN1cnZlUHJvZmlsZUNoYW5uZWxzKCk7XG4gICAgICBwcm9maWxlQ2hhbm5lbHMucHJvZmlsZVV1aWQgPSBwcm9maWxlLnV1aWQ7XG4gICAgICB0aGlzLmN1cnZlLmNoYW5uZWxzLnB1c2gocHJvZmlsZUNoYW5uZWxzKTtcbiAgICB9XG5cbiAgICAvLyBhZGQgb3IgZGVsZXRlIHRoZSBjaGFubmVsXG4gICAgZm9yIChjb25zdCBwcm9maWxlQ2hhbm5lbHMgb2YgdGhpcy5jdXJ2ZS5jaGFubmVscykge1xuICAgICAgaWYgKHByb2ZpbGVDaGFubmVscy5wcm9maWxlVXVpZCA9PT0gcHJvZmlsZS51dWlkKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gcHJvZmlsZUNoYW5uZWxzLmNoYW5uZWxzLmluZGV4T2YoY2hhbm5lbC5uYW1lKTtcblxuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgIHByb2ZpbGVDaGFubmVscy5jaGFubmVscy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb2ZpbGVDaGFubmVscy5jaGFubmVscy5wdXNoKGNoYW5uZWwubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgfVxuXG4gIHNldExlbmd0aE1pbGxpcyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCFpc05hTih2YWx1ZSkgJiYgdmFsdWUgPj0gdGhpcy5sZW5ndGhNaWxsaXNNaW4gJiYgdmFsdWUgPD0gdGhpcy5sZW5ndGhNaWxsaXNNYXgpIHtcbiAgICAgIHRoaXMuY3VydmUubGVuZ3RoTWlsbGlzID0gK3ZhbHVlO1xuICAgICAgdGhpcy5wcmVzZXRTZXJ2aWNlLnByZXZpZXdMaXZlKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0QW1wbGl0dWRlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+PSB0aGlzLmFtcGxpdHVkZU1pbiAmJiB2YWx1ZSA8PSB0aGlzLmFtcGxpdHVkZU1heCkge1xuICAgICAgdGhpcy5jdXJ2ZS5hbXBsaXR1ZGUgPSArdmFsdWU7XG4gICAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgICB9XG4gIH1cblxuICBzZXRQb3NpdGlvbih2YWx1ZTogYW55KSB7XG4gICAgaWYgKCFpc05hTih2YWx1ZSkgJiYgdmFsdWUgPj0gdGhpcy5wZXJjZW50YWdlTWluICYmIHZhbHVlIDw9IHRoaXMucGVyY2VudGFnZU1heCkge1xuICAgICAgdGhpcy5jdXJ2ZS5wb3NpdGlvbiA9ICt2YWx1ZTtcbiAgICAgIHRoaXMucHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNldFBoYXNlTWlsbGlzKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+PSB0aGlzLnBoYXNlTWlsbGlzTWluICYmIHZhbHVlIDw9IHRoaXMucGhhc2VNaWxsaXNNYXgpIHtcbiAgICAgIHRoaXMuY3VydmUucGhhc2VNaWxsaXMgPSArdmFsdWU7XG4gICAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgICB9XG4gIH1cblxuICBzZXRQaGFzaW5nTWlsbGlzKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+PSB0aGlzLnBoYXNpbmdNaWxsaXNNaW4gJiYgdmFsdWUgPD0gdGhpcy5waGFzaW5nTWlsbGlzTWF4KSB7XG4gICAgICB0aGlzLmN1cnZlLnBoYXNpbmdNaWxsaXMgPSArdmFsdWU7XG4gICAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtci0zXCIgc3R5bGU9XCJmbG9hdDogbGVmdFwiPlxuICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgIDxzZWxlY3RcbiAgICAgIFtuZ01vZGVsXT1cImN1cnZlLmN1cnZlVHlwZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjdXJ2ZS5jdXJ2ZVR5cGUgPSAkZXZlbnQ7IHByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKVwiXG4gICAgICBzdHlsZT1cIndpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMHB4XCJcbiAgICA+XG4gICAgICA8b3B0aW9uIFt2YWx1ZV09XCInc2luZSdcIj5cbiAgICAgICAge3sgJ2Rlc2lnbmVyLmVmZmVjdC5jdXJ2ZS1zaW5lJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9vcHRpb24+XG4gICAgICA8b3B0aW9uIFt2YWx1ZV09XCInc3F1YXJlJ1wiPlxuICAgICAgICB7eyAnZGVzaWduZXIuZWZmZWN0LmN1cnZlLXNxdWFyZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvb3B0aW9uPlxuICAgICAgPCEtLSA8b3B0aW9uIFt2YWx1ZV09XCIndHJpYW5nbGUnXCI+XG4gICAgICAgIHt7ICdkZXNpZ25lci5lZmZlY3QuY3VydmUtdHJpYW5nbGUnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XG4gICAgICA8b3B0aW9uIFt2YWx1ZV09XCInc2F3dG9vdGgnXCI+XG4gICAgICAgIHt7ICdkZXNpZ25lci5lZmZlY3QuY3VydmUtc2F3dG9vdGgnIHwgdHJhbnNsYXRlIH19PC9vcHRpb24+XG4gICAgICA8b3B0aW9uIFt2YWx1ZV09XCIncmV2ZXJzZS1zYXd0b290aCdcIj5cbiAgICAgICAge3sgJ2Rlc2lnbmVyLmVmZmVjdC5jdXJ2ZS1yZXZlcnNlLXNhd3Rvb3RoJyB8IHRyYW5zbGF0ZSB9fTwvb3B0aW9uPiAtLT5cbiAgICA8L3NlbGVjdD5cbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPGNhbnZhcyAjY3VydmVHcmlkIGNsYXNzPVwiY3VydmUtZ3JpZFwiIHdpZHRoPVwiMjAwXCIgaGVpZ2h0PVwiMTAwXCIgdmlld0JveD1cIjE1MCAtNzUgNDg1MCA1MTUwXCIgcHJlc2VydmVBc3BlY3RSYXRpbz1cIm5vbmVcIj48L2NhbnZhcz5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1yLTRcIiBzdHlsZT1cImZsb2F0OiBsZWZ0XCI+XG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiIHN0eWxlPVwid2lkdGg6IDEwMHB4OyBmbG9hdDogbGVmdFwiPlxuICAgICAge3sgJ2Rlc2lnbmVyLmVmZmVjdC5jdXJ2ZS1sZW5ndGgnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIiBzdHlsZT1cImZsb2F0OiBsZWZ0XCI+XG4gICAgICA8bXYtc2xpZGVyXG4gICAgICAgIChjaGFuZ2UpPVwicmVkcmF3KCk7IHByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKVwiXG4gICAgICAgIFsodmFsdWUpXT1cImN1cnZlLmxlbmd0aE1pbGxpc1wiXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDgwcHhcIlxuICAgICAgICBbdG9vbHRpcF09XCInaGlkZSdcIlxuICAgICAgICBbdmFsdWVdPVwiMFwiXG4gICAgICAgIFttaW5dPVwibGVuZ3RoTWlsbGlzTWluXCJcbiAgICAgICAgW21heF09XCJsZW5ndGhNaWxsaXNNYXhcIlxuICAgICAgICBbc3RlcF09XCIxXCJcbiAgICAgID48L212LXNsaWRlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJzbGlkZXItaW5wdXRcIiBbbmdNb2RlbF09XCJjdXJ2ZS5sZW5ndGhNaWxsaXNcIiAobmdNb2RlbENoYW5nZSk9XCJzZXRMZW5ndGhNaWxsaXMoJGV2ZW50KTsgcmVkcmF3KClcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvIG1sLTFcIj5cbiAgICAgIHt7ICdkZXNpZ25lci5taXNjLm1zJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIiBzdHlsZT1cIndpZHRoOiAxMDBweDsgZmxvYXQ6IGxlZnRcIj5cbiAgICAgIHt7ICdkZXNpZ25lci5lZmZlY3QuY3VydmUtYW1wbGl0dWRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCIgc3R5bGU9XCJmbG9hdDogbGVmdFwiPlxuICAgICAgPG12LXNsaWRlclxuICAgICAgICAoY2hhbmdlKT1cInJlZHJhdygpOyBwcmVzZXRTZXJ2aWNlLnByZXZpZXdMaXZlKClcIlxuICAgICAgICBbKHZhbHVlKV09XCJjdXJ2ZS5hbXBsaXR1ZGVcIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiA4MHB4XCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ2hpZGUnXCJcbiAgICAgICAgW21pbl09XCJhbXBsaXR1ZGVNaW5cIlxuICAgICAgICBbbWF4XT1cImFtcGxpdHVkZU1heFwiXG4gICAgICAgIFtzdGVwXT1cIjAuMDFcIlxuICAgICAgPjwvbXYtc2xpZGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInNsaWRlci1pbnB1dFwiIFtuZ01vZGVsXT1cImN1cnZlLmFtcGxpdHVkZVwiIChuZ01vZGVsQ2hhbmdlKT1cInNldEFtcGxpdHVkZSgkZXZlbnQpOyByZWRyYXcoKVwiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiIHN0eWxlPVwid2lkdGg6IDEwMHB4OyBmbG9hdDogbGVmdFwiPlxuICAgICAge3sgJ2Rlc2lnbmVyLmVmZmVjdC5jdXJ2ZS1wb3NpdGlvbicgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiIHN0eWxlPVwiZmxvYXQ6IGxlZnRcIj5cbiAgICAgIDxtdi1zbGlkZXJcbiAgICAgICAgKGNoYW5nZSk9XCJyZWRyYXcoKTsgcHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpXCJcbiAgICAgICAgWyh2YWx1ZSldPVwiY3VydmUucG9zaXRpb25cIlxuICAgICAgICBzdHlsZT1cIndpZHRoOiA4MHB4OyBoZWlnaHQ6IDE4cHhcIlxuICAgICAgICBbdG9vbHRpcF09XCInaGlkZSdcIlxuICAgICAgICBbbWluXT1cInBlcmNlbnRhZ2VNaW5cIlxuICAgICAgICBbbWF4XT1cInBlcmNlbnRhZ2VNYXhcIlxuICAgICAgICBbc3RlcF09XCIwLjAxXCJcbiAgICAgID5cbiAgICAgIDwvbXYtc2xpZGVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cInNsaWRlci1pbnB1dFwiIFtuZ01vZGVsXT1cImN1cnZlLnBvc2l0aW9uXCIgKG5nTW9kZWxDaGFuZ2UpPVwic2V0UG9zaXRpb24oJGV2ZW50KTsgcmVkcmF3KClcIiAvPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIiBzdHlsZT1cIndpZHRoOiAxMDBweDsgZmxvYXQ6IGxlZnRcIj5cbiAgICAgIHt7ICdkZXNpZ25lci5lZmZlY3QuY3VydmUtcGhhc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIiBzdHlsZT1cImZsb2F0OiBsZWZ0XCI+XG4gICAgICA8bXYtc2xpZGVyXG4gICAgICAgIChjaGFuZ2UpPVwicmVkcmF3KCk7IHByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKVwiXG4gICAgICAgIFsodmFsdWUpXT1cImN1cnZlLnBoYXNlTWlsbGlzXCJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogODBweDsgaGVpZ2h0OiAxOHB4XCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ2hpZGUnXCJcbiAgICAgICAgW21pbl09XCJwaGFzZU1pbGxpc01pblwiXG4gICAgICAgIFttYXhdPVwicGhhc2VNaWxsaXNNYXhcIlxuICAgICAgICBbc3RlcF09XCIxXCJcbiAgICAgID48L212LXNsaWRlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJzbGlkZXItaW5wdXRcIiBbbmdNb2RlbF09XCJjdXJ2ZS5waGFzZU1pbGxpc1wiIChuZ01vZGVsQ2hhbmdlKT1cInNldFBoYXNlTWlsbGlzKCRldmVudCk7IHJlZHJhdygpXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0byBtbC0xXCI+XG4gICAgICB7eyAnZGVzaWduZXIubWlzYy5tcycgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCIgc3R5bGU9XCJ3aWR0aDogMTAwcHg7IGZsb2F0OiBsZWZ0XCI+XG4gICAgICB7eyAnZGVzaWduZXIuZWZmZWN0LmN1cnZlLWNoYXNlJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCIgc3R5bGU9XCJmbG9hdDogbGVmdFwiPlxuICAgICAgPG12LXNsaWRlclxuICAgICAgICAoY2hhbmdlKT1cInJlZHJhdygpOyBwcmVzZXRTZXJ2aWNlLnByZXZpZXdMaXZlKClcIlxuICAgICAgICBbKHZhbHVlKV09XCJjdXJ2ZS5waGFzaW5nTWlsbGlzXCJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogODBweDsgaGVpZ2h0OiAxOHB4XCJcbiAgICAgICAgW3Rvb2x0aXBdPVwiJ2hpZGUnXCJcbiAgICAgICAgW21pbl09XCJwaGFzaW5nTWlsbGlzTWluXCJcbiAgICAgICAgW21heF09XCJwaGFzaW5nTWlsbGlzTWF4XCJcbiAgICAgICAgW3N0ZXBdPVwiMVwiXG4gICAgICA+PC9tdi1zbGlkZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwic2xpZGVyLWlucHV0XCIgW25nTW9kZWxdPVwiY3VydmUucGhhc2luZ01pbGxpc1wiIChuZ01vZGVsQ2hhbmdlKT1cInNldFBoYXNpbmdNaWxsaXMoJGV2ZW50KTsgcmVkcmF3KClcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvIG1sLTFcIj5cbiAgICAgIHt7ICdkZXNpZ25lci5taXNjLm1zJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48IS0tIE1lbnUgZm9yIHRoZSBjYXBhYmlsaXRpZXMgYW5kIGNoYW5uZWxzLS0+XG48ZGl2IGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMFwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxcHg7IHdpZHRoOiA1MHB4OyBmbG9hdDogbGVmdFwiPlxuICA8ZGl2IGNsYXNzPVwibmF2IGZsZXgtY29sdW1uIG5hdi1waWxsc1wiIGlkPVwidi1waWxscy10YWJcIiByb2xlPVwidGFibGlzdFwiIGFyaWEtb3JpZW50YXRpb249XCJ2ZXJ0aWNhbFwiPlxuICAgIDxhXG4gICAgICBjbGFzcz1cIm5hdi1saW5rIHB4LTMgYWN0aXZlXCJcbiAgICAgIGlkPVwidi1waWxscy1lZmZlY3QtY2FwYWJpbGl0aWVzLXRhYlwiXG4gICAgICBwb3BvdmVyPVwie3sgJ2Rlc2lnbmVyLm1pc2MuY2FwYWJpbGl0aWVzJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICBjb250YWluZXI9XCJib2R5XCJcbiAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgIHRyaWdnZXJzPVwibW91c2VlbnRlcjptb3VzZWxlYXZlXCJcbiAgICAgIGRhdGEtdG9nZ2xlPVwicGlsbFwiXG4gICAgICBocmVmPVwiI3YtcGlsbHMtZWZmZWN0LWNhcGFiaWxpdGllcy17eyBjdXJ2ZT8udXVpZCB9fVwiXG4gICAgICByb2xlPVwidGFiXCJcbiAgICAgIGFyaWEtY29udHJvbHM9XCJ2LXBpbGxzLWNhcGFiaWxpdGllc1wiXG4gICAgICBhcmlhLXNlbGVjdGVkPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1ib2x0IGZhLWZ3XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYT5cbiAgICA8YVxuICAgICAgY2xhc3M9XCJuYXYtbGluayBweC0zXCJcbiAgICAgIGlkPVwidi1waWxscy1lZmZlY3QtY2hhbm5lbHMtdGFiXCJcbiAgICAgIHBvcG92ZXI9XCJ7eyAnZGVzaWduZXIubWlzYy5jaGFubmVscycgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgY29udGFpbmVyPVwiYm9keVwiXG4gICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICB0cmlnZ2Vycz1cIm1vdXNlZW50ZXI6bW91c2VsZWF2ZVwiXG4gICAgICBkYXRhLXRvZ2dsZT1cInBpbGxcIlxuICAgICAgaHJlZj1cIiN2LXBpbGxzLWVmZmVjdC1jaGFubmVscy17eyBjdXJ2ZT8udXVpZCB9fVwiXG4gICAgICByb2xlPVwidGFiXCJcbiAgICAgIGFyaWEtY29udHJvbHM9XCJ2LXBpbGxzLWNoYW5uZWxzXCJcbiAgICAgIGFyaWEtc2VsZWN0ZWQ9XCJmYWxzZVwiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zbGlkZXJzIGZhLWZ3XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImgtMTAwXCIgY2xhc3M9XCJhcHBseWluZy10b1wiPlxuICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgaC0xMDBcIiBpZD1cInYtcGlsbHMtdGFiQ29udGVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0YWItcGFuZSBoLTEwMCBzaG93IGFjdGl2ZVwiIGlkPVwidi1waWxscy1lZmZlY3QtY2FwYWJpbGl0aWVzLXt7IGN1cnZlPy51dWlkIH19XCIgcm9sZT1cInRhYnBhbmVsXCI+XG4gICAgICA8IS0tIENhcGFiaWxpdGllcy0tPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY2FwYWJpbGl0eSBvZiBhdmFpbGFibGVDYXBhYmlsaXRpZXM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxuICAgICAgICAgIGlkPVwiY2FwYWJpbGl0eV97eyBjdXJ2ZT8udXVpZCArICdfJyArIGkgfX1cIlxuICAgICAgICAgIFtuZ01vZGVsXT1cImNhcGFiaWxpdHlDaGVja2VkKGNhcGFiaWxpdHkpXCJcbiAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUNhcGFiaWxpdHkoJGV2ZW50LCBjYXBhYmlsaXR5KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJjYXBhYmlsaXR5X3t7IGN1cnZlPy51dWlkICsgJ18nICsgaSB9fVwiPnt7IGdldENhcGFiaWxpdHlOYW1lKGNhcGFiaWxpdHkpIHwgYXN5bmMgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRhYi1wYW5lIGgtMTAwIHNob3dcIiBpZD1cInYtcGlsbHMtZWZmZWN0LWNoYW5uZWxzLXt7IGN1cnZlPy51dWlkIH19XCIgcm9sZT1cInRhYnBhbmVsXCI+XG4gICAgICA8IS0tIGNoYW5uZWxzIC0tPlxuXG4gICAgICA8IS0tIHByb2ZpbGUgc2VsZWN0aW9uIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cImF2YWlsYWJsZVByb2ZpbGVzLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcHJvZmlsZSBvZiBhdmFpbGFibGVQcm9maWxlczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiZm9ybS1jaGVja1wiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiXG4gICAgICAgICAgICBpZD1cImNoYW5uZWxfcHJvZmlsZV97eyBjdXJ2ZT8udXVpZCB9fV97eyBwcm9maWxlLnV1aWQgfX1cIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRQcm9maWxlcy5pbmRleE9mKHByb2ZpbGUpID49IDBcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VQcm9maWxlU2VsZWN0aW9uKCRldmVudCwgcHJvZmlsZSlcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImNoYW5uZWxfcHJvZmlsZV97eyBjdXJ2ZT8udXVpZCB9fV97eyBwcm9maWxlLnV1aWQgfX1cIj57eyBwcm9maWxlLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8aHIgY2xhc3M9XCJteS0xXCIgc3R5bGU9XCJib3JkZXItY29sb3I6IHdoaXRlXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIGNoYW5uZWxzIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZW50cnkgb2YgYXZhaWxhYmxlQ2hhbm5lbHMgfCBrZXl2YWx1ZTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBjaGFubmVsIG9mIGVudHJ5LnZhbHVlOyBsZXQgaiA9IGluZGV4XCIgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcbiAgICAgICAgICAgIGlkPVwiY2hhbm5lbF97eyBjdXJ2ZT8udXVpZCB9fV97eyBpIH19X3t7IGogfX1cIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwiY2hhbm5lbENoZWNrZWQoZW50cnkua2V5LCBjaGFubmVsKVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUNoYW5uZWwoJGV2ZW50LCBlbnRyeS5rZXksIGNoYW5uZWwpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJjaGFubmVsX3t7IGN1cnZlPy51dWlkIH19X3t7IGkgfX1fe3sgaiB9fVwiPnt7XG4gICAgICAgICAgICBnZXRDaGFubmVsTmFtZShlbnRyeS5rZXkubmFtZSwgY2hhbm5lbC5uYW1lKVxuICAgICAgICAgIH19PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -116,8 +116,8 @@ export class FixtureCapabilityComponent {
|
|
|
116
116
|
if (!this.presetService.selectedPreset) {
|
|
117
117
|
return;
|
|
118
118
|
}
|
|
119
|
-
for (const
|
|
120
|
-
const fixture = this.fixtureService.getCachedFixtureByUuid(fixtureUuid);
|
|
119
|
+
for (const preserFixture of this.presetService.selectedPreset.fixtures) {
|
|
120
|
+
const fixture = this.fixtureService.getCachedFixtureByUuid(preserFixture.fixtureUuid, preserFixture.pixelKey);
|
|
121
121
|
for (const channel of fixture.channels) {
|
|
122
122
|
for (const capability of channel.capabilities) {
|
|
123
123
|
if (capability.wheel && capability.wheelSlots && capability.wheelSlots.length > 0) {
|
|
@@ -158,12 +158,12 @@ export class FixtureCapabilityComponent {
|
|
|
158
158
|
i0.ɵɵadvance();
|
|
159
159
|
i0.ɵɵproperty("ngIf", ctx.projectService.project.fixtures.length == 0);
|
|
160
160
|
i0.ɵɵadvance();
|
|
161
|
-
i0.ɵɵproperty("ngIf", ctx.projectService.project.fixtures.length > 0 && ctx.presetService.selectedPreset && ctx.presetService.selectedPreset.
|
|
161
|
+
i0.ɵɵproperty("ngIf", ctx.projectService.project.fixtures.length > 0 && ctx.presetService.selectedPreset && ctx.presetService.selectedPreset.fixtures.length == 0);
|
|
162
162
|
} }, dependencies: [i5.NgForOf, i5.NgIf, i6.FixtureCapabilityColorComponent, i7.FixtureCapabilityDimmerComponent, i8.FixtureCapabilityPanTiltComponent, i9.FixtureCapabilityColorWheelComponent, i5.KeyValuePipe, i10.TranslatePipe], changeDetection: 0 }); }
|
|
163
163
|
}
|
|
164
164
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FixtureCapabilityComponent, [{
|
|
165
165
|
type: Component,
|
|
166
|
-
args: [{ selector: 'lib-app-fixture-capability', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card border-secondary panel h-100\" [class.card-intro-active]=\"introService.showStep('capabilities')\">\n <div class=\"card-body capability-container d-flex h-100\" style=\"overflow-y: hidden\">\n <!-- h-100 needs to be applied in chrome to avoid performance issues with many layouts (reflows)\n during sliding. But the class must not be applied e.g. in Safari, because the bottom margin is not correct\n anymore afterwards. -->\n <div *ngIf=\"presetService.selectedPreset\" class=\"row m-0 pl-3\" [class.h-100]=\"isChrome()\">\n <!-- Dimmer -->\n <!-- the height attribute is required to avoid performance issues with many layouts (reflows)\n in Chrome during sliding -->\n <div *ngIf=\"presetService.hasCapabilityDimmer()\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-dimmer></lib-app-fixture-capability-dimmer>\n </div>\n\n <!-- Color -->\n <!-- Also show for color wheel fixtures to approx. the color -->\n <div *ngIf=\"presetService.hasCapabilityColorOrColorWheel()\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-color></lib-app-fixture-capability-color>\n </div>\n\n <!-- Color wheels -->\n <div\n *ngFor=\"let entry of colorWheelChannels | keyvalue; let i = index\"\n class=\"col col-auto p-0 my-3 mr-3\"\n style=\"height: calc(100% - 2rem)\"\n >\n <lib-app-fixture-capability-color-wheel\n [profile]=\"entry.key\"\n [channel]=\"entry.value\"\n [wheelIndex]=\"i\"\n [showContainer]=\"colorWheelChannels.size > 1\"\n ></lib-app-fixture-capability-color-wheel>\n </div>\n\n <!-- Pan/Tilt -->\n <div *ngIf=\"presetService.hasCapabilityPanTilt()\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-pan-tilt></lib-app-fixture-capability-pan-tilt>\n </div>\n\n <!-- Fix spacing at the end -->\n <div class=\"col col-auto p-0 my-3 mr-3\"> </div>\n </div>\n\n <div *ngIf=\"projectService.project.fixtures.length == 0\" class=\"m-auto\">\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures' | translate }}</p>\n </div>\n\n <div\n *ngIf=\"\n projectService.project.fixtures.length > 0 && presetService.selectedPreset && presetService.selectedPreset.
|
|
166
|
+
args: [{ selector: 'lib-app-fixture-capability', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card border-secondary panel h-100\" [class.card-intro-active]=\"introService.showStep('capabilities')\">\n <div class=\"card-body capability-container d-flex h-100\" style=\"overflow-y: hidden\">\n <!-- h-100 needs to be applied in chrome to avoid performance issues with many layouts (reflows)\n during sliding. But the class must not be applied e.g. in Safari, because the bottom margin is not correct\n anymore afterwards. -->\n <div *ngIf=\"presetService.selectedPreset\" class=\"row m-0 pl-3\" [class.h-100]=\"isChrome()\">\n <!-- Dimmer -->\n <!-- the height attribute is required to avoid performance issues with many layouts (reflows)\n in Chrome during sliding -->\n <div *ngIf=\"presetService.hasCapabilityDimmer()\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-dimmer></lib-app-fixture-capability-dimmer>\n </div>\n\n <!-- Color -->\n <!-- Also show for color wheel fixtures to approx. the color -->\n <div *ngIf=\"presetService.hasCapabilityColorOrColorWheel()\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-color></lib-app-fixture-capability-color>\n </div>\n\n <!-- Color wheels -->\n <div\n *ngFor=\"let entry of colorWheelChannels | keyvalue; let i = index\"\n class=\"col col-auto p-0 my-3 mr-3\"\n style=\"height: calc(100% - 2rem)\"\n >\n <lib-app-fixture-capability-color-wheel\n [profile]=\"entry.key\"\n [channel]=\"entry.value\"\n [wheelIndex]=\"i\"\n [showContainer]=\"colorWheelChannels.size > 1\"\n ></lib-app-fixture-capability-color-wheel>\n </div>\n\n <!-- Pan/Tilt -->\n <div *ngIf=\"presetService.hasCapabilityPanTilt()\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-pan-tilt></lib-app-fixture-capability-pan-tilt>\n </div>\n\n <!-- Fix spacing at the end -->\n <div class=\"col col-auto p-0 my-3 mr-3\"> </div>\n </div>\n\n <div *ngIf=\"projectService.project.fixtures.length == 0\" class=\"m-auto\">\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures' | translate }}</p>\n </div>\n\n <div\n *ngIf=\"\n projectService.project.fixtures.length > 0 && presetService.selectedPreset && presetService.selectedPreset.fixtures.length == 0\n \"\n class=\"m-auto\"\n >\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures-selected' | translate }}</p>\n </div>\n </div>\n</div>\n" }]
|
|
167
167
|
}], () => [{ type: i1.PresetService }, { type: i2.FixtureService }, { type: i0.ChangeDetectorRef }, { type: i3.ProjectService }, { type: i4.IntroService }], null); })();
|
|
168
168
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FixtureCapabilityComponent, { className: "FixtureCapabilityComponent" }); })();
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSXpHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0MxRCw4QkFBc0g7SUFDcEgsb0RBQXVFO0lBQ3pFLGlCQUFNOzs7SUFJTiw4QkFBaUk7SUFDL0gsbURBQXFFO0lBQ3ZFLGlCQUFNOzs7SUFHTiw4QkFJQztJQUNDLDREQUswQztJQUM1QyxpQkFBTTs7Ozs7SUFMRixjQUFxQjtJQUdyQixBQURBLEFBREEsQUFEQSxzQ0FBcUIsMkJBQ0Usb0JBQ1AscURBQzZCOzs7SUFLakQsOEJBQXVIO0lBQ3JILHNEQUEyRTtJQUM3RSxpQkFBTTs7O0lBL0JSLDhCQUEwRjtJQWV4RixBQUxBLEFBTkEsaUZBQXNILG9FQU1XLG9FQVNoSTs7SUFVRCxpRkFBdUg7SUFLdkgsOEJB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RTtZQUlMLEFBREUsaUJBQU0sRUFDRjs7WUF2RHlDLDhFQUFpRTtZQUt0RyxlQUFrQztZQUFsQyx1REFBa0M7WUFxQ2xDLGNBQWlEO1lBQWpELHNFQUFpRDtZQUtwRCxjQUdQO1lBSE8sc0tBR1A7OztpRkRsQ2EsMEJBQTBCO2NBTnRDLFNBQVM7MkJBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNOztrRkFFcEMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhY2hlZEZpeHR1cmVDaGFubmVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NhY2hlZC1maXh0dXJlLWNoYW5uZWwnO1xuaW1wb3J0IHsgRml4dHVyZVByb2ZpbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZml4dHVyZS1wcm9maWxlJztcbmltcG9ydCB7IEZpeHR1cmVXaGVlbFNsb3RUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpeHR1cmUtd2hlZWwtc2xvdCc7XG5pbXBvcnQgeyBGaXh0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpeHR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBJbnRyb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnRyby5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcmVzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9qZWN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2plY3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpeHR1cmUtY2FwYWJpbGl0eS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpeHR1cmUtY2FwYWJpbGl0eS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGaXh0dXJlQ2FwYWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLy8gbWFwIGNvbnRhaW5pbmcgdGhlIHByb2ZpbGUgYW5kIHRoZSBjaGFubmVsIG5hbWUgY29udGFpbmluZyB0aGUgd2hlZWxcbiAgY29sb3JXaGVlbENoYW5uZWxzOiBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsPiA9IG5ldyBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsPigpO1xuXG4gIHByaXZhdGUgZml4dHVyZVNlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBwcmV2aWV3U2VsZWN0aW9uQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcmVzZXRTZXJ2aWNlOiBQcmVzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgcHVibGljIGludHJvU2VydmljZTogSW50cm9TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb24gPSB0aGlzLnByZXNldFNlcnZpY2UuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnByZXZpZXdTZWxlY3Rpb25DaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5wcmVzZXRTZXJ2aWNlLnByZXZpZXdTZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pbnRyb1NlcnZpY2Uuc3RlcENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnByZXZpZXdTZWxlY3Rpb25DaGFuZ2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHdoZWVsSW5MaXN0KHdoZWVsczogTWFwPEZpeHR1cmVQcm9maWxlLCBDYWNoZWRGaXh0dXJlQ2hhbm5lbD4sIHByb2ZpbGU6IEZpeHR1cmVQcm9maWxlLCBjaGFubmVsOiBDYWNoZWRGaXh0dXJlQ2hhbm5lbCkge1xuICAgIHdoZWVscy5mb3JFYWNoKChleGlzdGluZ0NoYW5uZWw6IENhY2hlZEZpeHR1cmVDaGFubmVsLCBleGlzdGluZ1Byb2ZpbGU6IEZpeHR1cmVQcm9maWxlKSA9PiB7XG4gICAgICBpZiAoZXhpc3RpbmdQcm9maWxlLnV1aWQgPT09IHByb2ZpbGUudXVpZCAmJiBleGlzdGluZ0NoYW5uZWwubmFtZSA9PT0gY2hhbm5lbC5uYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2xvcldoZWVscygpIHtcbiAgICB0aGlzLmNvbG9yV2hlZWxDaGFubmVscyA9IG5ldyBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsPigpO1xuXG4gICAgaWYgKCF0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGZpeHR1cmVVdWlkIG9mIHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldC5maXh0dXJlVXVpZHMpIHtcbiAgICAgIGNvbnN0IGZpeHR1cmUgPSB0aGlzLmZpeHR1cmVTZXJ2aWNlLmdldENhY2hlZEZpeHR1cmVCeVV1aWQoZml4dHVyZVV1aWQpO1xuICAgICAgZm9yIChjb25zdCBjaGFubmVsIG9mIGZpeHR1cmUuY2hhbm5lbHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBjYXBhYmlsaXR5IG9mIGNoYW5uZWwuY2FwYWJpbGl0aWVzKSB7XG4gICAgICAgICAgaWYgKGNhcGFiaWxpdHkud2hlZWwgJiYgY2FwYWJpbGl0eS53aGVlbFNsb3RzICYmIGNhcGFiaWxpdHkud2hlZWxTbG90cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maXh0dXJlU2VydmljZS53aGVlbEhhc1Nsb3RUeXBlKGNhcGFiaWxpdHkud2hlZWwsIEZpeHR1cmVXaGVlbFNsb3RUeXBlLkNvbG9yKSkge1xuICAgICAgICAgICAgICAvLyBjb2xvciB3aGVlbFxuICAgICAgICAgICAgICBpZiAoIXRoaXMud2hlZWxJbkxpc3QodGhpcy5jb2xvcldoZWVsQ2hhbm5lbHMsIGZpeHR1cmUucHJvZmlsZSwgY2hhbm5lbCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbG9yV2hlZWxDaGFubmVscy5zZXQoZml4dHVyZS5wcm9maWxlLCBjaGFubmVsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpeHR1cmVTZXJ2aWNlLndoZWVsSGFzU2xvdFR5cGUoY2FwYWJpbGl0eS53aGVlbCwgRml4dHVyZVdoZWVsU2xvdFR5cGUuR29ibykpIHtcbiAgICAgICAgICAgICAgLy8gZ29ibyB3aGVlbFxuICAgICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgdGhpcy51cGRhdGVDb2xvcldoZWVscygpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaXNDaHJvbWUoKTogYm9vbGVhbiB7XG4gICAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoJ0Nocm9tZS8nKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci1zZWNvbmRhcnkgcGFuZWwgaC0xMDBcIiBbY2xhc3MuY2FyZC1pbnRyby1hY3RpdmVdPVwiaW50cm9TZXJ2aWNlLnNob3dTdGVwKCdjYXBhYmlsaXRpZXMnKVwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGNhcGFiaWxpdHktY29udGFpbmVyIGQtZmxleCBoLTEwMFwiIHN0eWxlPVwib3ZlcmZsb3cteTogaGlkZGVuXCI+XG4gICAgPCEtLSBoLTEwMCBuZWVkcyB0byBiZSBhcHBsaWVkIGluIGNocm9tZSB0byBhdm9pZCBwZXJmb3JtYW5jZSBpc3N1ZXMgd2l0aCBtYW55IGxheW91dHMgKHJlZmxvd3MpXG4gICAgZHVyaW5nIHNsaWRpbmcuIEJ1dCB0aGUgY2xhc3MgbXVzdCBub3QgYmUgYXBwbGllZCBlLmcuIGluIFNhZmFyaSwgYmVjYXVzZSB0aGUgYm90dG9tIG1hcmdpbiBpcyBub3QgY29ycmVjdFxuICAgIGFueW1vcmUgYWZ0ZXJ3YXJkcy4gLS0+XG4gICAgPGRpdiAqbmdJZj1cInByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXRcIiBjbGFzcz1cInJvdyBtLTAgcGwtM1wiIFtjbGFzcy5oLTEwMF09XCJpc0Nocm9tZSgpXCI+XG4gICAgICA8IS0tIERpbW1lciAtLT5cbiAgICAgIDwhLS0gdGhlIGhlaWdodCBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgdG8gYXZvaWQgcGVyZm9ybWFuY2UgaXNzdWVzIHdpdGggbWFueSBsYXlvdXRzIChyZWZsb3dzKVxuICAgICAgaW4gQ2hyb21lIGR1cmluZyBzbGlkaW5nIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eURpbW1lcigpXCIgY2xhc3M9XCJjb2wgY29sLWF1dG8gcC0wIG15LTMgbXItM1wiIHN0eWxlPVwiaGVpZ2h0OiBjYWxjKDEwMCUgLSAycmVtKVwiPlxuICAgICAgICA8bGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktZGltbWVyPjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktZGltbWVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ29sb3IgLS0+XG4gICAgICA8IS0tIEFsc28gc2hvdyBmb3IgY29sb3Igd2hlZWwgZml4dHVyZXMgdG8gYXBwcm94LiB0aGUgY29sb3IgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwicHJlc2V0U2VydmljZS5oYXNDYXBhYmlsaXR5Q29sb3JPckNvbG9yV2hlZWwoKVwiIGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMCBteS0zIG1yLTNcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gMnJlbSlcIj5cbiAgICAgICAgPGxpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5LWNvbG9yPjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktY29sb3I+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDb2xvciB3aGVlbHMgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBjb2xvcldoZWVsQ2hhbm5lbHMgfCBrZXl2YWx1ZTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMCBteS0zIG1yLTNcIlxuICAgICAgICBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gMnJlbSlcIlxuICAgICAgPlxuICAgICAgICA8bGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktY29sb3Itd2hlZWxcbiAgICAgICAgICBbcHJvZmlsZV09XCJlbnRyeS5rZXlcIlxuICAgICAgICAgIFtjaGFubmVsXT1cImVudHJ5LnZhbHVlXCJcbiAgICAgICAgICBbd2hlZWxJbmRleF09XCJpXCJcbiAgICAgICAgICBbc2hvd0NvbnRhaW5lcl09XCJjb2xvcldoZWVsQ2hhbm5lbHMuc2l6ZSA+IDFcIlxuICAgICAgICA+PC9saWItYXBwLWZpeHR1cmUtY2FwYWJpbGl0eS1jb2xvci13aGVlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFBhbi9UaWx0IC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eVBhblRpbHQoKVwiIGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMCBteS0zIG1yLTNcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gMnJlbSlcIj5cbiAgICAgICAgPGxpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5LXBhbi10aWx0PjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktcGFuLXRpbHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBGaXggc3BhY2luZyBhdCB0aGUgZW5kIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtYXV0byBwLTAgbXktMyBtci0zXCI+Jm5ic3A7PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicHJvamVjdFNlcnZpY2UucHJvamVjdC5maXh0dXJlcy5sZW5ndGggPT0gMFwiIGNsYXNzPVwibS1hdXRvXCI+XG4gICAgICA8cCBjbGFzcz1cIm0tYXV0b1wiIHN0eWxlPVwiY29sb3I6ICM3MTcxNzFcIj57eyAnZGVzaWduZXIuZml4dHVyZS5uby1maXh0dXJlcycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIlxuICAgICAgICBwcm9qZWN0U2VydmljZS5wcm9qZWN0LmZpeHR1cmVzLmxlbmd0aCA+IDAgJiYgcHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldCAmJiBwcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0LmZpeHR1cmVVdWlkcy5sZW5ndGggPT0gMFxuICAgICAgXCJcbiAgICAgIGNsYXNzPVwibS1hdXRvXCJcbiAgICA+XG4gICAgICA8cCBjbGFzcz1cIm0tYXV0b1wiIHN0eWxlPVwiY29sb3I6ICM3MTcxNzFcIj57eyAnZGVzaWduZXIuZml4dHVyZS5uby1maXh0dXJlcy1zZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZml4dHVyZS9maXh0dXJlLWNhcGFiaWxpdHkvZml4dHVyZS1jYXBhYmlsaXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSXpHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0MxRCw4QkFBc0g7SUFDcEgsb0RBQXVFO0lBQ3pFLGlCQUFNOzs7SUFJTiw4QkFBaUk7SUFDL0gsbURBQXFFO0lBQ3ZFLGlCQUFNOzs7SUFHTiw4QkFJQztJQUNDLDREQUswQztJQUM1QyxpQkFBTTs7Ozs7SUFMRixjQUFxQjtJQUdyQixBQURBLEFBREEsQUFEQSxzQ0FBcUIsMkJBQ0Usb0JBQ1AscURBQzZCOzs7SUFLakQsOEJBQXVIO0lBQ3JILHNEQUEyRTtJQUM3RSxpQkFBTTs7O0lBL0JSLDhCQUEwRjtJQWV4RixBQUxBLEFBTkEsaUZBQXNILG9FQU1XLG9FQVNoSTs7SUFVRCxpRkFBdUg7SUFLdkgsOEJB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QUpBLEFBckNBLDJFQUEwRiw4REFxQ2xCLDhEQVN2RTtZQUlMLEFBREUsaUJBQU0sRUFDRjs7WUF2RHlDLDhFQUFpRTtZQUt0RyxlQUFrQztZQUFsQyx1REFBa0M7WUFxQ2xDLGNBQWlEO1lBQWpELHNFQUFpRDtZQUtwRCxjQUdQO1lBSE8sa0tBR1A7OztpRkRsQ2EsMEJBQTBCO2NBTnRDLFNBQVM7MkJBQ0UsNEJBQTRCLG1CQUdyQix1QkFBdUIsQ0FBQyxNQUFNOztrRkFFcEMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhY2hlZEZpeHR1cmVDaGFubmVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NhY2hlZC1maXh0dXJlLWNoYW5uZWwnO1xuaW1wb3J0IHsgRml4dHVyZVByb2ZpbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZml4dHVyZS1wcm9maWxlJztcbmltcG9ydCB7IEZpeHR1cmVXaGVlbFNsb3RUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpeHR1cmUtd2hlZWwtc2xvdCc7XG5pbXBvcnQgeyBGaXh0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpeHR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBJbnRyb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnRyby5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcmVzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9qZWN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2plY3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpeHR1cmUtY2FwYWJpbGl0eS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpeHR1cmUtY2FwYWJpbGl0eS5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGaXh0dXJlQ2FwYWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLy8gbWFwIGNvbnRhaW5pbmcgdGhlIHByb2ZpbGUgYW5kIHRoZSBjaGFubmVsIG5hbWUgY29udGFpbmluZyB0aGUgd2hlZWxcbiAgY29sb3JXaGVlbENoYW5uZWxzOiBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsPiA9IG5ldyBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsPigpO1xuXG4gIHByaXZhdGUgZml4dHVyZVNlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBwcmV2aWV3U2VsZWN0aW9uQ2hhbmdlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcmVzZXRTZXJ2aWNlOiBQcmVzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgcHVibGljIGludHJvU2VydmljZTogSW50cm9TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb24gPSB0aGlzLnByZXNldFNlcnZpY2UuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnByZXZpZXdTZWxlY3Rpb25DaGFuZ2VkU3Vic2NyaXB0aW9uID0gdGhpcy5wcmVzZXRTZXJ2aWNlLnByZXZpZXdTZWxlY3Rpb25DaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5pbnRyb1NlcnZpY2Uuc3RlcENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnByZXZpZXdTZWxlY3Rpb25DaGFuZ2VkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHdoZWVsSW5MaXN0KHdoZWVsczogTWFwPEZpeHR1cmVQcm9maWxlLCBDYWNoZWRGaXh0dXJlQ2hhbm5lbD4sIHByb2ZpbGU6IEZpeHR1cmVQcm9maWxlLCBjaGFubmVsOiBDYWNoZWRGaXh0dXJlQ2hhbm5lbCkge1xuICAgIHdoZWVscy5mb3JFYWNoKChleGlzdGluZ0NoYW5uZWw6IENhY2hlZEZpeHR1cmVDaGFubmVsLCBleGlzdGluZ1Byb2ZpbGU6IEZpeHR1cmVQcm9maWxlKSA9PiB7XG4gICAgICBpZiAoZXhpc3RpbmdQcm9maWxlLnV1aWQgPT09IHByb2ZpbGUudXVpZCAmJiBleGlzdGluZ0NoYW5uZWwubmFtZSA9PT0gY2hhbm5lbC5uYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2xvcldoZWVscygpIHtcbiAgICB0aGlzLmNvbG9yV2hlZWxDaGFubmVscyA9IG5ldyBNYXA8Rml4dHVyZVByb2ZpbGUsIENhY2hlZEZpeHR1cmVDaGFubmVsPigpO1xuXG4gICAgaWYgKCF0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByZXNlckZpeHR1cmUgb2YgdGhpcy5wcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0LmZpeHR1cmVzKSB7XG4gICAgICBjb25zdCBmaXh0dXJlID0gdGhpcy5maXh0dXJlU2VydmljZS5nZXRDYWNoZWRGaXh0dXJlQnlVdWlkKHByZXNlckZpeHR1cmUuZml4dHVyZVV1aWQsIHByZXNlckZpeHR1cmUucGl4ZWxLZXkpO1xuICAgICAgZm9yIChjb25zdCBjaGFubmVsIG9mIGZpeHR1cmUuY2hhbm5lbHMpIHtcbiAgICAgICAgZm9yIChjb25zdCBjYXBhYmlsaXR5IG9mIGNoYW5uZWwuY2FwYWJpbGl0aWVzKSB7XG4gICAgICAgICAgaWYgKGNhcGFiaWxpdHkud2hlZWwgJiYgY2FwYWJpbGl0eS53aGVlbFNsb3RzICYmIGNhcGFiaWxpdHkud2hlZWxTbG90cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maXh0dXJlU2VydmljZS53aGVlbEhhc1Nsb3RUeXBlKGNhcGFiaWxpdHkud2hlZWwsIEZpeHR1cmVXaGVlbFNsb3RUeXBlLkNvbG9yKSkge1xuICAgICAgICAgICAgICAvLyBjb2xvciB3aGVlbFxuICAgICAgICAgICAgICBpZiAoIXRoaXMud2hlZWxJbkxpc3QodGhpcy5jb2xvcldoZWVsQ2hhbm5lbHMsIGZpeHR1cmUucHJvZmlsZSwgY2hhbm5lbCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbG9yV2hlZWxDaGFubmVscy5zZXQoZml4dHVyZS5wcm9maWxlLCBjaGFubmVsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpeHR1cmVTZXJ2aWNlLndoZWVsSGFzU2xvdFR5cGUoY2FwYWJpbGl0eS53aGVlbCwgRml4dHVyZVdoZWVsU2xvdFR5cGUuR29ibykpIHtcbiAgICAgICAgICAgICAgLy8gZ29ibyB3aGVlbFxuICAgICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgdGhpcy51cGRhdGVDb2xvcldoZWVscygpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaXNDaHJvbWUoKTogYm9vbGVhbiB7XG4gICAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoJ0Nocm9tZS8nKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkIGJvcmRlci1zZWNvbmRhcnkgcGFuZWwgaC0xMDBcIiBbY2xhc3MuY2FyZC1pbnRyby1hY3RpdmVdPVwiaW50cm9TZXJ2aWNlLnNob3dTdGVwKCdjYXBhYmlsaXRpZXMnKVwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGNhcGFiaWxpdHktY29udGFpbmVyIGQtZmxleCBoLTEwMFwiIHN0eWxlPVwib3ZlcmZsb3cteTogaGlkZGVuXCI+XG4gICAgPCEtLSBoLTEwMCBuZWVkcyB0byBiZSBhcHBsaWVkIGluIGNocm9tZSB0byBhdm9pZCBwZXJmb3JtYW5jZSBpc3N1ZXMgd2l0aCBtYW55IGxheW91dHMgKHJlZmxvd3MpXG4gICAgZHVyaW5nIHNsaWRpbmcuIEJ1dCB0aGUgY2xhc3MgbXVzdCBub3QgYmUgYXBwbGllZCBlLmcuIGluIFNhZmFyaSwgYmVjYXVzZSB0aGUgYm90dG9tIG1hcmdpbiBpcyBub3QgY29ycmVjdFxuICAgIGFueW1vcmUgYWZ0ZXJ3YXJkcy4gLS0+XG4gICAgPGRpdiAqbmdJZj1cInByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXRcIiBjbGFzcz1cInJvdyBtLTAgcGwtM1wiIFtjbGFzcy5oLTEwMF09XCJpc0Nocm9tZSgpXCI+XG4gICAgICA8IS0tIERpbW1lciAtLT5cbiAgICAgIDwhLS0gdGhlIGhlaWdodCBhdHRyaWJ1dGUgaXMgcmVxdWlyZWQgdG8gYXZvaWQgcGVyZm9ybWFuY2UgaXNzdWVzIHdpdGggbWFueSBsYXlvdXRzIChyZWZsb3dzKVxuICAgICAgaW4gQ2hyb21lIGR1cmluZyBzbGlkaW5nIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eURpbW1lcigpXCIgY2xhc3M9XCJjb2wgY29sLWF1dG8gcC0wIG15LTMgbXItM1wiIHN0eWxlPVwiaGVpZ2h0OiBjYWxjKDEwMCUgLSAycmVtKVwiPlxuICAgICAgICA8bGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktZGltbWVyPjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktZGltbWVyPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ29sb3IgLS0+XG4gICAgICA8IS0tIEFsc28gc2hvdyBmb3IgY29sb3Igd2hlZWwgZml4dHVyZXMgdG8gYXBwcm94LiB0aGUgY29sb3IgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwicHJlc2V0U2VydmljZS5oYXNDYXBhYmlsaXR5Q29sb3JPckNvbG9yV2hlZWwoKVwiIGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMCBteS0zIG1yLTNcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gMnJlbSlcIj5cbiAgICAgICAgPGxpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5LWNvbG9yPjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktY29sb3I+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBDb2xvciB3aGVlbHMgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBjb2xvcldoZWVsQ2hhbm5lbHMgfCBrZXl2YWx1ZTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMCBteS0zIG1yLTNcIlxuICAgICAgICBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gMnJlbSlcIlxuICAgICAgPlxuICAgICAgICA8bGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktY29sb3Itd2hlZWxcbiAgICAgICAgICBbcHJvZmlsZV09XCJlbnRyeS5rZXlcIlxuICAgICAgICAgIFtjaGFubmVsXT1cImVudHJ5LnZhbHVlXCJcbiAgICAgICAgICBbd2hlZWxJbmRleF09XCJpXCJcbiAgICAgICAgICBbc2hvd0NvbnRhaW5lcl09XCJjb2xvcldoZWVsQ2hhbm5lbHMuc2l6ZSA+IDFcIlxuICAgICAgICA+PC9saWItYXBwLWZpeHR1cmUtY2FwYWJpbGl0eS1jb2xvci13aGVlbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIFBhbi9UaWx0IC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInByZXNldFNlcnZpY2UuaGFzQ2FwYWJpbGl0eVBhblRpbHQoKVwiIGNsYXNzPVwiY29sIGNvbC1hdXRvIHAtMCBteS0zIG1yLTNcIiBzdHlsZT1cImhlaWdodDogY2FsYygxMDAlIC0gMnJlbSlcIj5cbiAgICAgICAgPGxpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5LXBhbi10aWx0PjwvbGliLWFwcC1maXh0dXJlLWNhcGFiaWxpdHktcGFuLXRpbHQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBGaXggc3BhY2luZyBhdCB0aGUgZW5kIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbCBjb2wtYXV0byBwLTAgbXktMyBtci0zXCI+Jm5ic3A7PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicHJvamVjdFNlcnZpY2UucHJvamVjdC5maXh0dXJlcy5sZW5ndGggPT0gMFwiIGNsYXNzPVwibS1hdXRvXCI+XG4gICAgICA8cCBjbGFzcz1cIm0tYXV0b1wiIHN0eWxlPVwiY29sb3I6ICM3MTcxNzFcIj57eyAnZGVzaWduZXIuZml4dHVyZS5uby1maXh0dXJlcycgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cIlxuICAgICAgICBwcm9qZWN0U2VydmljZS5wcm9qZWN0LmZpeHR1cmVzLmxlbmd0aCA+IDAgJiYgcHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldCAmJiBwcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0LmZpeHR1cmVzLmxlbmd0aCA9PSAwXG4gICAgICBcIlxuICAgICAgY2xhc3M9XCJtLWF1dG9cIlxuICAgID5cbiAgICAgIDxwIGNsYXNzPVwibS1hdXRvXCIgc3R5bGU9XCJjb2xvcjogIzcxNzE3MVwiPnt7ICdkZXNpZ25lci5maXh0dXJlLm5vLWZpeHR1cmVzLXNlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|