@colijnit/sharedcomponents 1.0.53 → 1.0.55

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.
Files changed (39) hide show
  1. package/bundles/colijnit-sharedcomponents.umd.js +268 -158
  2. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  3. package/colijnit-sharedcomponents.d.ts +51 -49
  4. package/colijnit-sharedcomponents.metadata.json +1 -1
  5. package/esm2015/colijnit-sharedcomponents.js +52 -50
  6. package/esm2015/lib/components/key-pad/key-pad.component.js +8 -1
  7. package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.js +40 -0
  8. package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.js +23 -0
  9. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +14 -2
  10. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +4 -2
  11. package/esm2015/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.js +2 -1
  12. package/esm2015/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.js +2 -1
  13. package/esm2015/lib/components/stock/components/order-stock-history/order-stock-history.component.js +2 -1
  14. package/esm2015/lib/components/stock/components/order-stock-tab/order-stock-tab.component.js +2 -1
  15. package/esm2015/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.js +2 -1
  16. package/esm2015/lib/components/stock/components/order-tab/order-tab.component.js +3 -1
  17. package/esm2015/lib/components/stock/components/stock-history/stock-history.component.js +3 -1
  18. package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +5 -1
  19. package/esm2015/lib/components/stock/components/stock-prognose/stock-prognose.component.js +2 -1
  20. package/esm2015/lib/components/stock/components/stock-tab/stock-tab.component.js +2 -1
  21. package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +89 -68
  22. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +3 -1
  23. package/esm2015/lib/components/stock/stock.component.js +8 -1
  24. package/esm2015/lib/components/tab-bar/tab-bar.component.js +4 -1
  25. package/fesm2015/colijnit-sharedcomponents.js +193 -69
  26. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  27. package/lib/components/key-pad/key-pad.component.d.ts +2 -0
  28. package/lib/components/key-pad/style/_layout.scss +1 -0
  29. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.d.ts +8 -0
  30. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.d.ts +2 -0
  31. package/lib/components/send-method-dialog/components/send-method-pdf/style/_layout.scss +25 -0
  32. package/lib/components/send-method-dialog/components/send-method-pdf/style/_material-definition.scss +5 -0
  33. package/lib/components/send-method-dialog/components/send-method-pdf/style/_theme.scss +5 -0
  34. package/lib/components/send-method-dialog/components/send-method-pdf/style/material.scss +4 -0
  35. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +2 -0
  36. package/lib/components/send-method-dialog/style/_layout.scss +1 -1
  37. package/lib/components/send-method-dialog/style/material.scss +1 -0
  38. package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +4 -2
  39. package/package.json +1 -1
@@ -2,26 +2,26 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- export { AgendaBaseViewComponent as ɵcb } from './lib/components/date-planning/component/agenda/agenda-base-view.component';
6
- export { AgendaDayViewComponent as ɵcc } from './lib/components/date-planning/component/agenda/agenda-day-view.component';
7
- export { AgendaEventComponent as ɵck } from './lib/components/date-planning/component/agenda/agenda-event.component';
8
- export { AgendaEventsComponent as ɵcj } from './lib/components/date-planning/component/agenda/agenda-events.component';
9
- export { AgendaHalfHourCellComponent as ɵci } from './lib/components/date-planning/component/agenda/agenda-half-hour-cell.component';
10
- export { AgendaHeaderComponent as ɵby } from './lib/components/date-planning/component/agenda/agenda-header.component';
11
- export { AgendaHourCellComponent as ɵcg } from './lib/components/date-planning/component/agenda/agenda-hour-cell.component';
12
- export { AgendaHourViewLabelsComponent as ɵch } from './lib/components/date-planning/component/agenda/agenda-hour-view-labels.component';
13
- export { AgendaHourViewComponent as ɵcf } from './lib/components/date-planning/component/agenda/agenda-hour-view.component';
14
- export { AgendaMonthViewComponent as ɵca } from './lib/components/date-planning/component/agenda/agenda-month-view.component';
15
- export { AgendaSelectEventComponent as ɵcm } from './lib/components/date-planning/component/agenda/agenda-select-event.component';
16
- export { AgendaViewComponent as ɵbz } from './lib/components/date-planning/component/agenda/agenda-view.component';
17
- export { AgendaWeekSelectViewComponent as ɵce } from './lib/components/date-planning/component/agenda/agenda-week-select-view.component';
18
- export { AgendaWeekViewComponent as ɵcd } from './lib/components/date-planning/component/agenda/agenda-week-view.component';
19
- export { ViewSelectComponent as ɵcl } from './lib/components/date-planning/component/agenda/view-select.component';
20
- export { CalendarAllMonthsComponent as ɵbt } from './lib/components/date-planning/component/calendar/calendar-all-months.component';
21
- export { CalendarAllYearsComponent as ɵbs } from './lib/components/date-planning/component/calendar/calendar-all-years.component';
22
- export { CalendarHeaderComponent as ɵbu } from './lib/components/date-planning/component/calendar/calendar-header.component';
23
- export { CalendarViewComponent as ɵbw } from './lib/components/date-planning/component/calendar/calendar-view.component';
24
- export { CalendarComponent as ɵbv } from './lib/components/date-planning/component/calendar/calendar.component';
5
+ export { AgendaBaseViewComponent as ɵcd } from './lib/components/date-planning/component/agenda/agenda-base-view.component';
6
+ export { AgendaDayViewComponent as ɵce } from './lib/components/date-planning/component/agenda/agenda-day-view.component';
7
+ export { AgendaEventComponent as ɵcm } from './lib/components/date-planning/component/agenda/agenda-event.component';
8
+ export { AgendaEventsComponent as ɵcl } from './lib/components/date-planning/component/agenda/agenda-events.component';
9
+ export { AgendaHalfHourCellComponent as ɵck } from './lib/components/date-planning/component/agenda/agenda-half-hour-cell.component';
10
+ export { AgendaHeaderComponent as ɵca } from './lib/components/date-planning/component/agenda/agenda-header.component';
11
+ export { AgendaHourCellComponent as ɵci } from './lib/components/date-planning/component/agenda/agenda-hour-cell.component';
12
+ export { AgendaHourViewLabelsComponent as ɵcj } from './lib/components/date-planning/component/agenda/agenda-hour-view-labels.component';
13
+ export { AgendaHourViewComponent as ɵch } from './lib/components/date-planning/component/agenda/agenda-hour-view.component';
14
+ export { AgendaMonthViewComponent as ɵcc } from './lib/components/date-planning/component/agenda/agenda-month-view.component';
15
+ export { AgendaSelectEventComponent as ɵco } from './lib/components/date-planning/component/agenda/agenda-select-event.component';
16
+ export { AgendaViewComponent as ɵcb } from './lib/components/date-planning/component/agenda/agenda-view.component';
17
+ export { AgendaWeekSelectViewComponent as ɵcg } from './lib/components/date-planning/component/agenda/agenda-week-select-view.component';
18
+ export { AgendaWeekViewComponent as ɵcf } from './lib/components/date-planning/component/agenda/agenda-week-view.component';
19
+ export { ViewSelectComponent as ɵcn } from './lib/components/date-planning/component/agenda/view-select.component';
20
+ export { CalendarAllMonthsComponent as ɵbv } from './lib/components/date-planning/component/calendar/calendar-all-months.component';
21
+ export { CalendarAllYearsComponent as ɵbu } from './lib/components/date-planning/component/calendar/calendar-all-years.component';
22
+ export { CalendarHeaderComponent as ɵbw } from './lib/components/date-planning/component/calendar/calendar-header.component';
23
+ export { CalendarViewComponent as ɵby } from './lib/components/date-planning/component/calendar/calendar-view.component';
24
+ export { CalendarComponent as ɵbx } from './lib/components/date-planning/component/calendar/calendar.component';
25
25
  export { SignatureComponent as ɵa } from './lib/components/docsign/component/signature/signature.component';
26
26
  export { SignaturesComponent as ɵb } from './lib/components/docsign/component/signatures/signatures.component';
27
27
  export { LayoutSelectionComponent as ɵl } from './lib/components/send-method-dialog/components/layout-selection/layout-selection.component';
@@ -30,44 +30,46 @@ export { PrinterSelectionComponent as ɵr } from './lib/components/send-method-d
30
30
  export { PrinterSelectionModule as ɵq } from './lib/components/send-method-dialog/components/printer-selection/printer-selection.module';
31
31
  export { SendMethodEmailComponent as ɵo } from './lib/components/send-method-dialog/components/send-method-email/send-method-email.component';
32
32
  export { SendMethodEmailModule as ɵj } from './lib/components/send-method-dialog/components/send-method-email/send-method-email.module';
33
+ export { SendMethodPdfComponent as ɵu } from './lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component';
34
+ export { SendMethodPdfModule as ɵt } from './lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module';
33
35
  export { SendMethodPrinterComponent as ɵs } from './lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component';
34
36
  export { SendMethodPrinterModule as ɵp } from './lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module';
35
37
  export { SignatureButtonComponent as ɵn } from './lib/components/send-method-dialog/components/signature-button/signature-button.component';
36
38
  export { SignatureButtonModule as ɵm } from './lib/components/send-method-dialog/components/signature-button/signature-button.module';
37
39
  export { SendMethodService as ɵi } from './lib/components/send-method-dialog/service/send-method.service';
38
- export { StatusbarPopupComponent as ɵv } from './lib/components/statusbar/statusbar-popup.component';
39
- export { StockStatusbarComponent as ɵx } from './lib/components/stock-statusbar/stock-statusbar.component';
40
- export { StockStatusbarModule as ɵw } from './lib/components/stock-statusbar/stock-statusbar.module';
41
- export { AllocationStockHistoryComponent as ɵbo } from './lib/components/stock/components/allocation-stock-history/allocation-stock-history.component';
42
- export { OrderCommissionStockHistoryComponent as ɵbm } from './lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component';
43
- export { OrderStockHistoryComponent as ɵbn } from './lib/components/stock/components/order-stock-history/order-stock-history.component';
44
- export { OrderStockTabComponent as ɵbi } from './lib/components/stock/components/order-stock-tab/order-stock-tab.component';
45
- export { OrderSupplyStockHistoryComponent as ɵbl } from './lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component';
46
- export { OrderTabComponent as ɵbf } from './lib/components/stock/components/order-tab/order-tab.component';
47
- export { StockHistoryComponent as ɵbk } from './lib/components/stock/components/stock-history/stock-history.component';
48
- export { StockLocationComponent as ɵbj } from './lib/components/stock/components/stock-location/stock-location.component';
49
- export { StockPrognoseComponent as ɵbp } from './lib/components/stock/components/stock-prognose/stock-prognose.component';
50
- export { StockTabComponent as ɵbe } from './lib/components/stock/components/stock-tab/stock-tab.component';
51
- export { StockHistoryTabsComponent as ɵbh } from './lib/components/stock/stock-history-tabs/stock-history-tabs.component';
52
- export { StockInformationGridComponent as ɵbb } from './lib/components/stock/stock-information-grid/stock-information-grid.component';
53
- export { StockInformationComponent as ɵba } from './lib/components/stock/stock-information/stock-information.component';
54
- export { StockTabsComponent as ɵbg } from './lib/components/stock/stock-tabs/stock-tabs.component';
55
- export { StockChangeAmountComponent as ɵbd } from './lib/components/stock/stock-transfer/stock-change-amount.component';
56
- export { StockTransferComponent as ɵbc } from './lib/components/stock/stock-transfer/stock-transfer.component';
57
- export { TabBarComponent as ɵu } from './lib/components/tab-bar/tab-bar.component';
58
- export { TabBarModule as ɵt } from './lib/components/tab-bar/tab-bar.module';
59
- export { Icon as ɵbr } from './lib/enum/icon.enum';
60
- export { LanguageCode as ɵbx } from './lib/enum/language-code.enum';
61
- export { LocalizationModule as ɵy } from './lib/localization/localization.module';
62
- export { LocalizePipe as ɵz } from './lib/localization/localize.pipe';
40
+ export { StatusbarPopupComponent as ɵx } from './lib/components/statusbar/statusbar-popup.component';
41
+ export { StockStatusbarComponent as ɵz } from './lib/components/stock-statusbar/stock-statusbar.component';
42
+ export { StockStatusbarModule as ɵy } from './lib/components/stock-statusbar/stock-statusbar.module';
43
+ export { AllocationStockHistoryComponent as ɵbq } from './lib/components/stock/components/allocation-stock-history/allocation-stock-history.component';
44
+ export { OrderCommissionStockHistoryComponent as ɵbo } from './lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component';
45
+ export { OrderStockHistoryComponent as ɵbp } from './lib/components/stock/components/order-stock-history/order-stock-history.component';
46
+ export { OrderStockTabComponent as ɵbk } from './lib/components/stock/components/order-stock-tab/order-stock-tab.component';
47
+ export { OrderSupplyStockHistoryComponent as ɵbn } from './lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component';
48
+ export { OrderTabComponent as ɵbh } from './lib/components/stock/components/order-tab/order-tab.component';
49
+ export { StockHistoryComponent as ɵbm } from './lib/components/stock/components/stock-history/stock-history.component';
50
+ export { StockLocationComponent as ɵbl } from './lib/components/stock/components/stock-location/stock-location.component';
51
+ export { StockPrognoseComponent as ɵbr } from './lib/components/stock/components/stock-prognose/stock-prognose.component';
52
+ export { StockTabComponent as ɵbg } from './lib/components/stock/components/stock-tab/stock-tab.component';
53
+ export { StockHistoryTabsComponent as ɵbj } from './lib/components/stock/stock-history-tabs/stock-history-tabs.component';
54
+ export { StockInformationGridComponent as ɵbd } from './lib/components/stock/stock-information-grid/stock-information-grid.component';
55
+ export { StockInformationComponent as ɵbc } from './lib/components/stock/stock-information/stock-information.component';
56
+ export { StockTabsComponent as ɵbi } from './lib/components/stock/stock-tabs/stock-tabs.component';
57
+ export { StockChangeAmountComponent as ɵbf } from './lib/components/stock/stock-transfer/stock-change-amount.component';
58
+ export { StockTransferComponent as ɵbe } from './lib/components/stock/stock-transfer/stock-transfer.component';
59
+ export { TabBarComponent as ɵw } from './lib/components/tab-bar/tab-bar.component';
60
+ export { TabBarModule as ɵv } from './lib/components/tab-bar/tab-bar.module';
61
+ export { Icon as ɵbt } from './lib/enum/icon.enum';
62
+ export { LanguageCode as ɵbz } from './lib/enum/language-code.enum';
63
+ export { LocalizationModule as ɵba } from './lib/localization/localization.module';
64
+ export { LocalizePipe as ɵbb } from './lib/localization/localize.pipe';
63
65
  export { LocalizeService as ɵg } from './lib/localization/localize.service';
64
- export { SendMethod as ɵbq } from './lib/model/send-method';
65
- export { ArrayNumberPipe as ɵco } from './lib/pipe/array-number.pipe';
66
- export { MASTER_PIPES as ɵcn } from './lib/pipe/master-pipes';
67
- export { UCfirstPipe as ɵcp } from './lib/pipe/ucfirst.pipe';
66
+ export { SendMethod as ɵbs } from './lib/model/send-method';
67
+ export { ArrayNumberPipe as ɵcq } from './lib/pipe/array-number.pipe';
68
+ export { MASTER_PIPES as ɵcp } from './lib/pipe/master-pipes';
69
+ export { UCfirstPipe as ɵcr } from './lib/pipe/ucfirst.pipe';
68
70
  export { DictionaryService as ɵf } from './lib/service/dictionary.service';
69
71
  export { IconCacheService as ɵh } from './lib/service/icon-cache.service';
70
72
  export { OptionsService as ɵe } from './lib/service/options.service';
71
73
  export { SharedConnectorService as ɵd } from './lib/service/shared-connector.service';
72
74
  export { StockService as ɵc } from './lib/service/stock.service';
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29saWpuaXQtc2hhcmVkY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2NvbGlqbml0LXNoYXJlZGNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsdUJBQXVCLElBQUksR0FBRyxFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDMUgsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEdBQUcsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQ3hILE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxHQUFHLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUNuSCxPQUFPLEVBQUMscUJBQXFCLElBQUksR0FBRyxFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDckgsT0FBTyxFQUFDLDJCQUEyQixJQUFJLEdBQUcsRUFBQyxNQUFNLGlGQUFpRixDQUFDO0FBQ25JLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxHQUFHLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUNySCxPQUFPLEVBQUMsdUJBQXVCLElBQUksR0FBRyxFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDMUgsT0FBTyxFQUFDLDZCQUE2QixJQUFJLEdBQUcsRUFBQyxNQUFNLG1GQUFtRixDQUFDO0FBQ3ZJLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxHQUFHLEVBQUMsTUFBTSw0RUFBNEUsQ0FBQztBQUMxSCxPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sNkVBQTZFLENBQUM7QUFDNUgsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEdBQUcsRUFBQyxNQUFNLCtFQUErRSxDQUFDO0FBQ2hJLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxHQUFHLEVBQUMsTUFBTSx1RUFBdUUsQ0FBQztBQUNqSCxPQUFPLEVBQUMsNkJBQTZCLElBQUksR0FBRyxFQUFD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LE9BQU8sRUFBQyxXQUFXLElBQUksR0FBRyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxnQkFBZ0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsY0FBYyxJQUFJLEVBQUUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxzQkFBc0IsSUFBSSxFQUFFLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRixPQUFPLEVBQUMsWUFBWSxJQUFJLEVBQUUsRUFBQyxNQUFNLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge0FnZW5kYUJhc2VWaWV3Q29tcG9uZW50IGFzIMm1Y2J9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvYWdlbmRhL2FnZW5kYS1iYXNlLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7QWdlbmRhRGF5Vmlld0NvbXBvbmVudCBhcyDJtWNjfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtZGF5LXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7QWdlbmRhRXZlbnRDb21wb25lbnQgYXMgybVja30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLWV2ZW50LmNvbXBvbmVudCc7XG5leHBvcnQge0FnZW5kYUV2ZW50c0NvbXBvbmVudCBhcyDJtWNqfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtZXZlbnRzLmNvbXBvbmVudCc7XG5leHBvcnQge0FnZW5kYUhhbGZIb3VyQ2VsbENvbXBvbmVudCBhcyDJtWNpfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtaGFsZi1ob3VyLWNlbGwuY29tcG9uZW50JztcbmV4cG9ydCB7QWdlbmRhSGVhZGVyQ29tcG9uZW50IGFzIMm1Ynl9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvYWdlbmRhL2FnZW5kYS1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCB7QWdlbmRhSG91ckNlbGxDb21wb25lbnQgYXMgybVjZ30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLWhvdXItY2VsbC5jb21wb25lbnQnO1xuZXhwb3J0IHtBZ2VuZGFIb3VyVmlld0xhYmVsc0NvbXBvbmVudCBhcyDJtWNofSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtaG91ci12aWV3LWxhYmVscy5jb21wb25lbnQnO1xuZXhwb3J0IHtBZ2VuZGFIb3VyVmlld0NvbXBvbmVudCBhcyDJtWNmfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtaG91ci12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQge0FnZW5kYU1vbnRoVmlld0NvbXBvbmVudCBhcyDJtWNhfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtbW9udGgtdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtBZ2VuZGFTZWxlY3RFdmVudENvbXBvbmVudCBhcyDJtWNtfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtc2VsZWN0LWV2ZW50LmNvbXBvbmVudCc7XG5leHBvcnQge0FnZW5kYVZpZXdDb21wb25lbnQgYXMgybVien0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7QWdlbmRhV2Vla1NlbGVjdFZpZXdDb21wb25lbnQgYXMgybVjZX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLXdlZWstc2VsZWN0LXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7QWdlbmRhV2Vla1ZpZXdDb21wb25lbnQgYXMgybVjZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLXdlZWstdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtWaWV3U2VsZWN0Q29tcG9uZW50IGFzIMm1Y2x9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvYWdlbmRhL3ZpZXctc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQge0NhbGVuZGFyQWxsTW9udGhzQ29tcG9uZW50IGFzIMm1YnR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvY2FsZW5kYXIvY2FsZW5kYXItYWxsLW1vbnRocy5jb21wb25lbnQnO1xuZXhwb3J0IHtDYWxlbmRhckFsbFllYXJzQ29tcG9uZW50IGFzIMm1YnN9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvY2FsZW5kYXIvY2FsZW5kYXItYWxsLXllYXJzLmNvbXBvbmVudCc7XG5leHBvcnQge0NhbGVuZGFySGVhZGVyQ29tcG9uZW50IGFzIMm1YnV9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvY2FsZW5kYXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQge0NhbGVuZGFyVmlld0NvbXBvbmVudCBhcyDJtWJ3fSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2NhbGVuZGFyL2NhbGVuZGFyLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7Q2FsZW5kYXJDb21wb25lbnQgYXMgybVidn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQnO1xuZXhwb3J0IHtTaWduYXR1cmVDb21wb25lbnQgYXMgybVhfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RvY3NpZ24vY29tcG9uZW50L3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50JztcbmV4cG9ydCB7U2lnbmF0dXJlc0NvbXBvbmVudCBhcyDJtWJ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZG9jc2lnbi9jb21wb25lbnQvc2lnbmF0dXJlcy9zaWduYXR1cmVzLmNvbXBvbmVudCc7XG5leHBvcnQge0xheW91dFNlbGVjdGlvbkNvbXBvbmVudCBhcyDJtWx9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZGlhbG9nL2NvbXBvbmVudHMvbGF5b3V0LXNlbGVjdGlvbi9sYXlvdXQtc2VsZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge0xheW91dFNlbGVjdGlvbk1vZHVsZSBhcyDJtWt9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZGlhbG9nL2NvbXBvbmVudHMvbGF5b3V0LXNlbGVjdGlvbi9sYXlvdXQtc2VsZWN0aW9uLm1vZHVsZSc7XG5leHBvcnQge1ByaW50ZXJTZWxlY3Rpb25Db21wb25lbnQgYXMgybVyfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9jb21wb25lbnRzL3ByaW50ZXItc2VsZWN0aW9uL3ByaW50ZXItc2VsZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge1ByaW50ZXJTZWxlY3Rpb25Nb2R1bGUgYXMgybVxfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9jb21wb25lbnRzL3ByaW50ZXItc2VsZWN0aW9uL3ByaW50ZXItc2VsZWN0aW9uLm1vZHVsZSc7XG5leHBvcnQge1NlbmRNZXRob2RFbWFpbENvbXBvbmVudCBhcyDJtW99IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZGlhbG9nL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZW1haWwvc2VuZC1tZXRob2QtZW1haWwuY29tcG9uZW50JztcbmV4cG9ydCB7U2VuZE1ldGhvZEVtYWlsTW9kdWxlIGFzIMm1an0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1lbWFpbC9zZW5kLW1ldGhvZC1lbWFpbC5tb2R1bGUnO1xuZXhwb3J0IHtTZW5kTWV0aG9kUHJpbnRlckNvbXBvbmVudCBhcyDJtXN9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZGlhbG9nL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtcHJpbnRlci9zZW5kLW1ldGhvZC1wcmludGVyLmNvbXBvbmVudCc7XG5leHBvcnQge1NlbmRNZXRob2RQcmludGVyTW9kdWxlIGFzIMm1cH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1wcmludGVyL3NlbmQtbWV0aG9kLXByaW50ZXIubW9kdWxlJztcbmV4cG9ydCB7U2lnbmF0dXJlQnV0dG9uQ29tcG9uZW50IGFzIMm1bn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvY29tcG9uZW50cy9zaWduYXR1cmUtYnV0dG9uL3NpZ25hdHVyZS1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCB7U2lnbmF0dXJlQnV0dG9uTW9kdWxlIGFzIMm1bX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvY29tcG9uZW50cy9zaWduYXR1cmUtYnV0dG9uL3NpZ25hdHVyZS1idXR0b24ubW9kdWxlJztcbmV4cG9ydCB7U2VuZE1ldGhvZFNlcnZpY2UgYXMgybVpfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9zZXJ2aWNlL3NlbmQtbWV0aG9kLnNlcnZpY2UnO1xuZXhwb3J0IHtTdGF0dXNiYXJQb3B1cENvbXBvbmVudCBhcyDJtXZ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RhdHVzYmFyL3N0YXR1c2Jhci1wb3B1cC5jb21wb25lbnQnO1xuZXhwb3J0IHtTdG9ja1N0YXR1c2JhckNvbXBvbmVudCBhcyDJtXh9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2stc3RhdHVzYmFyL3N0b2NrLXN0YXR1c2Jhci5jb21wb25lbnQnO1xuZXhwb3J0IHtTdG9ja1N0YXR1c2Jhck1vZHVsZSBhcyDJtXd9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2stc3RhdHVzYmFyL3N0b2NrLXN0YXR1c2Jhci5tb2R1bGUnO1xuZXhwb3J0IHtBbGxvY2F0aW9uU3RvY2tIaXN0b3J5Q29tcG9uZW50IGFzIMm1Ym99IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9hbGxvY2F0aW9uLXN0b2NrLWhpc3RvcnkvYWxsb2NhdGlvbi1zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQge09yZGVyQ29tbWlzc2lvblN0b2NrSGlzdG9yeUNvbXBvbmVudCBhcyDJtWJtfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3N0b2NrL2NvbXBvbmVudHMvb3JkZXItY29tbWlzc2lvbi1zdG9jay1oaXN0b3J5L29yZGVyLWNvbW1pc3Npb24tc3RvY2staGlzdG9yeS5jb21wb25lbnQnO1xuZXhwb3J0IHtPcmRlclN0b2NrSGlzdG9yeUNvbXBvbmVudCBhcyDJtWJufSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3N0b2NrL2NvbXBvbmVudHMvb3JkZXItc3RvY2staGlzdG9yeS9vcmRlci1zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQge09yZGVyU3RvY2tUYWJDb21wb25lbnQgYXMgybViaX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9jb21wb25lbnRzL29yZGVyLXN0b2NrLXRhYi9vcmRlci1zdG9jay10YWIuY29tcG9uZW50JztcbmV4cG9ydCB7T3JkZXJTdXBwbHlTdG9ja0hpc3RvcnlDb21wb25lbnQgYXMgybVibH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9jb21wb25lbnRzL29yZGVyLXN1cHBseS1zdG9jay1oaXN0b3J5L29yZGVyLXN1cHBseS1zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQge09yZGVyVGFiQ29tcG9uZW50IGFzIMm1YmZ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9vcmRlci10YWIvb3JkZXItdGFiLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrSGlzdG9yeUNvbXBvbmVudCBhcyDJtWJrfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3N0b2NrL2NvbXBvbmVudHMvc3RvY2staGlzdG9yeS9zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrTG9jYXRpb25Db21wb25lbnQgYXMgybVian0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uL3N0b2NrLWxvY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrUHJvZ25vc2VDb21wb25lbnQgYXMgybVicH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9jb21wb25lbnRzL3N0b2NrLXByb2dub3NlL3N0b2NrLXByb2dub3NlLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrVGFiQ29tcG9uZW50IGFzIMm1YmV9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay10YWIvc3RvY2stdGFiLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrSGlzdG9yeVRhYnNDb21wb25lbnQgYXMgybViaH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay1oaXN0b3J5LXRhYnMvc3RvY2staGlzdG9yeS10YWJzLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrSW5mb3JtYXRpb25HcmlkQ29tcG9uZW50IGFzIMm1YmJ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2svc3RvY2staW5mb3JtYXRpb24tZ3JpZC9zdG9jay1pbmZvcm1hdGlvbi1ncmlkLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrSW5mb3JtYXRpb25Db21wb25lbnQgYXMgybViYX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay1pbmZvcm1hdGlvbi9zdG9jay1pbmZvcm1hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtTdG9ja1RhYnNDb21wb25lbnQgYXMgybViZ30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay10YWJzL3N0b2NrLXRhYnMuY29tcG9uZW50JztcbmV4cG9ydCB7U3RvY2tDaGFuZ2VBbW91bnRDb21wb25lbnQgYXMgybViZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay10cmFuc2Zlci9zdG9jay1jaGFuZ2UtYW1vdW50LmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrVHJhbnNmZXJDb21wb25lbnQgYXMgybViY30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay10cmFuc2Zlci9zdG9jay10cmFuc2Zlci5jb21wb25lbnQnO1xuZXhwb3J0IHtUYWJCYXJDb21wb25lbnQgYXMgybV1fSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RhYi1iYXIvdGFiLWJhci5jb21wb25lbnQnO1xuZXhwb3J0IHtUYWJCYXJNb2R1bGUgYXMgybV0fSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RhYi1iYXIvdGFiLWJhci5tb2R1bGUnO1xuZXhwb3J0IHtJY29uIGFzIMm1YnJ9IGZyb20gJy4vbGliL2VudW0vaWNvbi5lbnVtJztcbmV4cG9ydCB7TGFuZ3VhZ2VDb2RlIGFzIMm1Ynh9IGZyb20gJy4vbGliL2VudW0vbGFuZ3VhZ2UtY29kZS5lbnVtJztcbmV4cG9ydCB7TG9jYWxpemF0aW9uTW9kdWxlIGFzIMm1eX0gZnJvbSAnLi9saWIvbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5tb2R1bGUnO1xuZXhwb3J0IHtMb2NhbGl6ZVBpcGUgYXMgybV6fSBmcm9tICcuL2xpYi9sb2NhbGl6YXRpb24vbG9jYWxpemUucGlwZSc7XG5leHBvcnQge0xvY2FsaXplU2VydmljZSBhcyDJtWd9IGZyb20gJy4vbGliL2xvY2FsaXphdGlvbi9sb2NhbGl6ZS5zZXJ2aWNlJztcbmV4cG9ydCB7U2VuZE1ldGhvZCBhcyDJtWJxfSBmcm9tICcuL2xpYi9tb2RlbC9zZW5kLW1ldGhvZCc7XG5leHBvcnQge0FycmF5TnVtYmVyUGlwZSBhcyDJtWNvfSBmcm9tICcuL2xpYi9waXBlL2FycmF5LW51bWJlci5waXBlJztcbmV4cG9ydCB7TUFTVEVSX1BJUEVTIGFzIMm1Y259IGZyb20gJy4vbGliL3BpcGUvbWFzdGVyLXBpcGVzJztcbmV4cG9ydCB7VUNmaXJzdFBpcGUgYXMgybVjcH0gZnJvbSAnLi9saWIvcGlwZS91Y2ZpcnN0LnBpcGUnO1xuZXhwb3J0IHtEaWN0aW9uYXJ5U2VydmljZSBhcyDJtWZ9IGZyb20gJy4vbGliL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcbmV4cG9ydCB7SWNvbkNhY2hlU2VydmljZSBhcyDJtWh9IGZyb20gJy4vbGliL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcbmV4cG9ydCB7T3B0aW9uc1NlcnZpY2UgYXMgybVlfSBmcm9tICcuL2xpYi9zZXJ2aWNlL29wdGlvbnMuc2VydmljZSc7XG5leHBvcnQge1NoYXJlZENvbm5lY3RvclNlcnZpY2UgYXMgybVkfSBmcm9tICcuL2xpYi9zZXJ2aWNlL3NoYXJlZC1jb25uZWN0b3Iuc2VydmljZSc7XG5leHBvcnQge1N0b2NrU2VydmljZSBhcyDJtWN9IGZyb20gJy4vbGliL3NlcnZpY2Uvc3RvY2suc2VydmljZSc7Il19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29saWpuaXQtc2hhcmVkY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2NvbGlqbml0LXNoYXJlZGNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsdUJBQXVCLElBQUksR0FBRyxFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDMUgsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEdBQUcsRUFBQyxNQUFNLDJFQUEyRSxDQUFDO0FBQ3hILE9BQU8sRUFBQyxvQkFBb0IsSUFBSSxHQUFHLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUNuSCxPQUFPLEVBQUMscUJBQXFCLElBQUksR0FBRyxFQUFDLE1BQU0seUVBQXlFLENBQUM7QUFDckgsT0FBTyxFQUFDLDJCQUEyQixJQUFJLEdBQUcsRUFBQyxNQUFNLGlGQUFpRixDQUFDO0FBQ25JLE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxHQUFHLEVBQUMsTUFBTSx5RUFBeUUsQ0FBQztBQUNySCxPQUFPLEVBQUMsdUJBQXVCLElBQUksR0FBRyxFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDMUgsT0FBTyxFQUFDLDZCQUE2QixJQUFJLEdBQUcsRUFBQyxNQUFNLG1GQUFtRixDQUFDO0FBQ3ZJLE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxHQUFHLEVBQUMsTUFBTSw0RUFBNEUsQ0FBQztBQUMxSCxPQUFPLEVBQUMsd0JBQXdCLElBQUksR0FBRyxFQUFDLE1BQU0sNkVBQTZFLENBQUM7QUFDNUgsT0FBTyxFQUFDLDBCQUEwQixJQUFJLEdBQUcsRUFBQyxNQUFNLCtFQUErRSxDQUFDO0FBQ2hJLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxHQUFHLEVBQUMsTUFBTSx1RUFBdUUsQ0FBQztBQUNqSCxPQUFPLEVBQUMsNkJBQTZCLElBQUksR0FBRyxFQUFD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QUMxRCxPQUFPLEVBQUMsZUFBZSxJQUFJLEdBQUcsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxZQUFZLElBQUksR0FBRyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFdBQVcsSUFBSSxHQUFHLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsaUJBQWlCLElBQUksRUFBRSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFDLGdCQUFnQixJQUFJLEVBQUUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFDLHNCQUFzQixJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxZQUFZLElBQUksRUFBRSxFQUFDLE1BQU0sNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG5cbmV4cG9ydCB7QWdlbmRhQmFzZVZpZXdDb21wb25lbnQgYXMgybVjZH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLWJhc2Utdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtBZ2VuZGFEYXlWaWV3Q29tcG9uZW50IGFzIMm1Y2V9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvYWdlbmRhL2FnZW5kYS1kYXktdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtBZ2VuZGFFdmVudENvbXBvbmVudCBhcyDJtWNtfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtZXZlbnQuY29tcG9uZW50JztcbmV4cG9ydCB7QWdlbmRhRXZlbnRzQ29tcG9uZW50IGFzIMm1Y2x9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvYWdlbmRhL2FnZW5kYS1ldmVudHMuY29tcG9uZW50JztcbmV4cG9ydCB7QWdlbmRhSGFsZkhvdXJDZWxsQ29tcG9uZW50IGFzIMm1Y2t9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvYWdlbmRhL2FnZW5kYS1oYWxmLWhvdXItY2VsbC5jb21wb25lbnQnO1xuZXhwb3J0IHtBZ2VuZGFIZWFkZXJDb21wb25lbnQgYXMgybVjYX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvYWdlbmRhLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0IHtBZ2VuZGFIb3VyQ2VsbENvbXBvbmVudCBhcyDJtWNpfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtaG91ci1jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQge0FnZW5kYUhvdXJWaWV3TGFiZWxzQ29tcG9uZW50IGFzIMm1Y2p9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvYWdlbmRhL2FnZW5kYS1ob3VyLXZpZXctbGFiZWxzLmNvbXBvbmVudCc7XG5leHBvcnQge0FnZW5kYUhvdXJWaWV3Q29tcG9uZW50IGFzIMm1Y2h9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvYWdlbmRhL2FnZW5kYS1ob3VyLXZpZXcuY29tcG9uZW50JztcbmV4cG9ydCB7QWdlbmRhTW9udGhWaWV3Q29tcG9uZW50IGFzIMm1Y2N9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvYWdlbmRhL2FnZW5kYS1tb250aC12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQge0FnZW5kYVNlbGVjdEV2ZW50Q29tcG9uZW50IGFzIMm1Y299IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvYWdlbmRhL2FnZW5kYS1zZWxlY3QtZXZlbnQuY29tcG9uZW50JztcbmV4cG9ydCB7QWdlbmRhVmlld0NvbXBvbmVudCBhcyDJtWNifSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtBZ2VuZGFXZWVrU2VsZWN0Vmlld0NvbXBvbmVudCBhcyDJtWNnfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtd2Vlay1zZWxlY3Qtdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtBZ2VuZGFXZWVrVmlld0NvbXBvbmVudCBhcyDJtWNmfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2FnZW5kYS9hZ2VuZGEtd2Vlay12aWV3LmNvbXBvbmVudCc7XG5leHBvcnQge1ZpZXdTZWxlY3RDb21wb25lbnQgYXMgybVjbn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9hZ2VuZGEvdmlldy1zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCB7Q2FsZW5kYXJBbGxNb250aHNDb21wb25lbnQgYXMgybVidn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9jYWxlbmRhci9jYWxlbmRhci1hbGwtbW9udGhzLmNvbXBvbmVudCc7XG5leHBvcnQge0NhbGVuZGFyQWxsWWVhcnNDb21wb25lbnQgYXMgybVidX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9jYWxlbmRhci9jYWxlbmRhci1hbGwteWVhcnMuY29tcG9uZW50JztcbmV4cG9ydCB7Q2FsZW5kYXJIZWFkZXJDb21wb25lbnQgYXMgybVid30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kYXRlLXBsYW5uaW5nL2NvbXBvbmVudC9jYWxlbmRhci9jYWxlbmRhci1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCB7Q2FsZW5kYXJWaWV3Q29tcG9uZW50IGFzIMm1Ynl9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0ZS1wbGFubmluZy9jb21wb25lbnQvY2FsZW5kYXIvY2FsZW5kYXItdmlldy5jb21wb25lbnQnO1xuZXhwb3J0IHtDYWxlbmRhckNvbXBvbmVudCBhcyDJtWJ4fSBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGUtcGxhbm5pbmcvY29tcG9uZW50L2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5leHBvcnQge1NpZ25hdHVyZUNvbXBvbmVudCBhcyDJtWF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvZG9jc2lnbi9jb21wb25lbnQvc2lnbmF0dXJlL3NpZ25hdHVyZS5jb21wb25lbnQnO1xuZXhwb3J0IHtTaWduYXR1cmVzQ29tcG9uZW50IGFzIMm1Yn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2NzaWduL2NvbXBvbmVudC9zaWduYXR1cmVzL3NpZ25hdHVyZXMuY29tcG9uZW50JztcbmV4cG9ydCB7TGF5b3V0U2VsZWN0aW9uQ29tcG9uZW50IGFzIMm1bH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvY29tcG9uZW50cy9sYXlvdXQtc2VsZWN0aW9uL2xheW91dC1zZWxlY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCB7TGF5b3V0U2VsZWN0aW9uTW9kdWxlIGFzIMm1a30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvY29tcG9uZW50cy9sYXlvdXQtc2VsZWN0aW9uL2xheW91dC1zZWxlY3Rpb24ubW9kdWxlJztcbmV4cG9ydCB7UHJpbnRlclNlbGVjdGlvbkNvbXBvbmVudCBhcyDJtXJ9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZGlhbG9nL2NvbXBvbmVudHMvcHJpbnRlci1zZWxlY3Rpb24vcHJpbnRlci1zZWxlY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCB7UHJpbnRlclNlbGVjdGlvbk1vZHVsZSBhcyDJtXF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZGlhbG9nL2NvbXBvbmVudHMvcHJpbnRlci1zZWxlY3Rpb24vcHJpbnRlci1zZWxlY3Rpb24ubW9kdWxlJztcbmV4cG9ydCB7U2VuZE1ldGhvZEVtYWlsQ29tcG9uZW50IGFzIMm1b30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1lbWFpbC9zZW5kLW1ldGhvZC1lbWFpbC5jb21wb25lbnQnO1xuZXhwb3J0IHtTZW5kTWV0aG9kRW1haWxNb2R1bGUgYXMgybVqfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWVtYWlsL3NlbmQtbWV0aG9kLWVtYWlsLm1vZHVsZSc7XG5leHBvcnQge1NlbmRNZXRob2RQZGZDb21wb25lbnQgYXMgybV1fSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9jb21wb25lbnRzL3NlbmQtbWV0aG9kLXBkZi9zZW5kLW1ldGhvZC1wZGYuY29tcG9uZW50JztcbmV4cG9ydCB7U2VuZE1ldGhvZFBkZk1vZHVsZSBhcyDJtXR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZGlhbG9nL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtcGRmL3NlbmQtbWV0aG9kLXBkZi5tb2R1bGUnO1xuZXhwb3J0IHtTZW5kTWV0aG9kUHJpbnRlckNvbXBvbmVudCBhcyDJtXN9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtZGlhbG9nL2NvbXBvbmVudHMvc2VuZC1tZXRob2QtcHJpbnRlci9zZW5kLW1ldGhvZC1wcmludGVyLmNvbXBvbmVudCc7XG5leHBvcnQge1NlbmRNZXRob2RQcmludGVyTW9kdWxlIGFzIMm1cH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1wcmludGVyL3NlbmQtbWV0aG9kLXByaW50ZXIubW9kdWxlJztcbmV4cG9ydCB7U2lnbmF0dXJlQnV0dG9uQ29tcG9uZW50IGFzIMm1bn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvY29tcG9uZW50cy9zaWduYXR1cmUtYnV0dG9uL3NpZ25hdHVyZS1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCB7U2lnbmF0dXJlQnV0dG9uTW9kdWxlIGFzIMm1bX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZW5kLW1ldGhvZC1kaWFsb2cvY29tcG9uZW50cy9zaWduYXR1cmUtYnV0dG9uL3NpZ25hdHVyZS1idXR0b24ubW9kdWxlJztcbmV4cG9ydCB7U2VuZE1ldGhvZFNlcnZpY2UgYXMgybVpfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9zZXJ2aWNlL3NlbmQtbWV0aG9kLnNlcnZpY2UnO1xuZXhwb3J0IHtTdGF0dXNiYXJQb3B1cENvbXBvbmVudCBhcyDJtXh9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RhdHVzYmFyL3N0YXR1c2Jhci1wb3B1cC5jb21wb25lbnQnO1xuZXhwb3J0IHtTdG9ja1N0YXR1c2JhckNvbXBvbmVudCBhcyDJtXp9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2stc3RhdHVzYmFyL3N0b2NrLXN0YXR1c2Jhci5jb21wb25lbnQnO1xuZXhwb3J0IHtTdG9ja1N0YXR1c2Jhck1vZHVsZSBhcyDJtXl9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2stc3RhdHVzYmFyL3N0b2NrLXN0YXR1c2Jhci5tb2R1bGUnO1xuZXhwb3J0IHtBbGxvY2F0aW9uU3RvY2tIaXN0b3J5Q29tcG9uZW50IGFzIMm1YnF9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9hbGxvY2F0aW9uLXN0b2NrLWhpc3RvcnkvYWxsb2NhdGlvbi1zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQge09yZGVyQ29tbWlzc2lvblN0b2NrSGlzdG9yeUNvbXBvbmVudCBhcyDJtWJvfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3N0b2NrL2NvbXBvbmVudHMvb3JkZXItY29tbWlzc2lvbi1zdG9jay1oaXN0b3J5L29yZGVyLWNvbW1pc3Npb24tc3RvY2staGlzdG9yeS5jb21wb25lbnQnO1xuZXhwb3J0IHtPcmRlclN0b2NrSGlzdG9yeUNvbXBvbmVudCBhcyDJtWJwfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3N0b2NrL2NvbXBvbmVudHMvb3JkZXItc3RvY2staGlzdG9yeS9vcmRlci1zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQge09yZGVyU3RvY2tUYWJDb21wb25lbnQgYXMgybVia30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9jb21wb25lbnRzL29yZGVyLXN0b2NrLXRhYi9vcmRlci1zdG9jay10YWIuY29tcG9uZW50JztcbmV4cG9ydCB7T3JkZXJTdXBwbHlTdG9ja0hpc3RvcnlDb21wb25lbnQgYXMgybVibn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9jb21wb25lbnRzL29yZGVyLXN1cHBseS1zdG9jay1oaXN0b3J5L29yZGVyLXN1cHBseS1zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQge09yZGVyVGFiQ29tcG9uZW50IGFzIMm1Ymh9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9vcmRlci10YWIvb3JkZXItdGFiLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrSGlzdG9yeUNvbXBvbmVudCBhcyDJtWJtfSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3N0b2NrL2NvbXBvbmVudHMvc3RvY2staGlzdG9yeS9zdG9jay1oaXN0b3J5LmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrTG9jYXRpb25Db21wb25lbnQgYXMgybVibH0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uL3N0b2NrLWxvY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrUHJvZ25vc2VDb21wb25lbnQgYXMgybVicn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9jb21wb25lbnRzL3N0b2NrLXByb2dub3NlL3N0b2NrLXByb2dub3NlLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrVGFiQ29tcG9uZW50IGFzIMm1Ymd9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay10YWIvc3RvY2stdGFiLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrSGlzdG9yeVRhYnNDb21wb25lbnQgYXMgybVian0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay1oaXN0b3J5LXRhYnMvc3RvY2staGlzdG9yeS10YWJzLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrSW5mb3JtYXRpb25HcmlkQ29tcG9uZW50IGFzIMm1YmR9IGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3RvY2svc3RvY2staW5mb3JtYXRpb24tZ3JpZC9zdG9jay1pbmZvcm1hdGlvbi1ncmlkLmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrSW5mb3JtYXRpb25Db21wb25lbnQgYXMgybViY30gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay1pbmZvcm1hdGlvbi9zdG9jay1pbmZvcm1hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0IHtTdG9ja1RhYnNDb21wb25lbnQgYXMgybViaX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay10YWJzL3N0b2NrLXRhYnMuY29tcG9uZW50JztcbmV4cG9ydCB7U3RvY2tDaGFuZ2VBbW91bnRDb21wb25lbnQgYXMgybViZn0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay10cmFuc2Zlci9zdG9jay1jaGFuZ2UtYW1vdW50LmNvbXBvbmVudCc7XG5leHBvcnQge1N0b2NrVHJhbnNmZXJDb21wb25lbnQgYXMgybViZX0gZnJvbSAnLi9saWIvY29tcG9uZW50cy9zdG9jay9zdG9jay10cmFuc2Zlci9zdG9jay10cmFuc2Zlci5jb21wb25lbnQnO1xuZXhwb3J0IHtUYWJCYXJDb21wb25lbnQgYXMgybV3fSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RhYi1iYXIvdGFiLWJhci5jb21wb25lbnQnO1xuZXhwb3J0IHtUYWJCYXJNb2R1bGUgYXMgybV2fSBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RhYi1iYXIvdGFiLWJhci5tb2R1bGUnO1xuZXhwb3J0IHtJY29uIGFzIMm1YnR9IGZyb20gJy4vbGliL2VudW0vaWNvbi5lbnVtJztcbmV4cG9ydCB7TGFuZ3VhZ2VDb2RlIGFzIMm1Ynp9IGZyb20gJy4vbGliL2VudW0vbGFuZ3VhZ2UtY29kZS5lbnVtJztcbmV4cG9ydCB7TG9jYWxpemF0aW9uTW9kdWxlIGFzIMm1YmF9IGZyb20gJy4vbGliL2xvY2FsaXphdGlvbi9sb2NhbGl6YXRpb24ubW9kdWxlJztcbmV4cG9ydCB7TG9jYWxpemVQaXBlIGFzIMm1YmJ9IGZyb20gJy4vbGliL2xvY2FsaXphdGlvbi9sb2NhbGl6ZS5waXBlJztcbmV4cG9ydCB7TG9jYWxpemVTZXJ2aWNlIGFzIMm1Z30gZnJvbSAnLi9saWIvbG9jYWxpemF0aW9uL2xvY2FsaXplLnNlcnZpY2UnO1xuZXhwb3J0IHtTZW5kTWV0aG9kIGFzIMm1YnN9IGZyb20gJy4vbGliL21vZGVsL3NlbmQtbWV0aG9kJztcbmV4cG9ydCB7QXJyYXlOdW1iZXJQaXBlIGFzIMm1Y3F9IGZyb20gJy4vbGliL3BpcGUvYXJyYXktbnVtYmVyLnBpcGUnO1xuZXhwb3J0IHtNQVNURVJfUElQRVMgYXMgybVjcH0gZnJvbSAnLi9saWIvcGlwZS9tYXN0ZXItcGlwZXMnO1xuZXhwb3J0IHtVQ2ZpcnN0UGlwZSBhcyDJtWNyfSBmcm9tICcuL2xpYi9waXBlL3VjZmlyc3QucGlwZSc7XG5leHBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlIGFzIMm1Zn0gZnJvbSAnLi9saWIvc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuZXhwb3J0IHtJY29uQ2FjaGVTZXJ2aWNlIGFzIMm1aH0gZnJvbSAnLi9saWIvc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xuZXhwb3J0IHtPcHRpb25zU2VydmljZSBhcyDJtWV9IGZyb20gJy4vbGliL3NlcnZpY2Uvb3B0aW9ucy5zZXJ2aWNlJztcbmV4cG9ydCB7U2hhcmVkQ29ubmVjdG9yU2VydmljZSBhcyDJtWR9IGZyb20gJy4vbGliL3NlcnZpY2Uvc2hhcmVkLWNvbm5lY3Rvci5zZXJ2aWNlJztcbmV4cG9ydCB7U3RvY2tTZXJ2aWNlIGFzIMm1Y30gZnJvbSAnLi9saWIvc2VydmljZS9zdG9jay5zZXJ2aWNlJzsiXX0=
@@ -7,6 +7,7 @@ export class KeyPadComponent {
7
7
  this.iconCacheService = iconCacheService;
8
8
  this.icons = Icon;
9
9
  this.showValue = true;
10
+ this.resetModelOnInit = true;
10
11
  this.emitModelChangeOnEnter = true;
11
12
  this.modelChange = new EventEmitter();
12
13
  this.internalModelChange = new EventEmitter();
@@ -35,6 +36,7 @@ export class KeyPadComponent {
35
36
  [KeyboardCode.NumpadDecimal, "."],
36
37
  [KeyboardCode.Period, "."]
37
38
  ]);
39
+ this._init = true;
38
40
  this.isNegative = false;
39
41
  this._model = 0;
40
42
  this._internalModel = "0";
@@ -95,6 +97,10 @@ export class KeyPadComponent {
95
97
  this.enterClick.emit();
96
98
  }
97
99
  _updateModel(value) {
100
+ if (this.resetModelOnInit && this._init) {
101
+ this._internalModel = "0";
102
+ this._init = false;
103
+ }
98
104
  if (value === undefined || value === null ||
99
105
  (value === '.' && this.internalModel.indexOf('.') > -1) ||
100
106
  this.internalModel.length >= this._maxCharacters) {
@@ -183,6 +189,7 @@ KeyPadComponent.ctorParameters = () => [
183
189
  KeyPadComponent.propDecorators = {
184
190
  model: [{ type: Input }],
185
191
  showValue: [{ type: Input }],
192
+ resetModelOnInit: [{ type: Input }],
186
193
  emitModelChangeOnEnter: [{ type: Input }],
187
194
  modelChange: [{ type: Output }],
188
195
  internalModelChange: [{ type: Output }],
@@ -190,4 +197,4 @@ KeyPadComponent.propDecorators = {
190
197
  showClass: [{ type: HostBinding, args: ['class.co-key-pad',] }],
191
198
  handleKeyDown: [{ type: HostListener, args: ['window:keydown', ['$event'],] }]
192
199
  };
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXBhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rZXktcGFkL2tleS1wYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBaUMzRCxNQUFNLE9BQU8sZUFBZTtJQWlFMUIsWUFBbUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFoRTlDLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBYTFCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFHMUIsMkJBQXNCLEdBQVksSUFBSSxDQUFDO1FBR3ZDLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFHL0Qsd0JBQW1CLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFHdkUsZUFBVSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBY2hELGlCQUFZLEdBQXVDLElBQUksR0FBRyxDQUF1QjtZQUNoRyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1lBQzFCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7WUFDMUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUMxQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1lBQzFCLENBQUMs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QUFZLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFTyxZQUFZLENBQUMsS0FBb0I7UUFDdkMsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxTQUFTLENBQUM7SUFDL0MsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQWlCLEtBQUs7UUFDN0MsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUU7WUFDdEYsTUFBTSxLQUFLLEdBQVcsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7b0JBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2lCQUNwQjtnQkFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QjtTQUNGO0lBQ0gsQ0FBQzs7O1lBeE1GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTBCUDtnQkFDSCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBakNPLGdCQUFnQjs7O29CQXFDckIsS0FBSzt3QkFVTCxLQUFLO3FDQUdMLEtBQUs7MEJBR0wsTUFBTTtrQ0FHTixNQUFNO3lCQUdOLE1BQU07d0JBR04sV0FBVyxTQUFDLGtCQUFrQjs0QkFLOUIsWUFBWSxTQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7S2V5Ym9hcmRDb2RlfSBmcm9tICcuLi8uLi9lbnVtL2tleWJvYXJkLWNvZGUuZW51bSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLWtleS1wYWQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLW1vZGVsLXdyYXBwZXJcIiAqbmdJZj1cInNob3dWYWx1ZVwiPlxyXG4gICAgICAgIDxjby1yZXNwb25zaXZlLXRleHQgY2xhc3M9XCJrZXktcGFkLW1vZGVsXCIgW3RleHRdPVwiaW50ZXJuYWxNb2RlbFwiIFtjbGFzcy5uZWdhdGl2ZV09XCJpc05lZ2F0aXZlXCI+PC9jby1yZXNwb25zaXZlLXRleHQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC1idXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbiBidXR0b24tN1wiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygnNycpXCI+PGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtYnV0dG9uLXRleHRcIiBbdGV4dF09XCInNydcIj48L2NvLXJlc3BvbnNpdmUtdGV4dD48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC1idXR0b24gYnV0dG9uLThcIiAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soJzgnKVwiPjxjby1yZXNwb25zaXZlLXRleHQgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbi10ZXh0XCIgW3RleHRdPVwiJzgnXCI+PC9jby1yZXNwb25zaXZlLXRleHQ+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtleS1wYWQtYnV0dG9uIGJ1dHRvbi05XCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKCc5JylcIj48Y28tcmVzcG9uc2l2ZS10ZXh0IGNsYXNzPVwia2V5LXBhZC1idXR0b24tdGV4dFwiIFt0ZXh0XT1cIic5J1wiPjwvY28tcmVzcG9uc2l2ZS10ZXh0PjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbiBidXR0b24tYnNcIiAoY2xpY2spPVwiaGFuZGxlQnNDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkRlbGV0ZUxlZnRSZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC1idXR0b24gYnV0dG9uLTRcIiAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soJzQnKVwiPjxjby1yZXNwb25zaXZlLXRleHQgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbi10ZXh0XCIgW3RleHRdPVwiJzQnXCI+PC9jby1yZXNwb25zaXZlLXRleHQ+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtleS1wYWQtYnV0dG9uIGJ1dHRvbi01XCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKCc1JylcIj48Y28tcmVzcG9uc2l2ZS10ZXh0IGNsYXNzPVwia2V5LXBhZC1idXR0b24tdGV4dFwiIFt0ZXh0XT1cIic1J1wiPjwvY28tcmVzcG9uc2l2ZS10ZXh0PjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbiBidXR0b24tNlwiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygnNicpXCI+PGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtYnV0dG9uLXRleHRcIiBbdGV4dF09XCInNidcIj48L2NvLXJlc3BvbnNpdmUtdGV4dD48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC1idXR0b24gYnV0dG9uLW1pbnVzXCIgKGNsaWNrKT1cImhhbmRsZU1pbnVzQ2xpY2soJGV2ZW50KVwiPjxjby1yZXNwb25zaXZlLXRleHQgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbi10ZXh0XCIgW3RleHRdPVwiJy0nXCI+PC9jby1yZXNwb25zaXZlLXRleHQ+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtleS1wYWQtYnV0dG9uIGJ1dHRvbi0xXCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKCcxJylcIj48Y28tcmVzcG9uc2l2ZS10ZXh0IGNsYXNzPVwia2V5LXBhZC1idXR0b24tdGV4dFwiIFt0ZXh0XT1cIicxJ1wiPjwvY28tcmVzcG9uc2l2ZS10ZXh0PjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbiBidXR0b24tMlwiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygnMicpXCI+PGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtYnV0dG9uLXRleHRcIiBbdGV4dF09XCInMidcIj48L2NvLXJlc3BvbnNpdmUtdGV4dD48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC1idXR0b24gYnV0dG9uLTNcIiAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soJzMnKVwiPjxjby1yZXNwb25zaXZlLXRleHQgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbi10ZXh0XCIgW3RleHRdPVwiJzMnXCI+PC9jby1yZXNwb25zaXZlLXRleHQ+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtleS1wYWQtYnV0dG9uIGJ1dHRvbi1lbnRlclwiIChjbGljayk9XCJoYW5kbGVFbnRlckNsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgIDxjby1yZXNwb25zaXZlLXRleHQgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbi10ZXh0XCIgW3RleHRdPVwiJ2VudGVyJ1wiPjwvY28tcmVzcG9uc2l2ZS10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbiBidXR0b24tMFwiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygnMCcpXCI+PGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtYnV0dG9uLXRleHRcIiBbdGV4dF09XCInMCdcIj48L2NvLXJlc3BvbnNpdmUtdGV4dD48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC1idXR0b24gYnV0dG9uLWRvdFwiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygnLicpXCI+PGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtYnV0dG9uLXRleHRcIiBbdGV4dF09XCInLidcIj48L2NvLXJlc3BvbnNpdmUtdGV4dD48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgS2V5UGFkQ29tcG9uZW50IHtcclxuICBwdWJsaWMgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IG1vZGVsKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX21vZGVsID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pbnRlcm5hbE1vZGVsID0gdGhpcy5fbW9kZWwgKyBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtb2RlbCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1ZhbHVlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW1pdE1vZGVsQ2hhbmdlT25FbnRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGludGVybmFsTW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBlbnRlckNsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28ta2V5LXBhZCcpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxCb2R5RWxlbWVudCkge1xyXG4gICAgICB0aGlzLl9rZXlEb3duKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZhbGlkS2V5TWFwOiBNYXA8S2V5Ym9hcmRDb2RlIHwgc3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxLZXlib2FyZENvZGUsIHN0cmluZz4oW1xyXG4gICAgW0tleWJvYXJkQ29kZS5EaWdpdDAsIFwiMFwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuRGlnaXQxLCBcIjFcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLkRpZ2l0MiwgXCIyXCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5EaWdpdDMsIFwiM1wiXSxcclxuICAgIFtLZXlib2FyZENvZGUuRGlnaXQ0LCBcIjRcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLkRpZ2l0NSwgXCI1XCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5EaWdpdDYsIFwiNlwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuRGlnaXQ3LCBcIjdcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLkRpZ2l0OCwgXCI4XCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5EaWdpdDksIFwiOVwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuTnVtcGFkMCwgXCIwXCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5OdW1wYWQxLCBcIjFcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLk51bXBhZDIsIFwiMlwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuTnVtcGFkMywgXCIzXCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5OdW1wYWQ0LCBcIjRcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLk51bXBhZDUsIFwiNVwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuTnVtcGFkNiwgXCI2XCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5OdW1wYWQ3LCBcIjdcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLk51bXBhZDgsIFwiOFwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuTnVtcGFkOSwgXCI5XCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5OdW1wYWREZWNpbWFsLCBcIi5cIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLlBlcmlvZCwgXCIuXCJdXHJcbiAgXSlcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgaW50ZXJuYWxNb2RlbCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9pbnRlcm5hbE1vZGVsID0gdmFsdWU7XHJcbiAgICB0aGlzLmlzTmVnYXRpdmUgPSBwYXJzZUZsb2F0KHRoaXMuX2ludGVybmFsTW9kZWwpIDwgMDtcclxuICAgIHRoaXMuaW50ZXJuYWxNb2RlbENoYW5nZS5lbWl0KHRoaXMuX2ludGVybmFsTW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpbnRlcm5hbE1vZGVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faW50ZXJuYWxNb2RlbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc05lZ2F0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX21vZGVsOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2ludGVybmFsTW9kZWw6IHN0cmluZyA9IFwiMFwiO1xyXG4gIHByaXZhdGUgX21heENoYXJhY3RlcnM6IG51bWJlciA9IDExO1xyXG5cclxuICBwdWJsaWMgaGFuZGxlTWludXNDbGljayhldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1vZGVsOiBudW1iZXIgPSBwYXJzZUZsb2F0KHRoaXMuaW50ZXJuYWxNb2RlbCk7XHJcbiAgICBpZiAobW9kZWwgIT09IDApIHtcclxuICAgICAgaWYgKG1vZGVsIDwgMCkge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxNb2RlbCA9IE1hdGguYWJzKG1vZGVsKSArIFwiXCI7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbE1vZGVsID0gLW1vZGVsICsgXCJcIjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5fZW1pdE1vZGVsQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2xlYXJDbGljayhldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuaW50ZXJuYWxNb2RlbCA9IFwiMFwiO1xyXG4gICAgdGhpcy5fZW1pdE1vZGVsQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQnNDbGljayhldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGxldCB3aXNoOiBzdHJpbmcgPSB0aGlzLmludGVybmFsTW9kZWw7XHJcbiAgICB3aXNoID0gd2lzaC5zbGljZSgwLCB3aXNoLmxlbmd0aCAtIDEpIHx8IFwiMFwiO1xyXG4gICAgaWYgKCFpc05hTihwYXJzZUZsb2F0KHdpc2gpKSkge1xyXG4gICAgICB0aGlzLmludGVybmFsTW9kZWwgPSBwYXJzZUZsb2F0KHdpc2gpICsgXCJcIjtcclxuICAgIH1cclxuICAgIHRoaXMuX2VtaXRNb2RlbENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJ1dHRvbkNsaWNrKGNocjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl91cGRhdGVNb2RlbChjaHIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUVudGVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9lbWl0TW9kZWxDaGFuZ2UodHJ1ZSk7XHJcbiAgICB0aGlzLmVudGVyQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlTW9kZWwodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHxcclxuICAgICAgKHZhbHVlID09PSAnLicgJiYgdGhpcy5pbnRlcm5hbE1vZGVsLmluZGV4T2YoJy4nKSA+IC0xKSB8fFxyXG4gICAgICB0aGlzLmludGVybmFsTW9kZWwubGVuZ3RoID49IHRoaXMuX21heENoYXJhY3RlcnMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnRlcm5hbE1vZGVsID0gdGhpcy5pbnRlcm5hbE1vZGVsICE9PSBcIjBcIiA/IHRoaXMuaW50ZXJuYWxNb2RlbCArIHZhbHVlIDogdmFsdWU7XHJcbiAgICB0aGlzLl9lbWl0TW9kZWxDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2tleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9pc0VudGVyKGV2ZW50KSkge1xyXG4gICAgICB0aGlzLmhhbmRsZUVudGVyQ2xpY2soZXZlbnQpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLl9pc01pbnVzKGV2ZW50KSkge1xyXG4gICAgICB0aGlzLmhhbmRsZU1pbnVzQ2xpY2soZXZlbnQpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLl9pc0VzY2FwZShldmVudCkpIHtcclxuICAgICAgdGhpcy5oYW5kbGVDbGVhckNsaWNrKGV2ZW50KTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5faXNCYWNrc3BhY2UoZXZlbnQpKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQnNDbGljayhldmVudCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl91cGRhdGVNb2RlbCh0aGlzLl92YWxpZEtleU1hcC5nZXQoZXZlbnQuY29kZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNFbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGV2ZW50LmNvZGUgPT09IEtleWJvYXJkQ29kZS5FbnRlciB8fCBldmVudC5jb2RlID09PSBLZXlib2FyZENvZGUuTnVtcGFkRW50ZXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc01pbnVzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZXZlbnQuY29kZSA9PT0gS2V5Ym9hcmRDb2RlLk1pbnVzIHx8IGV2ZW50LmNvZGUgPT09IEtleWJvYXJkQ29kZS5OdW1wYWRTdWJ0cmFjdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzRXNjYXBlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZXZlbnQuY29kZSA9PT0gS2V5Ym9hcmRDb2RlLkVzY2FwZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzQmFja3NwYWNlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZXZlbnQuY29kZSA9PT0gS2V5Ym9hcmRDb2RlLkJhY2tzcGFjZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2VtaXRNb2RlbENoYW5nZShlbnRlcjogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICBpZiAoKGVudGVyICYmIHRoaXMuZW1pdE1vZGVsQ2hhbmdlT25FbnRlcikgfHwgKCFlbnRlciAmJiAhdGhpcy5lbWl0TW9kZWxDaGFuZ2VPbkVudGVyKSkge1xyXG4gICAgICBjb25zdCBtb2RlbDogbnVtYmVyID0gcGFyc2VGbG9hdCh0aGlzLmludGVybmFsTW9kZWwpO1xyXG4gICAgICBpZiAoIWlzTmFOKG1vZGVsKSkge1xyXG4gICAgICAgIGlmIChlbnRlciAmJiB0aGlzLmVtaXRNb2RlbENoYW5nZU9uRW50ZXIpIHtcclxuICAgICAgICAgIHRoaXMubW9kZWwgPSBtb2RlbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG1vZGVsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXBhZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9rZXktcGFkL2tleS1wYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBaUMzRCxNQUFNLE9BQU8sZUFBZTtJQXNFMUIsWUFBbUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFyRTlDLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBYTFCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFHMUIscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBR2pDLDJCQUFzQixHQUFZLElBQUksQ0FBQztRQUd2QyxnQkFBVyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRy9ELHdCQUFtQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBR3ZFLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQWNoRCxpQkFBWSxHQUF1QyxJQUFJLEdBQUcsQ0FBdUI7WUFDaEcsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztZQUMxQixDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO1lBQzFCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7WUFDMUIsQ0FBQyxZQUFZLENBQUMsTUFB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QUdOLE1BQU07d0JBR04sV0FBVyxTQUFDLGtCQUFrQjs0QkFLOUIsWUFBWSxTQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtLZXlib2FyZENvZGV9IGZyb20gJy4uLy4uL2VudW0va2V5Ym9hcmQtY29kZS5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28ta2V5LXBhZCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLXdyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImtleS1wYWQtbW9kZWwtd3JhcHBlclwiICpuZ0lmPVwic2hvd1ZhbHVlXCI+XHJcbiAgICAgICAgPGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtbW9kZWxcIiBbdGV4dF09XCJpbnRlcm5hbE1vZGVsXCIgW2NsYXNzLm5lZ2F0aXZlXT1cImlzTmVnYXRpdmVcIj48L2NvLXJlc3BvbnNpdmUtdGV4dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtleS1wYWQtYnV0dG9uIGJ1dHRvbi03XCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKCc3JylcIj48Y28tcmVzcG9uc2l2ZS10ZXh0IGNsYXNzPVwia2V5LXBhZC1idXR0b24tdGV4dFwiIFt0ZXh0XT1cIic3J1wiPjwvY28tcmVzcG9uc2l2ZS10ZXh0PjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbiBidXR0b24tOFwiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygnOCcpXCI+PGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtYnV0dG9uLXRleHRcIiBbdGV4dF09XCInOCdcIj48L2NvLXJlc3BvbnNpdmUtdGV4dD48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC1idXR0b24gYnV0dG9uLTlcIiAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soJzknKVwiPjxjby1yZXNwb25zaXZlLXRleHQgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbi10ZXh0XCIgW3RleHRdPVwiJzknXCI+PC9jby1yZXNwb25zaXZlLXRleHQ+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtleS1wYWQtYnV0dG9uIGJ1dHRvbi1ic1wiIChjbGljayk9XCJoYW5kbGVCc0NsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuRGVsZXRlTGVmdFJlZ3VsYXIpXCI+PC9jby1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbiBidXR0b24tNFwiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygnNCcpXCI+PGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtYnV0dG9uLXRleHRcIiBbdGV4dF09XCInNCdcIj48L2NvLXJlc3BvbnNpdmUtdGV4dD48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC1idXR0b24gYnV0dG9uLTVcIiAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soJzUnKVwiPjxjby1yZXNwb25zaXZlLXRleHQgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbi10ZXh0XCIgW3RleHRdPVwiJzUnXCI+PC9jby1yZXNwb25zaXZlLXRleHQ+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtleS1wYWQtYnV0dG9uIGJ1dHRvbi02XCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKCc2JylcIj48Y28tcmVzcG9uc2l2ZS10ZXh0IGNsYXNzPVwia2V5LXBhZC1idXR0b24tdGV4dFwiIFt0ZXh0XT1cIic2J1wiPjwvY28tcmVzcG9uc2l2ZS10ZXh0PjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbiBidXR0b24tbWludXNcIiAoY2xpY2spPVwiaGFuZGxlTWludXNDbGljaygkZXZlbnQpXCI+PGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtYnV0dG9uLXRleHRcIiBbdGV4dF09XCInLSdcIj48L2NvLXJlc3BvbnNpdmUtdGV4dD48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC1idXR0b24gYnV0dG9uLTFcIiAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soJzEnKVwiPjxjby1yZXNwb25zaXZlLXRleHQgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbi10ZXh0XCIgW3RleHRdPVwiJzEnXCI+PC9jby1yZXNwb25zaXZlLXRleHQ+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtleS1wYWQtYnV0dG9uIGJ1dHRvbi0yXCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKCcyJylcIj48Y28tcmVzcG9uc2l2ZS10ZXh0IGNsYXNzPVwia2V5LXBhZC1idXR0b24tdGV4dFwiIFt0ZXh0XT1cIicyJ1wiPjwvY28tcmVzcG9uc2l2ZS10ZXh0PjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbiBidXR0b24tM1wiIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljaygnMycpXCI+PGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtYnV0dG9uLXRleHRcIiBbdGV4dF09XCInMydcIj48L2NvLXJlc3BvbnNpdmUtdGV4dD48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwia2V5LXBhZC1idXR0b24gYnV0dG9uLWVudGVyXCIgKGNsaWNrKT1cImhhbmRsZUVudGVyQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPGNvLXJlc3BvbnNpdmUtdGV4dCBjbGFzcz1cImtleS1wYWQtYnV0dG9uLXRleHRcIiBbdGV4dF09XCInZW50ZXInXCI+PC9jby1yZXNwb25zaXZlLXRleHQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImtleS1wYWQtYnV0dG9uIGJ1dHRvbi0wXCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKCcwJylcIj48Y28tcmVzcG9uc2l2ZS10ZXh0IGNsYXNzPVwia2V5LXBhZC1idXR0b24tdGV4dFwiIFt0ZXh0XT1cIicwJ1wiPjwvY28tcmVzcG9uc2l2ZS10ZXh0PjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJrZXktcGFkLWJ1dHRvbiBidXR0b24tZG90XCIgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKCcuJylcIj48Y28tcmVzcG9uc2l2ZS10ZXh0IGNsYXNzPVwia2V5LXBhZC1idXR0b24tdGV4dFwiIFt0ZXh0XT1cIicuJ1wiPjwvY28tcmVzcG9uc2l2ZS10ZXh0PjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLZXlQYWRDb21wb25lbnQge1xyXG4gIHB1YmxpYyBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbW9kZWwodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2ludGVybmFsTW9kZWwgPSB0aGlzLl9tb2RlbCArIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1vZGVsKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZWw7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93VmFsdWU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZXNldE1vZGVsT25Jbml0OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW1pdE1vZGVsQ2hhbmdlT25FbnRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGludGVybmFsTW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBlbnRlckNsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28ta2V5LXBhZCcpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxCb2R5RWxlbWVudCkge1xyXG4gICAgICB0aGlzLl9rZXlEb3duKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZhbGlkS2V5TWFwOiBNYXA8S2V5Ym9hcmRDb2RlIHwgc3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxLZXlib2FyZENvZGUsIHN0cmluZz4oW1xyXG4gICAgW0tleWJvYXJkQ29kZS5EaWdpdDAsIFwiMFwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuRGlnaXQxLCBcIjFcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLkRpZ2l0MiwgXCIyXCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5EaWdpdDMsIFwiM1wiXSxcclxuICAgIFtLZXlib2FyZENvZGUuRGlnaXQ0LCBcIjRcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLkRpZ2l0NSwgXCI1XCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5EaWdpdDYsIFwiNlwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuRGlnaXQ3LCBcIjdcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLkRpZ2l0OCwgXCI4XCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5EaWdpdDksIFwiOVwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuTnVtcGFkMCwgXCIwXCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5OdW1wYWQxLCBcIjFcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLk51bXBhZDIsIFwiMlwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuTnVtcGFkMywgXCIzXCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5OdW1wYWQ0LCBcIjRcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLk51bXBhZDUsIFwiNVwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuTnVtcGFkNiwgXCI2XCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5OdW1wYWQ3LCBcIjdcIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLk51bXBhZDgsIFwiOFwiXSxcclxuICAgIFtLZXlib2FyZENvZGUuTnVtcGFkOSwgXCI5XCJdLFxyXG4gICAgW0tleWJvYXJkQ29kZS5OdW1wYWREZWNpbWFsLCBcIi5cIl0sXHJcbiAgICBbS2V5Ym9hcmRDb2RlLlBlcmlvZCwgXCIuXCJdXHJcbiAgXSlcclxuXHJcbiAgcHJpdmF0ZSBfaW5pdDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGludGVybmFsTW9kZWwodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5faW50ZXJuYWxNb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5pc05lZ2F0aXZlID0gcGFyc2VGbG9hdCh0aGlzLl9pbnRlcm5hbE1vZGVsKSA8IDA7XHJcbiAgICB0aGlzLmludGVybmFsTW9kZWxDaGFuZ2UuZW1pdCh0aGlzLl9pbnRlcm5hbE1vZGVsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaW50ZXJuYWxNb2RlbCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ludGVybmFsTW9kZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNOZWdhdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9tb2RlbDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9pbnRlcm5hbE1vZGVsOiBzdHJpbmcgPSBcIjBcIjtcclxuICBwcml2YXRlIF9tYXhDaGFyYWN0ZXJzOiBudW1iZXIgPSAxMTtcclxuXHJcbiAgcHVibGljIGhhbmRsZU1pbnVzQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBtb2RlbDogbnVtYmVyID0gcGFyc2VGbG9hdCh0aGlzLmludGVybmFsTW9kZWwpO1xyXG4gICAgaWYgKG1vZGVsICE9PSAwKSB7XHJcbiAgICAgIGlmIChtb2RlbCA8IDApIHtcclxuICAgICAgICB0aGlzLmludGVybmFsTW9kZWwgPSBNYXRoLmFicyhtb2RlbCkgKyBcIlwiO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxNb2RlbCA9IC1tb2RlbCArIFwiXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuX2VtaXRNb2RlbENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNsZWFyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLmludGVybmFsTW9kZWwgPSBcIjBcIjtcclxuICAgIHRoaXMuX2VtaXRNb2RlbENoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJzQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBsZXQgd2lzaDogc3RyaW5nID0gdGhpcy5pbnRlcm5hbE1vZGVsO1xyXG4gICAgd2lzaCA9IHdpc2guc2xpY2UoMCwgd2lzaC5sZW5ndGggLSAxKSB8fCBcIjBcIjtcclxuICAgIGlmICghaXNOYU4ocGFyc2VGbG9hdCh3aXNoKSkpIHtcclxuICAgICAgdGhpcy5pbnRlcm5hbE1vZGVsID0gcGFyc2VGbG9hdCh3aXNoKSArIFwiXCI7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9lbWl0TW9kZWxDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVCdXR0b25DbGljayhjaHI6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fdXBkYXRlTW9kZWwoY2hyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVFbnRlckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZW1pdE1vZGVsQ2hhbmdlKHRydWUpO1xyXG4gICAgdGhpcy5lbnRlckNsaWNrLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZU1vZGVsKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlc2V0TW9kZWxPbkluaXQgJiYgdGhpcy5faW5pdCkge1xyXG4gICAgICB0aGlzLl9pbnRlcm5hbE1vZGVsID0gXCIwXCI7XHJcbiAgICAgIHRoaXMuX2luaXQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8XHJcbiAgICAgICh2YWx1ZSA9PT0gJy4nICYmIHRoaXMuaW50ZXJuYWxNb2RlbC5pbmRleE9mKCcuJykgPiAtMSkgfHxcclxuICAgICAgdGhpcy5pbnRlcm5hbE1vZGVsLmxlbmd0aCA+PSB0aGlzLl9tYXhDaGFyYWN0ZXJzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaW50ZXJuYWxNb2RlbCA9IHRoaXMuaW50ZXJuYWxNb2RlbCAhPT0gXCIwXCIgPyB0aGlzLmludGVybmFsTW9kZWwgKyB2YWx1ZSA6IHZhbHVlO1xyXG4gICAgdGhpcy5fZW1pdE1vZGVsQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9rZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNFbnRlcihldmVudCkpIHtcclxuICAgICAgdGhpcy5oYW5kbGVFbnRlckNsaWNrKGV2ZW50KTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5faXNNaW51cyhldmVudCkpIHtcclxuICAgICAgdGhpcy5oYW5kbGVNaW51c0NsaWNrKGV2ZW50KTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5faXNFc2NhcGUoZXZlbnQpKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlQ2xlYXJDbGljayhldmVudCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2lzQmFja3NwYWNlKGV2ZW50KSkge1xyXG4gICAgICB0aGlzLmhhbmRsZUJzQ2xpY2soZXZlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdXBkYXRlTW9kZWwodGhpcy5fdmFsaWRLZXlNYXAuZ2V0KGV2ZW50LmNvZGUpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2lzRW50ZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBldmVudC5jb2RlID09PSBLZXlib2FyZENvZGUuRW50ZXIgfHwgZXZlbnQuY29kZSA9PT0gS2V5Ym9hcmRDb2RlLk51bXBhZEVudGVyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaXNNaW51cyhldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGV2ZW50LmNvZGUgPT09IEtleWJvYXJkQ29kZS5NaW51cyB8fCBldmVudC5jb2RlID09PSBLZXlib2FyZENvZGUuTnVtcGFkU3VidHJhY3Q7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc0VzY2FwZShldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGV2ZW50LmNvZGUgPT09IEtleWJvYXJkQ29kZS5Fc2NhcGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pc0JhY2tzcGFjZShldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGV2ZW50LmNvZGUgPT09IEtleWJvYXJkQ29kZS5CYWNrc3BhY2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9lbWl0TW9kZWxDaGFuZ2UoZW50ZXI6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKChlbnRlciAmJiB0aGlzLmVtaXRNb2RlbENoYW5nZU9uRW50ZXIpIHx8ICghZW50ZXIgJiYgIXRoaXMuZW1pdE1vZGVsQ2hhbmdlT25FbnRlcikpIHtcclxuICAgICAgY29uc3QgbW9kZWw6IG51bWJlciA9IHBhcnNlRmxvYXQodGhpcy5pbnRlcm5hbE1vZGVsKTtcclxuICAgICAgaWYgKCFpc05hTihtb2RlbCkpIHtcclxuICAgICAgICBpZiAoZW50ZXIgJiYgdGhpcy5lbWl0TW9kZWxDaGFuZ2VPbkVudGVyKSB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0gbW9kZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdChtb2RlbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,40 @@
1
+ import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
2
+ import { SendMethodService } from '../../service/send-method.service';
3
+ export class SendMethodPdfComponent {
4
+ constructor(sendMethodService) {
5
+ this.sendMethodService = sendMethodService;
6
+ this.layouts = [];
7
+ }
8
+ showClass() {
9
+ return true;
10
+ }
11
+ }
12
+ SendMethodPdfComponent.decorators = [
13
+ { type: Component, args: [{
14
+ selector: 'co-send-method-pdf',
15
+ template: `
16
+ <div class="pdf-layout-selections-wrapper">
17
+ <div class="layout-signature-wrapper">
18
+ <co-layout-selection
19
+ [(request)]="sendMethodService.reportingDocumentPdfBaseRequest"
20
+ [layouts]="layouts"
21
+ ></co-layout-selection>
22
+ <!--
23
+ <co-signature-button
24
+ [request]="sendMethodService.reportingDocumentPdfBaseRequest"
25
+ ></co-signature-button>
26
+ -->
27
+ </div>
28
+ </div>
29
+ `,
30
+ encapsulation: ViewEncapsulation.None
31
+ },] }
32
+ ];
33
+ SendMethodPdfComponent.ctorParameters = () => [
34
+ { type: SendMethodService }
35
+ ];
36
+ SendMethodPdfComponent.propDecorators = {
37
+ layouts: [{ type: Input }],
38
+ showClass: [{ type: HostBinding, args: ['class.co-send-method-pdf',] }]
39
+ };
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXRob2QtcGRmLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9jb21wb25lbnRzL3NlbmQtbWV0aG9kLXBkZi9zZW5kLW1ldGhvZC1wZGYuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQXFCcEUsTUFBTSxPQUFPLHNCQUFzQjtJQVVqQyxZQUNTLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBUnRDLFlBQU8sR0FBaUMsRUFBRSxDQUFDO0lBVWxELENBQUM7SUFQTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzs7WUEzQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7S0FjUDtnQkFDSCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBcEJPLGlCQUFpQjs7O3NCQXVCdEIsS0FBSzt3QkFHTCxXQUFXLFNBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7U2VuZE1ldGhvZFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvc2VuZC1tZXRob2Quc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXNlbmQtbWV0aG9kLXBkZicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInBkZi1sYXlvdXQtc2VsZWN0aW9ucy13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXNpZ25hdHVyZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWxheW91dC1zZWxlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICAgIFsocmVxdWVzdCldPVwic2VuZE1ldGhvZFNlcnZpY2UucmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbGF5b3V0c109XCJsYXlvdXRzXCJcclxuICAgICAgICAgICAgICA+PC9jby1sYXlvdXQtc2VsZWN0aW9uPlxyXG48IS0tXHJcbiAgICAgICAgICAgICAgPGNvLXNpZ25hdHVyZS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIFtyZXF1ZXN0XT1cInNlbmRNZXRob2RTZXJ2aWNlLnJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3RcIlxyXG4gICAgICAgICAgICAgID48L2NvLXNpZ25hdHVyZS1idXR0b24+XHJcbi0tPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZW5kTWV0aG9kUGRmQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGF5b3V0czogUmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnRbXSA9IFtdO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXNlbmQtbWV0aG9kLXBkZicpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VuZE1ldGhvZFNlcnZpY2U6IFNlbmRNZXRob2RTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG59IFxyXG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { SendMethodPdfComponent } from './send-method-pdf.component';
4
+ import { LayoutSelectionModule } from '../layout-selection/layout-selection.module';
5
+ import { SignatureButtonModule } from '../signature-button/signature-button.module';
6
+ export class SendMethodPdfModule {
7
+ }
8
+ SendMethodPdfModule.decorators = [
9
+ { type: NgModule, args: [{
10
+ imports: [
11
+ CommonModule,
12
+ LayoutSelectionModule,
13
+ SignatureButtonModule
14
+ ],
15
+ declarations: [
16
+ SendMethodPdfComponent
17
+ ],
18
+ exports: [
19
+ SendMethodPdfComponent
20
+ ]
21
+ },] }
22
+ ];
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXRob2QtcGRmLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9jb21wb25lbnRzL3NlbmQtbWV0aG9kLXBkZi9zZW5kLW1ldGhvZC1wZGYubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBZWxGLE1BQU0sT0FBTyxtQkFBbUI7OztZQWIvQixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1oscUJBQXFCO29CQUNyQixxQkFBcUI7aUJBQ3RCO2dCQUNELFlBQVksRUFBRTtvQkFDWixzQkFBc0I7aUJBQ3ZCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxzQkFBc0I7aUJBQ3ZCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7U2VuZE1ldGhvZFBkZkNvbXBvbmVudH0gZnJvbSAnLi9zZW5kLW1ldGhvZC1wZGYuY29tcG9uZW50JztcclxuaW1wb3J0IHtMYXlvdXRTZWxlY3Rpb25Nb2R1bGV9IGZyb20gJy4uL2xheW91dC1zZWxlY3Rpb24vbGF5b3V0LXNlbGVjdGlvbi5tb2R1bGUnO1xyXG5pbXBvcnQge1NpZ25hdHVyZUJ1dHRvbk1vZHVsZX0gZnJvbSAnLi4vc2lnbmF0dXJlLWJ1dHRvbi9zaWduYXR1cmUtYnV0dG9uLm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIExheW91dFNlbGVjdGlvbk1vZHVsZSxcclxuICAgIFNpZ25hdHVyZUJ1dHRvbk1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBTZW5kTWV0aG9kUGRmQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTZW5kTWV0aG9kUGRmQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VuZE1ldGhvZFBkZk1vZHVsZSB7XHJcbn1cclxuIl19
@@ -13,7 +13,8 @@ export const sendMethodsWithIcon = [
13
13
  new SendMethod(SendMethodType.Edi, "Edi", Icon.FileExportSolid),
14
14
  new SendMethod(SendMethodType.EmailTemplate, "Email template", Icon.EnvelopeRegular),
15
15
  new SendMethod(SendMethodType.Sms, "Sms", Icon.MessageSmsSolid),
16
- new SendMethod(SendMethodType.WebService, "Webservice", Icon.PrintRegular)
16
+ new SendMethod(SendMethodType.WebService, "Webservice", Icon.PrintRegular),
17
+ new SendMethod(SendMethodType.Pdf, "Pdf", Icon.Pdf)
17
18
  ];
18
19
  export class SendMethodDialogComponent {
19
20
  constructor(iconCacheService, _changeDetector, _sharedService, _sendMethodService) {
@@ -45,6 +46,7 @@ export class SendMethodDialogComponent {
45
46
  this.showSms = true;
46
47
  this.showEmailTemplate = true;
47
48
  this.showWebservice = true;
49
+ this.showPdf = true;
48
50
  this._subscriptions = [];
49
51
  this._subscriptions.push(this._sendMethodService.reportingDocumentPrintSignDocBaseRequestChanged.subscribe((value) => this.reportingDocumentPrintRequestChange.next(value)), this._sendMethodService.reportingDocumentEmailSignDocBaseRequestChanged.subscribe((value) => this.reportingDocumentEmailRequestChange.next(value)), this._sendMethodService.reportingDocumentPdfBaseRequestChanged.subscribe((value) => this.reportingDocumentPdfRequestChange.next(value)));
50
52
  }
@@ -94,6 +96,9 @@ export class SendMethodDialogComponent {
94
96
  else if (sendMethod.code === SendMethodType.WebService && this.showWebservice) {
95
97
  this.navigationItems.nativeElement.scrollLeft = this.webServiceItems.nativeElement.offsetLeft - this.navigationItems.nativeElement.offsetLeft;
96
98
  }
99
+ else if (sendMethod.code === SendMethodType.Pdf && this.showPdf) {
100
+ this.navigationItems.nativeElement.scrollLeft = this.pdfItems.nativeElement.offsetLeft - this.navigationItems.nativeElement.offsetLeft;
101
+ }
97
102
  }
98
103
  _initDefaultSendMethod() {
99
104
  if (this.defaultSendMethod) {
@@ -127,6 +132,7 @@ export class SendMethodDialogComponent {
127
132
  this.showEmailTemplate = this.sendMethods.find(sm => sm.code === SendMethodType.EmailTemplate) !== undefined;
128
133
  this.showSms = this.sendMethods.find(sm => sm.code === SendMethodType.Sms) !== undefined;
129
134
  this.showWebservice = this.sendMethods.find(sm => sm.code === SendMethodType.WebService) !== undefined;
135
+ this.showPdf = this.sendMethods.find(sm => sm.code === SendMethodType.Pdf) !== undefined;
130
136
  }
131
137
  }
132
138
  SendMethodDialogComponent.decorators = [
@@ -181,6 +187,11 @@ SendMethodDialogComponent.decorators = [
181
187
  <div #webServiceItems class="send-method-navigation-content co-small-scrollbar" *ngIf="showWebservice">
182
188
 
183
189
  </div>
190
+ <div #pdfItems class="send-method-navigation-content co-small-scrollbar" *ngIf="showPdf">
191
+ <co-send-method-pdf
192
+ [layouts]="printLayouts"
193
+ ></co-send-method-pdf>
194
+ </div>
184
195
  </div>
185
196
  </div>
186
197
  <ng-template #footerTemplate>
@@ -220,6 +231,7 @@ SendMethodDialogComponent.propDecorators = {
220
231
  emailTemplateItems: [{ type: ViewChild, args: ['emailTemplateItems', { read: ElementRef },] }],
221
232
  smsItems: [{ type: ViewChild, args: ['smsItems', { read: ElementRef },] }],
222
233
  webServiceItems: [{ type: ViewChild, args: ['webServiceItems', { read: ElementRef },] }],
234
+ pdfItems: [{ type: ViewChild, args: ['pdfItems', { read: ElementRef },] }],
223
235
  printerList: [{ type: Input }],
224
236
  reportingDocumentPrintRequest: [{ type: Input }],
225
237
  reportingDocumentEmailRequest: [{ type: Input }],
@@ -240,4 +252,4 @@ SendMethodDialogComponent.propDecorators = {
240
252
  okClick: [{ type: Output }],
241
253
  showClass: [{ type: HostBinding, args: ['class.co-send-method-dialog',] }]
242
254
  };
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXRob2QtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9zZW5kLW1ldGhvZC1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFJM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQVNsRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBaUI7SUFDL0MsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM1RCxJQUFJLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzlELElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxL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QUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNsRztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUM7UUFDekYsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLFNBQVMsQ0FBQztRQUM3RixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxDQUFDO1FBQzdGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUM7UUFDekYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssU0FBUyxDQUFDO1FBQzdHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUM7UUFDekYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFNBQVMsQ0FBQztJQUN6RyxDQUFDOzs7WUEzUUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4RFQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLFVBQVUsRUFBRTtvQkFDVixPQUFPLENBQUMsWUFBWSxFQUFFO3dCQUNwQixLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO3dCQUM3RSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQzt3QkFDbkUsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3RDLENBQUM7aUJBQ0g7YUFDRjs7O1lBckdPLGdCQUFnQjtZQWJ0QixpQkFBaUI7WUFnQlgsYUFBYTtZQUliLGlCQUFpQjs7OzhCQW1HdEIsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzt1QkFHL0MsU0FBUyxTQUFDLFVBQVUsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7eUJBR3hDLFNBQVMsU0FBQyxZQUFZLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO3lCQUcxQyxTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzt1QkFHMUMsU0FBUyxTQUFDLFVBQVUsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7aUNBR3hDLFNBQVMsU0FBQyxvQkFBb0IsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7dUJBR2xELFNBQVMsU0FBQyxVQUFVLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDOzhCQUd4QyxTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDOzBCQUcvQyxLQUFLOzRDQUdMLEtBQUs7NENBR0wsS0FBSzswQ0FHTCxLQUFLOzJCQUdMLEtBQUs7MkJBR0wsS0FBSzswQkFNTCxLQUFLOzZCQUdMLEtBQUs7Z0NBR0wsS0FBSzs2QkFHTCxLQUFLOytCQUdMLEtBQUs7c0JBR0wsS0FBSztrREFHTCxNQUFNO2tEQUdOLE1BQU07Z0RBR04sTUFBTTtvQ0FHTixNQUFNO3lCQUdOLE1BQU07c0JBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7U2hhcmVkU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZSc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWx9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvJztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tcHJpbnQuYm8nO1xyXG5pbXBvcnQge1JlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wZGYtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtTZW5kTWV0aG9kU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlL3NlbmQtbWV0aG9kLnNlcnZpY2UnO1xyXG5pbXBvcnQge1NlbmRNZXRob2R9IGZyb20gJy4uLy4uL21vZGVsL3NlbmQtbWV0aG9kJztcclxuaW1wb3J0IHtTZW5kTWV0aG9kVHlwZX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9zZW5kLW1ldGhvZC10eXBlLmVudW0nO1xyXG5pbXBvcnQge1ByaW50ZXJ9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3ByaW50ZXIuYm8nO1xyXG5pbXBvcnQge1xyXG4gIFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3RcclxufSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtZW1haWwtc2lnbi1kb2MtYmFzZS1yZXF1ZXN0JztcclxuaW1wb3J0IHtcclxuICBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0XHJcbn0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydGluZy1kb2N1bWVudC1wcmludC1zaWduLWRvYy1iYXNlLXJlcXVlc3RcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBzZW5kTWV0aG9kc1dpdGhJY29uOiBTZW5kTWV0aG9kW10gPSBbXHJcbiAgbmV3IFNlbmRNZXRob2QoU2VuZE1ldGhvZFR5cGUuRmF4LCBcIkZheFwiLCBJY29uLlByaW50UmVndWxhciksXHJcbiAgbmV3IFNlbmRNZXRob2QoU2VuZE1ldGhvZFR5cGUuUHJpbnQsIFwiUHJpbnRcIiwgSWNvbi5QcmludFNvbGlkKSxcclxuICBuZXcgU2VuZE1ldGhvZChTZW5kTWV0aG9kVHlwZS5FbWFpbCwgXCJFbWFpbFwiLCBJY29uLkF0U29saWQpLFxyXG4gIG5ldyBTZW5kTWV0aG9kKFNlbmRNZXRob2RUeXBlLkVkaSwgXCJFZGlcIiwgSWNvbi5GaWxlRXhwb3J0U29saWQpLFxyXG4gIG5ldyBTZW5kTWV0aG9kKFNlbmRNZXRob2RUeXBlLkVtYWlsVGVtcGxhdGUsIFwiRW1haWwgdGVtcGxhdGVcIiwgSWNvbi5FbnZlbG9wZVJlZ3VsYXIpLFxyXG4gIG5ldyBTZW5kTWV0aG9kKFNlbmRNZXRob2RUeXBlLlNtcywgXCJTbXNcIiwgSWNvbi5NZXNzYWdlU21zU29saWQpLFxyXG4gIG5ldyBTZW5kTWV0aG9kKFNlbmRNZXRob2RUeXBlLldlYlNlcnZpY2UsIFwiV2Vic2VydmljZVwiLCBJY29uLlByaW50UmVndWxhcilcclxuXVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1zZW5kLW1ldGhvZC1kaWFsb2cnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tZGlhbG9nIGlkPVwic2VuZE9wdGlvbnNEaWFsb2dcIiBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIiBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZUNsaWNrLmVtaXQoJGV2ZW50KVwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuRW52ZWxvcGVSZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cImhlYWRlclRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy1uYXZpZ2F0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZW5kLWJ1dHRvbi13cmFwcGVyXCIgKm5nRm9yPVwibGV0IHNlbmRNZXRob2Qgb2Ygc2VuZE1ldGhvZHM7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImFjdGl2ZVNlbmRNZXRob2QgPyBzZW5kTWV0aG9kLmNvZGUgPT09IGFjdGl2ZVNlbmRNZXRob2QuY29kZSA6IGluZGV4ID09PSAwXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlbmRNZXRob2RDbGljayhzZW5kTWV0aG9kKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWJ1dHRvbi10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJzZW5kTWV0aG9kLmRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGVudC13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbmQtbWV0aG9kcy13cmFwcGVyXCI+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgI25hdmlnYXRpb25JdGVtcyBjbGFzcz1cInNlbmQtbWV0aG9kLW5hdmlnYXRpb24td3JhcHBlclwiIFtjbGFzcy5zbW9vdGgtc2Nyb2xsaW5nXT1cIiFzdGFydFVwXCI+XHJcbiAgICAgICAgICA8ZGl2ICNmYXhJdGVtcyBjbGFzcz1cInNlbmQtbWV0aG9kLW5hdmlnYXRpb24tY29udGVudCBjby1zbWFsbC1zY3JvbGxiYXJcIj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgI3ByaW50SXRlbXMgY2xhc3M9XCJzZW5kLW1ldGhvZC1uYXZpZ2F0aW9uLWNvbnRlbnQgY28tc21hbGwtc2Nyb2xsYmFyXCIgKm5nSWY9XCJzaG93UHJpbnRcIj5cclxuICAgICAgICAgICAgPGNvLXNlbmQtbWV0aG9kLXByaW50ZXJcclxuICAgICAgICAgICAgICBbcHJpbnRlckxpc3RdPVwicHJpbnRlckxpc3RcIlxyXG4gICAgICAgICAgICAgIFtsYXlvdXRzXT1cInByaW50TGF5b3V0c1wiXHJcbiAgICAgICAgICAgID48L2NvLXNlbmQtbWV0aG9kLXByaW50ZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgI2VtYWlsSXRlbXMgY2xhc3M9XCJzZW5kLW1ldGhvZC1uYXZpZ2F0aW9uLWNvbnRlbnQgY28tc21hbGwtc2Nyb2xsYmFyXCIgKm5nSWY9XCJzaG93RW1haWxcIj5cclxuICAgICAgICAgICAgPGNvLXNlbmQtbWV0aG9kLWVtYWlsXHJcbiAgICAgICAgICAgICAgW2VtYWlsQWRkcmVzc2VzXT1cImVtYWlsQWRkcmVzc2VzXCJcclxuICAgICAgICAgICAgICBbbGF5b3V0c109XCJlbWFpbExheW91dHNcIlxyXG4gICAgICAgICAgICA+PC9jby1zZW5kLW1ldGhvZC1lbWFpbD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAjZWRpSXRlbXMgY2xhc3M9XCJzZW5kLW1ldGhvZC1uYXZpZ2F0aW9uLWNvbnRlbnQgY28tc21hbGwtc2Nyb2xsYmFyXCIgKm5nSWY9XCJzaG93RWRpXCI+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICNlbWFpbFRlbXBsYXRlSXRlbXMgY2xhc3M9XCJzZW5kLW1ldGhvZC1uYXZpZ2F0aW9uLWNvbnRlbnQgY28tc21hbGwtc2Nyb2xsYmFyXCIgKm5nSWY9XCJzaG93RW1haWxUZW1wbGF0ZVwiPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAjc21zSXRlbXMgY2xhc3M9XCJzZW5kLW1ldGhvZC1uYXZpZ2F0aW9uLWNvbnRlbnQgY28tc21hbGwtc2Nyb2xsYmFyXCIgKm5nSWY9XCJzaG93U21zXCI+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICN3ZWJTZXJ2aWNlSXRlbXMgY2xhc3M9XCJzZW5kLW1ldGhvZC1uYXZpZ2F0aW9uLWNvbnRlbnQgY28tc21hbGwtc2Nyb2xsYmFyXCIgKm5nSWY9XCJzaG93V2Vic2VydmljZVwiPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWZvb3Rlci1idXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInNhdmUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9rQ2xpY2suZW1pdChhY3RpdmVTZW5kTWV0aG9kID8gYWN0aXZlU2VuZE1ldGhvZC5jb2RlIDogJzAnKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3NTa2lubnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlQ2xpY2suZW1pdCgkZXZlbnQpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2NvLWRpYWxvZz5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignc2xpZGVJbk91dCcsIFtcclxuICAgICAgc3RhdGUoJyonLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwJSknLCB3aWR0aDogJzEwMCUnLCBvcGFjaXR5OiAnMSd9KSksXHJcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe3RyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTUwJSknLCBvcGFjaXR5OiAnMCd9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMjUwKSlcclxuICAgIF0pXHJcbiAgXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlbmRNZXRob2REaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ25hdmlnYXRpb25JdGVtcycsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICBwdWJsaWMgbmF2aWdhdGlvbkl0ZW1zOiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKCdmYXhJdGVtcycsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICBwdWJsaWMgZmF4SXRlbXM6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3ByaW50SXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgcHVibGljIHByaW50SXRlbXM6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VtYWlsSXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgcHVibGljIGVtYWlsSXRlbXM6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VkaUl0ZW1zJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gIHB1YmxpYyBlZGlJdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZW1haWxUZW1wbGF0ZUl0ZW1zJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gIHB1YmxpYyBlbWFpbFRlbXBsYXRlSXRlbXM6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Ntc0l0ZW1zJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gIHB1YmxpYyBzbXNJdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnd2ViU2VydmljZUl0ZW1zJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gIHB1YmxpYyB3ZWJTZXJ2aWNlSXRlbXM6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHByaW50ZXJMaXN0OiBQcmludGVyW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVwb3J0aW5nRG9jdW1lbnRQcmludFJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3Q7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlcG9ydGluZ0RvY3VtZW50RW1haWxSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZXBvcnRpbmdEb2N1bWVudFBkZlJlcXVlc3Q6IFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3Q7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVtYWlsTGF5b3V0czogUmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWxbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwcmludExheW91dHM6IFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10gPSBbXTtcclxuXHJcbiAgLy8gQElucHV0KClcclxuICAvLyBwdWJsaWMgcHJpY2VMaXN0Q29kZURhdGE6IGFueTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaGVhZGVyVGl0bGU6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW1haWxBZGRyZXNzZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRlZmF1bHRTZW5kTWV0aG9kOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHZpc2libGVNZXRob2RzOiBTZW5kTWV0aG9kVHlwZVtdIHwgc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNEb2NTaWduRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkb2NTaWduOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZXBvcnRpbmdEb2N1bWVudFByaW50UmVxdWVzdENoYW5nZTogRXZlbnRFbWl0dGVyPFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVwb3J0aW5nRG9jdW1lbnRFbWFpbFJlcXVlc3RDaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlcG9ydGluZ0RvY3VtZW50UGRmUmVxdWVzdENoYW5nZTogRXZlbnRFbWl0dGVyPFJlcG9ydGluZ0RvY3VtZW50UGRmQmFzZVJlcXVlc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc3RhcnRTaWduYXR1cmVDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2xvc2VDbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb2tDbGljazogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1zZW5kLW1ldGhvZC1kaWFsb2cnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZW5kTWV0aG9kcyA9IHNlbmRNZXRob2RzV2l0aEljb247XHJcbiAgcHVibGljIGFjdGl2ZVNlbmRNZXRob2Q6IFNlbmRNZXRob2Q7XHJcbiAgcHVibGljIHVwQW5kTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHN0YXJ0VXA6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgc2hvd0ZheDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHNob3dQcmludDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHNob3dFbWFpbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHNob3dFZGk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBzaG93U21zOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgc2hvd0VtYWlsVGVtcGxhdGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBzaG93V2Vic2VydmljZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9zaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VuZE1ldGhvZFNlcnZpY2U6IFNlbmRNZXRob2RTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuX3NlbmRNZXRob2RTZXJ2aWNlLnJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3RDaGFuZ2VkLnN1YnNjcmliZSgodmFsdWU6IFJlcG9ydGluZ0RvY3VtZW50UHJpbnRTaWduRG9jQmFzZVJlcXVlc3QpID0+IHRoaXMucmVwb3J0aW5nRG9jdW1lbnRQcmludFJlcXVlc3RDaGFuZ2UubmV4dCh2YWx1ZSkpLFxyXG4gICAgICB0aGlzLl9zZW5kTWV0aG9kU2VydmljZS5yZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0Q2hhbmdlZC5zdWJzY3JpYmUoKHZhbHVlOiBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0KSA9PiB0aGlzLnJlcG9ydGluZ0RvY3VtZW50RW1haWxSZXF1ZXN0Q2hhbmdlLm5leHQodmFsdWUpKSxcclxuICAgICAgdGhpcy5fc2VuZE1ldGhvZFNlcnZpY2UucmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdENoYW5nZWQuc3Vic2NyaWJlKCh2YWx1ZTogUmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCkgPT4gdGhpcy5yZXBvcnRpbmdEb2N1bWVudFBkZlJlcXVlc3RDaGFuZ2UubmV4dCh2YWx1ZSkpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnJlcG9ydGluZ0RvY3VtZW50RW1haWxSZXF1ZXN0KSB7XHJcbiAgICAgIHRoaXMuX3NlbmRNZXRob2RTZXJ2aWNlLnJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QgPSB0aGlzLnJlcG9ydGluZ0RvY3VtZW50RW1haWxSZXF1ZXN0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVwb3J0aW5nRG9jdW1lbnRQcmludFJlcXVlc3QpIHtcclxuICAgICAgdGhpcy5fc2VuZE1ldGhvZFNlcnZpY2UucmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCA9IHRoaXMucmVwb3J0aW5nRG9jdW1lbnRQcmludFJlcXVlc3Q7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5yZXBvcnRpbmdEb2N1bWVudFBkZlJlcXVlc3QpIHtcclxuICAgICAgdGhpcy5fc2VuZE1ldGhvZFNlcnZpY2UucmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdCA9IHRoaXMucmVwb3J0aW5nRG9jdW1lbnRQZGZSZXF1ZXN0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5faW5pdERlZmF1bHRTZW5kTWV0aG9kKCk7XHJcbiAgICB0aGlzLl9wcmVwYXJlVmlzaWJsZU1ldGhvZHMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2lnbmF0dXJlU3RhcnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRvY1NpZ24gPSAhdGhpcy5kb2NTaWduO1xyXG4gICAgdGhpcy5zdGFydFNpZ25hdHVyZUNsaWNrZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlbmRNZXRob2RDbGljayhzZW5kTWV0aG9kOiBTZW5kTWV0aG9kKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZVNlbmRNZXRob2QgPSBzZW5kTWV0aG9kO1xyXG4gICAgaWYgKHNlbmRNZXRob2QuY29kZSA9PT0gU2VuZE1ldGhvZFR5cGUuRmF4ICYmIHRoaXMuc2hvd0ZheCkge1xyXG4gICAgICB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLmZheEl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCAtIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdDtcclxuICAgIH0gZWxzZSBpZiAoc2VuZE1ldGhvZC5jb2RlID09PSBTZW5kTWV0aG9kVHlwZS5QcmludCAmJiB0aGlzLnNob3dQcmludCkge1xyXG4gICAgICB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLnByaW50SXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0IC0gdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgfSBlbHNlIGlmIChzZW5kTWV0aG9kLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLkVtYWlsICYmIHRoaXMuc2hvd0VtYWlsKSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMuZW1haWxJdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICB9IGVsc2UgaWYgKHNlbmRNZXRob2QuY29kZSA9PT0gU2VuZE1ldGhvZFR5cGUuRWRpICYmIHRoaXMuc2hvd0VkaSkge1xyXG4gICAgICB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLmVkaUl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCAtIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdDtcclxuICAgIH0gZWxzZSBpZiAoc2VuZE1ldGhvZC5jb2RlID09PSBTZW5kTWV0aG9kVHlwZS5FbWFpbFRlbXBsYXRlICYmIHRoaXMuc2hvd0VtYWlsVGVtcGxhdGUpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5lbWFpbFRlbXBsYXRlSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0IC0gdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgfSBlbHNlIGlmIChzZW5kTWV0aG9kLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLlNtcyAmJiB0aGlzLnNob3dTbXMpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5zbXNJdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICB9IGVsc2UgaWYgKHNlbmRNZXRob2QuY29kZSA9PT0gU2VuZE1ldGhvZFR5cGUuV2ViU2VydmljZSAmJiB0aGlzLnNob3dXZWJzZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMud2ViU2VydmljZUl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCAtIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXREZWZhdWx0U2VuZE1ldGhvZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRlZmF1bHRTZW5kTWV0aG9kKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdERlZmF1bHRTZW5kTWV0aG9kKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy52aXNpYmxlTWV0aG9kcyAmJiB0aGlzLnZpc2libGVNZXRob2RzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFNlbmRNZXRob2QgPSB0aGlzLnZpc2libGVNZXRob2RzWzBdO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdERlZmF1bHRTZW5kTWV0aG9kKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zdGFydFVwID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZWxlY3REZWZhdWx0U2VuZE1ldGhvZCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlbmRNZXRob2Q6IFNlbmRNZXRob2QgPSB0aGlzLnNlbmRNZXRob2RzLmZpbmQoc20gPT4gc20uY29kZSA9PT0gdGhpcy5kZWZhdWx0U2VuZE1ldGhvZCk7XHJcbiAgICBpZiAoc2VuZE1ldGhvZCkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZVNlbmRNZXRob2RDbGljayhzZW5kTWV0aG9kKTtcclxuICAgICAgICB0aGlzLnN0YXJ0VXAgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlVmlzaWJsZU1ldGhvZHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy52aXNpYmxlTWV0aG9kcyAmJiB0aGlzLnZpc2libGVNZXRob2RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5zZW5kTWV0aG9kcyA9IHRoaXMuc2VuZE1ldGhvZHMuZmlsdGVyKHNtID0+IHRoaXMudmlzaWJsZU1ldGhvZHMuZmluZCh2bSA9PiB2bSA9PT0gc20uY29kZSkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93RmF4ID0gdGhpcy5zZW5kTWV0aG9kcy5maW5kKHNtID0+IHNtLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLkZheCkgIT09IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd1ByaW50ID0gdGhpcy5zZW5kTWV0aG9kcy5maW5kKHNtID0+IHNtLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLlByaW50KSAhPT0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93RW1haWwgPSB0aGlzLnNlbmRNZXRob2RzLmZpbmQoc20gPT4gc20uY29kZSA9PT0gU2VuZE1ldGhvZFR5cGUuRW1haWwpICE9PSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNob3dFZGkgPSB0aGlzLnNlbmRNZXRob2RzLmZpbmQoc20gPT4gc20uY29kZSA9PT0gU2VuZE1ldGhvZFR5cGUuRWRpKSAhPT0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93RW1haWxUZW1wbGF0ZSA9IHRoaXMuc2VuZE1ldGhvZHMuZmluZChzbSA9PiBzbS5jb2RlID09PSBTZW5kTWV0aG9kVHlwZS5FbWFpbFRlbXBsYXRlKSAhPT0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93U21zID0gdGhpcy5zZW5kTWV0aG9kcy5maW5kKHNtID0+IHNtLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLlNtcykgIT09IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd1dlYnNlcnZpY2UgPSB0aGlzLnNlbmRNZXRob2RzLmZpbmQoc20gPT4gc20uY29kZSA9PT0gU2VuZE1ldGhvZFR5cGUuV2ViU2VydmljZSkgIT09IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIl19
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXRob2QtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbmQtbWV0aG9kLWRpYWxvZy9zZW5kLW1ldGhvZC1kaWFsb2cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFJM0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQVNsRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBaUI7SUFDL0MsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM1RCxJQUFJLFVBQVUsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzlELElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDM0QsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUMvRCxJQUFJLFVBQVUsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDcEYsSUFBSSxVQUFVLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUMvRCxJQUFJLFVBQVUsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzFFLElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7Q0FDcEQsQ0FBQTtBQWtGRCxNQUFNLE9BQU8seUJBQXlCO0lBNEdwQyxZQUNTLGdCQUFrQyxFQUNqQyxlQUFrQyxFQUNsQyxjQUE2QixFQUM3QixrQkFBcUM7UUFIdEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDbEMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQS9HL0IsVUFBSyxHQUFnQixJQUFJLENBQUM7UUE4Qm5DLGdCQUFXLEdBQWMsRUFBRSxDQUFDO1FBWTVCLGlCQUFZLEdBQWlDLEVBQUUsQ0FBQztRQUdoRCxpQkFBWSxHQUFpQyxFQUFFLENBQUM7UUFTaEQsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFNOUIsbUJBQWMsR0FBZ0MsRUFBRSxDQUFDO1FBR2pELHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUdsQyxZQUFPLEdBQVksS0FBSyxDQUFDO1FBR3pCLHdDQUFtQyxHQUEyRCxJQUFJLFlBQVksRUFBNEMsQ0FBQztRQUczSix3Q0FBbUMsR0FBMkQsSUFBSSxZQUFZLEVBQTRDLENBQUM7UUFHM0osc0NBQWlDLEdBQWtELElBQUksWUFBWSxFQUFtQyxDQUFDO1FBR3ZJLDBCQUFxQixHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBR25FLGVBQVUsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUd0RSxZQUFPLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFPM0QsZ0JBQVcsR0FBRyxtQkFBbUIsQ0FBQztRQUVsQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixZQUFPLEdBQVksSUFBSSxDQUFDO1FBRXhCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsY0FBUyxHQUFZLElBQUksQ0FBQztRQUMxQixjQUFTLEdBQVksSUFBSSxDQUFDO1FBQzFCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsWUFBTyxHQUFZLElBQUksQ0FBQztRQUN4QixzQkFBaUIsR0FBWSxJQUFJLENBQUM7UUFDbEMsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFDL0IsWUFBTyxHQUFZLElBQUksQ0FBQztRQUV2QixtQkFBYyxHQUFtQixFQUFFLENBQUM7UUFRMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywrQ0FBK0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUErQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQzVMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywrQ0FBK0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUErQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQzVMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQ0FBc0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFzQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3pLLENBQUE7SUFDSCxDQUFDO0lBL0JNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUErQkQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLDZCQUE2QixFQUFFO1lBQ3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx3Q0FBd0MsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUM7U0FDdkc7UUFDRCxJQUFJLElBQUksQ0FBQyw2QkFBNkIsRUFBRTtZQUN0QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsd0NBQXdDLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDO1NBQ3ZHO1FBQ0QsSUFBSSxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLCtCQUErQixHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQztTQUM1RjtRQUNELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0scUJBQXFCLENBQUMsVUFBc0I7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztRQUNuQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1NBQ3hJO2FBQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNyRSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztTQUMxSTthQUFNLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDckUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7U0FDMUk7YUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1NBQ3hJO2FBQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3JGLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7U0FDbEo7YUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1NBQ3hJO2FBQU0sSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMvRSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztTQUMvSTthQUFNLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7U0FDeEk7SUFDSCxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ2pDO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMzRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7YUFDakM7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsTUFBTSxVQUFVLEdBQWUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9GLElBQUksVUFBVSxFQUFFO1lBQ2QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2xHO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsQ0FBQztRQUN6RixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxDQUFDO1FBQzdGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxLQUFLLENBQUMsS0FBSyxTQUFTLENBQUM7UUFDN0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsQ0FBQztRQUN6RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxhQUFhLENBQUMsS0FBSyxTQUFTLENBQUM7UUFDN0csSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsQ0FBQztRQUN6RixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUyxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLENBQUM7SUFFM0YsQ0FBQzs7O1lBeFJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLFVBQVUsRUFBRTtvQkFDVixPQUFPLENBQUMsWUFBWSxFQUFFO3dCQUNwQixLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDO3dCQUM3RSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQzt3QkFDbkUsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7cUJBQ3RDLENBQUM7aUJBQ0g7YUFDRjs7O1lBM0dPLGdCQUFnQjtZQWJ0QixpQkFBaUI7WUFnQlgsYUFBYTtZQUliLGlCQUFpQjs7OzhCQXlHdEIsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzt1QkFHL0MsU0FBUyxTQUFDLFVBQVUsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7eUJBR3hDLFNBQVMsU0FBQyxZQUFZLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO3lCQUcxQyxTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzt1QkFHMUMsU0FBUyxTQUFDLFVBQVUsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7aUNBR3hDLFNBQVMsU0FBQyxvQkFBb0IsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7dUJBR2xELFNBQVMsU0FBQyxVQUFVLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDOzhCQUd4QyxTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO3VCQUcvQyxTQUFTLFNBQUMsVUFBVSxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzswQkFHeEMsS0FBSzs0Q0FHTCxLQUFLOzRDQUdMLEtBQUs7MENBR0wsS0FBSzsyQkFHTCxLQUFLOzJCQUdMLEtBQUs7MEJBTUwsS0FBSzs2QkFHTCxLQUFLO2dDQUdMLEtBQUs7NkJBR0wsS0FBSzsrQkFHTCxLQUFLO3NCQUdMLEtBQUs7a0RBR0wsTUFBTTtrREFHTixNQUFNO2dEQUdOLE1BQU07b0NBR04sTUFBTTt5QkFHTixNQUFNO3NCQUdOLE1BQU07d0JBR04sV0FBVyxTQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1NoYXJlZFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2Uvc2hhcmVkLnNlcnZpY2UnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1lbWFpbC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLXByaW50LmJvJztcclxuaW1wb3J0IHtSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtcGRmLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7U2VuZE1ldGhvZFNlcnZpY2V9IGZyb20gJy4vc2VydmljZS9zZW5kLW1ldGhvZC5zZXJ2aWNlJztcclxuaW1wb3J0IHtTZW5kTWV0aG9kfSBmcm9tICcuLi8uLi9tb2RlbC9zZW5kLW1ldGhvZCc7XHJcbmltcG9ydCB7U2VuZE1ldGhvZFR5cGV9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vc2VuZC1tZXRob2QtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtQcmludGVyfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9wcmludGVyLmJvJztcclxuaW1wb3J0IHtcclxuICBSZXBvcnRpbmdEb2N1bWVudEVtYWlsU2lnbkRvY0Jhc2VSZXF1ZXN0XHJcbn0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0aW5nLWRvY3VtZW50LWVtYWlsLXNpZ24tZG9jLWJhc2UtcmVxdWVzdCc7XHJcbmltcG9ydCB7XHJcbiAgUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdFxyXG59IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnRpbmctZG9jdW1lbnQtcHJpbnQtc2lnbi1kb2MtYmFzZS1yZXF1ZXN0XCI7XHJcblxyXG5leHBvcnQgY29uc3Qgc2VuZE1ldGhvZHNXaXRoSWNvbjogU2VuZE1ldGhvZFtdID0gW1xyXG4gIG5ldyBTZW5kTWV0aG9kKFNlbmRNZXRob2RUeXBlLkZheCwgXCJGYXhcIiwgSWNvbi5QcmludFJlZ3VsYXIpLFxyXG4gIG5ldyBTZW5kTWV0aG9kKFNlbmRNZXRob2RUeXBlLlByaW50LCBcIlByaW50XCIsIEljb24uUHJpbnRTb2xpZCksXHJcbiAgbmV3IFNlbmRNZXRob2QoU2VuZE1ldGhvZFR5cGUuRW1haWwsIFwiRW1haWxcIiwgSWNvbi5BdFNvbGlkKSxcclxuICBuZXcgU2VuZE1ldGhvZChTZW5kTWV0aG9kVHlwZS5FZGksIFwiRWRpXCIsIEljb24uRmlsZUV4cG9ydFNvbGlkKSxcclxuICBuZXcgU2VuZE1ldGhvZChTZW5kTWV0aG9kVHlwZS5FbWFpbFRlbXBsYXRlLCBcIkVtYWlsIHRlbXBsYXRlXCIsIEljb24uRW52ZWxvcGVSZWd1bGFyKSxcclxuICBuZXcgU2VuZE1ldGhvZChTZW5kTWV0aG9kVHlwZS5TbXMsIFwiU21zXCIsIEljb24uTWVzc2FnZVNtc1NvbGlkKSxcclxuICBuZXcgU2VuZE1ldGhvZChTZW5kTWV0aG9kVHlwZS5XZWJTZXJ2aWNlLCBcIldlYnNlcnZpY2VcIiwgSWNvbi5QcmludFJlZ3VsYXIpLFxyXG4gIG5ldyBTZW5kTWV0aG9kKFNlbmRNZXRob2RUeXBlLlBkZiwgXCJQZGZcIiwgSWNvbi5QZGYpXHJcbl1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tc2VuZC1tZXRob2QtZGlhbG9nJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWRpYWxvZyBpZD1cInNlbmRPcHRpb25zRGlhbG9nXCIgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VDbGljay5lbWl0KCRldmVudClcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkVudmVsb3BlUmVndWxhcilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCJoZWFkZXJUaXRsZVwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctbmF2aWdhdGlvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VuZC1idXR0b24td3JhcHBlclwiICpuZ0Zvcj1cImxldCBzZW5kTWV0aG9kIG9mIHNlbmRNZXRob2RzOyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJhY3RpdmVTZW5kTWV0aG9kID8gc2VuZE1ldGhvZC5jb2RlID09PSBhY3RpdmVTZW5kTWV0aG9kLmNvZGUgOiBpbmRleCA9PT0gMFwiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTZW5kTWV0aG9kQ2xpY2soc2VuZE1ldGhvZClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1idXR0b24tdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwic2VuZE1ldGhvZC5kZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZW5kLW1ldGhvZHMtd3JhcHBlclwiPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICNuYXZpZ2F0aW9uSXRlbXMgY2xhc3M9XCJzZW5kLW1ldGhvZC1uYXZpZ2F0aW9uLXdyYXBwZXJcIiBbY2xhc3Muc21vb3RoLXNjcm9sbGluZ109XCIhc3RhcnRVcFwiPlxyXG4gICAgICAgICAgPGRpdiAjZmF4SXRlbXMgY2xhc3M9XCJzZW5kLW1ldGhvZC1uYXZpZ2F0aW9uLWNvbnRlbnQgY28tc21hbGwtc2Nyb2xsYmFyXCI+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICNwcmludEl0ZW1zIGNsYXNzPVwic2VuZC1tZXRob2QtbmF2aWdhdGlvbi1jb250ZW50IGNvLXNtYWxsLXNjcm9sbGJhclwiICpuZ0lmPVwic2hvd1ByaW50XCI+XHJcbiAgICAgICAgICAgIDxjby1zZW5kLW1ldGhvZC1wcmludGVyXHJcbiAgICAgICAgICAgICAgW3ByaW50ZXJMaXN0XT1cInByaW50ZXJMaXN0XCJcclxuICAgICAgICAgICAgICBbbGF5b3V0c109XCJwcmludExheW91dHNcIlxyXG4gICAgICAgICAgICA+PC9jby1zZW5kLW1ldGhvZC1wcmludGVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICNlbWFpbEl0ZW1zIGNsYXNzPVwic2VuZC1tZXRob2QtbmF2aWdhdGlvbi1jb250ZW50IGNvLXNtYWxsLXNjcm9sbGJhclwiICpuZ0lmPVwic2hvd0VtYWlsXCI+XHJcbiAgICAgICAgICAgIDxjby1zZW5kLW1ldGhvZC1lbWFpbFxyXG4gICAgICAgICAgICAgIFtlbWFpbEFkZHJlc3Nlc109XCJlbWFpbEFkZHJlc3Nlc1wiXHJcbiAgICAgICAgICAgICAgW2xheW91dHNdPVwiZW1haWxMYXlvdXRzXCJcclxuICAgICAgICAgICAgPjwvY28tc2VuZC1tZXRob2QtZW1haWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgI2VkaUl0ZW1zIGNsYXNzPVwic2VuZC1tZXRob2QtbmF2aWdhdGlvbi1jb250ZW50IGNvLXNtYWxsLXNjcm9sbGJhclwiICpuZ0lmPVwic2hvd0VkaVwiPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAjZW1haWxUZW1wbGF0ZUl0ZW1zIGNsYXNzPVwic2VuZC1tZXRob2QtbmF2aWdhdGlvbi1jb250ZW50IGNvLXNtYWxsLXNjcm9sbGJhclwiICpuZ0lmPVwic2hvd0VtYWlsVGVtcGxhdGVcIj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgI3Ntc0l0ZW1zIGNsYXNzPVwic2VuZC1tZXRob2QtbmF2aWdhdGlvbi1jb250ZW50IGNvLXNtYWxsLXNjcm9sbGJhclwiICpuZ0lmPVwic2hvd1Ntc1wiPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAjd2ViU2VydmljZUl0ZW1zIGNsYXNzPVwic2VuZC1tZXRob2QtbmF2aWdhdGlvbi1jb250ZW50IGNvLXNtYWxsLXNjcm9sbGJhclwiICpuZ0lmPVwic2hvd1dlYnNlcnZpY2VcIj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgI3BkZkl0ZW1zIGNsYXNzPVwic2VuZC1tZXRob2QtbmF2aWdhdGlvbi1jb250ZW50IGNvLXNtYWxsLXNjcm9sbGJhclwiICpuZ0lmPVwic2hvd1BkZlwiPlxyXG4gICAgICAgICAgICAgIDxjby1zZW5kLW1ldGhvZC1wZGZcclxuICAgICAgICAgICAgICAgICAgICAgIFtsYXlvdXRzXT1cInByaW50TGF5b3V0c1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tc2VuZC1tZXRob2QtcGRmPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctZm9vdGVyLWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrRHVvdG9uZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib2tDbGljay5lbWl0KGFjdGl2ZVNlbmRNZXRob2QgPyBhY3RpdmVTZW5kTWV0aG9kLmNvZGUgOiAnMCcpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VDbGljay5lbWl0KCRldmVudClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdzbGlkZUluT3V0JywgW1xyXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHt0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDAlKScsIHdpZHRoOiAnMTAwJScsIG9wYWNpdHk6ICcxJ30pKSxcclxuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7dHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxNTAlKScsIG9wYWNpdHk6ICcwJ30pKSxcclxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgYW5pbWF0ZSgyNTApKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgU2VuZE1ldGhvZERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbmF2aWdhdGlvbkl0ZW1zJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gIHB1YmxpYyBuYXZpZ2F0aW9uSXRlbXM6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZheEl0ZW1zJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gIHB1YmxpYyBmYXhJdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgncHJpbnRJdGVtcycsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICBwdWJsaWMgcHJpbnRJdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZW1haWxJdGVtcycsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICBwdWJsaWMgZW1haWxJdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZWRpSXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgcHVibGljIGVkaUl0ZW1zOiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKCdlbWFpbFRlbXBsYXRlSXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgcHVibGljIGVtYWlsVGVtcGxhdGVJdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc21zSXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgcHVibGljIHNtc0l0ZW1zOiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKCd3ZWJTZXJ2aWNlSXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgcHVibGljIHdlYlNlcnZpY2VJdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgncGRmSXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgcHVibGljIHBkZkl0ZW1zOiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwcmludGVyTGlzdDogUHJpbnRlcltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlcG9ydGluZ0RvY3VtZW50UHJpbnRSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZXBvcnRpbmdEb2N1bWVudEVtYWlsUmVxdWVzdDogUmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVwb3J0aW5nRG9jdW1lbnRQZGZSZXF1ZXN0OiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBlbWFpbExheW91dHM6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHJpbnRMYXlvdXRzOiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludFtdID0gW107XHJcblxyXG4gIC8vIEBJbnB1dCgpXHJcbiAgLy8gcHVibGljIHByaWNlTGlzdENvZGVEYXRhOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGhlYWRlclRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVtYWlsQWRkcmVzc2VzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkZWZhdWx0U2VuZE1ldGhvZDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB2aXNpYmxlTWV0aG9kczogU2VuZE1ldGhvZFR5cGVbXSB8IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzRG9jU2lnbkVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZG9jU2lnbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVwb3J0aW5nRG9jdW1lbnRQcmludFJlcXVlc3RDaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlcG9ydGluZ0RvY3VtZW50RW1haWxSZXF1ZXN0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3Q+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZXBvcnRpbmdEb2N1bWVudFBkZlJlcXVlc3RDaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVwb3J0aW5nRG9jdW1lbnRQZGZCYXNlUmVxdWVzdD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHN0YXJ0U2lnbmF0dXJlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9rQ2xpY2s6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tc2VuZC1tZXRob2QtZGlhbG9nJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VuZE1ldGhvZHMgPSBzZW5kTWV0aG9kc1dpdGhJY29uO1xyXG4gIHB1YmxpYyBhY3RpdmVTZW5kTWV0aG9kOiBTZW5kTWV0aG9kO1xyXG4gIHB1YmxpYyB1cEFuZExvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzdGFydFVwOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHVibGljIHNob3dGYXg6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBzaG93UHJpbnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBzaG93RW1haWw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBzaG93RWRpOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgc2hvd1NtczogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHNob3dFbWFpbFRlbXBsYXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgc2hvd1dlYnNlcnZpY2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBzaG93UGRmOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3NoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZW5kTWV0aG9kU2VydmljZTogU2VuZE1ldGhvZFNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5fc2VuZE1ldGhvZFNlcnZpY2UucmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdENoYW5nZWQuc3Vic2NyaWJlKCh2YWx1ZTogUmVwb3J0aW5nRG9jdW1lbnRQcmludFNpZ25Eb2NCYXNlUmVxdWVzdCkgPT4gdGhpcy5yZXBvcnRpbmdEb2N1bWVudFByaW50UmVxdWVzdENoYW5nZS5uZXh0KHZhbHVlKSksXHJcbiAgICAgIHRoaXMuX3NlbmRNZXRob2RTZXJ2aWNlLnJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3RDaGFuZ2VkLnN1YnNjcmliZSgodmFsdWU6IFJlcG9ydGluZ0RvY3VtZW50RW1haWxTaWduRG9jQmFzZVJlcXVlc3QpID0+IHRoaXMucmVwb3J0aW5nRG9jdW1lbnRFbWFpbFJlcXVlc3RDaGFuZ2UubmV4dCh2YWx1ZSkpLFxyXG4gICAgICB0aGlzLl9zZW5kTWV0aG9kU2VydmljZS5yZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0Q2hhbmdlZC5zdWJzY3JpYmUoKHZhbHVlOiBSZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0KSA9PiB0aGlzLnJlcG9ydGluZ0RvY3VtZW50UGRmUmVxdWVzdENoYW5nZS5uZXh0KHZhbHVlKSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMucmVwb3J0aW5nRG9jdW1lbnRFbWFpbFJlcXVlc3QpIHtcclxuICAgICAgdGhpcy5fc2VuZE1ldGhvZFNlcnZpY2UucmVwb3J0aW5nRG9jdW1lbnRFbWFpbFNpZ25Eb2NCYXNlUmVxdWVzdCA9IHRoaXMucmVwb3J0aW5nRG9jdW1lbnRFbWFpbFJlcXVlc3Q7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5yZXBvcnRpbmdEb2N1bWVudFByaW50UmVxdWVzdCkge1xyXG4gICAgICB0aGlzLl9zZW5kTWV0aG9kU2VydmljZS5yZXBvcnRpbmdEb2N1bWVudFByaW50U2lnbkRvY0Jhc2VSZXF1ZXN0ID0gdGhpcy5yZXBvcnRpbmdEb2N1bWVudFByaW50UmVxdWVzdDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJlcG9ydGluZ0RvY3VtZW50UGRmUmVxdWVzdCkge1xyXG4gICAgICB0aGlzLl9zZW5kTWV0aG9kU2VydmljZS5yZXBvcnRpbmdEb2N1bWVudFBkZkJhc2VSZXF1ZXN0ID0gdGhpcy5yZXBvcnRpbmdEb2N1bWVudFBkZlJlcXVlc3Q7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pbml0RGVmYXVsdFNlbmRNZXRob2QoKTtcclxuICAgIHRoaXMuX3ByZXBhcmVWaXNpYmxlTWV0aG9kcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaWduYXR1cmVTdGFydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZG9jU2lnbiA9ICF0aGlzLmRvY1NpZ247XHJcbiAgICB0aGlzLnN0YXJ0U2lnbmF0dXJlQ2xpY2tlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VuZE1ldGhvZENsaWNrKHNlbmRNZXRob2Q6IFNlbmRNZXRob2QpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlU2VuZE1ldGhvZCA9IHNlbmRNZXRob2Q7XHJcbiAgICBpZiAoc2VuZE1ldGhvZC5jb2RlID09PSBTZW5kTWV0aG9kVHlwZS5GYXggJiYgdGhpcy5zaG93RmF4KSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMuZmF4SXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0IC0gdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgfSBlbHNlIGlmIChzZW5kTWV0aG9kLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLlByaW50ICYmIHRoaXMuc2hvd1ByaW50KSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMucHJpbnRJdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICB9IGVsc2UgaWYgKHNlbmRNZXRob2QuY29kZSA9PT0gU2VuZE1ldGhvZFR5cGUuRW1haWwgJiYgdGhpcy5zaG93RW1haWwpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5lbWFpbEl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCAtIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdDtcclxuICAgIH0gZWxzZSBpZiAoc2VuZE1ldGhvZC5jb2RlID09PSBTZW5kTWV0aG9kVHlwZS5FZGkgJiYgdGhpcy5zaG93RWRpKSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMuZWRpSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0IC0gdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgfSBlbHNlIGlmIChzZW5kTWV0aG9kLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLkVtYWlsVGVtcGxhdGUgJiYgdGhpcy5zaG93RW1haWxUZW1wbGF0ZSkge1xyXG4gICAgICB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLmVtYWlsVGVtcGxhdGVJdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICB9IGVsc2UgaWYgKHNlbmRNZXRob2QuY29kZSA9PT0gU2VuZE1ldGhvZFR5cGUuU21zICYmIHRoaXMuc2hvd1Ntcykge1xyXG4gICAgICB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLnNtc0l0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCAtIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdDtcclxuICAgIH0gZWxzZSBpZiAoc2VuZE1ldGhvZC5jb2RlID09PSBTZW5kTWV0aG9kVHlwZS5XZWJTZXJ2aWNlICYmIHRoaXMuc2hvd1dlYnNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy53ZWJTZXJ2aWNlSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0IC0gdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgfSBlbHNlIGlmIChzZW5kTWV0aG9kLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLlBkZiAmJiB0aGlzLnNob3dQZGYpIHtcclxuICAgICAgdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5wZGZJdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0RGVmYXVsdFNlbmRNZXRob2QoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kZWZhdWx0U2VuZE1ldGhvZCkge1xyXG4gICAgICB0aGlzLl9zZWxlY3REZWZhdWx0U2VuZE1ldGhvZCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMudmlzaWJsZU1ldGhvZHMgJiYgdGhpcy52aXNpYmxlTWV0aG9kcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICB0aGlzLmRlZmF1bHRTZW5kTWV0aG9kID0gdGhpcy52aXNpYmxlTWV0aG9kc1swXTtcclxuICAgICAgICB0aGlzLl9zZWxlY3REZWZhdWx0U2VuZE1ldGhvZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc3RhcnRVcCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2VsZWN0RGVmYXVsdFNlbmRNZXRob2QoKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZW5kTWV0aG9kOiBTZW5kTWV0aG9kID0gdGhpcy5zZW5kTWV0aG9kcy5maW5kKHNtID0+IHNtLmNvZGUgPT09IHRoaXMuZGVmYXVsdFNlbmRNZXRob2QpO1xyXG4gICAgaWYgKHNlbmRNZXRob2QpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVTZW5kTWV0aG9kQ2xpY2soc2VuZE1ldGhvZCk7XHJcbiAgICAgICAgdGhpcy5zdGFydFVwID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZVZpc2libGVNZXRob2RzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudmlzaWJsZU1ldGhvZHMgJiYgdGhpcy52aXNpYmxlTWV0aG9kcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2VuZE1ldGhvZHMgPSB0aGlzLnNlbmRNZXRob2RzLmZpbHRlcihzbSA9PiB0aGlzLnZpc2libGVNZXRob2RzLmZpbmQodm0gPT4gdm0gPT09IHNtLmNvZGUpKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0ZheCA9IHRoaXMuc2VuZE1ldGhvZHMuZmluZChzbSA9PiBzbS5jb2RlID09PSBTZW5kTWV0aG9kVHlwZS5GYXgpICE9PSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNob3dQcmludCA9IHRoaXMuc2VuZE1ldGhvZHMuZmluZChzbSA9PiBzbS5jb2RlID09PSBTZW5kTWV0aG9kVHlwZS5QcmludCkgIT09IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd0VtYWlsID0gdGhpcy5zZW5kTWV0aG9kcy5maW5kKHNtID0+IHNtLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLkVtYWlsKSAhPT0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93RWRpID0gdGhpcy5zZW5kTWV0aG9kcy5maW5kKHNtID0+IHNtLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLkVkaSkgIT09IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd0VtYWlsVGVtcGxhdGUgPSB0aGlzLnNlbmRNZXRob2RzLmZpbmQoc20gPT4gc20uY29kZSA9PT0gU2VuZE1ldGhvZFR5cGUuRW1haWxUZW1wbGF0ZSkgIT09IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd1NtcyA9IHRoaXMuc2VuZE1ldGhvZHMuZmluZChzbSA9PiBzbS5jb2RlID09PSBTZW5kTWV0aG9kVHlwZS5TbXMpICE9PSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNob3dXZWJzZXJ2aWNlID0gdGhpcy5zZW5kTWV0aG9kcy5maW5kKHNtID0+IHNtLmNvZGUgPT09IFNlbmRNZXRob2RUeXBlLldlYlNlcnZpY2UpICE9PSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNob3dQZGYgPSB0aGlzLnNlbmRNZXRob2RzLmZpbmQoc20gPT4gc20uY29kZSA9PT0gU2VuZE1ldGhvZFR5cGUuUGRmKSAhPT0gdW5kZWZpbmVkO1xyXG5cclxuICB9XHJcbn1cclxuIl19