@myclub_se/data-access 3.7.2 → 3.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/api-models/api-activity-invite.mjs +1 -1
- package/esm2022/lib/models/activity-invite.mjs +4 -2
- package/esm2022/lib/services/factories/activity-invite-factory.mjs +3 -2
- package/esm2022/lib/services/factories/auth-factory.mjs +10 -2
- package/esm2022/lib/store/effects/auth.effects.mjs +12 -5
- package/esm2022/lib/store/reducers/calendar.reducer.mjs +2 -2
- package/fesm2022/myclub_se-data-access.mjs +27 -10
- package/fesm2022/myclub_se-data-access.mjs.map +1 -1
- package/lib/api-models/api-activity-invite.d.ts +2 -1
- package/lib/models/activity-invite.d.ts +3 -2
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWFjdGl2aXR5LWludml0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvYXBpLW1vZGVscy9hcGktYWN0aXZpdHktaW52aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcGlBY3Rpdml0eSB9IGZyb20gJy4vYXBpLWFjdGl2aXR5JztcbmltcG9ydCB7IEFwaUd1ZXN0IH0gZnJvbSAnLi9hcGktZ3Vlc3QnO1xuaW1wb3J0IHsgQXBpU2VhcmNoTWVtYmVyIH0gZnJvbSAnLi9hcGktbWVtYmVyJztcbmltcG9ydCB7IEFwaVNlYXJjaE1lbWJlckludm9pY2UsIEFwaVVucGFpZE1lbWJlckludm9pY2UgfSBmcm9tICcuL2FwaS1pbnZvaWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBBcGlBY3Rpdml0eUludml0ZSB7XG4gIGFjdGl2aXR5OiBBcGlBY3Rpdml0eTtcbiAgY29tbWVudDogc3RyaW5nO1xuICBjcmVhdGVkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGhhc191bnBhaWRfaW52b2ljZXM6IGJvb2xlYW47XG4gIGlkOiBzdHJpbmc7XG4gIGxhc3RfaW52aXRlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxlYWRlcjogYm9vbGVhbjtcbiAgbWVtYmVyOiBBcGlTZWFyY2hNZW1iZXI7XG4gIG1lbWJlcl9pbnZvaWNlX2lkOiBzdHJpbmc7XG4gIG1lbWJlcl9pbnZvaWNlOiBBcGlTZWFyY2hNZW1iZXJJbnZvaWNlIHwgbnVsbDtcbiAgbmV4dF9pbnZpdGU6IHN0cmluZyB8IG51bGw7XG4gIHBheW1lbnRfbGluazogc3RyaW5nO1xuICBwdWJsaWNfcGF5bWVudF9saW5rOiBzdHJpbmc7XG4gIHJlbWluZGVkOiBzdHJpbmc7XG4gIHJlc3BvbnNlX2RhdGU6IHN0cmluZztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVucGFpZF9pbnZvaWNlczogQXJyYXk8QXBpVW5wYWlkTWVtYmVySW52b2ljZT4gfCBudWxsO1xuICB1cGRhdGVkOiBzdHJpbmc7XG4gIGd1ZXN0czogQXJyYXk8QXBpR3Vlc3Q+O1xufVxuIl19
|
|
@@ -20,7 +20,8 @@ export class ActivityInvite {
|
|
|
20
20
|
unpaid_invoices;
|
|
21
21
|
updated;
|
|
22
22
|
guests;
|
|
23
|
-
|
|
23
|
+
member_invoice;
|
|
24
|
+
constructor(id, activity, comment, created, has_unpaid_invoices, last_invite, leader, member, member_invoice_id, next_invite, optional_fees, payment_link, public_payment_link, reminded, response_date, responses, status, token, unpaid_invoices, updated, guests = [], member_invoice = null) {
|
|
24
25
|
this.id = id;
|
|
25
26
|
this.activity = activity;
|
|
26
27
|
this.comment = comment;
|
|
@@ -42,6 +43,7 @@ export class ActivityInvite {
|
|
|
42
43
|
this.unpaid_invoices = unpaid_invoices;
|
|
43
44
|
this.updated = updated;
|
|
44
45
|
this.guests = guests;
|
|
46
|
+
this.member_invoice = member_invoice;
|
|
45
47
|
}
|
|
46
48
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktaW52aXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9tb2RlbHMvYWN0aXZpdHktaW52aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBTyxjQUFjO0lBRU47SUFBbUI7SUFBMkI7SUFBd0I7SUFDN0Q7SUFBcUM7SUFBcUM7SUFDbkY7SUFBNkI7SUFBa0M7SUFDL0Q7SUFBcUM7SUFBNkI7SUFDbEU7SUFBeUI7SUFBOEI7SUFDdkQ7SUFBdUI7SUFBc0I7SUFDN0M7SUFBd0I7SUFDeEI7SUFQbkIsWUFBbUIsRUFBVSxFQUFTLFFBQWtCLEVBQVMsT0FBZSxFQUFTLE9BQWUsRUFDNUUsbUJBQTRCLEVBQVMsV0FBbUIsRUFBa0IsTUFBYyxFQUNqRyxNQUFvQixFQUFTLGlCQUF5QixFQUFTLFdBQTBCLEVBQ3pGLGFBQTRCLEVBQVMsWUFBb0IsRUFBUyxtQkFBMkIsRUFDN0YsUUFBZ0IsRUFBUyxhQUFxQixFQUFTLFNBQTBDLEVBQ2pHLE1BQWMsRUFBUyxLQUFhLEVBQVMsZUFBMkMsRUFDeEYsT0FBZSxFQUFTLFNBQXVCLEVBQUUsRUFDakQsaUJBQTZDLElBQUk7UUFQakQsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUFTLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUM1RSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQVM7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUFrQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2pHLFdBQU0sR0FBTixNQUFNLENBQWM7UUFBUyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBZTtRQUN6RixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFTLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQVMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFRO1FBQzdGLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUFTLGNBQVMsR0FBVCxTQUFTLENBQWlDO1FBQ2pHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBQ3hGLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUNqRCxtQkFBYyxHQUFkLGNBQWMsQ0FBbUM7SUFDcEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuL2FjdGl2aXR5JztcbmltcG9ydCB7IEd1ZXN0IH0gZnJvbSAnLi9ndWVzdCc7XG5pbXBvcnQgeyBTZWFyY2hNZW1iZXIgfSBmcm9tICcuL21lbWJlcic7XG5pbXBvcnQgeyBTZWFyY2hNZW1iZXJJbnZvaWNlLCBVbnBhaWRNZW1iZXJJbnZvaWNlIH0gZnJvbSAnLi9pbnZvaWNlJztcbmltcG9ydCB7IEFjdGl2aXR5UXVlc3Rpb25SZXNwb25zZSB9IGZyb20gJy4vYWN0aXZpdHktcXVlc3Rpb24tcmVzcG9uc2UnO1xuXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlJbnZpdGUge1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpZDogc3RyaW5nLCBwdWJsaWMgYWN0aXZpdHk6IEFjdGl2aXR5LCBwdWJsaWMgY29tbWVudDogc3RyaW5nLCBwdWJsaWMgY3JlYXRlZDogc3RyaW5nLFxuICAgICAgICAgICAgICBwdWJsaWMgcmVhZG9ubHkgaGFzX3VucGFpZF9pbnZvaWNlczogYm9vbGVhbiwgcHVibGljIGxhc3RfaW52aXRlOiBzdHJpbmcsIHB1YmxpYyByZWFkb25seSBsZWFkZXI6Ym9vbGVhbixcbiAgICAgICAgICAgICAgcHVibGljIG1lbWJlcjogU2VhcmNoTWVtYmVyLCBwdWJsaWMgbWVtYmVyX2ludm9pY2VfaWQ6IHN0cmluZywgcHVibGljIG5leHRfaW52aXRlOiBzdHJpbmcgfCBudWxsLFxuICAgICAgICAgICAgICBwdWJsaWMgb3B0aW9uYWxfZmVlczogQXJyYXk8c3RyaW5nPiwgcHVibGljIHBheW1lbnRfbGluazogc3RyaW5nLCBwdWJsaWMgcHVibGljX3BheW1lbnRfbGluazogc3RyaW5nLFxuICAgICAgICAgICAgICBwdWJsaWMgcmVtaW5kZWQ6IHN0cmluZywgcHVibGljIHJlc3BvbnNlX2RhdGU6IHN0cmluZywgcHVibGljIHJlc3BvbnNlczogQXJyYXk8QWN0aXZpdHlRdWVzdGlvblJlc3BvbnNlPixcbiAgICAgICAgICAgICAgcHVibGljIHN0YXR1czogc3RyaW5nLCBwdWJsaWMgdG9rZW46IHN0cmluZywgcHVibGljIHVucGFpZF9pbnZvaWNlczogQXJyYXk8VW5wYWlkTWVtYmVySW52b2ljZT4sXG4gICAgICAgICAgICAgIHB1YmxpYyB1cGRhdGVkOiBzdHJpbmcsIHB1YmxpYyBndWVzdHM6IEFycmF5PEd1ZXN0PiA9IFtdLFxuICAgICAgICAgICAgICBwdWJsaWMgbWVtYmVyX2ludm9pY2U6IFNlYXJjaE1lbWJlckludm9pY2UgfCBudWxsID0gbnVsbCkge1xuICB9XG59XG4iXX0=
|
|
@@ -2,8 +2,9 @@ import { ActivityInvite } from '../../models';
|
|
|
2
2
|
import { activityFactory } from './activity-factory';
|
|
3
3
|
import { guestFactory } from './guest-factory';
|
|
4
4
|
import { searchMemberFactory } from './search-member-factory';
|
|
5
|
+
import { searchMemberInvoiceFactory } from './search-member-invoice-factory';
|
|
5
6
|
import { unpaidInvoiceFactory } from './unpaid-invoice-factory';
|
|
6
7
|
export const activityInviteFactory = (apiActivityInvite) => new ActivityInvite(apiActivityInvite.id, activityFactory(apiActivityInvite.activity), apiActivityInvite.comment, apiActivityInvite.created, apiActivityInvite.has_unpaid_invoices, apiActivityInvite.last_invite, apiActivityInvite.leader, searchMemberFactory(apiActivityInvite.member), apiActivityInvite.member_invoice_id, apiActivityInvite.next_invite, [], apiActivityInvite.payment_link, apiActivityInvite.public_payment_link, apiActivityInvite.reminded, apiActivityInvite.response_date, [], apiActivityInvite.status, apiActivityInvite.token, apiActivityInvite.unpaid_invoices && apiActivityInvite.unpaid_invoices.length ? apiActivityInvite.unpaid_invoices.map((apiUnpaidInvoice) => unpaidInvoiceFactory(apiUnpaidInvoice)) : [], apiActivityInvite.updated, (apiActivityInvite.guests && apiActivityInvite.guests.length)
|
|
7
8
|
? apiActivityInvite.guests.map((g) => guestFactory(g))
|
|
8
|
-
: []);
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
: [], apiActivityInvite.member_invoice ? searchMemberInvoiceFactory(apiActivityInvite.member_invoice) : null);
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktaW52aXRlLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL3NlcnZpY2VzL2ZhY3Rvcmllcy9hY3Rpdml0eS1pbnZpdGUtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxpQkFBb0MsRUFBRSxFQUFFLENBQzVFLElBQUksY0FBYyxDQUNoQixpQkFBaUIsQ0FBQyxFQUFFLEVBQ3BCLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsRUFDM0MsaUJBQWlCLENBQUMsT0FBTyxFQUN6QixpQkFBaUIsQ0FBQyxPQUFPLEVBQ3pCLGlCQUFpQixDQUFDLG1CQUFtQixFQUNyQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQzdCLGlCQUFpQixDQUFDLE1BQU0sRUFDeEIsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEVBQzdDLGlCQUFpQixDQUFDLGlCQUFpQixFQUNuQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQzdCLEVBQUUsRUFDRixpQkFBaUIsQ0FBQyxZQUFZLEVBQzlCLGlCQUFpQixDQUFDLG1CQUFtQixFQUNyQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQzFCLGlCQUFpQixDQUFDLGFBQWEsRUFDL0IsRUFBRSxFQUNGLGlCQUFpQixDQUFDLE1BQU0sRUFDeEIsaUJBQWlCLENBQUMsS0FBSyxFQUN2QixpQkFBaUIsQ0FBQyxlQUFlLElBQUksaUJBQWlCLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FDbkgsQ0FBQyxnQkFBd0MsRUFBRSxFQUFFLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsQ0FDckYsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNOLGlCQUFpQixDQUFDLE9BQU8sRUFDekIsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLElBQUksaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMzRCxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQVcsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUMsQ0FBQyxFQUFFLEVBQ04saUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN2RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpQWN0aXZpdHlJbnZpdGUsIEFwaUd1ZXN0LCBBcGlVbnBhaWRNZW1iZXJJbnZvaWNlIH0gZnJvbSAnLi4vLi4vYXBpLW1vZGVscyc7XG5pbXBvcnQgeyBBY3Rpdml0eUludml0ZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBhY3Rpdml0eUZhY3RvcnkgfSBmcm9tICcuL2FjdGl2aXR5LWZhY3RvcnknO1xuaW1wb3J0IHsgZ3Vlc3RGYWN0b3J5IH0gZnJvbSAnLi9ndWVzdC1mYWN0b3J5JztcbmltcG9ydCB7IHNlYXJjaE1lbWJlckZhY3RvcnkgfSBmcm9tICcuL3NlYXJjaC1tZW1iZXItZmFjdG9yeSc7XG5pbXBvcnQgeyBzZWFyY2hNZW1iZXJJbnZvaWNlRmFjdG9yeSB9IGZyb20gJy4vc2VhcmNoLW1lbWJlci1pbnZvaWNlLWZhY3RvcnknO1xuaW1wb3J0IHsgdW5wYWlkSW52b2ljZUZhY3RvcnkgfSBmcm9tICcuL3VucGFpZC1pbnZvaWNlLWZhY3RvcnknO1xuXG5leHBvcnQgY29uc3QgYWN0aXZpdHlJbnZpdGVGYWN0b3J5ID0gKGFwaUFjdGl2aXR5SW52aXRlOiBBcGlBY3Rpdml0eUludml0ZSkgPT5cbiAgbmV3IEFjdGl2aXR5SW52aXRlKFxuICAgIGFwaUFjdGl2aXR5SW52aXRlLmlkLFxuICAgIGFjdGl2aXR5RmFjdG9yeShhcGlBY3Rpdml0eUludml0ZS5hY3Rpdml0eSksXG4gICAgYXBpQWN0aXZpdHlJbnZpdGUuY29tbWVudCxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5jcmVhdGVkLFxuICAgIGFwaUFjdGl2aXR5SW52aXRlLmhhc191bnBhaWRfaW52b2ljZXMsXG4gICAgYXBpQWN0aXZpdHlJbnZpdGUubGFzdF9pbnZpdGUsXG4gICAgYXBpQWN0aXZpdHlJbnZpdGUubGVhZGVyLFxuICAgIHNlYXJjaE1lbWJlckZhY3RvcnkoYXBpQWN0aXZpdHlJbnZpdGUubWVtYmVyKSxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5tZW1iZXJfaW52b2ljZV9pZCxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5uZXh0X2ludml0ZSxcbiAgICBbXSxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5wYXltZW50X2xpbmssXG4gICAgYXBpQWN0aXZpdHlJbnZpdGUucHVibGljX3BheW1lbnRfbGluayxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5yZW1pbmRlZCxcbiAgICBhcGlBY3Rpdml0eUludml0ZS5yZXNwb25zZV9kYXRlLFxuICAgIFtdLFxuICAgIGFwaUFjdGl2aXR5SW52aXRlLnN0YXR1cyxcbiAgICBhcGlBY3Rpdml0eUludml0ZS50b2tlbixcbiAgICBhcGlBY3Rpdml0eUludml0ZS51bnBhaWRfaW52b2ljZXMgJiYgYXBpQWN0aXZpdHlJbnZpdGUudW5wYWlkX2ludm9pY2VzLmxlbmd0aCA/IGFwaUFjdGl2aXR5SW52aXRlLnVucGFpZF9pbnZvaWNlcy5tYXAoXG4gICAgICAoYXBpVW5wYWlkSW52b2ljZTogQXBpVW5wYWlkTWVtYmVySW52b2ljZSkgPT4gdW5wYWlkSW52b2ljZUZhY3RvcnkoYXBpVW5wYWlkSW52b2ljZSlcbiAgICApIDogW10sXG4gICAgYXBpQWN0aXZpdHlJbnZpdGUudXBkYXRlZCxcbiAgICAoYXBpQWN0aXZpdHlJbnZpdGUuZ3Vlc3RzICYmIGFwaUFjdGl2aXR5SW52aXRlLmd1ZXN0cy5sZW5ndGgpXG4gICAgICA/IGFwaUFjdGl2aXR5SW52aXRlLmd1ZXN0cy5tYXAoKGc6IEFwaUd1ZXN0KSA9PiBndWVzdEZhY3RvcnkoZykpXG4gICAgICA6IFtdLFxuICAgIGFwaUFjdGl2aXR5SW52aXRlLm1lbWJlcl9pbnZvaWNlID8gc2VhcmNoTWVtYmVySW52b2ljZUZhY3RvcnkoYXBpQWN0aXZpdHlJbnZpdGUubWVtYmVyX2ludm9pY2UpIDogbnVsbFxuICApO1xuIl19
|
|
@@ -2,5 +2,13 @@ import { Auth } from '../../models';
|
|
|
2
2
|
import { authSectionFactory } from './auth-section-factory';
|
|
3
3
|
import { authMemberFactory } from './auth-member-factory';
|
|
4
4
|
import { authTeamFactory } from './auth-team-factory';
|
|
5
|
-
export const authFactory = (apiAuth) =>
|
|
6
|
-
|
|
5
|
+
export const authFactory = (apiAuth) => {
|
|
6
|
+
// teamsLoaded guards against repeated team loading (the success reducer sets it true once the
|
|
7
|
+
// full team list is fetched). Club/section admins must always load their full team list first,
|
|
8
|
+
// even when the payload already contains personal teams (team admin/member) — otherwise they
|
|
9
|
+
// would never receive the rest of their club's/section's groups. Non-admins never load teams,
|
|
10
|
+
// so their payload teams are already the complete set.
|
|
11
|
+
const isAdmin = apiAuth.club_admin || apiAuth.sections.length > 0;
|
|
12
|
+
return new Auth(apiAuth.id, apiAuth.name, apiAuth.club_admin, apiAuth.is_section_club, apiAuth.members.map((apiAuthMember) => authMemberFactory(apiAuthMember)), apiAuth.registration_enabled, apiAuth.sections.map((apiAuthSection) => authSectionFactory(apiAuthSection)), apiAuth.site_enabled, apiAuth.teams.map((apiAuthTeam) => authTeamFactory(apiAuthTeam)), isAdmin ? false : apiAuth.teams.length > 0, apiAuth.user_name, apiAuth.blocked_members.map((apiAuthMember) => authMemberFactory(apiAuthMember)), apiAuth.club_admin_2fa_required, apiAuth.section_admin_2fa_required, apiAuth.team_admin_2fa_required, apiAuth.member_admin_2fa_required);
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zZXJ2aWNlcy9mYWN0b3JpZXMvYXV0aC1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtJQUM5Qyw4RkFBOEY7SUFDOUYsK0ZBQStGO0lBQy9GLDZGQUE2RjtJQUM3Riw4RkFBOEY7SUFDOUYsdURBQXVEO0lBQ3ZELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRWxFLE9BQU8sSUFBSSxJQUFJLENBQ2IsT0FBTyxDQUFDLEVBQUUsRUFDVixPQUFPLENBQUMsSUFBSSxFQUNaLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLE9BQU8sQ0FBQyxlQUFlLEVBQ3ZCLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBNEIsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsRUFDdkYsT0FBTyxDQUFDLG9CQUFvQixFQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQThCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQzVGLE9BQU8sQ0FBQyxZQUFZLEVBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQzdFLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQzFDLE9BQU8sQ0FBQyxTQUFTLEVBQ2pCLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBNEIsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsRUFDL0YsT0FBTyxDQUFDLHVCQUF1QixFQUMvQixPQUFPLENBQUMsMEJBQTBCLEVBQ2xDLE9BQU8sQ0FBQyx1QkFBdUIsRUFDL0IsT0FBTyxDQUFDLHlCQUF5QixDQUNsQyxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpQXV0aCwgQXBpQXV0aE1lbWJlciwgQXBpQXV0aFNlY3Rpb24sIEFwaUF1dGhUZWFtIH0gZnJvbSAnLi4vLi4vYXBpLW1vZGVscyc7XG5pbXBvcnQgeyBBdXRoIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IGF1dGhTZWN0aW9uRmFjdG9yeSB9IGZyb20gJy4vYXV0aC1zZWN0aW9uLWZhY3RvcnknO1xuaW1wb3J0IHsgYXV0aE1lbWJlckZhY3RvcnkgfSBmcm9tICcuL2F1dGgtbWVtYmVyLWZhY3RvcnknO1xuaW1wb3J0IHsgYXV0aFRlYW1GYWN0b3J5IH0gZnJvbSAnLi9hdXRoLXRlYW0tZmFjdG9yeSc7XG5cbmV4cG9ydCBjb25zdCBhdXRoRmFjdG9yeSA9IChhcGlBdXRoOiBBcGlBdXRoKSA9PiB7XG4gIC8vIHRlYW1zTG9hZGVkIGd1YXJkcyBhZ2FpbnN0IHJlcGVhdGVkIHRlYW0gbG9hZGluZyAodGhlIHN1Y2Nlc3MgcmVkdWNlciBzZXRzIGl0IHRydWUgb25jZSB0aGVcbiAgLy8gZnVsbCB0ZWFtIGxpc3QgaXMgZmV0Y2hlZCkuIENsdWIvc2VjdGlvbiBhZG1pbnMgbXVzdCBhbHdheXMgbG9hZCB0aGVpciBmdWxsIHRlYW0gbGlzdCBmaXJzdCxcbiAgLy8gZXZlbiB3aGVuIHRoZSBwYXlsb2FkIGFscmVhZHkgY29udGFpbnMgcGVyc29uYWwgdGVhbXMgKHRlYW0gYWRtaW4vbWVtYmVyKSDigJQgb3RoZXJ3aXNlIHRoZXlcbiAgLy8gd291bGQgbmV2ZXIgcmVjZWl2ZSB0aGUgcmVzdCBvZiB0aGVpciBjbHViJ3Mvc2VjdGlvbidzIGdyb3Vwcy4gTm9uLWFkbWlucyBuZXZlciBsb2FkIHRlYW1zLFxuICAvLyBzbyB0aGVpciBwYXlsb2FkIHRlYW1zIGFyZSBhbHJlYWR5IHRoZSBjb21wbGV0ZSBzZXQuXG4gIGNvbnN0IGlzQWRtaW4gPSBhcGlBdXRoLmNsdWJfYWRtaW4gfHwgYXBpQXV0aC5zZWN0aW9ucy5sZW5ndGggPiAwO1xuXG4gIHJldHVybiBuZXcgQXV0aChcbiAgICBhcGlBdXRoLmlkLFxuICAgIGFwaUF1dGgubmFtZSxcbiAgICBhcGlBdXRoLmNsdWJfYWRtaW4sXG4gICAgYXBpQXV0aC5pc19zZWN0aW9uX2NsdWIsXG4gICAgYXBpQXV0aC5tZW1iZXJzLm1hcCgoYXBpQXV0aE1lbWJlcjogQXBpQXV0aE1lbWJlcikgPT4gYXV0aE1lbWJlckZhY3RvcnkoYXBpQXV0aE1lbWJlcikpLFxuICAgIGFwaUF1dGgucmVnaXN0cmF0aW9uX2VuYWJsZWQsXG4gICAgYXBpQXV0aC5zZWN0aW9ucy5tYXAoKGFwaUF1dGhTZWN0aW9uOiBBcGlBdXRoU2VjdGlvbikgPT4gYXV0aFNlY3Rpb25GYWN0b3J5KGFwaUF1dGhTZWN0aW9uKSksXG4gICAgYXBpQXV0aC5zaXRlX2VuYWJsZWQsXG4gICAgYXBpQXV0aC50ZWFtcy5tYXAoKGFwaUF1dGhUZWFtOiBBcGlBdXRoVGVhbSkgPT4gYXV0aFRlYW1GYWN0b3J5KGFwaUF1dGhUZWFtKSksXG4gICAgaXNBZG1pbiA/IGZhbHNlIDogYXBpQXV0aC50ZWFtcy5sZW5ndGggPiAwLFxuICAgIGFwaUF1dGgudXNlcl9uYW1lLFxuICAgIGFwaUF1dGguYmxvY2tlZF9tZW1iZXJzLm1hcCgoYXBpQXV0aE1lbWJlcjogQXBpQXV0aE1lbWJlcikgPT4gYXV0aE1lbWJlckZhY3RvcnkoYXBpQXV0aE1lbWJlcikpLFxuICAgIGFwaUF1dGguY2x1Yl9hZG1pbl8yZmFfcmVxdWlyZWQsXG4gICAgYXBpQXV0aC5zZWN0aW9uX2FkbWluXzJmYV9yZXF1aXJlZCxcbiAgICBhcGlBdXRoLnRlYW1fYWRtaW5fMmZhX3JlcXVpcmVkLFxuICAgIGFwaUF1dGgubWVtYmVyX2FkbWluXzJmYV9yZXF1aXJlZFxuICApO1xufTtcbiJdfQ==
|
|
@@ -55,12 +55,19 @@ export class AuthEffects {
|
|
|
55
55
|
else {
|
|
56
56
|
const sectionsTeams$ = payload.sections.map((section) => this.teamService.getSectionTeams(section.id));
|
|
57
57
|
return forkJoin(sectionsTeams$).pipe(map((results) => {
|
|
58
|
-
const
|
|
59
|
-
.flatMap((result) => result.toArray())
|
|
60
|
-
|
|
58
|
+
const sectionTeams = results
|
|
59
|
+
.flatMap((result) => result.toArray());
|
|
60
|
+
// Union the fetched section teams with any teams already on the auth (e.g. a team the
|
|
61
|
+
// user admins outside the sections they administer), keyed by id. Fetched SearchTeams
|
|
62
|
+
// win on duplicates so the richer section_name is kept.
|
|
63
|
+
const teamsById = new Map();
|
|
64
|
+
[...payload.teams, ...sectionTeams].forEach((team) => teamsById.set(team.id, team));
|
|
65
|
+
const mergedTeams = [...teamsById.values()].sort((a, b) => a.name.localeCompare(b.name));
|
|
61
66
|
const auth = {
|
|
62
67
|
...payload,
|
|
63
|
-
teams
|
|
68
|
+
// teams is typed as AuthTeam[] | SearchTeam[]; the merged list may mix both shapes,
|
|
69
|
+
// which consumers already handle (they read id/name/section_name | section?.name).
|
|
70
|
+
teams: mergedTeams,
|
|
64
71
|
};
|
|
65
72
|
return listAuthTeamsSuccessAction({ payload: auth });
|
|
66
73
|
}), catchError((error) => of(listAuthTeamsFailureAction({ payload: error }))));
|
|
@@ -124,4 +131,4 @@ export class AuthEffects {
|
|
|
124
131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AuthEffects, decorators: [{
|
|
125
132
|
type: Injectable
|
|
126
133
|
}] });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2F1dGguZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNMLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDYixjQUFjLEVBQ2QsV0FBVyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQ0FBZ0MsRUFDaEMsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUMzQixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDL0IsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlC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LDJCQUEyQixDQUFDLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBQyxDQUFDO29CQUMvQyxnQkFBZ0IsRUFBRTtpQkFDbkIsQ0FBQTtZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUVGLGNBQWMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDOUMsSUFBSSxDQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUMvQixVQUFVLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBZ0UsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7U0FDdEssSUFBSSxDQUNILFFBQVEsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtRQUM1QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTztnQkFDTCw4QkFBOEIsRUFBRTtnQkFDaEMsa0JBQWtCLEVBQUU7YUFDckIsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPO1lBQ0wsOEJBQThCLENBQUM7Z0JBQy9CLE9BQU8sRUFBRSxJQUFJLGlCQUFpQixDQUFDLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxDQUFDO2FBQzlDLENBQUM7U0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsR0FBc0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLDhCQUE4QixDQUFDLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUMzRixDQUNGLENBQ0YsQ0FDRixDQUFBO3VHQS9NVSxXQUFXOzJHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQge1xuICBBdXRoU2VydmljZSxcbiAgU1RPUkFHRV9TRUxFQ1RFRF9BVVRILFxuICBTVE9SQUdFX1NFTEVDVEVEX01FTUJFUlMsXG4gIFNUT1JBR0VfVE9LRU4sXG4gIFN0b3JhZ2VTZXJ2aWNlLFxuICBUZWFtU2VydmljZVxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICBjbGVhckF1dGhlbnRpY2F0aW9uQWN0aW9uLFxuICBjbGVhckF1dGhlbnRpY2F0aW9uU3VjY2Vzc0FjdGlvbixcbiAgY2xlYXJDdXJyZW50QXV0aEFjdGlvbixcbiAgY2xlYXJDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIGNsZWFyU3RvcmVBY3Rpb24sXG4gIGdldEN1cnJlbnRBdXRoQWN0aW9uLFxuICBnZXRDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RBdXRoQWN0aW9uLFxuICBsaXN0QXV0aEZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBdXRoU3VjY2Vzc0FjdGlvbixcbiAgbGlzdEF1dGhUZWFtc0FjdGlvbixcbiAgbGlzdEF1dGhUZWFtc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RBdXRoVGVhbXNTdWNjZXNzQWN0aW9uLFxuICByZWZyZXNoQXV0aHNBY3Rpb24sXG4gIHJlZnJlc2hBdXRoc0ZhaWx1cmVBY3Rpb24sXG4gIHJlZnJlc2hBdXRoc1N1Y2Nlc3NBY3Rpb24sXG4gIHJlbW92ZU1lbWJlckF1dGhBY3Rpb24sXG4gIHJlbW92ZU1lbWJlckF1dGhGYWlsdXJlQWN0aW9uLFxuICByZW1vdmVNZW1iZXJBdXRoU3VjY2Vzc0FjdGlvbixcbiAgcmVtb3ZlVGVhbUF1dGhBY3Rpb24sXG4gIHJlbW92ZVRlYW1BdXRoRmFpbHVyZUFjdGlvbixcbiAgcmVtb3ZlVGVhbUF1dGhTdWNjZXNzQWN0aW9uLFxuICBzZXRDdXJyZW50QXV0aEFjdGlvbixcbiAgdW5ibG9ja01lbWJlckF1dGhBY3Rpb24sXG4gIHVuYmxvY2tNZW1iZXJBdXRoRmFpbHVyZUFjdGlvbixcbiAgdW5ibG9ja01lbWJlckF1dGhTdWNjZXNzQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgZXhoYXVzdE1hcCwgZm9ya0pvaW4sIG1lcmdlTWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEF1dGgsIENvbGxlY3Rpb24sIFNlYXJjaFRlYW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVtb3ZlTWVtYmVyQXV0aEludGVyZmFjZSwgUmVtb3ZlVGVhbUF1dGhJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhFZmZlY3RzIHtcbiAgcHJpdmF0ZSBhY3Rpb25zJCA9IGluamVjdChBY3Rpb25zKTtcbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2UgPSBpbmplY3QoQXV0aGVudGljYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgc3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuICBwcml2YXRlIHRlYW1TZXJ2aWNlID0gaW5qZWN0KFRlYW1TZXJ2aWNlKTtcblxuICBjbGVhckF1dGhlbnRpY2F0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY2xlYXJBdXRoZW50aWNhdGlvbkFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+XG4gICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRva2VuUmVtb3ZhbDogdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVBc09ic2VydmFibGUoU1RPUkFHRV9UT0tFTiksXG4gICAgICAgICAgICBzZWxlY3RlZEF1dGhSZW1vdmFsOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUFzT2JzZXJ2YWJsZShTVE9SQUdFX1NFTEVDVEVEX0FVVEgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRNZW1iZXJzUmVtb3ZhbDogdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVBc09ic2VydmFibGUoU1RPUkFHRV9TRUxFQ1RFRF9NRU1CRVJTKSxcbiAgICAgICAgICB9XG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jbGVhckF1dGhlbnRpY2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBjbGVhclN0b3JlQWN0aW9uKCksXG4gICAgICAgICAgICAgIGNsZWFyQXV0aGVudGljYXRpb25TdWNjZXNzQWN0aW9uKClcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNsZWFyQ3VycmVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNsZWFyQ3VycmVudEF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUFzT2JzZXJ2YWJsZShTVE9SQUdFX1NFTEVDVEVEX0FVVEgpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBjbGVhckN1cnJlbnRBdXRoU3VjY2Vzc0FjdGlvbigpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGdldEN1cnJlbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShnZXRDdXJyZW50QXV0aEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0QXNPYnNlcnZhYmxlKFNUT1JBR0VfU0VMRUNURURfQVVUSClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChhdXRoOiBBdXRoIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgICAgaWYgKGF1dGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICByZXR1cm4gZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBudWxsfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhdXRofSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0QXV0aCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RBdXRoQWN0aW9uKSxcbiAgICAgIHN3aXRjaE1hcCgoe3BheWxvYWR9KSA9PiB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhzKHBheWxvYWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoYXV0aHM6IENvbGxlY3Rpb248QXV0aD4pID0+IGxpc3RBdXRoU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aHMudG9BcnJheSgpfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdEF1dGhGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0QXV0aFRlYW1zJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdEF1dGhUZWFtc0FjdGlvbiksXG4gICAgICBtZXJnZU1hcCgoe3BheWxvYWR9KSA9PiB7XG4gICAgICAgIGlmIChwYXlsb2FkLmNsdWJBZG1pbikge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRlYW1TZXJ2aWNlLmdldENsdWJUZWFtcyhwYXlsb2FkLmlkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgoc2VhcmNoVGVhbXM6IENvbGxlY3Rpb248U2VhcmNoVGVhbT4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdXRoID0ge1xuICAgICAgICAgICAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgICAgICAgICAgIHRlYW1zOiBzZWFyY2hUZWFtcy50b0FycmF5KClcbiAgICAgICAgICAgICAgICAgICAgLnNvcnQoKGE6IFNlYXJjaFRlYW0sIGI6IFNlYXJjaFRlYW0pID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBsaXN0QXV0aFRlYW1zU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aH0pO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0QXV0aFRlYW1zRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHNlY3Rpb25zVGVhbXMkOiBBcnJheTxPYnNlcnZhYmxlPENvbGxlY3Rpb248U2VhcmNoVGVhbT4+PiA9IHBheWxvYWQuc2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PlxuICAgICAgICAgICAgdGhpcy50ZWFtU2VydmljZS5nZXRTZWN0aW9uVGVhbXMoc2VjdGlvbi5pZClcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHNlY3Rpb25zVGVhbXMkKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBBcnJheTxDb2xsZWN0aW9uPFNlYXJjaFRlYW0+PikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzb3J0ZWRUZWFtczogQXJyYXk8U2VhcmNoVGVhbT4gPSByZXN1bHRzXG4gICAgICAgICAgICAgICAgLmZsYXRNYXAoKHJlc3VsdDogQ29sbGVjdGlvbjxTZWFyY2hUZWFtPikgPT4gcmVzdWx0LnRvQXJyYXkoKSlcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKSk7XG4gICAgICAgICAgICAgIGNvbnN0IGF1dGggPSB7XG4gICAgICAgICAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgICAgICAgICB0ZWFtczogc29ydGVkVGVhbXMsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHJldHVybiBsaXN0QXV0aFRlYW1zU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aH0pO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RBdXRoVGVhbXNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICByZWZyZXNoJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmVmcmVzaEF1dGhzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5hdXRoU2VydmljZS51cGRhdGVNZW1iZXJzKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWVyZ2VNYXAoKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgcmVmcmVzaEF1dGhzU3VjY2Vzc0FjdGlvbigpLFxuICAgICAgICAgICAgICAgIGxpc3RBdXRoQWN0aW9uKClcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJldHVybiBvZihyZWZyZXNoQXV0aHNGYWlsdXJlQWN0aW9uKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YocmVmcmVzaEF1dGhzRmFpbHVyZUFjdGlvbigpKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZW1vdmVNZW1iZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZW1vdmVNZW1iZXJBdXRoQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IFJlbW92ZU1lbWJlckF1dGhJbnRlcmZhY2VcbiAgICAgICAgfSkgPT4gdGhpcy5hdXRoU2VydmljZS5yZW1vdmVNZW1iZXJBdXRoKHBheWxvYWQuYXV0aElkLCBwYXlsb2FkLm1lbWJlcklkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZTogYm9vbGVhbikgPT4gdmFsdWUgPyByZW1vdmVNZW1iZXJBdXRoU3VjY2Vzc0FjdGlvbigpIDogcmVtb3ZlTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24oKSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKHJlbW92ZU1lbWJlckF1dGhGYWlsdXJlQWN0aW9uKCkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmVtb3ZlVGVhbSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJlbW92ZVRlYW1BdXRoQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge1xuICAgICAgICAgIHBheWxvYWQ6IFJlbW92ZVRlYW1BdXRoSW50ZXJmYWNlXG4gICAgICAgIH0pID0+IHRoaXMuYXV0aFNlcnZpY2UucmVtb3ZlVGVhbUF1dGgocGF5bG9hZC5hdXRoSWQsIHBheWxvYWQudGVhbUlkKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZTogYm9vbGVhbikgPT4gdmFsdWUgPyByZW1vdmVUZWFtQXV0aFN1Y2Nlc3NBY3Rpb24oKSA6IHJlbW92ZVRlYW1BdXRoRmFpbHVyZUFjdGlvbigpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YocmVtb3ZlTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24oKSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBzZXRDdXJyZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoc2V0Q3VycmVudEF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IEF1dGggfSkgPT4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBc09ic2VydmFibGUoU1RPUkFHRV9TRUxFQ1RFRF9BVVRIKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgob2xkQXV0aDogQXV0aCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0QXNPYnNlcnZhYmxlKFNUT1JBR0VfU0VMRUNURURfQVVUSCwgcGF5bG9hZClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWVyZ2VNYXAoKG5ld0F1dGg6IEF1dGgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChvbGRBdXRoICYmIG5ld0F1dGguaWQgPT09IG9sZEF1dGguaWQgJiYgKChuZXdBdXRoLm1lbWJlcnMgJiYgbmV3QXV0aC5tZW1iZXJzLmxlbmd0aCA9PT0gb2xkQXV0aC5tZW1iZXJzLmxlbmd0aCkgfHwgKG5ld0F1dGgudGVhbXMgJiYgbmV3QXV0aC50ZWFtcy5sZW5ndGggPT09IG9sZEF1dGgudGVhbXMubGVuZ3RoICYmIG5ld0F1dGgudGVhbXNbMF0uaWQgPT09IG9sZEF1dGgudGVhbXNbMF0uaWQpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICAgIGdldEN1cnJlbnRBdXRoU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogbmV3QXV0aH0pXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgICAgZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBuZXdBdXRofSksXG4gICAgICAgICAgICAgICAgICAgICAgY2xlYXJTdG9yZUFjdGlvbigpXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICB1bmJsb2NrTWVtYmVyJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUodW5ibG9ja01lbWJlckF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7cGF5bG9hZDoge3VzZXJJZDogc3RyaW5nLCBjbHViSWQ6IHN0cmluZywgbWVtYmVySWQ6IHN0cmluZ319KSA9PiB0aGlzLmF1dGhTZXJ2aWNlLnVuYmxvY2tNZW1iZXIocGF5bG9hZC51c2VySWQsIHBheWxvYWQuY2x1YklkLCBwYXlsb2FkLm1lbWJlcklkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgoc3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB1bmJsb2NrTWVtYmVyQXV0aFN1Y2Nlc3NBY3Rpb24oKSxcbiAgICAgICAgICAgICAgICByZWZyZXNoQXV0aHNBY3Rpb24oKVxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgdW5ibG9ja01lbWJlckF1dGhGYWlsdXJlQWN0aW9uKHtcbiAgICAgICAgICAgICAgcGF5bG9hZDogbmV3IEh0dHBFcnJvclJlc3BvbnNlKHtzdGF0dXM6IDQwMH0pXG4gICAgICAgICAgICB9KV07XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YodW5ibG9ja01lbWJlckF1dGhGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJ9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIClcbn1cbiJdfQ==
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2F1dGguZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNMLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLGFBQWEsRUFDYixjQUFjLEVBQ2QsV0FBVyxFQUNaLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQ0FBZ0MsRUFDaEMsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUMzQixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsNkJBQTZCLEVBQzdCLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzNCLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIsdUJBQXVCLEVBQ3ZCLDhCQUE4QixFQUM5Qiw4QkFBOEIsRUFDL0IsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlC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aUJBQWlCLENBQUMsRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLENBQUM7YUFDOUMsQ0FBQztTQUFDLENBQUM7SUFDTixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxHQUFzQixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsOEJBQThCLENBQUMsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQzNGLENBQ0YsQ0FDRixDQUNGLENBQUE7dUdBdE5VLFdBQVc7MkdBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7XG4gIEF1dGhTZXJ2aWNlLFxuICBTVE9SQUdFX1NFTEVDVEVEX0FVVEgsXG4gIFNUT1JBR0VfU0VMRUNURURfTUVNQkVSUyxcbiAgU1RPUkFHRV9UT0tFTixcbiAgU3RvcmFnZVNlcnZpY2UsXG4gIFRlYW1TZXJ2aWNlXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIGNsZWFyQXV0aGVudGljYXRpb25BY3Rpb24sXG4gIGNsZWFyQXV0aGVudGljYXRpb25TdWNjZXNzQWN0aW9uLFxuICBjbGVhckN1cnJlbnRBdXRoQWN0aW9uLFxuICBjbGVhckN1cnJlbnRBdXRoU3VjY2Vzc0FjdGlvbixcbiAgY2xlYXJTdG9yZUFjdGlvbixcbiAgZ2V0Q3VycmVudEF1dGhBY3Rpb24sXG4gIGdldEN1cnJlbnRBdXRoU3VjY2Vzc0FjdGlvbixcbiAgbGlzdEF1dGhBY3Rpb24sXG4gIGxpc3RBdXRoRmFpbHVyZUFjdGlvbixcbiAgbGlzdEF1dGhTdWNjZXNzQWN0aW9uLFxuICBsaXN0QXV0aFRlYW1zQWN0aW9uLFxuICBsaXN0QXV0aFRlYW1zRmFpbHVyZUFjdGlvbixcbiAgbGlzdEF1dGhUZWFtc1N1Y2Nlc3NBY3Rpb24sXG4gIHJlZnJlc2hBdXRoc0FjdGlvbixcbiAgcmVmcmVzaEF1dGhzRmFpbHVyZUFjdGlvbixcbiAgcmVmcmVzaEF1dGhzU3VjY2Vzc0FjdGlvbixcbiAgcmVtb3ZlTWVtYmVyQXV0aEFjdGlvbixcbiAgcmVtb3ZlTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24sXG4gIHJlbW92ZU1lbWJlckF1dGhTdWNjZXNzQWN0aW9uLFxuICByZW1vdmVUZWFtQXV0aEFjdGlvbixcbiAgcmVtb3ZlVGVhbUF1dGhGYWlsdXJlQWN0aW9uLFxuICByZW1vdmVUZWFtQXV0aFN1Y2Nlc3NBY3Rpb24sXG4gIHNldEN1cnJlbnRBdXRoQWN0aW9uLFxuICB1bmJsb2NrTWVtYmVyQXV0aEFjdGlvbixcbiAgdW5ibG9ja01lbWJlckF1dGhGYWlsdXJlQWN0aW9uLFxuICB1bmJsb2NrTWVtYmVyQXV0aFN1Y2Nlc3NBY3Rpb25cbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwLCBmb3JrSm9pbiwgbWVyZ2VNYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQXV0aCwgQXV0aFRlYW0sIENvbGxlY3Rpb24sIFNlYXJjaFRlYW0gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgUmVtb3ZlTWVtYmVyQXV0aEludGVyZmFjZSwgUmVtb3ZlVGVhbUF1dGhJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGhlbnRpY2F0aW9uJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEF1dGhFZmZlY3RzIHtcbiAgcHJpdmF0ZSBhY3Rpb25zJCA9IGluamVjdChBY3Rpb25zKTtcbiAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2UgPSBpbmplY3QoQXV0aGVudGljYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgc3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoU3RvcmFnZVNlcnZpY2UpO1xuICBwcml2YXRlIHRlYW1TZXJ2aWNlID0gaW5qZWN0KFRlYW1TZXJ2aWNlKTtcblxuICBjbGVhckF1dGhlbnRpY2F0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoY2xlYXJBdXRoZW50aWNhdGlvbkFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+XG4gICAgICAgIGZvcmtKb2luKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRva2VuUmVtb3ZhbDogdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVBc09ic2VydmFibGUoU1RPUkFHRV9UT0tFTiksXG4gICAgICAgICAgICBzZWxlY3RlZEF1dGhSZW1vdmFsOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUFzT2JzZXJ2YWJsZShTVE9SQUdFX1NFTEVDVEVEX0FVVEgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRNZW1iZXJzUmVtb3ZhbDogdGhpcy5zdG9yYWdlU2VydmljZS5yZW1vdmVBc09ic2VydmFibGUoU1RPUkFHRV9TRUxFQ1RFRF9NRU1CRVJTKSxcbiAgICAgICAgICB9XG4gICAgICAgICkucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5jbGVhckF1dGhlbnRpY2F0aW9uKCk7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBjbGVhclN0b3JlQWN0aW9uKCksXG4gICAgICAgICAgICAgIGNsZWFyQXV0aGVudGljYXRpb25TdWNjZXNzQWN0aW9uKClcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGNsZWFyQ3VycmVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGNsZWFyQ3VycmVudEF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUFzT2JzZXJ2YWJsZShTVE9SQUdFX1NFTEVDVEVEX0FVVEgpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoKSA9PiBjbGVhckN1cnJlbnRBdXRoU3VjY2Vzc0FjdGlvbigpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGdldEN1cnJlbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShnZXRDdXJyZW50QXV0aEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0QXNPYnNlcnZhYmxlKFNUT1JBR0VfU0VMRUNURURfQVVUSClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChhdXRoOiBBdXRoIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICAgICAgaWYgKGF1dGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICByZXR1cm4gZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBudWxsfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhdXRofSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0QXV0aCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RBdXRoQWN0aW9uKSxcbiAgICAgIHN3aXRjaE1hcCgoe3BheWxvYWR9KSA9PiB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhzKHBheWxvYWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoYXV0aHM6IENvbGxlY3Rpb248QXV0aD4pID0+IGxpc3RBdXRoU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aHMudG9BcnJheSgpfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdEF1dGhGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0QXV0aFRlYW1zJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdEF1dGhUZWFtc0FjdGlvbiksXG4gICAgICBtZXJnZU1hcCgoe3BheWxvYWR9KSA9PiB7XG4gICAgICAgIGlmIChwYXlsb2FkLmNsdWJBZG1pbikge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRlYW1TZXJ2aWNlLmdldENsdWJUZWFtcyhwYXlsb2FkLmlkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgoc2VhcmNoVGVhbXM6IENvbGxlY3Rpb248U2VhcmNoVGVhbT4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdXRoID0ge1xuICAgICAgICAgICAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgICAgICAgICAgIHRlYW1zOiBzZWFyY2hUZWFtcy50b0FycmF5KClcbiAgICAgICAgICAgICAgICAgICAgLnNvcnQoKGE6IFNlYXJjaFRlYW0sIGI6IFNlYXJjaFRlYW0pID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBsaXN0QXV0aFRlYW1zU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYXV0aH0pO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0QXV0aFRlYW1zRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHNlY3Rpb25zVGVhbXMkOiBBcnJheTxPYnNlcnZhYmxlPENvbGxlY3Rpb248U2VhcmNoVGVhbT4+PiA9IHBheWxvYWQuc2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PlxuICAgICAgICAgICAgdGhpcy50ZWFtU2VydmljZS5nZXRTZWN0aW9uVGVhbXMoc2VjdGlvbi5pZClcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHNlY3Rpb25zVGVhbXMkKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBBcnJheTxDb2xsZWN0aW9uPFNlYXJjaFRlYW0+PikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzZWN0aW9uVGVhbXM6IEFycmF5PFNlYXJjaFRlYW0+ID0gcmVzdWx0c1xuICAgICAgICAgICAgICAgIC5mbGF0TWFwKChyZXN1bHQ6IENvbGxlY3Rpb248U2VhcmNoVGVhbT4pID0+IHJlc3VsdC50b0FycmF5KCkpO1xuICAgICAgICAgICAgICAvLyBVbmlvbiB0aGUgZmV0Y2hlZCBzZWN0aW9uIHRlYW1zIHdpdGggYW55IHRlYW1zIGFscmVhZHkgb24gdGhlIGF1dGggKGUuZy4gYSB0ZWFtIHRoZVxuICAgICAgICAgICAgICAvLyB1c2VyIGFkbWlucyBvdXRzaWRlIHRoZSBzZWN0aW9ucyB0aGV5IGFkbWluaXN0ZXIpLCBrZXllZCBieSBpZC4gRmV0Y2hlZCBTZWFyY2hUZWFtc1xuICAgICAgICAgICAgICAvLyB3aW4gb24gZHVwbGljYXRlcyBzbyB0aGUgcmljaGVyIHNlY3Rpb25fbmFtZSBpcyBrZXB0LlxuICAgICAgICAgICAgICBjb25zdCB0ZWFtc0J5SWQgPSBuZXcgTWFwPHN0cmluZywgQXV0aFRlYW0gfCBTZWFyY2hUZWFtPigpO1xuICAgICAgICAgICAgICBbLi4ucGF5bG9hZC50ZWFtcywgLi4uc2VjdGlvblRlYW1zXS5mb3JFYWNoKCh0ZWFtKSA9PiB0ZWFtc0J5SWQuc2V0KHRlYW0uaWQsIHRlYW0pKTtcbiAgICAgICAgICAgICAgY29uc3QgbWVyZ2VkVGVhbXMgPSBbLi4udGVhbXNCeUlkLnZhbHVlcygpXS5zb3J0KChhLCBiKSA9PiBhLm5hbWUubG9jYWxlQ29tcGFyZShiLm5hbWUpKTtcbiAgICAgICAgICAgICAgY29uc3QgYXV0aCA9IHtcbiAgICAgICAgICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICAgICAgICAgIC8vIHRlYW1zIGlzIHR5cGVkIGFzIEF1dGhUZWFtW10gfCBTZWFyY2hUZWFtW107IHRoZSBtZXJnZWQgbGlzdCBtYXkgbWl4IGJvdGggc2hhcGVzLFxuICAgICAgICAgICAgICAgIC8vIHdoaWNoIGNvbnN1bWVycyBhbHJlYWR5IGhhbmRsZSAodGhleSByZWFkIGlkL25hbWUvc2VjdGlvbl9uYW1lIHwgc2VjdGlvbj8ubmFtZSkuXG4gICAgICAgICAgICAgICAgdGVhbXM6IG1lcmdlZFRlYW1zIGFzIFNlYXJjaFRlYW1bXSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgcmV0dXJuIGxpc3RBdXRoVGVhbXNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhdXRofSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdEF1dGhUZWFtc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICApO1xuXG4gIHJlZnJlc2gkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZWZyZXNoQXV0aHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLmF1dGhTZXJ2aWNlLnVwZGF0ZU1lbWJlcnMoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtZXJnZU1hcCgoc3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICByZWZyZXNoQXV0aHNTdWNjZXNzQWN0aW9uKCksXG4gICAgICAgICAgICAgICAgbGlzdEF1dGhBY3Rpb24oKVxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHJlZnJlc2hBdXRoc0ZhaWx1cmVBY3Rpb24oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihyZWZyZXNoQXV0aHNGYWlsdXJlQWN0aW9uKCkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJlbW92ZU1lbWJlciQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJlbW92ZU1lbWJlckF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogUmVtb3ZlTWVtYmVyQXV0aEludGVyZmFjZVxuICAgICAgICB9KSA9PiB0aGlzLmF1dGhTZXJ2aWNlLnJlbW92ZU1lbWJlckF1dGgocGF5bG9hZC5hdXRoSWQsIHBheWxvYWQubWVtYmVySWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhbHVlOiBib29sZWFuKSA9PiB2YWx1ZSA/IHJlbW92ZU1lbWJlckF1dGhTdWNjZXNzQWN0aW9uKCkgOiByZW1vdmVNZW1iZXJBdXRoRmFpbHVyZUFjdGlvbigpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YocmVtb3ZlTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24oKSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZW1vdmVUZWFtJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmVtb3ZlVGVhbUF1dGhBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7XG4gICAgICAgICAgcGF5bG9hZDogUmVtb3ZlVGVhbUF1dGhJbnRlcmZhY2VcbiAgICAgICAgfSkgPT4gdGhpcy5hdXRoU2VydmljZS5yZW1vdmVUZWFtQXV0aChwYXlsb2FkLmF1dGhJZCwgcGF5bG9hZC50ZWFtSWQpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhbHVlOiBib29sZWFuKSA9PiB2YWx1ZSA/IHJlbW92ZVRlYW1BdXRoU3VjY2Vzc0FjdGlvbigpIDogcmVtb3ZlVGVhbUF1dGhGYWlsdXJlQWN0aW9uKCkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihyZW1vdmVNZW1iZXJBdXRoRmFpbHVyZUFjdGlvbigpKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHNldEN1cnJlbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShzZXRDdXJyZW50QXV0aEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHsgcGF5bG9hZDogQXV0aCB9KSA9PiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEFzT2JzZXJ2YWJsZShTVE9SQUdFX1NFTEVDVEVEX0FVVEgpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKChvbGRBdXRoOiBBdXRoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRBc09ic2VydmFibGUoU1RPUkFHRV9TRUxFQ1RFRF9BVVRILCBwYXlsb2FkKVxuICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgobmV3QXV0aDogQXV0aCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKG9sZEF1dGggJiYgbmV3QXV0aC5pZCA9PT0gb2xkQXV0aC5pZCAmJiAoKG5ld0F1dGgubWVtYmVycyAmJiBuZXdBdXRoLm1lbWJlcnMubGVuZ3RoID09PSBvbGRBdXRoLm1lbWJlcnMubGVuZ3RoKSB8fCAobmV3QXV0aC50ZWFtcyAmJiBuZXdBdXRoLnRlYW1zLmxlbmd0aCA9PT0gb2xkQXV0aC50ZWFtcy5sZW5ndGggJiYgbmV3QXV0aC50ZWFtc1swXS5pZCA9PT0gb2xkQXV0aC50ZWFtc1swXS5pZCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgICAgZ2V0Q3VycmVudEF1dGhTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBuZXdBdXRofSlcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICBnZXRDdXJyZW50QXV0aFN1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IG5ld0F1dGh9KSxcbiAgICAgICAgICAgICAgICAgICAgICBjbGVhclN0b3JlQWN0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHVuYmxvY2tNZW1iZXIkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZSh1bmJsb2NrTWVtYmVyQXV0aEFjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiB7dXNlcklkOiBzdHJpbmcsIGNsdWJJZDogc3RyaW5nLCBtZW1iZXJJZDogc3RyaW5nfX0pID0+IHRoaXMuYXV0aFNlcnZpY2UudW5ibG9ja01lbWJlcihwYXlsb2FkLnVzZXJJZCwgcGF5bG9hZC5jbHViSWQsIHBheWxvYWQubWVtYmVySWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1lcmdlTWFwKChzdWNjZXNzOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHVuYmxvY2tNZW1iZXJBdXRoU3VjY2Vzc0FjdGlvbigpLFxuICAgICAgICAgICAgICAgIHJlZnJlc2hBdXRoc0FjdGlvbigpXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICB1bmJsb2NrTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24oe1xuICAgICAgICAgICAgICBwYXlsb2FkOiBuZXcgSHR0cEVycm9yUmVzcG9uc2Uoe3N0YXR1czogNDAwfSlcbiAgICAgICAgICAgIH0pXTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih1bmJsb2NrTWVtYmVyQXV0aEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKVxufVxuIl19
|