@sabstravtech/obtservices 0.0.19020100 → 0.0.22041208
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular/components/with-component.d.ts +2 -1
- package/angular/fetchers.d.ts +17 -12
- package/angular/lib/vendor/classes/helpers.d.ts +8 -0
- package/angular/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/apply-jit-flight-rules.d.ts +7 -0
- package/angular/lib/vendor/fetchers/basket-fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/conferma-office.fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/flight-fare-rules.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/flight-quote.fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/get-conferma-room-images.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-covid-microsite-token.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-flight-seat-map-fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-rail-live-departures.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/get-user-favourite-searches.fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/irl-discount-card-fetcher.d.ts +7 -0
- package/angular/lib/vendor/fetchers/search-airlines-fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/search-airports-fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/search-conferma-cities.fetcher.d.ts +2 -1
- package/angular/lib/vendor/fetchers/user-fetcher.d.ts +2 -1
- package/angular/lib/vendor/services/my-bookings.service.d.ts +4 -3
- package/angular/lib/vendor/services/search.service.d.ts +15 -3
- package/angular/lib/vendor/services/user.service.d.ts +4 -3
- package/angular/lib/vendor/types/graphql.angular.types.d.ts +1062 -1062
- package/angular/lib/vendor/updaters/cancel-booking-updater.d.ts +6 -0
- package/angular/lib/vendor/updaters/confirm-messages-updater.d.ts +6 -0
- package/angular/lib/vendor/updaters/remove-favourite-search.updater.d.ts +6 -0
- package/angular/lib/vendor/updaters/save-favourite-search.updater.d.ts +6 -0
- package/angular/sabstravtech-obtservices-angular.d.ts +14 -9
- package/angular/sabstravtech-obtservices-angular.metadata.json +1 -1
- package/angular/updaters.d.ts +3 -0
- package/base/classes.d.ts +1 -0
- package/base/fetchers.d.ts +27 -3
- package/base/interfaces.d.ts +3 -3
- package/base/lib/vendor/classes/base-enterprise.d.ts +5 -2
- package/base/lib/vendor/classes/bookable-basket.d.ts +1 -1
- package/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +8 -7
- package/base/lib/vendor/classes/carhire-enterprise-search.d.ts +11 -2
- package/base/lib/vendor/classes/enviroment.d.ts +2 -0
- package/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +26 -69
- package/base/lib/vendor/classes/flight-enterprise-search.d.ts +39 -22
- package/base/lib/vendor/classes/helpers.d.ts +49 -6
- package/base/lib/vendor/classes/hotel-enterprise-search.d.ts +19 -8
- package/base/lib/vendor/classes/irl-direction.enum.d.ts +4 -0
- package/base/lib/vendor/classes/irl-enterprise-search.d.ts +285 -30
- package/base/lib/vendor/classes/lounges-enterprise-search.d.ts +7 -3
- package/base/lib/vendor/classes/management-info-and-valid.d.ts +1 -0
- package/base/lib/vendor/classes/modal-types.enum.d.ts +4 -0
- package/base/lib/vendor/classes/parking-enterprise-search.d.ts +7 -3
- package/base/lib/vendor/classes/rail-direction.enum.d.ts +2 -2
- package/base/lib/vendor/classes/rail-enterprise-search.d.ts +83 -54
- package/base/lib/vendor/classes/rail-index-to-ticket.d.ts +9 -0
- package/base/lib/vendor/classes/supplementary-booking-info-impl.d.ts +1 -0
- package/base/lib/vendor/classes/user-favourite.enum.d.ts +3 -0
- package/base/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.d.ts +23 -0
- package/base/lib/vendor/fetchers/apply-jit-flight-rules.d.ts +21 -0
- package/base/lib/vendor/fetchers/basket-fetcher.d.ts +2 -1
- package/base/lib/vendor/fetchers/conferma-office.fetcher.d.ts +2 -1
- package/base/lib/vendor/fetchers/flight-fare-rules.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/flight-quote.fetcher.d.ts +6 -2
- package/base/lib/vendor/fetchers/get-conferma-room-images.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/get-covid-microsite-token.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/get-flight-seat-map-fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/get-rail-live-departures.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/get-user-favourite-searches.fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/irl-discount-card-fetcher.d.ts +21 -0
- package/base/lib/vendor/fetchers/list-fetchable-enterprise.d.ts +1 -1
- package/base/lib/vendor/fetchers/object-fetchable-enterprise.d.ts +3 -1
- package/base/lib/vendor/fetchers/search-airlines.fetcher.d.ts +2 -1
- package/base/lib/vendor/fetchers/search-airports-fetcher.d.ts +2 -1
- package/base/lib/vendor/fetchers/search-conferma-cities.fetcher.d.ts +2 -1
- package/base/lib/vendor/fetchers/user-fetcher.d.ts +2 -1
- package/base/lib/vendor/interfaces/Icabhire-enterprise-search.d.ts +3 -2
- package/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +4 -1
- package/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +4 -3
- package/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +8 -4
- package/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +15 -4
- package/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +8 -22
- package/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +15 -10
- package/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +4 -2
- package/base/lib/vendor/interfaces/Imybookings.service.d.ts +2 -1
- package/base/lib/vendor/interfaces/Iparking-enterprise-search.d.ts +3 -2
- package/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +31 -31
- package/base/lib/vendor/interfaces/Isearch.service.d.ts +12 -3
- package/base/lib/vendor/interfaces/Iuser.service.d.ts +3 -1
- package/base/lib/vendor/interfaces/cab-hire-search-arg.interface.d.ts +10 -0
- package/base/lib/vendor/interfaces/car-hire-search-arg.interface.d.ts +42 -0
- package/base/lib/vendor/interfaces/enable-fresh-chat-interface.d.ts +7 -0
- package/base/lib/vendor/interfaces/eurostar-search-arg.interface.d.ts +6 -0
- package/base/lib/vendor/interfaces/flight-filters.interface.d.ts +1 -0
- package/base/lib/vendor/interfaces/flight-search-args.interface.d.ts +8 -0
- package/base/lib/vendor/interfaces/hotel-recent-search-args.interface.d.ts +4 -0
- package/base/lib/vendor/interfaces/irl-search-arg.interface.d.ts +5 -0
- package/base/lib/vendor/interfaces/rail-basket-item.interface.d.ts +11 -5
- package/base/lib/vendor/interfaces/rail-recent-search-args.interface.d.ts +16 -11
- package/base/lib/vendor/interfaces/rail-selected-ticket.interface.d.ts +4 -9
- package/base/lib/vendor/interfaces/summary-interface.d.ts +23 -0
- package/base/lib/vendor/interfaces/terms-and-conditions.interface.d.ts +4 -0
- package/base/lib/vendor/interfaces/user.data.d.ts +1 -0
- package/base/lib/vendor/services/enterprise-basket.service.d.ts +5 -3
- package/base/lib/vendor/services/hotel-avallibility.service.d.ts +5 -3
- package/base/lib/vendor/services/my-bookings.service.d.ts +6 -3
- package/base/lib/vendor/services/search.service.d.ts +46 -10
- package/base/lib/vendor/services/user.service.d.ts +9 -4
- package/base/lib/vendor/types/graphql.types.d.ts +982 -1051
- package/base/lib/vendor/types/types.d.ts +187 -14
- package/base/lib/vendor/updaters/cancel-booking-updater.d.ts +20 -0
- package/base/lib/vendor/updaters/confirm-messages-updater.d.ts +19 -0
- package/base/lib/vendor/updaters/remove-favourite-search-updater.d.ts +19 -0
- package/base/lib/vendor/updaters/save-favourite-search-updater.d.ts +20 -0
- package/base/sabstravtech-obtservices-base.metadata.json +1 -1
- package/base/updaters.d.ts +4 -0
- package/bundles/sabstravtech-obtservices-angular.umd.js +763 -158
- package/bundles/sabstravtech-obtservices-angular.umd.js.map +1 -1
- package/bundles/sabstravtech-obtservices-angular.umd.min.js +1 -1
- package/bundles/sabstravtech-obtservices-angular.umd.min.js.map +1 -1
- package/bundles/sabstravtech-obtservices-base.umd.js +8805 -7342
- package/bundles/sabstravtech-obtservices-base.umd.js.map +1 -1
- package/bundles/sabstravtech-obtservices-base.umd.min.js +2 -2
- package/bundles/sabstravtech-obtservices-base.umd.min.js.map +1 -1
- package/esm2015/angular/components/basket-panel.js +9 -5
- package/esm2015/angular/components/with-component.js +7 -4
- package/esm2015/angular/fetchers.js +18 -13
- package/esm2015/angular/lib/vendor/classes/helpers.js +21 -4
- package/esm2015/angular/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/apply-jit-flight-rules.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/basket-fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/conferma-office.fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/flight-fare-rules.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/flight-quote.fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/get-conferma-room-images.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-covid-microsite-token.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-flight-seat-map-fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-rail-live-departures.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/get-user-favourite-searches.fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/irl-discount-card-fetcher.js +25 -0
- package/esm2015/angular/lib/vendor/fetchers/search-airlines-fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/search-airports-fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/search-conferma-cities.fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/fetchers/user-fetcher.js +8 -5
- package/esm2015/angular/lib/vendor/services/my-bookings.service.js +8 -5
- package/esm2015/angular/lib/vendor/services/search.service.js +69 -33
- package/esm2015/angular/lib/vendor/services/user.service.js +9 -6
- package/esm2015/angular/lib/vendor/types/graphql.angular.types.js +1467 -2520
- package/esm2015/angular/lib/vendor/updaters/cancel-booking-updater.js +22 -0
- package/esm2015/angular/lib/vendor/updaters/confirm-messages-updater.js +22 -0
- package/esm2015/angular/lib/vendor/updaters/remove-favourite-search.updater.js +22 -0
- package/esm2015/angular/lib/vendor/updaters/save-favourite-search.updater.js +22 -0
- package/esm2015/angular/obtservices.module.js +17 -1
- package/esm2015/angular/sabstravtech-obtservices-angular.js +15 -10
- package/esm2015/angular/updaters.js +4 -1
- package/esm2015/base/classes.js +2 -1
- package/esm2015/base/fetchers.js +28 -4
- package/esm2015/base/interfaces.js +4 -4
- package/esm2015/base/lib/vendor/classes/base-enterprise.js +14 -14
- package/esm2015/base/lib/vendor/classes/bookable-basket.js +11 -6
- package/esm2015/base/lib/vendor/classes/cabhire-enterprise-search.js +76 -103
- package/esm2015/base/lib/vendor/classes/carhire-enterprise-search.js +121 -18
- package/esm2015/base/lib/vendor/classes/enviroment.js +3 -1
- package/esm2015/base/lib/vendor/classes/eurostar-enterprise-search.js +540 -677
- package/esm2015/base/lib/vendor/classes/flight-enterprise-search.js +676 -298
- package/esm2015/base/lib/vendor/classes/helpers.js +260 -70
- package/esm2015/base/lib/vendor/classes/hotel-enterprise-search.js +289 -123
- package/esm2015/base/lib/vendor/classes/irl-direction.enum.js +6 -0
- package/esm2015/base/lib/vendor/classes/irl-enterprise-search.js +412 -694
- package/esm2015/base/lib/vendor/classes/lounges-enterprise-search.js +98 -5
- package/esm2015/base/lib/vendor/classes/management-info-and-valid.js +49 -30
- package/esm2015/base/lib/vendor/classes/modal-types.enum.js +5 -1
- package/esm2015/base/lib/vendor/classes/parking-enterprise-search.js +61 -5
- package/esm2015/base/lib/vendor/classes/rail-direction.enum.js +3 -3
- package/esm2015/base/lib/vendor/classes/rail-enterprise-search.js +1024 -682
- package/esm2015/base/lib/vendor/classes/rail-index-to-ticket.js +48 -0
- package/esm2015/base/lib/vendor/classes/supplementary-booking-info-impl.js +16 -4
- package/esm2015/base/lib/vendor/classes/user-favourite.enum.js +4 -1
- package/esm2015/base/lib/vendor/fetchers/apply-JIT-hotel-rules.fetcher.js +22 -0
- package/esm2015/base/lib/vendor/fetchers/apply-jit-flight-rules.js +10 -0
- package/esm2015/base/lib/vendor/fetchers/basket-fetcher.js +3 -3
- package/esm2015/base/lib/vendor/fetchers/conferma-office.fetcher.js +3 -3
- package/esm2015/base/lib/vendor/fetchers/flight-fare-rules.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/flight-quote.fetcher.js +12 -4
- package/esm2015/base/lib/vendor/fetchers/get-conferma-room-images.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-covid-microsite-token.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-flight-seat-map-fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-rail-live-departures.fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/get-user-favourite-searches.fetcher.js +10 -0
- package/esm2015/base/lib/vendor/fetchers/irl-discount-card-fetcher.js +11 -0
- package/esm2015/base/lib/vendor/fetchers/list-fetchable-enterprise.js +5 -3
- package/esm2015/base/lib/vendor/fetchers/object-fetchable-enterprise.js +4 -3
- package/esm2015/base/lib/vendor/fetchers/search-airlines.fetcher.js +3 -3
- package/esm2015/base/lib/vendor/fetchers/search-airports-fetcher.js +3 -3
- package/esm2015/base/lib/vendor/fetchers/search-conferma-cities.fetcher.js +3 -3
- package/esm2015/base/lib/vendor/fetchers/user-fetcher.js +3 -3
- package/esm2015/base/lib/vendor/interfaces/Icabhire-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Icarhire-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ienterprise-basket.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ieurostar-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iflight-enterprise-search.js +7 -1
- package/esm2015/base/lib/vendor/interfaces/Ihotel-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iirl-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Ilounges-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Imybookings.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iparking-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Irail-enterprise-search.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Isearch.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/Iuser.service.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/cab-hire-search-arg.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/car-hire-search-arg.interface.js +3 -0
- package/esm2015/base/lib/vendor/interfaces/enable-fresh-chat-interface.js +3 -0
- package/esm2015/base/lib/vendor/interfaces/eurostar-search-arg.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/flight-filters.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/flight-search-args.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/hotel-recent-search-args.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/irl-search-arg.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/rail-basket-item.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/rail-recent-search-args.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/rail-selected-ticket.interface.js +1 -1
- package/esm2015/base/lib/vendor/interfaces/summary-interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/terms-and-conditions.interface.js +2 -0
- package/esm2015/base/lib/vendor/interfaces/user.data.js +1 -1
- package/esm2015/base/lib/vendor/services/enterprise-basket.service.js +107 -57
- package/esm2015/base/lib/vendor/services/hotel-avallibility.service.js +43 -5
- package/esm2015/base/lib/vendor/services/my-bookings.service.js +6 -2
- package/esm2015/base/lib/vendor/services/search.service.js +110 -46
- package/esm2015/base/lib/vendor/services/user.service.js +13 -2
- package/esm2015/base/lib/vendor/types/graphql.types.js +35 -28
- package/esm2015/base/lib/vendor/types/types.js +35 -2
- package/esm2015/base/lib/vendor/updaters/cancel-booking-updater.js +11 -0
- package/esm2015/base/lib/vendor/updaters/confirm-messages-updater.js +11 -0
- package/esm2015/base/lib/vendor/updaters/remove-favourite-search-updater.js +11 -0
- package/esm2015/base/lib/vendor/updaters/save-favourite-search-updater.js +11 -0
- package/esm2015/base/updaters.js +5 -1
- package/fesm2015/sabstravtech-obtservices-angular.js +1554 -2350
- package/fesm2015/sabstravtech-obtservices-angular.js.map +1 -1
- package/fesm2015/sabstravtech-obtservices-base.js +8088 -6752
- package/fesm2015/sabstravtech-obtservices-base.js.map +1 -1
- package/package.json +1 -1
- package/base/lib/vendor/interfaces/rail-journey-leg.interface.d.ts +0 -6
- package/base/lib/vendor/interfaces/rail-ticket-group.interface.d.ts +0 -26
- package/base/lib/vendor/interfaces/rail-ticket-groups.interface.d.ts +0 -4
- package/esm2015/base/lib/vendor/interfaces/rail-journey-leg.interface.js +0 -2
- package/esm2015/base/lib/vendor/interfaces/rail-ticket-group.interface.js +0 -2
- package/esm2015/base/lib/vendor/interfaces/rail-ticket-groups.interface.js +0 -2
|
@@ -5,9 +5,8 @@ import moment from 'moment';
|
|
|
5
5
|
import { ServiceType } from '../types/graphql.types';
|
|
6
6
|
export class LoungesEnterpriseSearch extends BaseEnterpriseSearch {
|
|
7
7
|
constructor(loungefetcher, helpers, basketService, storageService, searchService) {
|
|
8
|
-
super(storageService);
|
|
8
|
+
super(storageService, helpers);
|
|
9
9
|
this.loungefetcher = loungefetcher;
|
|
10
|
-
this.helpers = helpers;
|
|
11
10
|
this.basketService = basketService;
|
|
12
11
|
this.searchService = searchService;
|
|
13
12
|
this.type = ServiceType.Lounge;
|
|
@@ -227,7 +226,9 @@ export class LoungesEnterpriseSearch extends BaseEnterpriseSearch {
|
|
|
227
226
|
startRecentSearch(recentSearch) {
|
|
228
227
|
this.arrivalDatetime = moment(recentSearch.searchArgs.arrivalDatetime);
|
|
229
228
|
this.terminal = recentSearch.searchArgs.terminal;
|
|
230
|
-
this.searchService
|
|
229
|
+
this.searchService
|
|
230
|
+
.getAirportByCode(recentSearch.searchArgs.locationCode)
|
|
231
|
+
.subscribe((airport) => {
|
|
231
232
|
var _a, _b, _c, _d, _e, _f;
|
|
232
233
|
if (airport) {
|
|
233
234
|
this.locationCode = {
|
|
@@ -238,6 +239,7 @@ export class LoungesEnterpriseSearch extends BaseEnterpriseSearch {
|
|
|
238
239
|
postcode: (_f = (_e = airport.iataMatch) === null || _e === void 0 ? void 0 : _e.locationDetails) === null || _f === void 0 ? void 0 : _f.postcode,
|
|
239
240
|
terminals: this.searchService.processTerminals(airport.iataMatch.terminals)
|
|
240
241
|
};
|
|
242
|
+
this.terminal = recentSearch.searchArgs.terminal;
|
|
241
243
|
this.searchService.startSearches();
|
|
242
244
|
}
|
|
243
245
|
});
|
|
@@ -279,12 +281,14 @@ export class LoungesEnterpriseSearch extends BaseEnterpriseSearch {
|
|
|
279
281
|
}
|
|
280
282
|
}
|
|
281
283
|
addLoungeToBasket(loungeQuote, loungeQuery) {
|
|
284
|
+
var _a;
|
|
282
285
|
return __awaiter(this, void 0, void 0, function* () {
|
|
283
286
|
if (loungeQuote.unavailable) {
|
|
284
287
|
return Promise.resolve(false);
|
|
285
288
|
}
|
|
286
289
|
const intBasket = yield this.basketService.getDefaultBasket();
|
|
287
290
|
const basket = intBasket === null || intBasket === void 0 ? void 0 : intBasket.subject.value;
|
|
291
|
+
const termsAndConditions = this.getTermsAndCond(loungeQuote);
|
|
288
292
|
if (basket) {
|
|
289
293
|
return this.basketService.addToBasket({
|
|
290
294
|
adults: loungeQuery.adults,
|
|
@@ -296,7 +300,21 @@ export class LoungesEnterpriseSearch extends BaseEnterpriseSearch {
|
|
|
296
300
|
arrivalDatetime: loungeQuery.arrivalDatetime.format(),
|
|
297
301
|
locationCode: loungeQuote.code,
|
|
298
302
|
name: loungeQuote.name,
|
|
299
|
-
airportIata: loungeQuery === null || loungeQuery === void 0 ? void 0 : loungeQuery.locationCode
|
|
303
|
+
airportIata: loungeQuery === null || loungeQuery === void 0 ? void 0 : loungeQuery.locationCode,
|
|
304
|
+
logo: loungeQuote.lounge.logo,
|
|
305
|
+
introduction: loungeQuote.lounge.introduction,
|
|
306
|
+
covidCopy: loungeQuote.lounge.misc.covidCopy,
|
|
307
|
+
cancellationInfo: loungeQuote.lounge.cancellationInfo,
|
|
308
|
+
admendmentsInfo: loungeQuote.lounge.amendmentsInfo,
|
|
309
|
+
checkInInfo: loungeQuote.lounge.checkInInfo,
|
|
310
|
+
dressCode: loungeQuote.lounge.dressCode,
|
|
311
|
+
foodAndBeverage: loungeQuote.lounge.foodAndBeverage,
|
|
312
|
+
whatsIncludedFood: loungeQuote.lounge.whatsIncludedFood,
|
|
313
|
+
whatsIncludedDrinks: loungeQuote.lounge.whatsIncludedDrinks,
|
|
314
|
+
whatsIncludedExtras: loungeQuote.lounge.whatsIncludedExtras,
|
|
315
|
+
groupInfo: loungeQuote.lounge.groupInfo,
|
|
316
|
+
terminal: (_a = loungeQuote.lounge.terminal) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
317
|
+
termsAndCond: termsAndConditions
|
|
300
318
|
},
|
|
301
319
|
price: loungeQuote.price,
|
|
302
320
|
currency: loungeQuote.currency,
|
|
@@ -307,6 +325,70 @@ export class LoungesEnterpriseSearch extends BaseEnterpriseSearch {
|
|
|
307
325
|
return Promise.resolve(false); // TODO should this throw an error?
|
|
308
326
|
});
|
|
309
327
|
}
|
|
328
|
+
getTermsAndCond(loungeQuote) {
|
|
329
|
+
return [
|
|
330
|
+
{
|
|
331
|
+
name: 'Name',
|
|
332
|
+
value: loungeQuote.lounge.name
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
name: 'Telephone',
|
|
336
|
+
value: loungeQuote.lounge.telephone
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
name: 'Important Information',
|
|
340
|
+
value: loungeQuote.lounge.misc.importantInformation
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
name: 'Introduction',
|
|
344
|
+
value: loungeQuote.lounge.introduction
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
name: 'Dress Code',
|
|
348
|
+
value: loungeQuote.lounge.dressCode
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
name: 'Business Facilities',
|
|
352
|
+
value: loungeQuote.lounge.misc.businessfacilities
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
name: 'Entertainment Facilities',
|
|
356
|
+
value: loungeQuote.lounge.misc.entertainmentFacilities
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
name: 'Disabled Facilities',
|
|
360
|
+
value: loungeQuote.lounge.misc.facilitiesdisabled
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
name: 'Facilities',
|
|
364
|
+
value: loungeQuote.lounge.facilities.toString()
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
name: 'Times',
|
|
368
|
+
value: `Opens ${loungeQuote.lounge.openTime}; Closes ${loungeQuote.lounge.closeTime}`
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
name: 'Directions',
|
|
372
|
+
value: loungeQuote.lounge.directions
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
name: 'Groups',
|
|
376
|
+
value: loungeQuote.lounge.groupInfo
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
name: 'Check-In Time',
|
|
380
|
+
value: loungeQuote.lounge.checkInInfo
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
name: 'Amend Info',
|
|
384
|
+
value: loungeQuote.lounge.amendmentsInfo
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
name: 'Cancel Info',
|
|
388
|
+
value: loungeQuote.lounge.cancellationInfo
|
|
389
|
+
}
|
|
390
|
+
];
|
|
391
|
+
}
|
|
310
392
|
updateLowestPrice(results) {
|
|
311
393
|
if (!results.length)
|
|
312
394
|
return null;
|
|
@@ -318,7 +400,18 @@ export class LoungesEnterpriseSearch extends BaseEnterpriseSearch {
|
|
|
318
400
|
return cheapestPrice;
|
|
319
401
|
}, { amount: Number.MAX_SAFE_INTEGER, currencyCode: currency });
|
|
320
402
|
}
|
|
403
|
+
saveSearch() {
|
|
404
|
+
if (this.isValid.value) {
|
|
405
|
+
const search = this.getSearchQuery();
|
|
406
|
+
const searchInfo = {
|
|
407
|
+
name: `${moment()}`,
|
|
408
|
+
serviceType: ServiceType.Lounge,
|
|
409
|
+
searchArgs: search
|
|
410
|
+
};
|
|
411
|
+
return this.searchService.saveFavouriteSearch(searchInfo);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
321
414
|
}
|
|
322
415
|
LoungesEnterpriseSearch.STORAGE_SESSION_PARAMS = 'search_lounge';
|
|
323
416
|
LoungesEnterpriseSearch.STORAGE_SESSION_RESULTS = 'results_lounge';
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG91bmdlcy1lbnRlcnByaXNlLXNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9sb3VuZ2VzLWVudGVycHJpc2Utc2VhcmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQVk1QixPQUFPLEVBT0wsV0FBVyxFQUNaLE1BQU0sd0JBQXdCLENBQUM7QUFlaEMsTUFBTSxPQUFPLHVCQUNYLFNBQVEsb0JBSVA7SUFtS0QsWUFDVSxhQUEyQyxFQUMzQyxPQUEyQixFQUMzQixhQUErQyxFQUN2RCxjQUFrQyxFQUMxQixhQUErQztRQUV2RCxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFOZCxrQkFBYSxHQUFiLGFBQWEsQ0FBOEI7UUFDM0MsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBRS9DLGtCQUFhLEdBQWIsYUFBYSxDQUFrQztRQW5LbEQsU0FBSSxHQUFnQixXQUFXLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsRUFBRSxDQUFDLENBQUM7UUErQnBELGtCQUFhLEdBQVcsSUFBSSxDQUFDO1FBb0U3QixzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFVdkMsbUJBQW1CO1FBQ1osYUFBUSxHQUFHO1lBQ2hCLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUU7WUFDckIsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7WUFDM0IsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLElBQUks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RSxXQUFXLGFBQVgsV0FBVyx1QkFBWCxXQUFXLENBQUUsWUFBWTtxQkFDdkM7b0JBQ0QsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO29CQUN4QixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7b0JBQzlCLFdBQVcsRUFBRSxXQUFXO29CQUN4QixZQUFZLEVBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUU7aUJBQ25ELEVBQ0QsU0FBUyxFQUNULElBQUksQ0FBQyxhQUFhLEVBQ2xCLElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7YUFDSDtZQUNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLG1DQUFtQztRQUNwRSxDQUFDO0tBQUE7SUFFRCxpQkFBaUIsQ0FBQyxPQUFzQjtRQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU07WUFBRSxPQUFPLElBQUksQ0FBQztRQUNqQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FDbkIsQ0FBQyxhQUE2QixFQUFFLE1BQW1CLEVBQUUsRUFBRTtZQUNyRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzNCLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxLQUFLO2dCQUFFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQy9ELE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQUMsRUFDRCxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxDQUM1RCxDQUFDO0lBQ0osQ0FBQzs7QUEvWWUsOENBQXNCLEdBQUcsZUFBZSxDQUFDO0FBQ3pDLCtDQUF1QixHQUFHLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUVudGVycHJpc2VTZWFyY2ggfSBmcm9tICcuL2Jhc2UtZW50ZXJwcmlzZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcbmltcG9ydCB7IEJhc2VTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VIZWxwZXJSb3V0aW5lcyB9IGZyb20gJy4vaGVscGVycyc7XHJcbmltcG9ydCB7IFRyYXZlbGxlciB9IGZyb20gJy4uL21vZGVscy90cmF2ZWxsZXIub2JqZWN0JztcclxuaW1wb3J0IHtcclxuICBMb3VuZ2VRdW90ZVJlc3VsdCxcclxuICBMb3VuZ2VRdW90ZVJlc3VsdEFycmF5LFxyXG4gIE5nYkRhdGVTdHJ1Y3QsXHJcbiAgT0JUQWlycG9ydERldGFpbHMsXHJcbiAgUmVjZW50U2VhcmNoLFxyXG4gIFRlcm1pbmFsc1R5cGVcclxufSBmcm9tICcuLi90eXBlcy90eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQWlycG9ydFJlc3VsdHMsXHJcbiAgQmFza2V0SXRlbSxcclxuICBMb3VuZ2VRdW90ZSxcclxuICBTYXZlUmVjZW50U2VhcmNoTXV0YXRpb25WYXJpYWJsZXMsXHJcbiAgU2VhcmNoRmxpZ2h0c1YyUXVlcnlWYXJpYWJsZXMsXHJcbiAgU2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzLFxyXG4gIFNlcnZpY2VUeXBlXHJcbn0gZnJvbSAnLi4vdHlwZXMvZ3JhcGhxbC50eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQmFzZUxvdW5nZVF1b3RlRmV0Y2hlcixcclxuICBMb3VuZ2VRdW90ZUZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvbG91bmdlLXF1b3RlLmZldGNoZXInO1xyXG5pbXBvcnQge1xyXG4gIEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlLFxyXG4gIEludGVybmFsQmFza2V0SW50ZXJmYWNlXHJcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JZW50ZXJwcmlzZS1iYXNrZXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudGVycHJpc2VTZWFyY2hTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9Jc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIExvdW5nZXNFbnRlcnByaXNlU2VhcmNoSW50ZXJmYWNlLFxyXG4gIExvdW5nZXNUZW1wUGFyYW1zXHJcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JbG91bmdlcy1lbnRlcnByaXNlLXNlYXJjaCc7XHJcbmltcG9ydCB7IElDaGVhcGVzdFByaWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jaGVhcGVzdC1wcmljZSc7XHJcbmV4cG9ydCBjbGFzcyBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaDxMUV9RIGV4dGVuZHMgTG91bmdlUXVvdGVGZXRjaGVyVHlwZT5cclxuICBleHRlbmRzIEJhc2VFbnRlcnByaXNlU2VhcmNoPFxyXG4gICAgTG91bmdlc1RlbXBQYXJhbXMsXHJcbiAgICBMb3VuZ2VRdW90ZVJlc3VsdEFycmF5LFxyXG4gICAgTG91bmdlUXVvdGVSZXN1bHRBcnJheVxyXG4gID5cclxuICBpbXBsZW1lbnRzIExvdW5nZXNFbnRlcnByaXNlU2VhcmNoSW50ZXJmYWNlXHJcbntcclxuICBzdGF0aWMgcmVhZG9ubHkgU1RPUkFHRV9TRVNTSU9OX1BBUkFNUyA9ICdzZWFyY2hfbG91bmdlJztcclxuICBzdGF0aWMgcmVhZG9ubHkgU1RPUkFHRV9TRVNTSU9OX1JFU1VMVFMgPSAncmVzdWx0c19sb3VuZ2UnO1xyXG4gIHB1YmxpYyB0eXBlOiBTZXJ2aWNlVHlwZSA9IFNlcnZpY2VUeXBlLkxvdW5nZTtcclxuICBwdWJsaWMgdGVybWluYWxzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZXJtaW5hbHNUeXBlW10+KFtdKTtcclxuXHJcbiAgcHJpdmF0ZSB0cmF2ZWxsZXJzOiBUcmF2ZWxsZXJbXTtcclxuICBwcml2YXRlIF9sb2NhdGlvbkNvZGU6IHN0cmluZztcclxuXHJcbiAgZ2V0IGFkdWx0cygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5hZHVsdHM7XHJcbiAgfVxyXG5cclxuICBzZXQgYWR1bHRzKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy5hZHVsdHMgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCBjaGlsZHJlbigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5jaGlsZHJlbjtcclxuICB9XHJcblxyXG4gIHNldCBjaGlsZHJlbih2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMuY2hpbGRyZW4gPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCBpbmZhbnRzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wUGFyYW1zLmluZmFudHM7XHJcbiAgfVxyXG5cclxuICBzZXQgaW5mYW50cyh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMuaW5mYW50cyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmxpZ2h0TnVtYmVyOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBnZXQgZmxpZ2h0TnVtYmVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxpZ2h0TnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgc2V0IGZsaWdodE51bWJlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9mbGlnaHROdW1iZXIgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBsb2NhdGlvbkNvZGUoKTogc3RyaW5nIHwgT0JUQWlycG9ydERldGFpbHMge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5sb2NhdGlvbkNvZGU7XHJcbiAgfVxyXG5cclxuICBzZXQgbG9jYXRpb25Db2RlKHZhbHVlOiBzdHJpbmcgfCBPQlRBaXJwb3J0RGV0YWlscykge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLmxvY2F0aW9uQ29kZSA9IHZhbHVlO1xyXG4gICAgY29uc3QgdGVybWluYWxzVHlwZTogVGVybWluYWxzVHlwZVtdID0gdGhpcy50ZXJtaW5hbHM/LnZhbHVlO1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy5fbG9jYXRpb25Db2RlID0gJyc7XHJcbiAgICAgIHRoaXMudGVybWluYWwgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlcm1pbmFscy5uZXh0KFtdKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRlcm1pbmFsID0gbnVsbDtcclxuICAgICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSAmJiB2YWx1ZS5nYXRld2F5KSB7XHJcbiAgICAgIHRoaXMuX2xvY2F0aW9uQ29kZSA9IHZhbHVlLmdhdGV3YXk7XHJcbiAgICAgIHRoaXMudGVybWluYWwgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlcm1pbmFscy5uZXh0KHZhbHVlLnRlcm1pbmFscyk7XHJcbiAgICAgIGlmICh0ZXJtaW5hbHNUeXBlLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtaW5hbCA9IHRlcm1pbmFsc1R5cGVbMF0ua2V5O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2xvY2F0aW9uQ29kZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudGVybWluYWwgPSBudWxsO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGVybWluYWwgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlcm1pbmFscy5uZXh0KFtdKTtcclxuICAgICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHRlcm1pbmFsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wUGFyYW1zLnRlcm1pbmFsXHJcbiAgICAgID8gdGhpcy50ZW1wUGFyYW1zLnRlcm1pbmFsLnRvU3RyaW5nKClcclxuICAgICAgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc2V0IHRlcm1pbmFsKGlucHV0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy50ZXJtaW5hbCA9IGlucHV0O1xyXG4gICAgY29uc3QgZm91bmQ6IFRlcm1pbmFsc1R5cGUgPSB0aGlzLnRlcm1pbmFscy52YWx1ZS5maW5kKFxyXG4gICAgICAodGVybWluYWw6IFRlcm1pbmFsc1R5cGUsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAodGVybWluYWwudmFsdWUgPT09IGlucHV0KSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtaW5hbCA9IGZvdW5kLmtleTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnRlcm1pbmFscy52YWx1ZSAmJiB0aGlzLnRlcm1pbmFscy52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRlcm1pbmFsID0gdGhpcy50ZXJtaW5hbHMudmFsdWVbMF0ua2V5O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtaW5hbCA9ICdBbnkgVGVybWluYWwnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZWxlY3RlZFRlcm1pbmFsOiBzdHJpbmcgPSAnJztcclxuICBzZXQgc2VsZWN0ZWRUZXJtaW5hbCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZFRlcm1pbmFsID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWRUZXJtaW5hbCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkVGVybWluYWw7XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgdmFyaWFibGVzXHJcbiAgcHVibGljIG1pbl9kYXRlID0ge1xyXG4gICAgeWVhcjogbW9tZW50KCkueWVhcigpLFxyXG4gICAgbW9udGg6IG1vbWVudCgpLm1vbnRoKCkgKyAxLCAvLyBuZ2JEYXRlIG1vbnRocyBhcmUgbm90IDAgaW5kZXhlZFxyXG4gICAgZGF5OiBtb21lbnQoKS5kYXRlKClcclxuICB9O1xyXG5cclxuICBwcml2YXRlIF9kYXRlOiBOZ2JEYXRlU3RydWN0ID0gbnVsbDtcclxuICBnZXQgZGF0ZSgpOiBOZ2JEYXRlU3RydWN0IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRlO1xyXG4gIH1cclxuXHJcbiAgc2V0IGRhdGUodmFsdWU6IE5nYkRhdGVTdHJ1Y3QpIHtcclxuICAgIHRoaXMuX2RhdGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3VwZGF0ZURhdGVUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90aW1lOiBzdHJpbmcgPSBudWxsO1xyXG4gIGdldCB0aW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGltZTtcclxuICB9XHJcblxyXG4gIHNldCB0aW1lKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RpbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3VwZGF0ZURhdGVUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXJyaXZhbERhdGV0aW1lKCk6IG1vbWVudC5Nb21lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5hcnJpdmFsRGF0ZXRpbWU7XHJcbiAgfVxyXG5cclxuICBzZXQgYXJyaXZhbERhdGV0aW1lKHZhbHVlOiBtb21lbnQuTW9tZW50KSB7XHJcbiAgICBpZiAodmFsdWUuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMudGVtcFBhcmFtcy5hcnJpdmFsRGF0ZXRpbWUgPSB2YWx1ZTtcclxuXHJcbiAgICAgIHRoaXMuX2RhdGUgPSB0aGlzLmhlbHBlcnMubW9tZW50VG9OZ0RhdGUodmFsdWUpO1xyXG4gICAgICB0aGlzLl90aW1lID0gdGhpcy5oZWxwZXJzLmZvcm1hdFRpbWVDb2xvbih2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXBQYXJhbXMuYXJyaXZhbERhdGV0aW1lID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZXN1bHRzU2Vzc2lvbk5hbWUgPVxyXG4gICAgTG91bmdlc0VudGVycHJpc2VTZWFyY2guU1RPUkFHRV9TRVNTSU9OX1JFU1VMVFM7XHJcbiAgICBwcm90ZWN0ZWQgbXVsdGlSZXN1bHRzU2Vzc2lvbk5hbWUgPSBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaC5TVE9SQUdFX1NFU1NJT05fUkVTVUxUUztcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsb3VuZ2VmZXRjaGVyOiBCYXNlTG91bmdlUXVvdGVGZXRjaGVyPExRX1E+LFxyXG4gICAgcHJpdmF0ZSBoZWxwZXJzOiBCYXNlSGVscGVyUm91dGluZXMsXHJcbiAgICBwcml2YXRlIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlLFxyXG4gICAgc3RvcmFnZVNlcnZpY2U6IEJhc2VTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogRW50ZXJwcmlzZVNlYXJjaFNlcnZpY2VJbnRlcmZhY2VcclxuICApIHtcclxuICAgIHN1cGVyKHN0b3JhZ2VTZXJ2aWNlKTtcclxuICAgIGNvbnN0IGRhdGE6IHtcclxuICAgICAgdGVtcFBhcmFtczogTG91bmdlc1RlbXBQYXJhbXM7XHJcbiAgICB9ID0gc3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvbkl0ZW0oXHJcbiAgICAgIExvdW5nZXNFbnRlcnByaXNlU2VhcmNoLlNUT1JBR0VfU0VTU0lPTl9QQVJBTVNcclxuICAgICkgfHwge1xyXG4gICAgICB0ZW1wUGFyYW1zOiB7fSBhcyBMb3VuZ2VzVGVtcFBhcmFtc1xyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZVRlbXBQYXJhbXMoc2VhcmNoU2VydmljZS5tYWtlTG91bmdlc1F1ZXJ5KGRhdGEudGVtcFBhcmFtcykpO1xyXG5cclxuICAgIGlmIChzZWFyY2hTZXJ2aWNlLnNob3VsZEFkZFRyYXZlbGxlclN1YnNjcmlwdGlvbigpKSB7XHJcbiAgICAgIHNlYXJjaFNlcnZpY2UudHJhdmVsbGVySW5mb3JtYXRpb24uc3Vic2NyaWJlKFxyXG4gICAgICAgICh0cmF2ZWxsZXJzOiBUcmF2ZWxsZXJbXSkgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgc3BsaXRUcmF2ZWxsZXJzID0gdGhpcy5oZWxwZXJzLnNlbGVjdGVkVHJhdmVsbGVycyhcclxuICAgICAgICAgICAgdHJhdmVsbGVycyxcclxuICAgICAgICAgICAgU2VydmljZVR5cGUuTG91bmdlXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgIHRoaXMudGVtcFBhcmFtcy5hZHVsdHMgPSBzcGxpdFRyYXZlbGxlcnMuYWR1bHRzLmxlbmd0aDtcclxuICAgICAgICAgIHRoaXMudGVtcFBhcmFtcy5jaGlsZHJlbiA9IHNwbGl0VHJhdmVsbGVycy5jaGlsZHJlbi5sZW5ndGg7XHJcbiAgICAgICAgICB0aGlzLnRyYXZlbGxlcnMgPSB0cmF2ZWxsZXJzO1xyXG5cclxuICAgICAgICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb25zdCByZXN1bHRzID1cclxuICAgICAgc3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvbkl0ZW1Bc0xpc3Q8TG91bmdlUXVvdGVSZXN1bHRBcnJheT4oXHJcbiAgICAgICAgdGhpcy5yZXN1bHRzU2Vzc2lvbk5hbWVcclxuICAgICAgKSB8fCBbXTtcclxuICAgIC8vIGlmIChyZXN1bHRzID09IG51bGwgJiYgdGhpcy5pc1ZhbGlkKSB7XHJcbiAgICAvLyAgIHNlYXJjaFNlcnZpY2Uuc3RhcnRTZWFyY2hlcygpO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5fY2hlYXBlc3RSZXN1bHRQcmljZSA9IHRoaXMudXBkYXRlTG93ZXN0UHJpY2UocmVzdWx0cyk7XHJcbiAgICB0aGlzLnJlc3VsdHMubmV4dChyZXN1bHRzIHx8IFtdKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZXNldFF1ZXJ5KCkge1xyXG4gICAgdGhpcy51cGRhdGVUZW1wUGFyYW1zKHRoaXMuc2VhcmNoU2VydmljZS5tYWtlTG91bmdlc1F1ZXJ5KCkpO1xyXG4gICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VhcmNoUXVlcnkoKTogU2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzIHtcclxuICAgIGNvbnN0IHF1ZXJ5OiBTZWFyY2hMb3VuZ2VzUXVlcnlWYXJpYWJsZXMgPSB7XHJcbiAgICAgIGFkdWx0czogdGhpcy50ZW1wUGFyYW1zLmFkdWx0cyxcclxuICAgICAgY2hpbGRyZW46IHRoaXMudGVtcFBhcmFtcy5jaGlsZHJlbixcclxuICAgICAgaW5mYW50czogdGhpcy50ZW1wUGFyYW1zLmluZmFudHMsXHJcbiAgICAgIGxvY2F0aW9uQ29kZTogdGhpcy5fbG9jYXRpb25Db2RlLFxyXG4gICAgICB0ZXJtaW5hbDogdGhpcy50ZW1wUGFyYW1zLnRlcm1pbmFsID09PSAnQW55JyA/IG51bGwgOiB0aGlzLnRlbXBQYXJhbXMudGVybWluYWwsXHJcbiAgICAgIGFycml2YWxEYXRldGltZTogdGhpcy50ZW1wUGFyYW1zLmFycml2YWxEYXRldGltZVxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmhlbHBlcnMucmVtb3ZlTnVsbHM8U2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzPihxdWVyeSk7XHJcbiAgfVxyXG5cclxuICAvLyBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgcHJpdmF0ZSBfaXNWYWxpZCgpIHtcclxuICAgIGlmICghdGhpcy5kb0NoZWNrcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFNlc3Npb25JdGVtKFxyXG4gICAgICBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaC5TVE9SQUdFX1NFU1NJT05fUEFSQU1TLFxyXG4gICAgICB7XHJcbiAgICAgICAgdGVtcFBhcmFtczogdGhpcy50ZW1wUGFyYW1zLFxyXG4gICAgICAgIHRyYXZlbGxlcnM6IHRoaXMudHJhdmVsbGVyc1xyXG4gICAgICB9XHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzID0gW107XHJcbiAgICBpZiAoIXRoaXMuX2xvY2F0aW9uQ29kZSB8fCB0aGlzLl9sb2NhdGlvbkNvZGUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzLnB1c2goJ1lvdSBtdXN0IHNlbGVjdCBhaXJwb3J0IGZpcnN0LicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGlmICghdGhpcy5xdWVyeS50ZXJtaW5hbCkge1xyXG4gICAgLy8gICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcy5wdXNoKCdUZXJtaW5hbCBjYW4gbm90IGJlIGVtcHR5LicpO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIGlmICh0aGlzLnRlbXBQYXJhbXMuYXJyaXZhbERhdGV0aW1lLnVuaXgoKSA8IG1vbWVudCgpLnVuaXgoKSkge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcy5wdXNoKCdPdXR3YXJkIGpvdXJuZXkgY2Fubm90IGJlIGluIHRoZSBwYXN0LicpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaXNWYWxpZC5uZXh0KHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzLmxlbmd0aCA9PT0gMCk7XHJcbiAgICB0aGlzLm1lc3NhZ2VzLm5leHQodGhpcy52YWxpZGF0aW9uTWVzc2FnZXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlRGF0ZVRpbWUoKSB7XHJcbiAgICBpZiAodGhpcy5fZGF0ZSAmJiB0aGlzLl90aW1lKSB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSB0aGlzLmhlbHBlcnMubmdEYXRlVG9Nb21lbnQodGhpcy5fZGF0ZSwgdGhpcy5fdGltZSk7XHJcbiAgICAgIHRoaXMudGVtcFBhcmFtcy5hcnJpdmFsRGF0ZXRpbWUgPSB0aW1lLmlzVmFsaWQoKSA/IHRpbWUgOiBudWxsO1xyXG4gICAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGFydFNlYXJjaCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHRoaXMucmVzdWx0cy5uZXh0KFtdKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5nZXRTZWFyY2hRdWVyeSgpO1xyXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2F2ZVJlY2VudFNlYXJjaCh0aGlzLmdldFJlY2VudFNlYXJjaFF1ZXJ5KHF1ZXJ5KSk7XHJcbiAgICAgIHJldHVybiB0aGlzLl9zdGFydFNlYXJjaChcclxuICAgICAgICB0aGlzLmxvdW5nZWZldGNoZXIuZmV0Y2hMaXN0KFxyXG4gICAgICAgICAgdGhpcy5oZWxwZXJzLnJlbW92ZU51bGxzPFNlYXJjaExvdW5nZXNRdWVyeVZhcmlhYmxlcz4oXHJcbiAgICAgICAgICAgIHF1ZXJ5XHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSZWNlbnRTZWFyY2hRdWVyeShxdWVyeTogU2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzKTogU2F2ZVJlY2VudFNlYXJjaE11dGF0aW9uVmFyaWFibGVzIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZS5Mb3VuZ2UsXHJcbiAgICAgIHNlYXJjaEFyZ3M6IHF1ZXJ5LFxyXG4gICAgICB0cmF2ZWxEYXRlOiB0aGlzLmFycml2YWxEYXRldGltZS5mb3JtYXQoKSxcclxuICAgICAgdHJhdmVsbGVyczogdGhpcy5oZWxwZXJzLmdldFRyYXZlbGxlcnNJZCh0aGlzLnRyYXZlbGxlcnMpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXJ0UmVjZW50U2VhcmNoKHJlY2VudFNlYXJjaDogUmVjZW50U2VhcmNoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFycml2YWxEYXRldGltZSA9IG1vbWVudChyZWNlbnRTZWFyY2guc2VhcmNoQXJncy5hcnJpdmFsRGF0ZXRpbWUpO1xyXG4gICAgdGhpcy50ZXJtaW5hbCA9IHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLnRlcm1pbmFsO1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLmdldEFpcnBvcnRCeUNvZGUocmVjZW50U2VhcmNoLnNlYXJjaEFyZ3MubG9jYXRpb25Db2RlKS5zdWJzY3JpYmUoKGFpcnBvcnQ6IEFpcnBvcnRSZXN1bHRzKSA9PiB7XHJcbiAgICAgIGlmIChhaXJwb3J0KSB7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbkNvZGUgPSB7XHJcbiAgICAgICAgICBjb3VudHJ5OiBhaXJwb3J0LmlhdGFNYXRjaD8ubG9jYXRpb25EZXRhaWxzPy5jb3VudHJ5LFxyXG4gICAgICAgICAgY291bnRyeUNvZGU6IGFpcnBvcnQuaWF0YU1hdGNoPy5sb2NhdGlvbkRldGFpbHM/LmNvdW50cnlDb2RlLFxyXG4gICAgICAgICAgZGVzdGluYXRpb246IGFpcnBvcnQuaWF0YU1hdGNoLm5hbWUsXHJcbiAgICAgICAgICBnYXRld2F5OiBhaXJwb3J0LmlhdGFNYXRjaC5pYXRhLFxyXG4gICAgICAgICAgcG9zdGNvZGU6IGFpcnBvcnQuaWF0YU1hdGNoPy5sb2NhdGlvbkRldGFpbHM/LnBvc3Rjb2RlLFxyXG4gICAgICAgICAgdGVybWluYWxzOiB0aGlzLnNlYXJjaFNlcnZpY2UucHJvY2Vzc1Rlcm1pbmFscyhhaXJwb3J0LmlhdGFNYXRjaC50ZXJtaW5hbHMpXHJcbiAgICAgICAgfTtcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnN0YXJ0U2VhcmNoZXMoKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5zdGFydFNlYXJjaGVzKCk7XHJcbiAgfVxyXG5cclxuICBzb3J0QnlQcmljZShhc2M/OiBib29sZWFuLCByZXN1bHRBcnJheTogTG91bmdlUXVvdGVbXSA9IFtdKSB7XHJcbiAgICBsZXQgc29ydFJlc3VsdHMgPSBbLi4udGhpcy5mdWxsUmVzdWx0c10gYXMgTG91bmdlUXVvdGVbXTtcclxuICAgIGlmICghc29ydFJlc3VsdHMubGVuZ3RoKSB7XHJcbiAgICAgIHNvcnRSZXN1bHRzID0gcmVzdWx0QXJyYXk7XHJcbiAgICB9XHJcbiAgICBzb3J0UmVzdWx0cyA9IHRoaXMuc29ydFJlc3VsdHNQcmljZShzb3J0UmVzdWx0cywgYXNjKTtcclxuICAgIHRoaXMucmVzdWx0cy5uZXh0KHNvcnRSZXN1bHRzKTtcclxuICB9XHJcblxyXG4gIHNvcnRSZXN1bHRzUHJpY2UocmVzdWx0QXJyYXk6IExvdW5nZVF1b3RlW10sIGFzYz86IGJvb2xlYW4pOiBMb3VuZ2VRdW90ZVtdIHtcclxuICAgIGxldCByZXN1bHRzID0gWy4uLnJlc3VsdEFycmF5XTtcclxuICAgIGlmIChhc2MpIHtcclxuICAgICAgcmVzdWx0cyA9IHJlc3VsdHMuc29ydChcclxuICAgICAgICAoYTogTG91bmdlUXVvdGVSZXN1bHQsIGI6IExvdW5nZVF1b3RlUmVzdWx0KSA9PiBiLnByaWNlIC0gYS5wcmljZVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0cyA9IHJlc3VsdHMuc29ydChcclxuICAgICAgICAoYTogTG91bmdlUXVvdGVSZXN1bHQsIGI6IExvdW5nZVF1b3RlUmVzdWx0KSA9PiBhLnByaWNlIC0gYi5wcmljZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgfVxyXG5cclxuICBzb3J0QnlUZXJtaW5hbChyZXN1bHRBcnJheTogTG91bmdlUXVvdGVbXSA9IFtdKSB7XHJcbiAgICBsZXQgcmVzdWx0cyA9IFsuLi50aGlzLmZ1bGxSZXN1bHRzXTtcclxuICAgIGlmICghcmVzdWx0cy5sZW5ndGgpIHtcclxuICAgICAgcmVzdWx0cyA9IHJlc3VsdEFycmF5O1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGVybWluYWxTb3J0ZXIgPSAoYTogTG91bmdlUXVvdGVSZXN1bHQsIGI6IExvdW5nZVF1b3RlUmVzdWx0KSA9PiB7XHJcbiAgICAgIHJldHVybiAtMTsgLy8gVE9ETyBhLnJhd0RhdGEuRmxpZ2h0VGVybU91dCA+IGIucmF3RGF0YS5GbGlnaHRUZXJtT3V0ID8gMSA6IC0xO1xyXG4gICAgfTtcclxuICAgIHRoaXMucmVzdWx0cy5uZXh0KHJlc3VsdHMuc29ydCh0ZXJtaW5hbFNvcnRlcikpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRnJvbVByZXZpb3VzU2VhcmNoZXMoXHJcbiAgICBwcmV2aW91c0l0ZW1zOiBSZWNvcmQ8U2VydmljZVR5cGUsIEJhc2tldEl0ZW0+XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBmbGlnaHRJdGVtOiBTZWFyY2hGbGlnaHRzVjJRdWVyeVZhcmlhYmxlcyA9XHJcbiAgICAgIHByZXZpb3VzSXRlbXNbU2VydmljZVR5cGUuRmxpZ2h0XT8uc2VhcmNoUXVlcnk7XHJcbiAgICBpZiAoZmxpZ2h0SXRlbSkge1xyXG4gICAgICAvLyBUT0RPIGZsaWdodHMgaGF2ZW4ndCBiZWVuIGRvbmUgeWV0LlxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgYWRkTG91bmdlVG9CYXNrZXQoXHJcbiAgICBsb3VuZ2VRdW90ZTogTG91bmdlUXVvdGUsXHJcbiAgICBsb3VuZ2VRdWVyeTogU2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzXHJcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAobG91bmdlUXVvdGUudW5hdmFpbGFibGUpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbnRCYXNrZXQ6IEludGVybmFsQmFza2V0SW50ZXJmYWNlID1cclxuICAgICAgYXdhaXQgdGhpcy5iYXNrZXRTZXJ2aWNlLmdldERlZmF1bHRCYXNrZXQoKTtcclxuICAgIGNvbnN0IGJhc2tldCA9IGludEJhc2tldD8uc3ViamVjdC52YWx1ZTtcclxuICAgIGlmIChiYXNrZXQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYmFza2V0U2VydmljZS5hZGRUb0Jhc2tldChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBhZHVsdHM6IGxvdW5nZVF1ZXJ5LmFkdWx0cyxcclxuICAgICAgICAgIGNoaWxkcmVuOiBsb3VuZ2VRdWVyeS5jaGlsZHJlbixcclxuICAgICAgICAgIGluZmFudHM6IGxvdW5nZVF1ZXJ5LmluZmFudHMsXHJcbiAgICAgICAgICBiYXNrZXQ6IGJhc2tldC5pZCxcclxuICAgICAgICAgIHNlcnZpY2U6IGxvdW5nZVF1b3RlLnNvdXJjZUlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBkZXRhaWw6IHtcclxuICAgICAgICAgICAgYXJyaXZhbERhdGV0aW1lOiBsb3VuZ2VRdWVyeS5hcnJpdmFsRGF0ZXRpbWUuZm9ybWF0KCksXHJcbiAgICAgICAgICAgIGxvY2F0aW9uQ29kZTogbG91bmdlUXVvdGUuY29kZSxcclxuICAgICAgICAgICAgbmFtZTogbG91bmdlUXVvdGUubmFtZSxcclxuICAgICAgICAgICAgYWlycG9ydElhdGE6IGxvdW5nZVF1ZXJ5Py5sb2NhdGlvbkNvZGVcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBwcmljZTogbG91bmdlUXVvdGUucHJpY2UsXHJcbiAgICAgICAgICBjdXJyZW5jeTogbG91bmdlUXVvdGUuY3VycmVuY3ksXHJcbiAgICAgICAgICBzZWFyY2hRdWVyeTogbG91bmdlUXVlcnksXHJcbiAgICAgICAgICBvdXRib3VuZERhdGU6IGxvdW5nZVF1ZXJ5LmFycml2YWxEYXRldGltZS5mb3JtYXQoKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaW50QmFza2V0LFxyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZSxcclxuICAgICAgICB0aGlzLnRyYXZlbGxlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpOyAvLyBUT0RPIHNob3VsZCB0aGlzIHRocm93IGFuIGVycm9yP1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTG93ZXN0UHJpY2UocmVzdWx0czogTG91bmdlUXVvdGVbXSk6IElDaGVhcGVzdFByaWNlIHtcclxuICAgIGlmICghcmVzdWx0cy5sZW5ndGgpIHJldHVybiBudWxsO1xyXG4gICAgY29uc3QgY3VycmVuY3kgPSByZXN1bHRzWzBdLmN1cnJlbmN5O1xyXG4gICAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxyXG4gICAgICAoY2hlYXBlc3RQcmljZTogSUNoZWFwZXN0UHJpY2UsIHJlc3VsdDogTG91bmdlUXVvdGUpID0+IHtcclxuICAgICAgICBjb25zdCBwcmljZSA9IHJlc3VsdC5wcmljZTtcclxuICAgICAgICBpZiAoY2hlYXBlc3RQcmljZS5hbW91bnQgPiBwcmljZSkgY2hlYXBlc3RQcmljZS5hbW91bnQgPSBwcmljZTtcclxuICAgICAgICByZXR1cm4gY2hlYXBlc3RQcmljZTtcclxuICAgICAgfSxcclxuICAgICAgeyBhbW91bnQ6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLCBjdXJyZW5jeUNvZGU6IGN1cnJlbmN5IH1cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
417
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG91bmdlcy1lbnRlcnByaXNlLXNlYXJjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9sb3VuZ2VzLWVudGVycHJpc2Utc2VhcmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQWE1QixPQUFPLEVBT0wsV0FBVyxFQUNaLE1BQU0sd0JBQXdCLENBQUM7QUFlaEMsTUFBTSxPQUFPLHVCQUNYLFNBQVEsb0JBSVA7SUFtS0QsWUFDVSxhQUEyQyxFQUNuRCxPQUEyQixFQUNuQixhQUErQyxFQUN2RCxjQUFrQyxFQUMxQixhQUErQztRQUV2RCxLQUFLLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBTnZCLGtCQUFhLEdBQWIsYUFBYSxDQUE4QjtRQUUzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBa0M7UUFFL0Msa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBbktsRCxTQUFJLEdBQWdCLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDdkMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFrQixFQUFFLENBQUMsQ0FBQztRQStCcEQsa0JBQWEsR0FBVyxJQUFJLENBQUM7UUFvRTdCLHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQVV2QyxtQkFBbUI7UUFDWixhQUFRLEdBQUc7WUFDaEIsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRTtZQUNyQixLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztZQUMzQixHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFO1NBQ3JCLENBQUM7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RUFBRSxDQUM1RCxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNyQyxNQUFNLFVBQVUsR0FBRztnQkFDakIsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUU7Z0JBQ25CLFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTTtnQkFDL0IsVUFBVSxFQUFFLE1BQU07YUFDbkIsQ0FBQTtZQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7O0FBamZlLDhDQUFzQixHQUFHLGVBQWUsQ0FBQztBQUN6QywrQ0FBdUIsR0FBRyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VFbnRlcnByaXNlU2VhcmNoIH0gZnJvbSAnLi9iYXNlLWVudGVycHJpc2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBCYXNlU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlSGVscGVyUm91dGluZXMgfSBmcm9tICcuL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBUcmF2ZWxsZXIgfSBmcm9tICcuLi9tb2RlbHMvdHJhdmVsbGVyLm9iamVjdCc7XHJcbmltcG9ydCB7XHJcbiAgTG91bmdlUXVvdGVSZXN1bHQsXHJcbiAgTG91bmdlUXVvdGVSZXN1bHRBcnJheSxcclxuICBOZ2JEYXRlU3RydWN0LFxyXG4gIE9CVEFpcnBvcnREZXRhaWxzLFxyXG4gIFJlY2VudFNlYXJjaCxcclxuICBTYXZlRmF2b3VyaXRlU2VhcmNoUmVzdWx0LFxyXG4gIFRlcm1pbmFsc1R5cGVcclxufSBmcm9tICcuLi90eXBlcy90eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQWlycG9ydFJlc3VsdHMsXHJcbiAgQmFza2V0SXRlbSxcclxuICBMb3VuZ2VRdW90ZSxcclxuICBTYXZlUmVjZW50U2VhcmNoTXV0YXRpb25WYXJpYWJsZXMsXHJcbiAgU2VhcmNoRmxpZ2h0c1YyUXVlcnlWYXJpYWJsZXMsXHJcbiAgU2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzLFxyXG4gIFNlcnZpY2VUeXBlXHJcbn0gZnJvbSAnLi4vdHlwZXMvZ3JhcGhxbC50eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQmFzZUxvdW5nZVF1b3RlRmV0Y2hlcixcclxuICBMb3VuZ2VRdW90ZUZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvbG91bmdlLXF1b3RlLmZldGNoZXInO1xyXG5pbXBvcnQge1xyXG4gIEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlLFxyXG4gIEludGVybmFsQmFza2V0SW50ZXJmYWNlXHJcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JZW50ZXJwcmlzZS1iYXNrZXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEVudGVycHJpc2VTZWFyY2hTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9Jc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIExvdW5nZXNFbnRlcnByaXNlU2VhcmNoSW50ZXJmYWNlLFxyXG4gIExvdW5nZXNUZW1wUGFyYW1zXHJcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JbG91bmdlcy1lbnRlcnByaXNlLXNlYXJjaCc7XHJcbmltcG9ydCB7IElDaGVhcGVzdFByaWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jaGVhcGVzdC1wcmljZSc7XHJcbmV4cG9ydCBjbGFzcyBMb3VuZ2VzRW50ZXJwcmlzZVNlYXJjaDxMUV9RIGV4dGVuZHMgTG91bmdlUXVvdGVGZXRjaGVyVHlwZT5cclxuICBleHRlbmRzIEJhc2VFbnRlcnByaXNlU2VhcmNoPFxyXG4gICAgTG91bmdlc1RlbXBQYXJhbXMsXHJcbiAgICBMb3VuZ2VRdW90ZVJlc3VsdEFycmF5LFxyXG4gICAgTG91bmdlUXVvdGVSZXN1bHRBcnJheVxyXG4gID5cclxuICBpbXBsZW1lbnRzIExvdW5nZXNFbnRlcnByaXNlU2VhcmNoSW50ZXJmYWNlXHJcbntcclxuICBzdGF0aWMgcmVhZG9ubHkgU1RPUkFHRV9TRVNTSU9OX1BBUkFNUyA9ICdzZWFyY2hfbG91bmdlJztcclxuICBzdGF0aWMgcmVhZG9ubHkgU1RPUkFHRV9TRVNTSU9OX1JFU1VMVFMgPSAncmVzdWx0c19sb3VuZ2UnO1xyXG4gIHB1YmxpYyB0eXBlOiBTZXJ2aWNlVHlwZSA9IFNlcnZpY2VUeXBlLkxvdW5nZTtcclxuICBwdWJsaWMgdGVybWluYWxzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZXJtaW5hbHNUeXBlW10+KFtdKTtcclxuXHJcbiAgcHJpdmF0ZSB0cmF2ZWxsZXJzOiBUcmF2ZWxsZXJbXTtcclxuICBwcml2YXRlIF9sb2NhdGlvbkNvZGU6IHN0cmluZztcclxuXHJcbiAgZ2V0IGFkdWx0cygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5hZHVsdHM7XHJcbiAgfVxyXG5cclxuICBzZXQgYWR1bHRzKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy5hZHVsdHMgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCBjaGlsZHJlbigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5jaGlsZHJlbjtcclxuICB9XHJcblxyXG4gIHNldCBjaGlsZHJlbih2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMuY2hpbGRyZW4gPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIGdldCBpbmZhbnRzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wUGFyYW1zLmluZmFudHM7XHJcbiAgfVxyXG5cclxuICBzZXQgaW5mYW50cyh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRlbXBQYXJhbXMuaW5mYW50cyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmxpZ2h0TnVtYmVyOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBnZXQgZmxpZ2h0TnVtYmVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxpZ2h0TnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgc2V0IGZsaWdodE51bWJlcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9mbGlnaHROdW1iZXIgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBsb2NhdGlvbkNvZGUoKTogc3RyaW5nIHwgT0JUQWlycG9ydERldGFpbHMge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5sb2NhdGlvbkNvZGU7XHJcbiAgfVxyXG5cclxuICBzZXQgbG9jYXRpb25Db2RlKHZhbHVlOiBzdHJpbmcgfCBPQlRBaXJwb3J0RGV0YWlscykge1xyXG4gICAgdGhpcy50ZW1wUGFyYW1zLmxvY2F0aW9uQ29kZSA9IHZhbHVlO1xyXG4gICAgY29uc3QgdGVybWluYWxzVHlwZTogVGVybWluYWxzVHlwZVtdID0gdGhpcy50ZXJtaW5hbHM/LnZhbHVlO1xyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy5fbG9jYXRpb25Db2RlID0gJyc7XHJcbiAgICAgIHRoaXMudGVybWluYWwgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlcm1pbmFscy5uZXh0KFtdKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRlcm1pbmFsID0gbnVsbDtcclxuICAgICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSAmJiB2YWx1ZS5nYXRld2F5KSB7XHJcbiAgICAgIHRoaXMuX2xvY2F0aW9uQ29kZSA9IHZhbHVlLmdhdGV3YXk7XHJcbiAgICAgIHRoaXMudGVybWluYWwgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlcm1pbmFscy5uZXh0KHZhbHVlLnRlcm1pbmFscyk7XHJcbiAgICAgIGlmICh0ZXJtaW5hbHNUeXBlLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtaW5hbCA9IHRlcm1pbmFsc1R5cGVbMF0ua2V5O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2xvY2F0aW9uQ29kZSA9IG51bGw7XHJcbiAgICAgIHRoaXMudGVybWluYWwgPSBudWxsO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVGVybWluYWwgPSBudWxsO1xyXG4gICAgICB0aGlzLnRlcm1pbmFscy5uZXh0KFtdKTtcclxuICAgICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHRlcm1pbmFsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wUGFyYW1zLnRlcm1pbmFsXHJcbiAgICAgID8gdGhpcy50ZW1wUGFyYW1zLnRlcm1pbmFsLnRvU3RyaW5nKClcclxuICAgICAgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgc2V0IHRlcm1pbmFsKGlucHV0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGVtcFBhcmFtcy50ZXJtaW5hbCA9IGlucHV0O1xyXG4gICAgY29uc3QgZm91bmQ6IFRlcm1pbmFsc1R5cGUgPSB0aGlzLnRlcm1pbmFscy52YWx1ZS5maW5kKFxyXG4gICAgICAodGVybWluYWw6IFRlcm1pbmFsc1R5cGUsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAodGVybWluYWwudmFsdWUgPT09IGlucHV0KSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcblxyXG4gICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtaW5hbCA9IGZvdW5kLmtleTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLnRlcm1pbmFscy52YWx1ZSAmJiB0aGlzLnRlcm1pbmFscy52YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRlcm1pbmFsID0gdGhpcy50ZXJtaW5hbHMudmFsdWVbMF0ua2V5O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUZXJtaW5hbCA9ICdBbnkgVGVybWluYWwnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZWxlY3RlZFRlcm1pbmFsOiBzdHJpbmcgPSAnJztcclxuICBzZXQgc2VsZWN0ZWRUZXJtaW5hbCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZFRlcm1pbmFsID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc2VsZWN0ZWRUZXJtaW5hbCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkVGVybWluYWw7XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgdmFyaWFibGVzXHJcbiAgcHVibGljIG1pbl9kYXRlID0ge1xyXG4gICAgeWVhcjogbW9tZW50KCkueWVhcigpLFxyXG4gICAgbW9udGg6IG1vbWVudCgpLm1vbnRoKCkgKyAxLCAvLyBuZ2JEYXRlIG1vbnRocyBhcmUgbm90IDAgaW5kZXhlZFxyXG4gICAgZGF5OiBtb21lbnQoKS5kYXRlKClcclxuICB9O1xyXG5cclxuICBwcml2YXRlIF9kYXRlOiBOZ2JEYXRlU3RydWN0ID0gbnVsbDtcclxuICBnZXQgZGF0ZSgpOiBOZ2JEYXRlU3RydWN0IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRlO1xyXG4gIH1cclxuXHJcbiAgc2V0IGRhdGUodmFsdWU6IE5nYkRhdGVTdHJ1Y3QpIHtcclxuICAgIHRoaXMuX2RhdGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3VwZGF0ZURhdGVUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90aW1lOiBzdHJpbmcgPSBudWxsO1xyXG4gIGdldCB0aW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGltZTtcclxuICB9XHJcblxyXG4gIHNldCB0aW1lKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RpbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3VwZGF0ZURhdGVUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYXJyaXZhbERhdGV0aW1lKCk6IG1vbWVudC5Nb21lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcFBhcmFtcy5hcnJpdmFsRGF0ZXRpbWU7XHJcbiAgfVxyXG5cclxuICBzZXQgYXJyaXZhbERhdGV0aW1lKHZhbHVlOiBtb21lbnQuTW9tZW50KSB7XHJcbiAgICBpZiAodmFsdWUuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMudGVtcFBhcmFtcy5hcnJpdmFsRGF0ZXRpbWUgPSB2YWx1ZTtcclxuXHJcbiAgICAgIHRoaXMuX2RhdGUgPSB0aGlzLmhlbHBlcnMubW9tZW50VG9OZ0RhdGUodmFsdWUpO1xyXG4gICAgICB0aGlzLl90aW1lID0gdGhpcy5oZWxwZXJzLmZvcm1hdFRpbWVDb2xvbih2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRlbXBQYXJhbXMuYXJyaXZhbERhdGV0aW1lID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuX2lzVmFsaWQoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZXN1bHRzU2Vzc2lvbk5hbWUgPVxyXG4gICAgTG91bmdlc0VudGVycHJpc2VTZWFyY2guU1RPUkFHRV9TRVNTSU9OX1JFU1VMVFM7XHJcbiAgcHJvdGVjdGVkIG11bHRpUmVzdWx0c1Nlc3Npb25OYW1lID1cclxuICAgIExvdW5nZXNFbnRlcnByaXNlU2VhcmNoLlNUT1JBR0VfU0VTU0lPTl9SRVNVTFRTO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbG91bmdlZmV0Y2hlcjogQmFzZUxvdW5nZVF1b3RlRmV0Y2hlcjxMUV9RPixcclxuICAgIGhlbHBlcnM6IEJhc2VIZWxwZXJSb3V0aW5lcyxcclxuICAgIHByaXZhdGUgYmFza2V0U2VydmljZTogRW50ZXJwcmlzZUJhc2tldFNlcnZpY2VJbnRlcmZhY2UsXHJcbiAgICBzdG9yYWdlU2VydmljZTogQmFzZVN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBFbnRlcnByaXNlU2VhcmNoU2VydmljZUludGVyZmFjZVxyXG4gICkge1xyXG4gICAgc3VwZXIoc3RvcmFnZVNlcnZpY2UsIGhlbHBlcnMpO1xyXG4gICAgY29uc3QgZGF0YToge1xyXG4gICAgICB0ZW1wUGFyYW1zOiBMb3VuZ2VzVGVtcFBhcmFtcztcclxuICAgIH0gPSBzdG9yYWdlU2VydmljZS5nZXRTZXNzaW9uSXRlbShcclxuICAgICAgTG91bmdlc0VudGVycHJpc2VTZWFyY2guU1RPUkFHRV9TRVNTSU9OX1BBUkFNU1xyXG4gICAgKSB8fCB7XHJcbiAgICAgIHRlbXBQYXJhbXM6IHt9IGFzIExvdW5nZXNUZW1wUGFyYW1zXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMudXBkYXRlVGVtcFBhcmFtcyhzZWFyY2hTZXJ2aWNlLm1ha2VMb3VuZ2VzUXVlcnkoZGF0YS50ZW1wUGFyYW1zKSk7XHJcblxyXG4gICAgaWYgKHNlYXJjaFNlcnZpY2Uuc2hvdWxkQWRkVHJhdmVsbGVyU3Vic2NyaXB0aW9uKCkpIHtcclxuICAgICAgc2VhcmNoU2VydmljZS50cmF2ZWxsZXJJbmZvcm1hdGlvbi5zdWJzY3JpYmUoXHJcbiAgICAgICAgKHRyYXZlbGxlcnM6IFRyYXZlbGxlcltdKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzcGxpdFRyYXZlbGxlcnMgPSB0aGlzLmhlbHBlcnMuc2VsZWN0ZWRUcmF2ZWxsZXJzKFxyXG4gICAgICAgICAgICB0cmF2ZWxsZXJzLFxyXG4gICAgICAgICAgICBTZXJ2aWNlVHlwZS5Mb3VuZ2VcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgdGhpcy50ZW1wUGFyYW1zLmFkdWx0cyA9IHNwbGl0VHJhdmVsbGVycy5hZHVsdHMubGVuZ3RoO1xyXG4gICAgICAgICAgdGhpcy50ZW1wUGFyYW1zLmNoaWxkcmVuID0gc3BsaXRUcmF2ZWxsZXJzLmNoaWxkcmVuLmxlbmd0aDtcclxuICAgICAgICAgIHRoaXMudHJhdmVsbGVycyA9IHRyYXZlbGxlcnM7XHJcblxyXG4gICAgICAgICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHJlc3VsdHMgPVxyXG4gICAgICBzdG9yYWdlU2VydmljZS5nZXRTZXNzaW9uSXRlbUFzTGlzdDxMb3VuZ2VRdW90ZVJlc3VsdEFycmF5PihcclxuICAgICAgICB0aGlzLnJlc3VsdHNTZXNzaW9uTmFtZVxyXG4gICAgICApIHx8IFtdO1xyXG4gICAgLy8gaWYgKHJlc3VsdHMgPT0gbnVsbCAmJiB0aGlzLmlzVmFsaWQpIHtcclxuICAgIC8vICAgc2VhcmNoU2VydmljZS5zdGFydFNlYXJjaGVzKCk7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLl9jaGVhcGVzdFJlc3VsdFByaWNlID0gdGhpcy51cGRhdGVMb3dlc3RQcmljZShyZXN1bHRzKTtcclxuICAgIHRoaXMucmVzdWx0cy5uZXh0KHJlc3VsdHMgfHwgW10pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHJlc2V0UXVlcnkoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVRlbXBQYXJhbXModGhpcy5zZWFyY2hTZXJ2aWNlLm1ha2VMb3VuZ2VzUXVlcnkoKSk7XHJcbiAgICB0aGlzLl9pc1ZhbGlkKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTZWFyY2hRdWVyeSgpOiBTZWFyY2hMb3VuZ2VzUXVlcnlWYXJpYWJsZXMge1xyXG4gICAgY29uc3QgcXVlcnk6IFNlYXJjaExvdW5nZXNRdWVyeVZhcmlhYmxlcyA9IHtcclxuICAgICAgYWR1bHRzOiB0aGlzLnRlbXBQYXJhbXMuYWR1bHRzLFxyXG4gICAgICBjaGlsZHJlbjogdGhpcy50ZW1wUGFyYW1zLmNoaWxkcmVuLFxyXG4gICAgICBpbmZhbnRzOiB0aGlzLnRlbXBQYXJhbXMuaW5mYW50cyxcclxuICAgICAgbG9jYXRpb25Db2RlOiB0aGlzLl9sb2NhdGlvbkNvZGUsXHJcbiAgICAgIHRlcm1pbmFsOlxyXG4gICAgICAgIHRoaXMudGVtcFBhcmFtcy50ZXJtaW5hbCA9PT0gJ0FueScgPyBudWxsIDogdGhpcy50ZW1wUGFyYW1zLnRlcm1pbmFsLFxyXG4gICAgICBhcnJpdmFsRGF0ZXRpbWU6IHRoaXMudGVtcFBhcmFtcy5hcnJpdmFsRGF0ZXRpbWVcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5oZWxwZXJzLnJlbW92ZU51bGxzPFNlYXJjaExvdW5nZXNRdWVyeVZhcmlhYmxlcz4ocXVlcnkpO1xyXG4gIH1cclxuXHJcbiAgLy8gUHJpdmF0ZSBNZXRob2RzXHJcblxyXG4gIHByaXZhdGUgX2lzVmFsaWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuZG9DaGVja3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRTZXNzaW9uSXRlbShcclxuICAgICAgTG91bmdlc0VudGVycHJpc2VTZWFyY2guU1RPUkFHRV9TRVNTSU9OX1BBUkFNUyxcclxuICAgICAge1xyXG4gICAgICAgIHRlbXBQYXJhbXM6IHRoaXMudGVtcFBhcmFtcyxcclxuICAgICAgICB0cmF2ZWxsZXJzOiB0aGlzLnRyYXZlbGxlcnNcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcyA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLl9sb2NhdGlvbkNvZGUgfHwgdGhpcy5fbG9jYXRpb25Db2RlID09PSAnJykge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcy5wdXNoKCdZb3UgbXVzdCBzZWxlY3QgYWlycG9ydCBmaXJzdC4nKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiAoIXRoaXMucXVlcnkudGVybWluYWwpIHtcclxuICAgIC8vICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZXMucHVzaCgnVGVybWluYWwgY2FuIG5vdCBiZSBlbXB0eS4nKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAodGhpcy50ZW1wUGFyYW1zLmFycml2YWxEYXRldGltZS51bml4KCkgPCBtb21lbnQoKS51bml4KCkpIHtcclxuICAgICAgdGhpcy52YWxpZGF0aW9uTWVzc2FnZXMucHVzaCgnT3V0d2FyZCBqb3VybmV5IGNhbm5vdCBiZSBpbiB0aGUgcGFzdC4nKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlzVmFsaWQubmV4dCh0aGlzLnZhbGlkYXRpb25NZXNzYWdlcy5sZW5ndGggPT09IDApO1xyXG4gICAgdGhpcy5tZXNzYWdlcy5uZXh0KHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3VwZGF0ZURhdGVUaW1lKCkge1xyXG4gICAgaWYgKHRoaXMuX2RhdGUgJiYgdGhpcy5fdGltZSkge1xyXG4gICAgICBjb25zdCB0aW1lID0gdGhpcy5oZWxwZXJzLm5nRGF0ZVRvTW9tZW50KHRoaXMuX2RhdGUsIHRoaXMuX3RpbWUpO1xyXG4gICAgICB0aGlzLnRlbXBQYXJhbXMuYXJyaXZhbERhdGV0aW1lID0gdGltZS5pc1ZhbGlkKCkgPyB0aW1lIDogbnVsbDtcclxuICAgICAgdGhpcy5faXNWYWxpZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRTZWFyY2goKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLnJlc3VsdHMubmV4dChbXSk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNWYWxpZC52YWx1ZSkge1xyXG4gICAgICBjb25zdCBxdWVyeSA9IHRoaXMuZ2V0U2VhcmNoUXVlcnkoKTtcclxuICAgICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNhdmVSZWNlbnRTZWFyY2godGhpcy5nZXRSZWNlbnRTZWFyY2hRdWVyeShxdWVyeSkpO1xyXG4gICAgICByZXR1cm4gdGhpcy5fc3RhcnRTZWFyY2goXHJcbiAgICAgICAgdGhpcy5sb3VuZ2VmZXRjaGVyLmZldGNoTGlzdChcclxuICAgICAgICAgIHRoaXMuaGVscGVycy5yZW1vdmVOdWxsczxTZWFyY2hMb3VuZ2VzUXVlcnlWYXJpYWJsZXM+KHF1ZXJ5KVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmVjZW50U2VhcmNoUXVlcnkoXHJcbiAgICBxdWVyeTogU2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzXHJcbiAgKTogU2F2ZVJlY2VudFNlYXJjaE11dGF0aW9uVmFyaWFibGVzIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZS5Mb3VuZ2UsXHJcbiAgICAgIHNlYXJjaEFyZ3M6IHF1ZXJ5LFxyXG4gICAgICB0cmF2ZWxEYXRlOiB0aGlzLmFycml2YWxEYXRldGltZS5mb3JtYXQoKSxcclxuICAgICAgdHJhdmVsbGVyczogdGhpcy5oZWxwZXJzLmdldFRyYXZlbGxlcnNJZCh0aGlzLnRyYXZlbGxlcnMpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXJ0UmVjZW50U2VhcmNoKHJlY2VudFNlYXJjaDogUmVjZW50U2VhcmNoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFycml2YWxEYXRldGltZSA9IG1vbWVudChyZWNlbnRTZWFyY2guc2VhcmNoQXJncy5hcnJpdmFsRGF0ZXRpbWUpO1xyXG4gICAgdGhpcy50ZXJtaW5hbCA9IHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLnRlcm1pbmFsO1xyXG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlXHJcbiAgICAgIC5nZXRBaXJwb3J0QnlDb2RlKHJlY2VudFNlYXJjaC5zZWFyY2hBcmdzLmxvY2F0aW9uQ29kZSlcclxuICAgICAgLnN1YnNjcmliZSgoYWlycG9ydDogQWlycG9ydFJlc3VsdHMpID0+IHtcclxuICAgICAgICBpZiAoYWlycG9ydCkge1xyXG4gICAgICAgICAgdGhpcy5sb2NhdGlvbkNvZGUgPSB7XHJcbiAgICAgICAgICAgIGNvdW50cnk6IGFpcnBvcnQuaWF0YU1hdGNoPy5sb2NhdGlvbkRldGFpbHM/LmNvdW50cnksXHJcbiAgICAgICAgICAgIGNvdW50cnlDb2RlOiBhaXJwb3J0LmlhdGFNYXRjaD8ubG9jYXRpb25EZXRhaWxzPy5jb3VudHJ5Q29kZSxcclxuICAgICAgICAgICAgZGVzdGluYXRpb246IGFpcnBvcnQuaWF0YU1hdGNoLm5hbWUsXHJcbiAgICAgICAgICAgIGdhdGV3YXk6IGFpcnBvcnQuaWF0YU1hdGNoLmlhdGEsXHJcbiAgICAgICAgICAgIHBvc3Rjb2RlOiBhaXJwb3J0LmlhdGFNYXRjaD8ubG9jYXRpb25EZXRhaWxzPy5wb3N0Y29kZSxcclxuICAgICAgICAgICAgdGVybWluYWxzOiB0aGlzLnNlYXJjaFNlcnZpY2UucHJvY2Vzc1Rlcm1pbmFscyhcclxuICAgICAgICAgICAgICBhaXJwb3J0LmlhdGFNYXRjaC50ZXJtaW5hbHNcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMudGVybWluYWwgPSByZWNlbnRTZWFyY2guc2VhcmNoQXJncy50ZXJtaW5hbDtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoU2VydmljZS5zdGFydFNlYXJjaGVzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2VhcmNoU2VydmljZS5zdGFydFNlYXJjaGVzKCk7XHJcbiAgfVxyXG5cclxuICBzb3J0QnlQcmljZShhc2M/OiBib29sZWFuLCByZXN1bHRBcnJheTogTG91bmdlUXVvdGVbXSA9IFtdKSB7XHJcbiAgICBsZXQgc29ydFJlc3VsdHMgPSBbLi4udGhpcy5mdWxsUmVzdWx0c10gYXMgTG91bmdlUXVvdGVbXTtcclxuICAgIGlmICghc29ydFJlc3VsdHMubGVuZ3RoKSB7XHJcbiAgICAgIHNvcnRSZXN1bHRzID0gcmVzdWx0QXJyYXk7XHJcbiAgICB9XHJcbiAgICBzb3J0UmVzdWx0cyA9IHRoaXMuc29ydFJlc3VsdHNQcmljZShzb3J0UmVzdWx0cywgYXNjKTtcclxuICAgIHRoaXMucmVzdWx0cy5uZXh0KHNvcnRSZXN1bHRzKTtcclxuICB9XHJcblxyXG4gIHNvcnRSZXN1bHRzUHJpY2UocmVzdWx0QXJyYXk6IExvdW5nZVF1b3RlW10sIGFzYz86IGJvb2xlYW4pOiBMb3VuZ2VRdW90ZVtdIHtcclxuICAgIGxldCByZXN1bHRzID0gWy4uLnJlc3VsdEFycmF5XTtcclxuICAgIGlmIChhc2MpIHtcclxuICAgICAgcmVzdWx0cyA9IHJlc3VsdHMuc29ydChcclxuICAgICAgICAoYTogTG91bmdlUXVvdGVSZXN1bHQsIGI6IExvdW5nZVF1b3RlUmVzdWx0KSA9PiBiLnByaWNlIC0gYS5wcmljZVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0cyA9IHJlc3VsdHMuc29ydChcclxuICAgICAgICAoYTogTG91bmdlUXVvdGVSZXN1bHQsIGI6IExvdW5nZVF1b3RlUmVzdWx0KSA9PiBhLnByaWNlIC0gYi5wcmljZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgfVxyXG5cclxuICBzb3J0QnlUZXJtaW5hbChyZXN1bHRBcnJheTogTG91bmdlUXVvdGVbXSA9IFtdKSB7XHJcbiAgICBsZXQgcmVzdWx0cyA9IFsuLi50aGlzLmZ1bGxSZXN1bHRzXTtcclxuICAgIGlmICghcmVzdWx0cy5sZW5ndGgpIHtcclxuICAgICAgcmVzdWx0cyA9IHJlc3VsdEFycmF5O1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGVybWluYWxTb3J0ZXIgPSAoYTogTG91bmdlUXVvdGVSZXN1bHQsIGI6IExvdW5nZVF1b3RlUmVzdWx0KSA9PiB7XHJcbiAgICAgIHJldHVybiAtMTsgLy8gVE9ETyBhLnJhd0RhdGEuRmxpZ2h0VGVybU91dCA+IGIucmF3RGF0YS5GbGlnaHRUZXJtT3V0ID8gMSA6IC0xO1xyXG4gICAgfTtcclxuICAgIHRoaXMucmVzdWx0cy5uZXh0KHJlc3VsdHMuc29ydCh0ZXJtaW5hbFNvcnRlcikpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRnJvbVByZXZpb3VzU2VhcmNoZXMoXHJcbiAgICBwcmV2aW91c0l0ZW1zOiBSZWNvcmQ8U2VydmljZVR5cGUsIEJhc2tldEl0ZW0+XHJcbiAgKTogdm9pZCB7XHJcbiAgICBjb25zdCBmbGlnaHRJdGVtOiBTZWFyY2hGbGlnaHRzVjJRdWVyeVZhcmlhYmxlcyA9XHJcbiAgICAgIHByZXZpb3VzSXRlbXNbU2VydmljZVR5cGUuRmxpZ2h0XT8uc2VhcmNoUXVlcnk7XHJcbiAgICBpZiAoZmxpZ2h0SXRlbSkge1xyXG4gICAgICAvLyBUT0RPIGZsaWdodHMgaGF2ZW4ndCBiZWVuIGRvbmUgeWV0LlxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgYWRkTG91bmdlVG9CYXNrZXQoXHJcbiAgICBsb3VuZ2VRdW90ZTogTG91bmdlUXVvdGUsXHJcbiAgICBsb3VuZ2VRdWVyeTogU2VhcmNoTG91bmdlc1F1ZXJ5VmFyaWFibGVzXHJcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAobG91bmdlUXVvdGUudW5hdmFpbGFibGUpIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBpbnRCYXNrZXQ6IEludGVybmFsQmFza2V0SW50ZXJmYWNlID1cclxuICAgICAgYXdhaXQgdGhpcy5iYXNrZXRTZXJ2aWNlLmdldERlZmF1bHRCYXNrZXQoKTtcclxuICAgIGNvbnN0IGJhc2tldCA9IGludEJhc2tldD8uc3ViamVjdC52YWx1ZTtcclxuICAgIGNvbnN0IHRlcm1zQW5kQ29uZGl0aW9ucyA9IHRoaXMuZ2V0VGVybXNBbmRDb25kKGxvdW5nZVF1b3RlKTtcclxuICAgIGlmIChiYXNrZXQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYmFza2V0U2VydmljZS5hZGRUb0Jhc2tldChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBhZHVsdHM6IGxvdW5nZVF1ZXJ5LmFkdWx0cyxcclxuICAgICAgICAgIGNoaWxkcmVuOiBsb3VuZ2VRdWVyeS5jaGlsZHJlbixcclxuICAgICAgICAgIGluZmFudHM6IGxvdW5nZVF1ZXJ5LmluZmFudHMsXHJcbiAgICAgICAgICBiYXNrZXQ6IGJhc2tldC5pZCxcclxuICAgICAgICAgIHNlcnZpY2U6IGxvdW5nZVF1b3RlLnNvdXJjZUlkLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBkZXRhaWw6IHtcclxuICAgICAgICAgICAgYXJyaXZhbERhdGV0aW1lOiBsb3VuZ2VRdWVyeS5hcnJpdmFsRGF0ZXRpbWUuZm9ybWF0KCksXHJcbiAgICAgICAgICAgIGxvY2F0aW9uQ29kZTogbG91bmdlUXVvdGUuY29kZSxcclxuICAgICAgICAgICAgbmFtZTogbG91bmdlUXVvdGUubmFtZSxcclxuICAgICAgICAgICAgYWlycG9ydElhdGE6IGxvdW5nZVF1ZXJ5Py5sb2NhdGlvbkNvZGUsXHJcbiAgICAgICAgICAgIGxvZ286IGxvdW5nZVF1b3RlLmxvdW5nZS5sb2dvLFxyXG4gICAgICAgICAgICBpbnRyb2R1Y3Rpb246IGxvdW5nZVF1b3RlLmxvdW5nZS5pbnRyb2R1Y3Rpb24sXHJcbiAgICAgICAgICAgIGNvdmlkQ29weTogbG91bmdlUXVvdGUubG91bmdlLm1pc2MuY292aWRDb3B5LFxyXG4gICAgICAgICAgICBjYW5jZWxsYXRpb25JbmZvOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuY2FuY2VsbGF0aW9uSW5mbyxcclxuICAgICAgICAgICAgYWRtZW5kbWVudHNJbmZvOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuYW1lbmRtZW50c0luZm8sXHJcbiAgICAgICAgICAgIGNoZWNrSW5JbmZvOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuY2hlY2tJbkluZm8sXHJcbiAgICAgICAgICAgIGRyZXNzQ29kZTogbG91bmdlUXVvdGUubG91bmdlLmRyZXNzQ29kZSxcclxuICAgICAgICAgICAgZm9vZEFuZEJldmVyYWdlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuZm9vZEFuZEJldmVyYWdlLFxyXG4gICAgICAgICAgICB3aGF0c0luY2x1ZGVkRm9vZDogbG91bmdlUXVvdGUubG91bmdlLndoYXRzSW5jbHVkZWRGb29kLFxyXG4gICAgICAgICAgICB3aGF0c0luY2x1ZGVkRHJpbmtzOiBsb3VuZ2VRdW90ZS5sb3VuZ2Uud2hhdHNJbmNsdWRlZERyaW5rcyxcclxuICAgICAgICAgICAgd2hhdHNJbmNsdWRlZEV4dHJhczogbG91bmdlUXVvdGUubG91bmdlLndoYXRzSW5jbHVkZWRFeHRyYXMsXHJcbiAgICAgICAgICAgIGdyb3VwSW5mbzogbG91bmdlUXVvdGUubG91bmdlLmdyb3VwSW5mbyxcclxuICAgICAgICAgICAgdGVybWluYWw6IGxvdW5nZVF1b3RlLmxvdW5nZS50ZXJtaW5hbD8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgdGVybXNBbmRDb25kOiB0ZXJtc0FuZENvbmRpdGlvbnNcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBwcmljZTogbG91bmdlUXVvdGUucHJpY2UsXHJcbiAgICAgICAgICBjdXJyZW5jeTogbG91bmdlUXVvdGUuY3VycmVuY3ksXHJcbiAgICAgICAgICBzZWFyY2hRdWVyeTogbG91bmdlUXVlcnksXHJcbiAgICAgICAgICBvdXRib3VuZERhdGU6IGxvdW5nZVF1ZXJ5LmFycml2YWxEYXRldGltZS5mb3JtYXQoKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgaW50QmFza2V0LFxyXG4gICAgICAgIHRoaXMuc2VhcmNoU2VydmljZSxcclxuICAgICAgICB0aGlzLnRyYXZlbGxlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpOyAvLyBUT0RPIHNob3VsZCB0aGlzIHRocm93IGFuIGVycm9yP1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVybXNBbmRDb25kKGxvdW5nZVF1b3RlOiBMb3VuZ2VRdW90ZSkge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdOYW1lJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLm5hbWVcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdUZWxlcGhvbmUnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UudGVsZXBob25lXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnSW1wb3J0YW50IEluZm9ybWF0aW9uJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLm1pc2MuaW1wb3J0YW50SW5mb3JtYXRpb25cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdJbnRyb2R1Y3Rpb24nLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuaW50cm9kdWN0aW9uXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnRHJlc3MgQ29kZScsXHJcbiAgICAgICAgdmFsdWU6IGxvdW5nZVF1b3RlLmxvdW5nZS5kcmVzc0NvZGVcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdCdXNpbmVzcyBGYWNpbGl0aWVzJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLm1pc2MuYnVzaW5lc3NmYWNpbGl0aWVzXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnRW50ZXJ0YWlubWVudCBGYWNpbGl0aWVzJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLm1pc2MuZW50ZXJ0YWlubWVudEZhY2lsaXRpZXNcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdEaXNhYmxlZCBGYWNpbGl0aWVzJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLm1pc2MuZmFjaWxpdGllc2Rpc2FibGVkXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnRmFjaWxpdGllcycsXHJcbiAgICAgICAgdmFsdWU6IGxvdW5nZVF1b3RlLmxvdW5nZS5mYWNpbGl0aWVzLnRvU3RyaW5nKClcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdUaW1lcycsXHJcbiAgICAgICAgdmFsdWU6IGBPcGVucyAke2xvdW5nZVF1b3RlLmxvdW5nZS5vcGVuVGltZX07IENsb3NlcyAke2xvdW5nZVF1b3RlLmxvdW5nZS5jbG9zZVRpbWV9YFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0RpcmVjdGlvbnMnLFxyXG4gICAgICAgIHZhbHVlOiBsb3VuZ2VRdW90ZS5sb3VuZ2UuZGlyZWN0aW9uc1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0dyb3VwcycsXHJcbiAgICAgICAgdmFsdWU6IGxvdW5nZVF1b3RlLmxvdW5nZS5ncm91cEluZm9cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdDaGVjay1JbiBUaW1lJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLmNoZWNrSW5JbmZvXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBuYW1lOiAnQW1lbmQgSW5mbycsXHJcbiAgICAgICAgdmFsdWU6IGxvdW5nZVF1b3RlLmxvdW5nZS5hbWVuZG1lbnRzSW5mb1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ0NhbmNlbCBJbmZvJyxcclxuICAgICAgICB2YWx1ZTogbG91bmdlUXVvdGUubG91bmdlLmNhbmNlbGxhdGlvbkluZm9cclxuICAgICAgfVxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlTG93ZXN0UHJpY2UocmVzdWx0czogTG91bmdlUXVvdGVbXSk6IElDaGVhcGVzdFByaWNlIHtcclxuICAgIGlmICghcmVzdWx0cy5sZW5ndGgpIHJldHVybiBudWxsO1xyXG4gICAgY29uc3QgY3VycmVuY3kgPSByZXN1bHRzWzBdLmN1cnJlbmN5O1xyXG4gICAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxyXG4gICAgICAoY2hlYXBlc3RQcmljZTogSUNoZWFwZXN0UHJpY2UsIHJlc3VsdDogTG91bmdlUXVvdGUpID0+IHtcclxuICAgICAgICBjb25zdCBwcmljZSA9IHJlc3VsdC5wcmljZTtcclxuICAgICAgICBpZiAoY2hlYXBlc3RQcmljZS5hbW91bnQgPiBwcmljZSkgY2hlYXBlc3RQcmljZS5hbW91bnQgPSBwcmljZTtcclxuICAgICAgICByZXR1cm4gY2hlYXBlc3RQcmljZTtcclxuICAgICAgfSxcclxuICAgICAgeyBhbW91bnQ6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLCBjdXJyZW5jeUNvZGU6IGN1cnJlbmN5IH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzYXZlU2VhcmNoKCk6IE9ic2VydmFibGU8U2F2ZUZhdm91cml0ZVNlYXJjaFJlc3VsdD57XHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuZ2V0U2VhcmNoUXVlcnkoKTtcclxuICAgICAgY29uc3Qgc2VhcmNoSW5mbyA9IHtcclxuICAgICAgICBuYW1lOiBgJHttb21lbnQoKX1gLFxyXG4gICAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlVHlwZS5Mb3VuZ2UsXHJcbiAgICAgICAgc2VhcmNoQXJnczogc2VhcmNoXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoU2VydmljZS5zYXZlRmF2b3VyaXRlU2VhcmNoKHNlYXJjaEluZm8pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -115,34 +115,44 @@ class AutoSugestManagementInfo extends ManagementInfoAndIsValid {
|
|
|
115
115
|
}
|
|
116
116
|
hasErrors(id) {
|
|
117
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
118
|
-
|
|
119
|
-
return value1
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
118
|
+
try {
|
|
119
|
+
return !this.avaliableItems.find((value1) => {
|
|
120
|
+
return value1.id === id;
|
|
121
|
+
})
|
|
122
|
+
? { hasErrors: true }
|
|
123
|
+
: null;
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
123
128
|
});
|
|
124
129
|
}
|
|
125
130
|
setValue(id) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
131
|
+
try {
|
|
132
|
+
const value = this.avaliableItems.find((value1) => {
|
|
133
|
+
return value1.id === id;
|
|
134
|
+
});
|
|
135
|
+
if (!!value) {
|
|
136
|
+
this.selectedValues = [
|
|
137
|
+
{
|
|
138
|
+
value: {
|
|
139
|
+
id: value.id,
|
|
140
|
+
label: value.label,
|
|
141
|
+
value: value.value,
|
|
142
|
+
default: value.default,
|
|
143
|
+
fixed: value.fixed,
|
|
144
|
+
agentOnly: value.agentOnly
|
|
145
|
+
},
|
|
146
|
+
basketLevelValue: this.perBooking,
|
|
147
|
+
userLevelValue: this.perPassenger
|
|
148
|
+
}
|
|
149
|
+
];
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
this.selectedValues = [];
|
|
153
|
+
}
|
|
144
154
|
}
|
|
145
|
-
|
|
155
|
+
catch (error) {
|
|
146
156
|
this.selectedValues = [];
|
|
147
157
|
}
|
|
148
158
|
}
|
|
@@ -171,17 +181,26 @@ class DropdownManagementInfo extends ManagementInfoAndIsValid {
|
|
|
171
181
|
else {
|
|
172
182
|
console.error('No values for Dropdown MI field ');
|
|
173
183
|
}
|
|
184
|
+
if (this.defaultValue && !this.selectedValues.length) {
|
|
185
|
+
this.value = this.defaultValue.id;
|
|
186
|
+
this.selectedValues[0].value = this.defaultValue;
|
|
187
|
+
}
|
|
174
188
|
}
|
|
175
189
|
getValue() {
|
|
176
190
|
return this.selectedValues[0] ? this.selectedValues[0].value.id : '__NONE';
|
|
177
191
|
}
|
|
178
192
|
hasErrors(id) {
|
|
179
193
|
return __awaiter(this, void 0, void 0, function* () {
|
|
180
|
-
|
|
181
|
-
return value1
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
194
|
+
try {
|
|
195
|
+
return !this.avaliableItems.find((value1) => {
|
|
196
|
+
return value1.id === id;
|
|
197
|
+
})
|
|
198
|
+
? { hasErrors: true }
|
|
199
|
+
: null;
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
185
204
|
});
|
|
186
205
|
}
|
|
187
206
|
setValue(id) {
|
|
@@ -228,4 +247,4 @@ export const makeManagamentInfo = (managementInfo, basketService) => {
|
|
|
228
247
|
}
|
|
229
248
|
return null;
|
|
230
249
|
};
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlbWVudC1pbmZvLWFuZC12YWxpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9tYW5hZ2VtZW50LWluZm8tYW5kLXZhbGlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQVFMLGNBQWMsRUFDZixNQUFNLHdCQUF3QixDQUFDO0FBR2hDLE1BQU0sT0FBZ0Isd0JBQ3BCLFNBQVEsZ0JBQWdCO0lBZ0R4QixZQUFzQixjQUE4QjtRQUNsRCxLQUFLLEVBQUUsQ0FBQztRQXhCVixjQUFjO1FBQ2QsY0FBUyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQTJDMUUsV0FBTSxHQUFHLENBQUMsS0FBeUIsRUFBdUMsRUFBRTtZQUMxRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUM7UUFyQkEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQywwQ0FBMEM7SUFDakYsQ0FBQztJQXRCRCxJQUFJLGNBQWM7UUFHaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFxQztRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFB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LElBQUksQ0FBQyxZQUFZO2lCQUNsQzthQUNGLENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQWdCLEVBQUUsTUFBZTtRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUNuQyxRQUFRLEVBQ1IsSUFBSSxFQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFDL0IsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUNoQyxjQUE4QixFQUM5QixhQUErQyxFQUNyQixFQUFFO0lBQzVCLFFBQVEsY0FBYyxDQUFDLGNBQWMsRUFBRTtRQUNyQyxLQUFLLGNBQWMsQ0FBQyxRQUFRO1lBQzFCLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDbkUsS0FBSyxjQUFjLENBQUMsV0FBVztZQUM3QixPQUFPLElBQUksd0JBQXdCLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3JFLEtBQUssY0FBYyxDQUFDLE1BQU07WUFDeEIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELEtBQUssY0FBYyxDQUFDLFFBQVE7WUFDMUIsT0FBTyxJQUFJLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNuRTtZQUNFLE1BQU0sR0FBRyxHQUFVLGNBQWMsQ0FBQyxjQUFjLENBQUM7WUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNwQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICBzd2l0Y2hNYXAsXHJcbiAgdGFwXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JDaGVja2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy92YWxpZGF0b3IuY2hlY2tlcic7XHJcbmltcG9ydCB7IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JZW50ZXJwcmlzZS1iYXNrZXQuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgRmllbGRXcmFwcGVyLFxyXG4gIE1hbmFnZW1lbnRJbmZvLFxyXG4gIE1hbmFnZW1lbnRJbmZvVmFsdWUsXHJcbiAgTWF5YmUsXHJcbiAgU2NhbGFycyxcclxuICBTZWxlY3RlZE1hbmFnZW1lbnRJbmZvVmFsdWUsXHJcbiAgU2VydmljZSxcclxuICBVaVByZXNlbnRhdGlvblxyXG59IGZyb20gJy4uL3R5cGVzL2dyYXBocWwudHlwZXMnO1xyXG5pbXBvcnQgeyBHZXRNaUF1dG9TdWdlc3Rpb25BcnJheSwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNYW5hZ2VtZW50SW5mb0FuZElzVmFsaWRcclxuICBleHRlbmRzIFZhbGlkYXRvckNoZWNrZXJcclxuICBpbXBsZW1lbnRzIE1hbmFnZW1lbnRJbmZvXHJcbntcclxuICAvLyBNYW5hZ2VtZW50SW5mbyBpbnRlcmZhY2VcclxuICBhZ2VudE9ubHk6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydCb29sZWFuJ10+O1xyXG4gIGNyZWF0ZWRBdDogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0RhdGVUaW1lJ10+O1xyXG4gIGRiSWQ6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydJbnQnXT47XHJcbiAgZGVmYXVsdFZhbHVlPzogTWF5YmU8RmllbGRXcmFwcGVyPE1hbmFnZW1lbnRJbmZvVmFsdWU+PjtcclxuICBkZXNjcmlwdGlvbj86IE1heWJlPEZpZWxkV3JhcHBlcjxTY2FsYXJzWydTdHJpbmcnXT4+O1xyXG4gIGZpeGVkOiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snQm9vbGVhbiddPjtcclxuICBmaXhlZFZhbHVlPzogTWF5YmU8RmllbGRXcmFwcGVyPE1hbmFnZW1lbnRJbmZvVmFsdWU+PjtcclxuICBncm91cD86IE1heWJlPEFycmF5PE1heWJlPEZpZWxkV3JhcHBlcjxTY2FsYXJzWydTdHJpbmcnXT4+Pj47XHJcbiAgaGFuZG9mZjogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPjtcclxuICBpZDogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0lEJ10+O1xyXG4gIG1hbmRhdG9yeTogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0Jvb2xlYW4nXT47XHJcbiAgbmFtZTogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPjtcclxuICBwZXJCb29raW5nOiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snQm9vbGVhbiddPjtcclxuICBwZXJQYXNzZW5nZXI6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydCb29sZWFuJ10+O1xyXG4gIF9zZWxlY3RlZFZhbHVlczogQXJyYXk8TWF5YmU8RmllbGRXcmFwcGVyPFNlbGVjdGVkTWFuYWdlbWVudEluZm9WYWx1ZT4+PjtcclxuICBzZXJ2aWNlOiBGaWVsZFdyYXBwZXI8U2VydmljZT47XHJcbiAgdWlQcmVzZW50YXRpb246IEZpZWxkV3JhcHBlcjxVaVByZXNlbnRhdGlvbj47XHJcbiAgdXBkYXRlZEF0OiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snRGF0ZVRpbWUnXT47XHJcbiAgdmFsdWVNYXNrPzogTWF5YmU8RmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPj47XHJcbiAgdmFsdWVzOiBBcnJheTxNYXliZTxGaWVsZFdyYXBwZXI8TWFuYWdlbWVudEluZm9WYWx1ZT4+PjtcclxuXHJcbiAgLy8gZXh0cmFGaWVsZHNcclxuICBpc0xvYWRpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIGF2YWxpYWJsZUl0ZW1zOiBHZXRNaUF1dG9TdWdlc3Rpb25BcnJheTtcclxuXHJcbiAgZ2V0IHNlbGVjdGVkVmFsdWVzKCk6IEFycmF5PFxyXG4gICAgTWF5YmU8RmllbGRXcmFwcGVyPFNlbGVjdGVkTWFuYWdlbWVudEluZm9WYWx1ZT4+XHJcbiAgPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRWYWx1ZXM7XHJcbiAgfVxyXG5cclxuICBzZXQgc2VsZWN0ZWRWYWx1ZXModmFsdWVzOiBTZWxlY3RlZE1hbmFnZW1lbnRJbmZvVmFsdWVbXSkge1xyXG4gICAgaWYgKCFPYmplY3QuaXModGhpcy5fc2VsZWN0ZWRWYWx1ZXMsIHZhbHVlcykpIHtcclxuICAgICAgdGhpcy5fc2VsZWN0ZWRWYWx1ZXMgPSB2YWx1ZXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZXRWYWx1ZSh2YWwpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKG1hbmFnZW1lbnRJbmZvOiBNYW5hZ2VtZW50SW5mbykge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcywgbWFuYWdlbWVudEluZm8pOyAvLyBUaGlzIHdpbGwgYXV0b21hdGljYWxseSBjYWxsIF9pc1ZhbGlkKClcclxuICB9XHJcblxyXG4gIGlzVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMubWFuZGF0b3J5IHx8IHRoaXMuc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoICE9PSAwO1xyXG4gIH1cclxuXHJcbiAgaGFzRXJyb3JzKHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnM+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHJlc29sdmUoXHJcbiAgICAgICAgdGhpcy5tYW5kYXRvcnkgJiYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPT09IDApXHJcbiAgICAgICAgICA/IHsgaGFzRXJyb3JzOiB0cnVlIH1cclxuICAgICAgICAgIDogbnVsbFxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhYnN0cmFjdCBnZXRWYWx1ZSgpOiBzdHJpbmc7XHJcbiAgYWJzdHJhY3Qgc2V0VmFsdWUodmFsOiBzdHJpbmcpOiB2b2lkO1xyXG4gIHNlYXJjaCA9ICh0ZXJtczogT2JzZXJ2YWJsZTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxHZXRNaUF1dG9TdWdlc3Rpb25BcnJheT4gPT4ge1xyXG4gICAgcmV0dXJuIG9mKFtdKTtcclxuICB9O1xyXG5cclxuICBhYnN0cmFjdCBzYXZlKGJhc2tldGlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZyk6IHZvaWQ7XHJcbn1cclxuXHJcbmNsYXNzIEZyZWVUZXh0TWFuYWdlbWVudEluZm8gZXh0ZW5kcyBNYW5hZ2VtZW50SW5mb0FuZElzVmFsaWQge1xyXG4gIHRlbXBWYWx1ZTogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgbWFuYWdlbWVudEluZm86IE1hbmFnZW1lbnRJbmZvLFxyXG4gICAgcHJpdmF0ZSBiYXNrZXRTZXJ2aWNlOiBFbnRlcnByaXNlQmFza2V0U2VydmljZUludGVyZmFjZVxyXG4gICkge1xyXG4gICAgc3VwZXIobWFuYWdlbWVudEluZm8pO1xyXG4gICAgdGhpcy50ZW1wVmFsdWUgPSB0aGlzLnNlbGVjdGVkVmFsdWVzXHJcbiAgICAgID8gdGhpcy5zZWxlY3RlZFZhbHVlc1swXT8uZnJlZVZhbHVlIHx8ICcnXHJcbiAgICAgIDogJyc7XHJcbiAgfVxyXG4gIGdldFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wVmFsdWU7XHJcbiAgfVxyXG4gIHNldFZhbHVlKHZhbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50ZW1wVmFsdWUgPT09IHZhbCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRlbXBWYWx1ZSA9IHZhbDtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgZnJlZVZhbHVlOiB2YWwsXHJcbiAgICAgICAgYmFza2V0TGV2ZWxWYWx1ZTogdGhpcy5wZXJCb29raW5nLFxyXG4gICAgICAgIHVzZXJMZXZlbFZhbHVlOiB0aGlzLnBlclBhc3NlbmdlclxyXG4gICAgICB9XHJcbiAgICBdO1xyXG4gIH1cclxuXHJcbiAgc2F2ZShiYXNrZXRpZDogc3RyaW5nLCB1c2VySWQ/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYmFza2V0U2VydmljZS5zZXRNaUZyZWVWYWx1ZShcclxuICAgICAgYmFza2V0aWQsXHJcbiAgICAgIHRoaXMsXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0gPyB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdLmZyZWVWYWx1ZSA6ICcnLFxyXG4gICAgICB1c2VySWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcnModmFsdWU6IHN0cmluZyk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgaWYgKHRoaXMubWFuZGF0b3J5ICYmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoID09PSAwKSkge1xyXG4gICAgICAgIHJlc29sdmUoeyBoYXNFcnJvcnM6IHRydWUgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudmFsdWVNYXNrICYmICEhdmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNrZXRTZXJ2aWNlXHJcbiAgICAgICAgICAudmFsaWRhdGVGcmVlVmFsZU1pKHRoaXMsIHZhbHVlKVxyXG4gICAgICAgICAgLnRoZW4oKHJlc3VsdDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdCA/IG51bGwgOiB7IGhhc0Vycm9yczogdHJ1ZSB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICByZXNvbHZlKFxyXG4gICAgICAgICAgISF0aGlzLnZhbHVlcy5maW5kKChtaXY6IE1hbmFnZW1lbnRJbmZvVmFsdWUpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG1pdi52YWx1ZSA9PT0gdmFsdWU7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICA/IG51bGxcclxuICAgICAgICAgICAgOiB7IGhhc0Vycm9yczogdHJ1ZSB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXNvbHZlKHN1cGVyLmhhc0Vycm9ycyh2YWx1ZSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmNsYXNzIEF1dG9TdWdlc3RNYW5hZ2VtZW50SW5mbyBleHRlbmRzIE1hbmFnZW1lbnRJbmZvQW5kSXNWYWxpZCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBtYW5hZ2VtZW50SW5mbzogTWFuYWdlbWVudEluZm8sXHJcbiAgICBwcml2YXRlIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtYW5hZ2VtZW50SW5mbyk7XHJcbiAgICBpZiAodGhpcy52YWx1ZXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hdmFsaWFibGVJdGVtcyA9IHRoaXMudmFsdWVzO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0gPyB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdLnZhbHVlLmlkIDogJ19fTk9ORSc7XHJcbiAgfVxyXG5cclxuICBhc3luYyBoYXNFcnJvcnMoaWQ6IHN0cmluZyk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgcmV0dXJuICF0aGlzLmF2YWxpYWJsZUl0ZW1zLmZpbmQoKHZhbHVlMTogTWFuYWdlbWVudEluZm9WYWx1ZSkgPT4ge1xyXG4gICAgICByZXR1cm4gdmFsdWUxLmlkID09PSBpZDtcclxuICAgIH0pXHJcbiAgICAgID8geyBoYXNFcnJvcnM6IHRydWUgfVxyXG4gICAgICA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZShpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZTogTWFuYWdlbWVudEluZm9WYWx1ZSA9IHRoaXMuYXZhbGlhYmxlSXRlbXMuZmluZChcclxuICAgICAgKHZhbHVlMTogTWFuYWdlbWVudEluZm9WYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTEuaWQgPT09IGlkO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgaWYgKCEhdmFsdWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgICBpZDogdmFsdWUuaWQsXHJcbiAgICAgICAgICAgIGxhYmVsOiB2YWx1ZS5sYWJlbCxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLnZhbHVlLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB2YWx1ZS5kZWZhdWx0LFxyXG4gICAgICAgICAgICBmaXhlZDogdmFsdWUuZml4ZWQsXHJcbiAgICAgICAgICAgIGFnZW50T25seTogdmFsdWUuYWdlbnRPbmx5XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYmFza2V0TGV2ZWxWYWx1ZTogdGhpcy5wZXJCb29raW5nLFxyXG4gICAgICAgICAgdXNlckxldmVsVmFsdWU6IHRoaXMucGVyUGFzc2VuZ2VyXHJcbiAgICAgICAgfVxyXG4gICAgICBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VhcmNoID0gKHRlcm1zOiBPYnNlcnZhYmxlPHN0cmluZz4pOiBPYnNlcnZhYmxlPEdldE1pQXV0b1N1Z2VzdGlvbkFycmF5PiA9PiB7XHJcbiAgICByZXR1cm4gdGVybXMucGlwZShcclxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgIHN3aXRjaE1hcCgodGVybTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2IgPVxyXG4gICAgICAgICAgdGVybS5sZW5ndGggPiAyXHJcbiAgICAgICAgICAgID8gdGhpcy5iYXNrZXRTZXJ2aWNlLmdldE1pQXV0b1N1Z2VzdGlvbnMoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlkLFxyXG4gICAgICAgICAgICAgICAgdGVybSxcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICA6IG9mKHRoaXMuYXZhbGlhYmxlSXRlbXMpO1xyXG5cclxuICAgICAgICByZXR1cm4gb2I7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAoKHN1Z2VzdGlvbnM6IEdldE1pQXV0b1N1Z2VzdGlvbkFycmF5KSA9PiB7XHJcbiAgICAgICAgdGhpcy5hdmFsaWFibGVJdGVtcyA9IHN1Z2VzdGlvbnM7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH07XHJcblxyXG4gIHNhdmUoYmFza2V0aWQ6IHN0cmluZywgdXNlcmlkPzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmJhc2tldFNlcnZpY2Uuc2V0TWlTZWxlY3RlZFZhbHVlKFxyXG4gICAgICBiYXNrZXRpZCxcclxuICAgICAgdGhpcyxcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZS5pZCxcclxuICAgICAgdXNlcmlkXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuY2xhc3MgSGlkZGVuTWFuYWdlbWVudEluZm8gZXh0ZW5kcyBNYW5hZ2VtZW50SW5mb0FuZElzVmFsaWQge1xyXG4gIGNvbnN0cnVjdG9yKG1hbmFnZW1lbnRJbmZvOiBNYW5hZ2VtZW50SW5mbykge1xyXG4gICAgc3VwZXIobWFuYWdlbWVudEluZm8pO1xyXG4gIH1cclxuICBnZXRWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuICBzZXRWYWx1ZSh2YWw6IHN0cmluZyk6IHZvaWQge31cclxuXHJcbiAgc2F2ZShiYXNrZXRpZDogc3RyaW5nLCB1c2VySWQ/OiBzdHJpbmcpIHt9XHJcbn1cclxuXHJcbmNsYXNzIERyb3Bkb3duTWFuYWdlbWVudEluZm8gZXh0ZW5kcyBNYW5hZ2VtZW50SW5mb0FuZElzVmFsaWQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgbWFuYWdlbWVudEluZm86IE1hbmFnZW1lbnRJbmZvLFxyXG4gICAgcHJpdmF0ZSBiYXNrZXRTZXJ2aWNlOiBFbnRlcnByaXNlQmFza2V0U2VydmljZUludGVyZmFjZVxyXG4gICkge1xyXG4gICAgc3VwZXIobWFuYWdlbWVudEluZm8pO1xyXG4gICAgaWYgKHRoaXMudmFsdWVzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYXZhbGlhYmxlSXRlbXMgPSB0aGlzLnZhbHVlcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ05vIHZhbHVlcyBmb3IgRHJvcGRvd24gTUkgZmllbGQgICcpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0gPyB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdLnZhbHVlLmlkIDogJ19fTk9ORSc7XHJcbiAgfVxyXG5cclxuICBhc3luYyBoYXNFcnJvcnMoaWQ6IHN0cmluZyk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgcmV0dXJuICF0aGlzLmF2YWxpYWJsZUl0ZW1zLmZpbmQoKHZhbHVlMTogTWFuYWdlbWVudEluZm9WYWx1ZSkgPT4ge1xyXG4gICAgICByZXR1cm4gdmFsdWUxLmlkID09PSBpZDtcclxuICAgIH0pXHJcbiAgICAgID8geyBoYXNFcnJvcnM6IHRydWUgfVxyXG4gICAgICA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZShpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB2YWx1ZTogTWFuYWdlbWVudEluZm9WYWx1ZSA9IHRoaXMuYXZhbGlhYmxlSXRlbXMuZmluZChcclxuICAgICAgKHZhbHVlMTogTWFuYWdlbWVudEluZm9WYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTEuaWQgPT09IGlkO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgaWYgKCEhdmFsdWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgICBpZDogdmFsdWUuaWQsXHJcbiAgICAgICAgICAgIGxhYmVsOiB2YWx1ZS5sYWJlbCxcclxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLnZhbHVlLFxyXG4gICAgICAgICAgICBkZWZhdWx0OiB2YWx1ZS5kZWZhdWx0LFxyXG4gICAgICAgICAgICBmaXhlZDogdmFsdWUuZml4ZWQsXHJcbiAgICAgICAgICAgIGFnZW50T25seTogdmFsdWUuYWdlbnRPbmx5XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgYmFza2V0TGV2ZWxWYWx1ZTogdGhpcy5wZXJCb29raW5nLFxyXG4gICAgICAgICAgdXNlckxldmVsVmFsdWU6IHRoaXMucGVyUGFzc2VuZ2VyXHJcbiAgICAgICAgfVxyXG4gICAgICBdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2F2ZShiYXNrZXRpZDogc3RyaW5nLCB1c2VyaWQ/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYmFza2V0U2VydmljZS5zZXRNaVNlbGVjdGVkVmFsdWUoXHJcbiAgICAgIGJhc2tldGlkLFxyXG4gICAgICB0aGlzLFxyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdLnZhbHVlLmlkLFxyXG4gICAgICB1c2VyaWRcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgbWFrZU1hbmFnYW1lbnRJbmZvID0gKFxyXG4gIG1hbmFnZW1lbnRJbmZvOiBNYW5hZ2VtZW50SW5mbyxcclxuICBiYXNrZXRTZXJ2aWNlOiBFbnRlcnByaXNlQmFza2V0U2VydmljZUludGVyZmFjZVxyXG4pOiBNYW5hZ2VtZW50SW5mb0FuZElzVmFsaWQgPT4ge1xyXG4gIHN3aXRjaCAobWFuYWdlbWVudEluZm8udWlQcmVzZW50YXRpb24pIHtcclxuICAgIGNhc2UgVWlQcmVzZW50YXRpb24uRnJlZVRleHQ6XHJcbiAgICAgIHJldHVybiBuZXcgRnJlZVRleHRNYW5hZ2VtZW50SW5mbyhtYW5hZ2VtZW50SW5mbywgYmFza2V0U2VydmljZSk7XHJcbiAgICBjYXNlIFVpUHJlc2VudGF0aW9uLkF1dG9TdWdnZXN0OlxyXG4gICAgICByZXR1cm4gbmV3IEF1dG9TdWdlc3RNYW5hZ2VtZW50SW5mbyhtYW5hZ2VtZW50SW5mbywgYmFza2V0U2VydmljZSk7XHJcbiAgICBjYXNlIFVpUHJlc2VudGF0aW9uLkhpZGRlbjpcclxuICAgICAgcmV0dXJuIG5ldyBIaWRkZW5NYW5hZ2VtZW50SW5mbyhtYW5hZ2VtZW50SW5mbyk7XHJcbiAgICBjYXNlIFVpUHJlc2VudGF0aW9uLkRyb3Bkb3duOlxyXG4gICAgICByZXR1cm4gbmV3IERyb3Bkb3duTWFuYWdlbWVudEluZm8obWFuYWdlbWVudEluZm8sIGJhc2tldFNlcnZpY2UpO1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgY29uc3QgdG1wOiBuZXZlciA9IG1hbmFnZW1lbnRJbmZvLnVpUHJlc2VudGF0aW9uO1xyXG4gICAgICBjb25zb2xlLmxvZyh0bXApO1xyXG4gIH1cclxuICByZXR1cm4gbnVsbDtcclxufTtcclxuIl19
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlbWVudC1pbmZvLWFuZC12YWxpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9tYW5hZ2VtZW50LWluZm8tYW5kLXZhbGlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixTQUFTLEVBQ1QsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEUsT0FBTyxFQVFMLGNBQWMsRUFDZixNQUFNLHdCQUF3QixDQUFDO0FBR2hDLE1BQU0sT0FBZ0Isd0JBQ3BCLFNBQVEsZ0JBQWdCO0lBaUR4QixZQUFzQixjQUE4QjtRQUNsRCxLQUFLLEVBQUUsQ0FBQztRQXhCVixjQUFjO1FBQ2QsY0FBUyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQTJDMUUsV0FBTSxHQUFHLENBQUMsS0FBeUIsRUFBdUMsRUFBRTtZQUMxRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQixDQUFDLENBQUM7UUFyQkEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQywwQ0FBMEM7SUFDakYsQ0FBQztJQXRCRCxJQUFJLGNBQWM7UUFHaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxNQUFxQztRQUN0RCxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFB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LENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3JFLEtBQUssY0FBYyxDQUFDLE1BQU07WUFDeEIsT0FBTyxJQUFJLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELEtBQUssY0FBYyxDQUFDLFFBQVE7WUFDMUIsT0FBTyxJQUFJLHNCQUFzQixDQUFDLGNBQWMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNuRTtZQUNFLE1BQU0sR0FBRyxHQUFVLGNBQWMsQ0FBQyxjQUFjLENBQUM7WUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNwQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICBzd2l0Y2hNYXAsXHJcbiAgdGFwXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JDaGVja2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy92YWxpZGF0b3IuY2hlY2tlcic7XHJcbmltcG9ydCB7IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JZW50ZXJwcmlzZS1iYXNrZXQuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgRmllbGRXcmFwcGVyLFxyXG4gIE1hbmFnZW1lbnRJbmZvLFxyXG4gIE1hbmFnZW1lbnRJbmZvVmFsdWUsXHJcbiAgTWF5YmUsXHJcbiAgU2NhbGFycyxcclxuICBTZWxlY3RlZE1hbmFnZW1lbnRJbmZvVmFsdWUsXHJcbiAgU2VydmljZSxcclxuICBVaVByZXNlbnRhdGlvblxyXG59IGZyb20gJy4uL3R5cGVzL2dyYXBocWwudHlwZXMnO1xyXG5pbXBvcnQgeyBHZXRNaUF1dG9TdWdlc3Rpb25BcnJheSwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNYW5hZ2VtZW50SW5mb0FuZElzVmFsaWRcclxuICBleHRlbmRzIFZhbGlkYXRvckNoZWNrZXJcclxuICBpbXBsZW1lbnRzIE1hbmFnZW1lbnRJbmZvXHJcbntcclxuICAvLyBNYW5hZ2VtZW50SW5mbyBpbnRlcmZhY2VcclxuICBhZ2VudE9ubHk6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydCb29sZWFuJ10+O1xyXG4gIGNyZWF0ZWRBdDogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0RhdGVUaW1lJ10+O1xyXG4gIGRiSWQ6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydJbnQnXT47XHJcbiAgZGVmYXVsdFZhbHVlPzogTWF5YmU8RmllbGRXcmFwcGVyPE1hbmFnZW1lbnRJbmZvVmFsdWU+PjtcclxuICBkZXNjcmlwdGlvbj86IE1heWJlPEZpZWxkV3JhcHBlcjxTY2FsYXJzWydTdHJpbmcnXT4+O1xyXG4gIGZpeGVkOiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snQm9vbGVhbiddPjtcclxuICBmaXhlZFZhbHVlPzogTWF5YmU8RmllbGRXcmFwcGVyPE1hbmFnZW1lbnRJbmZvVmFsdWU+PjtcclxuICBncm91cD86IE1heWJlPEFycmF5PE1heWJlPEZpZWxkV3JhcHBlcjxTY2FsYXJzWydTdHJpbmcnXT4+Pj47XHJcbiAgaGFuZG9mZjogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPjtcclxuICBpZDogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0lEJ10+O1xyXG4gIG1hbmRhdG9yeTogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ0Jvb2xlYW4nXT47XHJcbiAgbmFtZTogRmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPjtcclxuICBwZXJCb29raW5nOiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snQm9vbGVhbiddPjtcclxuICBwZXJQYXNzZW5nZXI6IEZpZWxkV3JhcHBlcjxTY2FsYXJzWydCb29sZWFuJ10+O1xyXG4gIF9zZWxlY3RlZFZhbHVlczogQXJyYXk8TWF5YmU8RmllbGRXcmFwcGVyPFNlbGVjdGVkTWFuYWdlbWVudEluZm9WYWx1ZT4+PjtcclxuICBzZXJ2aWNlOiBGaWVsZFdyYXBwZXI8U2VydmljZT47XHJcbiAgdWlQcmVzZW50YXRpb246IEZpZWxkV3JhcHBlcjxVaVByZXNlbnRhdGlvbj47XHJcbiAgdXBkYXRlZEF0OiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snRGF0ZVRpbWUnXT47XHJcbiAgdmFsdWVNYXNrPzogTWF5YmU8RmllbGRXcmFwcGVyPFNjYWxhcnNbJ1N0cmluZyddPj47XHJcbiAgdmFsdWVzOiBBcnJheTxNYXliZTxGaWVsZFdyYXBwZXI8TWFuYWdlbWVudEluZm9WYWx1ZT4+PjtcclxuICB0ZW1wVmFsdWU/OiBGaWVsZFdyYXBwZXI8U2NhbGFyc1snU3RyaW5nJ10+O1xyXG5cclxuICAvLyBleHRyYUZpZWxkc1xyXG4gIGlzTG9hZGluZzogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgYXZhbGlhYmxlSXRlbXM6IEdldE1pQXV0b1N1Z2VzdGlvbkFycmF5O1xyXG5cclxuICBnZXQgc2VsZWN0ZWRWYWx1ZXMoKTogQXJyYXk8XHJcbiAgICBNYXliZTxGaWVsZFdyYXBwZXI8U2VsZWN0ZWRNYW5hZ2VtZW50SW5mb1ZhbHVlPj5cclxuICA+IHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFZhbHVlcztcclxuICB9XHJcblxyXG4gIHNldCBzZWxlY3RlZFZhbHVlcyh2YWx1ZXM6IFNlbGVjdGVkTWFuYWdlbWVudEluZm9WYWx1ZVtdKSB7XHJcbiAgICBpZiAoIU9iamVjdC5pcyh0aGlzLl9zZWxlY3RlZFZhbHVlcywgdmFsdWVzKSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3RlZFZhbHVlcyA9IHZhbHVlcztcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0IHZhbHVlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNldFZhbHVlKHZhbCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IobWFuYWdlbWVudEluZm86IE1hbmFnZW1lbnRJbmZvKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBtYW5hZ2VtZW50SW5mbyk7IC8vIFRoaXMgd2lsbCBhdXRvbWF0aWNhbGx5IGNhbGwgX2lzVmFsaWQoKVxyXG4gIH1cclxuXHJcbiAgaXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5tYW5kYXRvcnkgfHwgdGhpcy5zZWxlY3RlZFZhbHVlcy5sZW5ndGggIT09IDA7XHJcbiAgfVxyXG5cclxuICBoYXNFcnJvcnModmFsdWU6IHN0cmluZyk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgcmVzb2x2ZShcclxuICAgICAgICB0aGlzLm1hbmRhdG9yeSAmJiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgID8geyBoYXNFcnJvcnM6IHRydWUgfVxyXG4gICAgICAgICAgOiBudWxsXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFic3RyYWN0IGdldFZhbHVlKCk6IHN0cmluZztcclxuICBhYnN0cmFjdCBzZXRWYWx1ZSh2YWw6IHN0cmluZyk6IHZvaWQ7XHJcbiAgc2VhcmNoID0gKHRlcm1zOiBPYnNlcnZhYmxlPHN0cmluZz4pOiBPYnNlcnZhYmxlPEdldE1pQXV0b1N1Z2VzdGlvbkFycmF5PiA9PiB7XHJcbiAgICByZXR1cm4gb2YoW10pO1xyXG4gIH07XHJcblxyXG4gIGFic3RyYWN0IHNhdmUoYmFza2V0aWQ6IHN0cmluZywgdXNlcklkPzogc3RyaW5nKTogdm9pZDtcclxufVxyXG5cclxuY2xhc3MgRnJlZVRleHRNYW5hZ2VtZW50SW5mbyBleHRlbmRzIE1hbmFnZW1lbnRJbmZvQW5kSXNWYWxpZCB7XHJcbiAgdGVtcFZhbHVlOiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBtYW5hZ2VtZW50SW5mbzogTWFuYWdlbWVudEluZm8sXHJcbiAgICBwcml2YXRlIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtYW5hZ2VtZW50SW5mbyk7XHJcbiAgICB0aGlzLnRlbXBWYWx1ZSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNcclxuICAgICAgPyB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdPy5mcmVlVmFsdWUgfHwgJydcclxuICAgICAgOiAnJztcclxuICB9XHJcbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRlbXBWYWx1ZTtcclxuICB9XHJcbiAgc2V0VmFsdWUodmFsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRlbXBWYWx1ZSA9PT0gdmFsKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGVtcFZhbHVlID0gdmFsO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBmcmVlVmFsdWU6IHZhbCxcclxuICAgICAgICBiYXNrZXRMZXZlbFZhbHVlOiB0aGlzLnBlckJvb2tpbmcsXHJcbiAgICAgICAgdXNlckxldmVsVmFsdWU6IHRoaXMucGVyUGFzc2VuZ2VyXHJcbiAgICAgIH1cclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBzYXZlKGJhc2tldGlkOiBzdHJpbmcsIHVzZXJJZD86IHN0cmluZykge1xyXG4gICAgdGhpcy5iYXNrZXRTZXJ2aWNlLnNldE1pRnJlZVZhbHVlKFxyXG4gICAgICBiYXNrZXRpZCxcclxuICAgICAgdGhpcyxcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc1swXSA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0uZnJlZVZhbHVlIDogJycsXHJcbiAgICAgIHVzZXJJZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGhhc0Vycm9ycyh2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5tYW5kYXRvcnkgJiYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgICAgcmVzb2x2ZSh7IGhhc0Vycm9yczogdHJ1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy52YWx1ZU1hc2sgJiYgISF2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2tldFNlcnZpY2VcclxuICAgICAgICAgIC52YWxpZGF0ZUZyZWVWYWxlTWkodGhpcywgdmFsdWUpXHJcbiAgICAgICAgICAudGhlbigocmVzdWx0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0ID8gbnVsbCA6IHsgaGFzRXJyb3JzOiB0cnVlIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJlc29sdmUoXHJcbiAgICAgICAgICAhIXRoaXMudmFsdWVzLmZpbmQoKG1pdjogTWFuYWdlbWVudEluZm9WYWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbWl2LnZhbHVlID09PSB2YWx1ZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgID8gbnVsbFxyXG4gICAgICAgICAgICA6IHsgaGFzRXJyb3JzOiB0cnVlIH1cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc29sdmUoc3VwZXIuaGFzRXJyb3JzKHZhbHVlKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuY2xhc3MgQXV0b1N1Z2VzdE1hbmFnZW1lbnRJbmZvIGV4dGVuZHMgTWFuYWdlbWVudEluZm9BbmRJc1ZhbGlkIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG1hbmFnZW1lbnRJbmZvOiBNYW5hZ2VtZW50SW5mbyxcclxuICAgIHByaXZhdGUgYmFza2V0U2VydmljZTogRW50ZXJwcmlzZUJhc2tldFNlcnZpY2VJbnRlcmZhY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1hbmFnZW1lbnRJbmZvKTtcclxuICAgIGlmICh0aGlzLnZhbHVlcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmF2YWxpYWJsZUl0ZW1zID0gdGhpcy52YWx1ZXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFZhbHVlc1swXSA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0udmFsdWUuaWQgOiAnX19OT05FJztcclxuICB9XHJcblxyXG4gIGFzeW5jIGhhc0Vycm9ycyhpZDogc3RyaW5nKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gIXRoaXMuYXZhbGlhYmxlSXRlbXMuZmluZCgodmFsdWUxOiBNYW5hZ2VtZW50SW5mb1ZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlMS5pZCA9PT0gaWQ7XHJcbiAgICAgIH0pXHJcbiAgICAgICAgPyB7IGhhc0Vycm9yczogdHJ1ZSB9XHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHZhbHVlOiBNYW5hZ2VtZW50SW5mb1ZhbHVlID0gdGhpcy5hdmFsaWFibGVJdGVtcy5maW5kKFxyXG4gICAgICAgICh2YWx1ZTE6IE1hbmFnZW1lbnRJbmZvVmFsdWUpID0+IHtcclxuICAgICAgICAgIHJldHVybiB2YWx1ZTEuaWQgPT09IGlkO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgaWYgKCEhdmFsdWUpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgICAgIGlkOiB2YWx1ZS5pZCxcclxuICAgICAgICAgICAgICBsYWJlbDogdmFsdWUubGFiZWwsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLnZhbHVlLFxyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6IHZhbHVlLmRlZmF1bHQsXHJcbiAgICAgICAgICAgICAgZml4ZWQ6IHZhbHVlLmZpeGVkLFxyXG4gICAgICAgICAgICAgIGFnZW50T25seTogdmFsdWUuYWdlbnRPbmx5XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGJhc2tldExldmVsVmFsdWU6IHRoaXMucGVyQm9va2luZyxcclxuICAgICAgICAgICAgdXNlckxldmVsVmFsdWU6IHRoaXMucGVyUGFzc2VuZ2VyXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlYXJjaCA9ICh0ZXJtczogT2JzZXJ2YWJsZTxzdHJpbmc+KTogT2JzZXJ2YWJsZTxHZXRNaUF1dG9TdWdlc3Rpb25BcnJheT4gPT4ge1xyXG4gICAgcmV0dXJuIHRlcm1zLnBpcGUoXHJcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICBzd2l0Y2hNYXAoKHRlcm06IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9iID1cclxuICAgICAgICAgIHRlcm0ubGVuZ3RoID4gMlxyXG4gICAgICAgICAgICA/IHRoaXMuYmFza2V0U2VydmljZS5nZXRNaUF1dG9TdWdlc3Rpb25zKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pZCxcclxuICAgICAgICAgICAgICAgIHRlcm0sXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZ1xyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgOiBvZih0aGlzLmF2YWxpYWJsZUl0ZW1zKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG9iO1xyXG4gICAgICB9KSxcclxuICAgICAgdGFwKChzdWdlc3Rpb25zOiBHZXRNaUF1dG9TdWdlc3Rpb25BcnJheSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXZhbGlhYmxlSXRlbXMgPSBzdWdlc3Rpb25zO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICBzYXZlKGJhc2tldGlkOiBzdHJpbmcsIHVzZXJpZD86IHN0cmluZykge1xyXG4gICAgdGhpcy5iYXNrZXRTZXJ2aWNlLnNldE1pU2VsZWN0ZWRWYWx1ZShcclxuICAgICAgYmFza2V0aWQsXHJcbiAgICAgIHRoaXMsXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0udmFsdWUuaWQsXHJcbiAgICAgIHVzZXJpZFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmNsYXNzIEhpZGRlbk1hbmFnZW1lbnRJbmZvIGV4dGVuZHMgTWFuYWdlbWVudEluZm9BbmRJc1ZhbGlkIHtcclxuICBjb25zdHJ1Y3RvcihtYW5hZ2VtZW50SW5mbzogTWFuYWdlbWVudEluZm8pIHtcclxuICAgIHN1cGVyKG1hbmFnZW1lbnRJbmZvKTtcclxuICB9XHJcbiAgZ2V0VmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiAnJztcclxuICB9XHJcbiAgc2V0VmFsdWUodmFsOiBzdHJpbmcpOiB2b2lkIHt9XHJcblxyXG4gIHNhdmUoYmFza2V0aWQ6IHN0cmluZywgdXNlcklkPzogc3RyaW5nKSB7fVxyXG59XHJcblxyXG5jbGFzcyBEcm9wZG93bk1hbmFnZW1lbnRJbmZvIGV4dGVuZHMgTWFuYWdlbWVudEluZm9BbmRJc1ZhbGlkIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG1hbmFnZW1lbnRJbmZvOiBNYW5hZ2VtZW50SW5mbyxcclxuICAgIHByaXZhdGUgYmFza2V0U2VydmljZTogRW50ZXJwcmlzZUJhc2tldFNlcnZpY2VJbnRlcmZhY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1hbmFnZW1lbnRJbmZvKTtcclxuICAgIGlmICh0aGlzLnZhbHVlcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmF2YWxpYWJsZUl0ZW1zID0gdGhpcy52YWx1ZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdObyB2YWx1ZXMgZm9yIERyb3Bkb3duIE1JIGZpZWxkICAnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRlZmF1bHRWYWx1ZSAmJiAhdGhpcy5zZWxlY3RlZFZhbHVlcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZGVmYXVsdFZhbHVlLmlkO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzWzBdLnZhbHVlID0gdGhpcy5kZWZhdWx0VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFZhbHVlc1swXSA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0udmFsdWUuaWQgOiAnX19OT05FJztcclxuICB9XHJcblxyXG4gIGFzeW5jIGhhc0Vycm9ycyhpZDogc3RyaW5nKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzPiB7XHJcbiAgICB0cnkge1xyXG4gICAgICByZXR1cm4gIXRoaXMuYXZhbGlhYmxlSXRlbXMuZmluZCgodmFsdWUxOiBNYW5hZ2VtZW50SW5mb1ZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlMS5pZCA9PT0gaWQ7XHJcbiAgICAgIH0pXHJcbiAgICAgICAgPyB7IGhhc0Vycm9yczogdHJ1ZSB9XHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHZhbHVlOiBNYW5hZ2VtZW50SW5mb1ZhbHVlID0gdGhpcy5hdmFsaWFibGVJdGVtcy5maW5kKFxyXG4gICAgICAodmFsdWUxOiBNYW5hZ2VtZW50SW5mb1ZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlMS5pZCA9PT0gaWQ7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAoISF2YWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHZhbHVlOiB7XHJcbiAgICAgICAgICAgIGlkOiB2YWx1ZS5pZCxcclxuICAgICAgICAgICAgbGFiZWw6IHZhbHVlLmxhYmVsLFxyXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUudmFsdWUsXHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHZhbHVlLmRlZmF1bHQsXHJcbiAgICAgICAgICAgIGZpeGVkOiB2YWx1ZS5maXhlZCxcclxuICAgICAgICAgICAgYWdlbnRPbmx5OiB2YWx1ZS5hZ2VudE9ubHlcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBiYXNrZXRMZXZlbFZhbHVlOiB0aGlzLnBlckJvb2tpbmcsXHJcbiAgICAgICAgICB1c2VyTGV2ZWxWYWx1ZTogdGhpcy5wZXJQYXNzZW5nZXJcclxuICAgICAgICB9XHJcbiAgICAgIF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzYXZlKGJhc2tldGlkOiBzdHJpbmcsIHVzZXJpZD86IHN0cmluZykge1xyXG4gICAgdGhpcy5iYXNrZXRTZXJ2aWNlLnNldE1pU2VsZWN0ZWRWYWx1ZShcclxuICAgICAgYmFza2V0aWQsXHJcbiAgICAgIHRoaXMsXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNbMF0udmFsdWUuaWQsXHJcbiAgICAgIHVzZXJpZFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBtYWtlTWFuYWdhbWVudEluZm8gPSAoXHJcbiAgbWFuYWdlbWVudEluZm86IE1hbmFnZW1lbnRJbmZvLFxyXG4gIGJhc2tldFNlcnZpY2U6IEVudGVycHJpc2VCYXNrZXRTZXJ2aWNlSW50ZXJmYWNlXHJcbik6IE1hbmFnZW1lbnRJbmZvQW5kSXNWYWxpZCA9PiB7XHJcbiAgc3dpdGNoIChtYW5hZ2VtZW50SW5mby51aVByZXNlbnRhdGlvbikge1xyXG4gICAgY2FzZSBVaVByZXNlbnRhdGlvbi5GcmVlVGV4dDpcclxuICAgICAgcmV0dXJuIG5ldyBGcmVlVGV4dE1hbmFnZW1lbnRJbmZvKG1hbmFnZW1lbnRJbmZvLCBiYXNrZXRTZXJ2aWNlKTtcclxuICAgIGNhc2UgVWlQcmVzZW50YXRpb24uQXV0b1N1Z2dlc3Q6XHJcbiAgICAgIHJldHVybiBuZXcgQXV0b1N1Z2VzdE1hbmFnZW1lbnRJbmZvKG1hbmFnZW1lbnRJbmZvLCBiYXNrZXRTZXJ2aWNlKTtcclxuICAgIGNhc2UgVWlQcmVzZW50YXRpb24uSGlkZGVuOlxyXG4gICAgICByZXR1cm4gbmV3IEhpZGRlbk1hbmFnZW1lbnRJbmZvKG1hbmFnZW1lbnRJbmZvKTtcclxuICAgIGNhc2UgVWlQcmVzZW50YXRpb24uRHJvcGRvd246XHJcbiAgICAgIHJldHVybiBuZXcgRHJvcGRvd25NYW5hZ2VtZW50SW5mbyhtYW5hZ2VtZW50SW5mbywgYmFza2V0U2VydmljZSk7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICBjb25zdCB0bXA6IG5ldmVyID0gbWFuYWdlbWVudEluZm8udWlQcmVzZW50YXRpb247XHJcbiAgICAgIGNvbnNvbGUubG9nKHRtcCk7XHJcbiAgfVxyXG4gIHJldHVybiBudWxsO1xyXG59O1xyXG4iXX0=
|
|
@@ -19,4 +19,8 @@ ModalTypes.ModalNetWorkErrorComponent = new ModalTypes('ModalNetworkErrorCompone
|
|
|
19
19
|
ModalTypes.BaseModalComponent = new ModalTypes('BaseModalComponent');
|
|
20
20
|
ModalTypes.AutoLogout = new ModalTypes('AutoLogout');
|
|
21
21
|
ModalTypes.RiskAlertDetail = new ModalTypes('RiskAlertDetailModalComponent');
|
|
22
|
-
|
|
22
|
+
ModalTypes.AlternativeRailModalComponent = new ModalTypes('AlternativeRailModalComponent');
|
|
23
|
+
ModalTypes.WarningRemoveModalComponent = new ModalTypes('WarningRemoveModalComponent');
|
|
24
|
+
ModalTypes.RailTicketsDialogComponent = new ModalTypes('RailTicketsDialogComponent');
|
|
25
|
+
ModalTypes.ModalFlightFareComponent = new ModalTypes('ModalFlightFareComponent');
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtdHlwZXMuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3IvY2xhc3Nlcy9tb2RhbC10eXBlcy5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBMkJyQixZQUE2QixLQUFhO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQWZsQyxlQUFVLEdBQVEsSUFBSSxDQUFDO1FBZ0I1QixVQUFrQyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNwRCxDQUFDO0lBaEJELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsS0FBVTtRQUN0QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsT0FBTyxDQUFDLElBQUksQ0FDViwyQkFBMkIsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUN4QyxJQUFJLENBQUMsVUFBVSxFQUNmLEtBQUssQ0FDTixDQUFDO1NBQ0g7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDOztBQXpCZSw4QkFBbUIsR0FBRyxJQUFJLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQzVELHFDQUEwQixHQUFHLElBQUksVUFBVSxDQUN6RCw0QkFBNEIsQ0FDN0IsQ0FBQztBQUNjLDZCQUFrQixHQUFHLElBQUksVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDMUQscUJBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMxQywwQkFBZSxHQUFHLElBQUksVUFBVSxDQUFDLCtCQUErQixDQUFDLENBQUM7QUFDbEUsd0NBQTZCLEdBQUcsSUFBSSxVQUFVLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQUNoRixzQ0FBMkIsR0FBRyxJQUFJLFVBQVUsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBQzVFLHFDQUEwQixHQUFHLElBQUksVUFBVSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFDMUUsbUNBQXdCLEdBQUcsSUFBSSxVQUFVLENBQUMsMEJBQTBCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNb2RhbFR5cGVzIHtcclxuICBzdGF0aWMgcmVhZG9ubHkgTW9kYWxFcnJvckNvbXBvbmVudCA9IG5ldyBNb2RhbFR5cGVzKCdNb2RhbEVycm9yQ29tcG9uZW50Jyk7XHJcbiAgc3RhdGljIHJlYWRvbmx5IE1vZGFsTmV0V29ya0Vycm9yQ29tcG9uZW50ID0gbmV3IE1vZGFsVHlwZXMoXHJcbiAgICAnTW9kYWxOZXR3b3JrRXJyb3JDb21wb25lbnQnXHJcbiAgKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgQmFzZU1vZGFsQ29tcG9uZW50ID0gbmV3IE1vZGFsVHlwZXMoJ0Jhc2VNb2RhbENvbXBvbmVudCcpO1xyXG4gIHN0YXRpYyByZWFkb25seSBBdXRvTG9nb3V0ID0gbmV3IE1vZGFsVHlwZXMoJ0F1dG9Mb2dvdXQnKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgUmlza0FsZXJ0RGV0YWlsID0gbmV3IE1vZGFsVHlwZXMoJ1Jpc2tBbGVydERldGFpbE1vZGFsQ29tcG9uZW50Jyk7XHJcbiAgc3RhdGljIHJlYWRvbmx5IEFsdGVybmF0aXZlUmFpbE1vZGFsQ29tcG9uZW50ID0gbmV3IE1vZGFsVHlwZXMoJ0FsdGVybmF0aXZlUmFpbE1vZGFsQ29tcG9uZW50Jyk7XHJcbiAgc3RhdGljIHJlYWRvbmx5IFdhcm5pbmdSZW1vdmVNb2RhbENvbXBvbmVudCA9IG5ldyBNb2RhbFR5cGVzKCdXYXJuaW5nUmVtb3ZlTW9kYWxDb21wb25lbnQnKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgUmFpbFRpY2tldHNEaWFsb2dDb21wb25lbnQgPSBuZXcgTW9kYWxUeXBlcygnUmFpbFRpY2tldHNEaWFsb2dDb21wb25lbnQnKTtcclxuICBzdGF0aWMgcmVhZG9ubHkgTW9kYWxGbGlnaHRGYXJlQ29tcG9uZW50ID0gbmV3IE1vZGFsVHlwZXMoJ01vZGFsRmxpZ2h0RmFyZUNvbXBvbmVudCcpO1xyXG4gIHByaXZhdGUgX2NvbXBvbmVudDogYW55ID0gbnVsbDtcclxuICBnZXQgY29tcG9uZW50KCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgc2V0IGNvbXBvbmVudCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5fY29tcG9uZW50KSB7XHJcbiAgICAgIGNvbnNvbGUud2FybihcclxuICAgICAgICAnQ29tcG5lbnQgYWxyZWFkeSBzZXQgZm9yICcgKyB0aGlzLnZhbHVlLFxyXG4gICAgICAgIHRoaXMuX2NvbXBvbmVudCxcclxuICAgICAgICB2YWx1ZVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY29tcG9uZW50ID0gdmFsdWU7XHJcbiAgfVxyXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihwdWJsaWMgdmFsdWU6IHN0cmluZykge1xyXG4gICAgKE1vZGFsVHlwZXMgYXMgUmVjb3JkPHN0cmluZywgYW55PilbdmFsdWVdID0gdGhpcztcclxuICB9XHJcbn1cclxuIl19
|