@idp.global/catalog 2.0.0 → 2.1.1
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/changelog.md +27 -0
- package/dist_bundle/bundle.js +3726 -1337
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/idp-admin-overview.d.ts +28 -0
- package/dist_ts_web/elements/idp-admin-overview.js +460 -0
- package/dist_ts_web/elements/idp-admin-shared.d.ts +18 -0
- package/dist_ts_web/elements/idp-admin-shared.js +404 -0
- package/dist_ts_web/elements/idp-admin-shell.d.ts +96 -11
- package/dist_ts_web/elements/idp-admin-shell.js +442 -816
- package/dist_ts_web/elements/idp-admin-sidebar.d.ts +42 -0
- package/dist_ts_web/elements/idp-admin-sidebar.js +702 -0
- package/dist_ts_web/elements/idp-app-pair.d.ts +19 -0
- package/dist_ts_web/elements/idp-app-pair.js +187 -0
- package/dist_ts_web/elements/idp-auth-card.d.ts +17 -0
- package/dist_ts_web/elements/idp-auth-card.js +180 -0
- package/dist_ts_web/elements/idp-avatar.d.ts +17 -0
- package/dist_ts_web/elements/idp-avatar.js +151 -0
- package/dist_ts_web/elements/idp-badge.d.ts +2 -0
- package/dist_ts_web/elements/idp-badge.js +12 -3
- package/dist_ts_web/elements/idp-brand-mark.d.ts +16 -0
- package/dist_ts_web/elements/idp-brand-mark.js +139 -0
- package/dist_ts_web/elements/idp-button.d.ts +3 -0
- package/dist_ts_web/elements/idp-button.js +47 -3
- package/dist_ts_web/elements/idp-consent-card.d.ts +34 -0
- package/dist_ts_web/elements/idp-consent-card.js +217 -0
- package/dist_ts_web/elements/idp-delegation-section.d.ts +59 -0
- package/dist_ts_web/elements/idp-delegation-section.js +609 -0
- package/dist_ts_web/elements/idp-form-submit.d.ts +2 -1
- package/dist_ts_web/elements/idp-form-submit.js +11 -2
- package/dist_ts_web/elements/idp-form.js +2 -2
- package/dist_ts_web/elements/idp-input.d.ts +4 -0
- package/dist_ts_web/elements/idp-input.js +68 -15
- package/dist_ts_web/elements/idp-option-row.d.ts +25 -0
- package/dist_ts_web/elements/idp-option-row.js +267 -0
- package/dist_ts_web/elements/idp-otp-input.d.ts +32 -0
- package/dist_ts_web/elements/idp-otp-input.js +274 -0
- package/dist_ts_web/elements/idp-progress-bar.d.ts +14 -0
- package/dist_ts_web/elements/idp-progress-bar.js +127 -0
- package/dist_ts_web/elements/idp-signed-in-pill.d.ts +15 -0
- package/dist_ts_web/elements/idp-signed-in-pill.js +113 -0
- package/dist_ts_web/elements/idp-spinner.d.ts +13 -0
- package/dist_ts_web/elements/idp-spinner.js +109 -0
- package/dist_ts_web/elements/idp-status-icon.d.ts +18 -0
- package/dist_ts_web/elements/idp-status-icon.js +136 -0
- package/dist_ts_web/elements/index.d.ts +15 -0
- package/dist_ts_web/elements/index.js +16 -1
- package/package.json +2 -2
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/idp-admin-overview.ts +388 -0
- package/ts_web/elements/idp-admin-shared.ts +419 -0
- package/ts_web/elements/idp-admin-shell.ts +514 -871
- package/ts_web/elements/idp-admin-sidebar.ts +648 -0
- package/ts_web/elements/idp-app-pair.ts +120 -0
- package/ts_web/elements/idp-auth-card.ts +113 -0
- package/ts_web/elements/idp-avatar.ts +84 -0
- package/ts_web/elements/idp-badge.ts +5 -1
- package/ts_web/elements/idp-brand-mark.ts +76 -0
- package/ts_web/elements/idp-button.ts +36 -1
- package/ts_web/elements/idp-consent-card.ts +146 -0
- package/ts_web/elements/idp-delegation-section.ts +576 -0
- package/ts_web/elements/idp-form-submit.ts +5 -1
- package/ts_web/elements/idp-form.ts +1 -1
- package/ts_web/elements/idp-input.ts +58 -13
- package/ts_web/elements/idp-option-row.ts +184 -0
- package/ts_web/elements/idp-otp-input.ts +204 -0
- package/ts_web/elements/idp-progress-bar.ts +69 -0
- package/ts_web/elements/idp-signed-in-pill.ts +55 -0
- package/ts_web/elements/idp-spinner.ts +56 -0
- package/ts_web/elements/idp-status-icon.ts +76 -0
- package/ts_web/elements/index.ts +15 -0
|
@@ -37,6 +37,12 @@ import { idpElementStyles } from './tokens.js';
|
|
|
37
37
|
import './idp-badge.js';
|
|
38
38
|
import './idp-icon.js';
|
|
39
39
|
import './idp-data-table.js';
|
|
40
|
+
import './idp-avatar.js';
|
|
41
|
+
import './idp-toggle.js';
|
|
42
|
+
import './idp-delegation-section.js';
|
|
43
|
+
import './idp-admin-sidebar.js';
|
|
44
|
+
import './idp-admin-overview.js';
|
|
45
|
+
import { idpAdminSharedStyles, renderAdminKpi, renderAdminStateCard, formatAdminTimeAgo } from './idp-admin-shared.js';
|
|
40
46
|
let IdpAdminShell = (() => {
|
|
41
47
|
let _classDecorators = [customElement('idp-admin-shell')];
|
|
42
48
|
let _classDescriptor;
|
|
@@ -109,9 +115,36 @@ let IdpAdminShell = (() => {
|
|
|
109
115
|
let _credentialMessage_decorators;
|
|
110
116
|
let _credentialMessage_initializers = [];
|
|
111
117
|
let _credentialMessage_extraInitializers = [];
|
|
112
|
-
let
|
|
113
|
-
let
|
|
114
|
-
let
|
|
118
|
+
let _accounts_decorators;
|
|
119
|
+
let _accounts_initializers = [];
|
|
120
|
+
let _accounts_extraInitializers = [];
|
|
121
|
+
let _gaUsers_decorators;
|
|
122
|
+
let _gaUsers_initializers = [];
|
|
123
|
+
let _gaUsers_extraInitializers = [];
|
|
124
|
+
let _overviewData_decorators;
|
|
125
|
+
let _overviewData_initializers = [];
|
|
126
|
+
let _overviewData_extraInitializers = [];
|
|
127
|
+
let _delegationApps_decorators;
|
|
128
|
+
let _delegationApps_initializers = [];
|
|
129
|
+
let _delegationApps_extraInitializers = [];
|
|
130
|
+
let _delegations_decorators;
|
|
131
|
+
let _delegations_initializers = [];
|
|
132
|
+
let _delegations_extraInitializers = [];
|
|
133
|
+
let _logoutEverywhere_decorators;
|
|
134
|
+
let _logoutEverywhere_initializers = [];
|
|
135
|
+
let _logoutEverywhere_extraInitializers = [];
|
|
136
|
+
let _createOrgName_decorators;
|
|
137
|
+
let _createOrgName_initializers = [];
|
|
138
|
+
let _createOrgName_extraInitializers = [];
|
|
139
|
+
let _createOrgSlug_decorators;
|
|
140
|
+
let _createOrgSlug_initializers = [];
|
|
141
|
+
let _createOrgSlug_extraInitializers = [];
|
|
142
|
+
let _gaUserSearch_decorators;
|
|
143
|
+
let _gaUserSearch_initializers = [];
|
|
144
|
+
let _gaUserSearch_extraInitializers = [];
|
|
145
|
+
let _toast_decorators;
|
|
146
|
+
let _toast_initializers = [];
|
|
147
|
+
let _toast_extraInitializers = [];
|
|
115
148
|
let _currentPassword_decorators;
|
|
116
149
|
let _currentPassword_initializers = [];
|
|
117
150
|
let _currentPassword_extraInitializers = [];
|
|
@@ -204,7 +237,16 @@ let IdpAdminShell = (() => {
|
|
|
204
237
|
_totpEnrollment_decorators = [property({ type: Object })];
|
|
205
238
|
_passkeys_decorators = [property({ type: Array })];
|
|
206
239
|
_credentialMessage_decorators = [property({ type: String, attribute: 'credential-message' })];
|
|
207
|
-
|
|
240
|
+
_accounts_decorators = [property({ type: Array })];
|
|
241
|
+
_gaUsers_decorators = [property({ type: Array })];
|
|
242
|
+
_overviewData_decorators = [property({ type: Object })];
|
|
243
|
+
_delegationApps_decorators = [property({ type: Array })];
|
|
244
|
+
_delegations_decorators = [property({ type: Array })];
|
|
245
|
+
_logoutEverywhere_decorators = [state()];
|
|
246
|
+
_createOrgName_decorators = [state()];
|
|
247
|
+
_createOrgSlug_decorators = [state()];
|
|
248
|
+
_gaUserSearch_decorators = [state()];
|
|
249
|
+
_toast_decorators = [state()];
|
|
208
250
|
_currentPassword_decorators = [state()];
|
|
209
251
|
_newPassword_decorators = [state()];
|
|
210
252
|
_confirmPassword_decorators = [state()];
|
|
@@ -249,7 +291,16 @@ let IdpAdminShell = (() => {
|
|
|
249
291
|
__esDecorate(this, null, _totpEnrollment_decorators, { kind: "accessor", name: "totpEnrollment", static: false, private: false, access: { has: obj => "totpEnrollment" in obj, get: obj => obj.totpEnrollment, set: (obj, value) => { obj.totpEnrollment = value; } }, metadata: _metadata }, _totpEnrollment_initializers, _totpEnrollment_extraInitializers);
|
|
250
292
|
__esDecorate(this, null, _passkeys_decorators, { kind: "accessor", name: "passkeys", static: false, private: false, access: { has: obj => "passkeys" in obj, get: obj => obj.passkeys, set: (obj, value) => { obj.passkeys = value; } }, metadata: _metadata }, _passkeys_initializers, _passkeys_extraInitializers);
|
|
251
293
|
__esDecorate(this, null, _credentialMessage_decorators, { kind: "accessor", name: "credentialMessage", static: false, private: false, access: { has: obj => "credentialMessage" in obj, get: obj => obj.credentialMessage, set: (obj, value) => { obj.credentialMessage = value; } }, metadata: _metadata }, _credentialMessage_initializers, _credentialMessage_extraInitializers);
|
|
252
|
-
__esDecorate(this, null,
|
|
294
|
+
__esDecorate(this, null, _accounts_decorators, { kind: "accessor", name: "accounts", static: false, private: false, access: { has: obj => "accounts" in obj, get: obj => obj.accounts, set: (obj, value) => { obj.accounts = value; } }, metadata: _metadata }, _accounts_initializers, _accounts_extraInitializers);
|
|
295
|
+
__esDecorate(this, null, _gaUsers_decorators, { kind: "accessor", name: "gaUsers", static: false, private: false, access: { has: obj => "gaUsers" in obj, get: obj => obj.gaUsers, set: (obj, value) => { obj.gaUsers = value; } }, metadata: _metadata }, _gaUsers_initializers, _gaUsers_extraInitializers);
|
|
296
|
+
__esDecorate(this, null, _overviewData_decorators, { kind: "accessor", name: "overviewData", static: false, private: false, access: { has: obj => "overviewData" in obj, get: obj => obj.overviewData, set: (obj, value) => { obj.overviewData = value; } }, metadata: _metadata }, _overviewData_initializers, _overviewData_extraInitializers);
|
|
297
|
+
__esDecorate(this, null, _delegationApps_decorators, { kind: "accessor", name: "delegationApps", static: false, private: false, access: { has: obj => "delegationApps" in obj, get: obj => obj.delegationApps, set: (obj, value) => { obj.delegationApps = value; } }, metadata: _metadata }, _delegationApps_initializers, _delegationApps_extraInitializers);
|
|
298
|
+
__esDecorate(this, null, _delegations_decorators, { kind: "accessor", name: "delegations", static: false, private: false, access: { has: obj => "delegations" in obj, get: obj => obj.delegations, set: (obj, value) => { obj.delegations = value; } }, metadata: _metadata }, _delegations_initializers, _delegations_extraInitializers);
|
|
299
|
+
__esDecorate(this, null, _logoutEverywhere_decorators, { kind: "accessor", name: "logoutEverywhere", static: false, private: false, access: { has: obj => "logoutEverywhere" in obj, get: obj => obj.logoutEverywhere, set: (obj, value) => { obj.logoutEverywhere = value; } }, metadata: _metadata }, _logoutEverywhere_initializers, _logoutEverywhere_extraInitializers);
|
|
300
|
+
__esDecorate(this, null, _createOrgName_decorators, { kind: "accessor", name: "createOrgName", static: false, private: false, access: { has: obj => "createOrgName" in obj, get: obj => obj.createOrgName, set: (obj, value) => { obj.createOrgName = value; } }, metadata: _metadata }, _createOrgName_initializers, _createOrgName_extraInitializers);
|
|
301
|
+
__esDecorate(this, null, _createOrgSlug_decorators, { kind: "accessor", name: "createOrgSlug", static: false, private: false, access: { has: obj => "createOrgSlug" in obj, get: obj => obj.createOrgSlug, set: (obj, value) => { obj.createOrgSlug = value; } }, metadata: _metadata }, _createOrgSlug_initializers, _createOrgSlug_extraInitializers);
|
|
302
|
+
__esDecorate(this, null, _gaUserSearch_decorators, { kind: "accessor", name: "gaUserSearch", static: false, private: false, access: { has: obj => "gaUserSearch" in obj, get: obj => obj.gaUserSearch, set: (obj, value) => { obj.gaUserSearch = value; } }, metadata: _metadata }, _gaUserSearch_initializers, _gaUserSearch_extraInitializers);
|
|
303
|
+
__esDecorate(this, null, _toast_decorators, { kind: "accessor", name: "toast", static: false, private: false, access: { has: obj => "toast" in obj, get: obj => obj.toast, set: (obj, value) => { obj.toast = value; } }, metadata: _metadata }, _toast_initializers, _toast_extraInitializers);
|
|
253
304
|
__esDecorate(this, null, _currentPassword_decorators, { kind: "accessor", name: "currentPassword", static: false, private: false, access: { has: obj => "currentPassword" in obj, get: obj => obj.currentPassword, set: (obj, value) => { obj.currentPassword = value; } }, metadata: _metadata }, _currentPassword_initializers, _currentPassword_extraInitializers);
|
|
254
305
|
__esDecorate(this, null, _newPassword_decorators, { kind: "accessor", name: "newPassword", static: false, private: false, access: { has: obj => "newPassword" in obj, get: obj => obj.newPassword, set: (obj, value) => { obj.newPassword = value; } }, metadata: _metadata }, _newPassword_initializers, _newPassword_extraInitializers);
|
|
255
306
|
__esDecorate(this, null, _confirmPassword_decorators, { kind: "accessor", name: "confirmPassword", static: false, private: false, access: { has: obj => "confirmPassword" in obj, get: obj => obj.confirmPassword, set: (obj, value) => { obj.confirmPassword = value; } }, metadata: _metadata }, _confirmPassword_initializers, _confirmPassword_extraInitializers);
|
|
@@ -276,10 +327,94 @@ let IdpAdminShell = (() => {
|
|
|
276
327
|
IdpAdminShell = _classThis = _classDescriptor.value;
|
|
277
328
|
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
278
329
|
}
|
|
279
|
-
static demo = () =>
|
|
280
|
-
|
|
330
|
+
static demo = () => {
|
|
331
|
+
const now = Date.now();
|
|
332
|
+
const hours = Array.from({ length: 24 }, (unused, indexArg) => indexArg);
|
|
333
|
+
return html `
|
|
334
|
+
<idp-admin-shell
|
|
335
|
+
global-admin
|
|
336
|
+
.user=${{ name: 'Alex Mercer', email: 'alex@lossless.com' }}
|
|
337
|
+
.accounts=${[
|
|
338
|
+
{ name: 'Alex Mercer', email: 'alex.mercer@gmail.com' },
|
|
339
|
+
]}
|
|
340
|
+
.orgs=${[
|
|
341
|
+
{ id: 'org_foss', name: 'Lossless GmbH', slug: 'lossless', myRole: 'owner', plan: 'Pro', status: 'active', memberCount: 5, createdAt: now - 86400000 * 200 },
|
|
342
|
+
{ id: 'org_task', name: 'Task VC', slug: 'task', myRole: 'admin', plan: 'Pro', status: 'active', memberCount: 3, createdAt: now - 86400000 * 140 },
|
|
343
|
+
{ id: 'org_sus', name: 'Suspended Co.', slug: 'suspended', myRole: 'viewer', plan: 'Pro', status: 'suspended', memberCount: 2, createdAt: now - 86400000 * 80 },
|
|
344
|
+
]}
|
|
345
|
+
.sessions=${[
|
|
346
|
+
{ id: 's1', deviceName: 'MacBook Pro', browser: 'Safari 18', os: 'macOS', ip: '84.132.10.4', lastActive: now - 120000, createdAt: now - 86400000 * 3, isCurrent: true },
|
|
347
|
+
{ id: 's2', deviceName: 'iPhone 15 Pro', browser: 'Safari', os: 'iOS 18', ip: '84.132.10.4', lastActive: now - 3600000, createdAt: now - 86400000 * 10, isCurrent: false },
|
|
348
|
+
{ id: 's3', deviceName: 'Work laptop', browser: 'Chrome 132', os: 'Windows 11', ip: '13.48.2.1', lastActive: now - 86400000, createdAt: now - 86400000 * 30, isCurrent: false },
|
|
349
|
+
]}
|
|
350
|
+
.gaUsers=${[
|
|
351
|
+
{ id: 'u01', name: 'Alex Mercer', email: 'alex@lossless.com', status: 'active', isGlobalAdmin: true, orgCount: 2, createdAt: now - 86400000 * 200 },
|
|
352
|
+
{ id: 'u02', name: 'Jordan Kim', email: 'jordan@lossless.com', status: 'active', isGlobalAdmin: false, orgCount: 1, createdAt: now - 86400000 * 100 },
|
|
353
|
+
{ id: 'u05', name: 'Dana Walsh', email: 'dana@suspended.de', status: 'suspended', isGlobalAdmin: false, orgCount: 0, createdAt: now - 86400000 * 60 },
|
|
354
|
+
{ id: 'u06', name: 'Morgan Lee', email: 'morgan@newuser.com', status: 'new', isGlobalAdmin: false, orgCount: 0, createdAt: now - 86400000 },
|
|
355
|
+
]}
|
|
356
|
+
.adminApps=${[
|
|
357
|
+
{ id: 'app_foss', name: 'foss.global', type: 'global', category: 'Productivity', status: 'active' },
|
|
358
|
+
{ id: 'app_p1', name: 'Acme HR Portal', type: 'partner', category: 'HR', connectionCount: 412, status: 'approved' },
|
|
359
|
+
{ id: 'app_p2', name: 'DevOps Suite', type: 'partner', category: 'DevOps', connectionCount: 87, status: 'pending_review' },
|
|
360
|
+
]}
|
|
361
|
+
.overviewData=${{
|
|
362
|
+
chartLabel: 'Approval activity',
|
|
363
|
+
chartSeries: [
|
|
364
|
+
{ name: 'Approvals', data: hours.map((hourArg) => ({ x: now - (23 - hourArg) * 3600000, y: [22, 18, 14, 10, 8, 7, 9, 14, 22, 38, 52, 64, 71, 74, 70, 65, 58, 52, 45, 38, 32, 28, 25, 23][hourArg] })) },
|
|
365
|
+
{ name: 'OAuth grants', data: hours.map((hourArg) => ({ x: now - (23 - hourArg) * 3600000, y: [16, 12, 9, 7, 6, 5, 7, 11, 18, 30, 42, 50, 56, 58, 56, 52, 47, 41, 36, 30, 26, 23, 20, 18][hourArg] })) },
|
|
366
|
+
],
|
|
367
|
+
threats: [
|
|
368
|
+
{ severity: 'error', title: 'Repeated denied logins', meta: '5 attempts · Lagos, NG · last 1h', action: 'Block IP' },
|
|
369
|
+
{ severity: 'warning', title: 'Stale device key', meta: 'sam@ · Apple Watch · 9 mo old', action: 'Rotate' },
|
|
370
|
+
{ severity: 'info', title: 'Pending key rotations', meta: '3 identities · Cardano awaiting', action: 'Run' },
|
|
371
|
+
],
|
|
372
|
+
regions: [
|
|
373
|
+
{ name: 'Berlin, DE', code: 'DE', count: 1284, share: 1, kind: 'home' },
|
|
374
|
+
{ name: 'Amsterdam, NL', code: 'NL', count: 642, share: 0.5 },
|
|
375
|
+
{ name: 'San Francisco, US', code: 'US', count: 521, share: 0.41 },
|
|
376
|
+
{ name: 'Lagos, NG', code: 'NG', count: 12, share: 0.01, kind: 'risk' },
|
|
377
|
+
],
|
|
378
|
+
feed: [
|
|
379
|
+
{ tone: 'info', text: 'Identity created · did:idp:0x9b12…f034', meta: 'block #9 841 222' },
|
|
380
|
+
{ tone: 'ok', text: 'Anchor confirmed · 12 blocks deep', meta: '2m' },
|
|
381
|
+
{ tone: 'warn', text: 'Device registered · MacBook Pro · pending', meta: '7m' },
|
|
382
|
+
],
|
|
383
|
+
}}
|
|
384
|
+
.delegationApps=${[
|
|
385
|
+
{
|
|
386
|
+
id: 'foss',
|
|
387
|
+
name: 'foss.global',
|
|
388
|
+
perms: [
|
|
389
|
+
{ id: 'projects:read', label: 'View projects', hint: 'Read-only access to your projects' },
|
|
390
|
+
{ id: 'projects:write', label: 'Manage projects', hint: 'Create, edit and archive projects' },
|
|
391
|
+
],
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
id: 'task',
|
|
395
|
+
name: 'task.vc',
|
|
396
|
+
perms: [
|
|
397
|
+
{ id: 'tasks:read', label: 'View tasks', hint: 'See your tasks and boards' },
|
|
398
|
+
{ id: 'tasks:write', label: 'Act on tasks', hint: 'Create, assign and complete tasks as you' },
|
|
399
|
+
],
|
|
400
|
+
},
|
|
401
|
+
]}
|
|
402
|
+
.delegations=${[
|
|
403
|
+
{
|
|
404
|
+
id: 'd1',
|
|
405
|
+
account: { name: 'Jordan Kim', email: 'jordan@lossless.com' },
|
|
406
|
+
grants: { task: ['tasks:read', 'tasks:write'] },
|
|
407
|
+
expiresAt: now + 86400000 * 24,
|
|
408
|
+
createdAt: now - 86400000 * 6,
|
|
409
|
+
},
|
|
410
|
+
]}
|
|
411
|
+
></idp-admin-shell>
|
|
412
|
+
`;
|
|
413
|
+
};
|
|
414
|
+
static demoGroups = ['idp.global v5 full pages'];
|
|
281
415
|
static styles = [
|
|
282
416
|
...idpElementStyles,
|
|
417
|
+
idpAdminSharedStyles,
|
|
283
418
|
css `
|
|
284
419
|
:host {
|
|
285
420
|
display: block;
|
|
@@ -298,78 +433,9 @@ let IdpAdminShell = (() => {
|
|
|
298
433
|
border: 0;
|
|
299
434
|
background: var(--idp-bg);
|
|
300
435
|
}
|
|
301
|
-
|
|
436
|
+
idp-admin-sidebar {
|
|
302
437
|
height: 100%;
|
|
303
438
|
min-height: 0;
|
|
304
|
-
display: flex;
|
|
305
|
-
flex-direction: column;
|
|
306
|
-
overflow: hidden;
|
|
307
|
-
border-right: 1px solid var(--idp-border);
|
|
308
|
-
background: var(--idp-bg);
|
|
309
|
-
}
|
|
310
|
-
.logo-block {
|
|
311
|
-
padding: 14px 16px 10px;
|
|
312
|
-
border-bottom: 1px solid var(--idp-border);
|
|
313
|
-
}
|
|
314
|
-
.logo {
|
|
315
|
-
display: flex;
|
|
316
|
-
align-items: center;
|
|
317
|
-
gap: 8px;
|
|
318
|
-
}
|
|
319
|
-
.logo-icon {
|
|
320
|
-
width: 26px;
|
|
321
|
-
height: 26px;
|
|
322
|
-
display: flex;
|
|
323
|
-
align-items: center;
|
|
324
|
-
justify-content: center;
|
|
325
|
-
flex-shrink: 0;
|
|
326
|
-
border-radius: 7px;
|
|
327
|
-
background: var(--idp-primary);
|
|
328
|
-
color: var(--idp-primary-fg);
|
|
329
|
-
}
|
|
330
|
-
.logo-text {
|
|
331
|
-
color: var(--idp-fg);
|
|
332
|
-
font-size: 13px;
|
|
333
|
-
font-weight: 700;
|
|
334
|
-
letter-spacing: -0.3px;
|
|
335
|
-
}
|
|
336
|
-
.nav-wrap {
|
|
337
|
-
flex: 1;
|
|
338
|
-
min-height: 0;
|
|
339
|
-
overflow: auto;
|
|
340
|
-
padding: 10px 8px;
|
|
341
|
-
}
|
|
342
|
-
.state-card {
|
|
343
|
-
padding: 42px 24px;
|
|
344
|
-
border: 1px solid var(--idp-border);
|
|
345
|
-
border-radius: var(--idp-radius);
|
|
346
|
-
background: var(--idp-card);
|
|
347
|
-
color: var(--idp-muted-fg);
|
|
348
|
-
text-align: center;
|
|
349
|
-
}
|
|
350
|
-
.state-icon {
|
|
351
|
-
width: 38px;
|
|
352
|
-
height: 38px;
|
|
353
|
-
display: inline-flex;
|
|
354
|
-
align-items: center;
|
|
355
|
-
justify-content: center;
|
|
356
|
-
margin-bottom: 12px;
|
|
357
|
-
border: 1px solid var(--idp-border);
|
|
358
|
-
border-radius: 10px;
|
|
359
|
-
background: var(--idp-muted);
|
|
360
|
-
color: var(--idp-muted-fg);
|
|
361
|
-
}
|
|
362
|
-
.state-title {
|
|
363
|
-
margin-bottom: 4px;
|
|
364
|
-
color: var(--idp-fg);
|
|
365
|
-
font-size: 14px;
|
|
366
|
-
font-weight: 600;
|
|
367
|
-
}
|
|
368
|
-
.state-description {
|
|
369
|
-
max-width: 420px;
|
|
370
|
-
margin: 0 auto;
|
|
371
|
-
font-size: 12px;
|
|
372
|
-
line-height: 1.5;
|
|
373
439
|
}
|
|
374
440
|
.notice-card {
|
|
375
441
|
display: flex;
|
|
@@ -384,219 +450,48 @@ let IdpAdminShell = (() => {
|
|
|
384
450
|
.notice-card .muted {
|
|
385
451
|
color: var(--idp-muted-fg);
|
|
386
452
|
}
|
|
387
|
-
.
|
|
388
|
-
margin-bottom: 20px;
|
|
389
|
-
}
|
|
390
|
-
.nav-title {
|
|
391
|
-
padding: 0 8px;
|
|
392
|
-
margin-bottom: 4px;
|
|
393
|
-
color: var(--idp-muted-fg);
|
|
394
|
-
font-size: 10px;
|
|
395
|
-
font-weight: 600;
|
|
396
|
-
letter-spacing: 0.8px;
|
|
397
|
-
text-transform: uppercase;
|
|
398
|
-
}
|
|
399
|
-
.nav-list {
|
|
400
|
-
display: grid;
|
|
401
|
-
}
|
|
402
|
-
.nav-item,
|
|
403
|
-
.org-switch,
|
|
404
|
-
.plain-button {
|
|
405
|
-
border: 0;
|
|
406
|
-
font-family: inherit;
|
|
407
|
-
}
|
|
408
|
-
.nav-item {
|
|
409
|
-
width: 100%;
|
|
453
|
+
.logout-everywhere-row {
|
|
410
454
|
display: flex;
|
|
411
455
|
align-items: center;
|
|
412
|
-
gap:
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
background: transparent;
|
|
416
|
-
color: var(--idp-muted-fg);
|
|
417
|
-
font-size: 13px;
|
|
418
|
-
font-weight: 400;
|
|
419
|
-
text-align: left;
|
|
420
|
-
}
|
|
421
|
-
.nav-item.active {
|
|
422
|
-
background: var(--idp-muted);
|
|
423
|
-
color: var(--idp-fg);
|
|
424
|
-
font-weight: 500;
|
|
425
|
-
}
|
|
426
|
-
.nav-item idp-icon {
|
|
427
|
-
color: currentColor;
|
|
428
|
-
}
|
|
429
|
-
.nav-item.active idp-icon {
|
|
430
|
-
color: var(--idp-accent);
|
|
431
|
-
}
|
|
432
|
-
.org-switch-wrap {
|
|
433
|
-
position: relative;
|
|
434
|
-
margin-bottom: 2px;
|
|
435
|
-
}
|
|
436
|
-
.org-switch {
|
|
437
|
-
width: 100%;
|
|
438
|
-
display: flex;
|
|
439
|
-
align-items: center;
|
|
440
|
-
gap: 8px;
|
|
441
|
-
padding: 6px 8px;
|
|
442
|
-
border-radius: 7px;
|
|
443
|
-
background: transparent;
|
|
444
|
-
color: var(--idp-muted-fg);
|
|
445
|
-
cursor: pointer;
|
|
446
|
-
}
|
|
447
|
-
.org-switch:hover {
|
|
448
|
-
background: var(--idp-muted);
|
|
449
|
-
}
|
|
450
|
-
.org-switch.open {
|
|
451
|
-
background: var(--idp-muted);
|
|
452
|
-
}
|
|
453
|
-
.org-switch.open .org-name {
|
|
454
|
-
color: var(--idp-accent);
|
|
455
|
-
}
|
|
456
|
-
.org-switch.open idp-icon {
|
|
457
|
-
transform: rotate(180deg);
|
|
458
|
-
}
|
|
459
|
-
.org-menu {
|
|
460
|
-
position: absolute;
|
|
461
|
-
top: calc(100% + 4px);
|
|
462
|
-
left: 0;
|
|
463
|
-
right: 0;
|
|
464
|
-
z-index: 40;
|
|
465
|
-
overflow: hidden;
|
|
456
|
+
gap: 10px;
|
|
457
|
+
margin-top: 14px;
|
|
458
|
+
padding: 10px 12px;
|
|
466
459
|
border: 1px solid var(--idp-border);
|
|
467
|
-
border-radius:
|
|
468
|
-
|
|
469
|
-
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
|
|
470
|
-
}
|
|
471
|
-
.org-menu-title {
|
|
472
|
-
padding: 6px 8px 3px;
|
|
473
|
-
color: var(--idp-muted-fg);
|
|
474
|
-
font-size: 10px;
|
|
475
|
-
font-weight: 600;
|
|
476
|
-
letter-spacing: 0.7px;
|
|
477
|
-
text-transform: uppercase;
|
|
478
|
-
}
|
|
479
|
-
.org-menu-item,
|
|
480
|
-
.org-create {
|
|
481
|
-
width: 100%;
|
|
482
|
-
display: flex;
|
|
483
|
-
align-items: center;
|
|
484
|
-
gap: 8px;
|
|
485
|
-
border: 0;
|
|
486
|
-
background: transparent;
|
|
487
|
-
font-family: inherit;
|
|
488
|
-
text-align: left;
|
|
489
|
-
}
|
|
490
|
-
.org-menu-item {
|
|
491
|
-
padding: 6px 8px;
|
|
492
|
-
cursor: pointer;
|
|
493
|
-
}
|
|
494
|
-
.org-menu-item.selected {
|
|
495
|
-
background: var(--idp-accent-soft);
|
|
496
|
-
}
|
|
497
|
-
.org-menu-item .org-avatar {
|
|
498
|
-
width: 20px;
|
|
499
|
-
height: 20px;
|
|
500
|
-
font-size: 7px;
|
|
501
|
-
}
|
|
502
|
-
.org-menu-name {
|
|
503
|
-
overflow: hidden;
|
|
460
|
+
border-radius: 9px;
|
|
461
|
+
font-size: 12.5px;
|
|
504
462
|
color: var(--idp-fg);
|
|
505
|
-
font-size: 12px;
|
|
506
|
-
font-weight: 400;
|
|
507
|
-
text-overflow: ellipsis;
|
|
508
|
-
white-space: nowrap;
|
|
509
|
-
}
|
|
510
|
-
.org-menu-item.selected .org-menu-name {
|
|
511
|
-
color: var(--idp-accent);
|
|
512
|
-
}
|
|
513
|
-
.org-menu-role {
|
|
514
|
-
color: var(--idp-muted-fg);
|
|
515
|
-
font-size: 10px;
|
|
516
|
-
}
|
|
517
|
-
.org-menu-divider {
|
|
518
|
-
height: 1px;
|
|
519
|
-
margin: 3px 0;
|
|
520
|
-
background: var(--idp-border);
|
|
521
|
-
}
|
|
522
|
-
.org-create {
|
|
523
|
-
padding: 6px 8px 8px;
|
|
524
|
-
color: var(--idp-muted-fg);
|
|
525
463
|
cursor: pointer;
|
|
526
|
-
font-size: 12px;
|
|
527
464
|
}
|
|
528
|
-
.
|
|
529
|
-
|
|
530
|
-
|
|
465
|
+
.toast {
|
|
466
|
+
position: fixed;
|
|
467
|
+
right: 20px;
|
|
468
|
+
bottom: 20px;
|
|
469
|
+
z-index: 60;
|
|
531
470
|
display: flex;
|
|
532
471
|
align-items: center;
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
border-radius:
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
flex: 1;
|
|
540
|
-
min-width: 0;
|
|
541
|
-
overflow: hidden;
|
|
542
|
-
color: var(--idp-muted-fg);
|
|
472
|
+
gap: 10px;
|
|
473
|
+
max-width: 320px;
|
|
474
|
+
padding: 10px 14px;
|
|
475
|
+
border-radius: 9px;
|
|
476
|
+
border: 1px solid;
|
|
477
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.07);
|
|
543
478
|
font-size: 13px;
|
|
544
|
-
font-weight:
|
|
545
|
-
text-align: left;
|
|
546
|
-
text-overflow: ellipsis;
|
|
547
|
-
white-space: nowrap;
|
|
548
|
-
}
|
|
549
|
-
.org-avatar,
|
|
550
|
-
.user-avatar {
|
|
551
|
-
display: flex;
|
|
552
|
-
align-items: center;
|
|
553
|
-
justify-content: center;
|
|
554
|
-
flex-shrink: 0;
|
|
555
|
-
font-family: var(--idp-mono);
|
|
556
|
-
font-weight: 700;
|
|
557
|
-
}
|
|
558
|
-
.org-avatar {
|
|
559
|
-
width: 14px;
|
|
560
|
-
height: 14px;
|
|
561
|
-
border: 1px solid var(--idp-border);
|
|
562
|
-
border-radius: 6px;
|
|
563
|
-
background: var(--idp-accent-soft);
|
|
564
|
-
color: var(--idp-accent);
|
|
565
|
-
font-size: 5px;
|
|
566
|
-
}
|
|
567
|
-
.user-footer {
|
|
568
|
-
display: flex;
|
|
569
|
-
align-items: center;
|
|
570
|
-
gap: 9px;
|
|
571
|
-
padding: 10px 12px;
|
|
572
|
-
border-top: 1px solid var(--idp-border);
|
|
573
|
-
}
|
|
574
|
-
.user-avatar {
|
|
575
|
-
width: 26px;
|
|
576
|
-
height: 26px;
|
|
577
|
-
border-radius: 50%;
|
|
578
|
-
background: oklch(0.85 0.08 240);
|
|
579
|
-
color: oklch(0.3 0.08 240);
|
|
580
|
-
font-size: 9px;
|
|
581
|
-
}
|
|
582
|
-
.user-meta {
|
|
583
|
-
flex: 1;
|
|
584
|
-
min-width: 0;
|
|
479
|
+
font-weight: 500;
|
|
585
480
|
}
|
|
586
|
-
.
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
white-space: nowrap;
|
|
481
|
+
.toast.ok {
|
|
482
|
+
background: var(--idp-ok-bg);
|
|
483
|
+
border-color: var(--idp-ok-border);
|
|
484
|
+
color: var(--idp-ok);
|
|
591
485
|
}
|
|
592
|
-
.
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
486
|
+
.toast.warn {
|
|
487
|
+
background: var(--idp-warn-bg);
|
|
488
|
+
border-color: var(--idp-warn-border);
|
|
489
|
+
color: var(--idp-warn);
|
|
596
490
|
}
|
|
597
|
-
.
|
|
598
|
-
|
|
599
|
-
|
|
491
|
+
.toast.error {
|
|
492
|
+
background: var(--idp-error-bg);
|
|
493
|
+
border-color: var(--idp-error-border);
|
|
494
|
+
color: var(--idp-error);
|
|
600
495
|
}
|
|
601
496
|
main {
|
|
602
497
|
height: 100%;
|
|
@@ -605,146 +500,6 @@ let IdpAdminShell = (() => {
|
|
|
605
500
|
overflow: auto;
|
|
606
501
|
background: var(--idp-bg);
|
|
607
502
|
}
|
|
608
|
-
.page-head {
|
|
609
|
-
display: flex;
|
|
610
|
-
align-items: flex-end;
|
|
611
|
-
justify-content: space-between;
|
|
612
|
-
gap: 16px;
|
|
613
|
-
flex-wrap: wrap;
|
|
614
|
-
padding: 24px 28px 18px;
|
|
615
|
-
border-bottom: 1px solid var(--idp-border);
|
|
616
|
-
background: var(--idp-bg);
|
|
617
|
-
}
|
|
618
|
-
.eyebrow-row {
|
|
619
|
-
display: flex;
|
|
620
|
-
align-items: center;
|
|
621
|
-
gap: 8px;
|
|
622
|
-
margin-bottom: 4px;
|
|
623
|
-
}
|
|
624
|
-
.eyebrow {
|
|
625
|
-
color: var(--idp-muted-fg);
|
|
626
|
-
font-family: var(--idp-mono);
|
|
627
|
-
font-size: 10px;
|
|
628
|
-
font-weight: 600;
|
|
629
|
-
letter-spacing: 0.08em;
|
|
630
|
-
text-transform: uppercase;
|
|
631
|
-
}
|
|
632
|
-
.live-pill {
|
|
633
|
-
display: inline-flex;
|
|
634
|
-
align-items: center;
|
|
635
|
-
gap: 4px;
|
|
636
|
-
padding: 1px 7px;
|
|
637
|
-
border: 1px solid var(--idp-ok-border);
|
|
638
|
-
border-radius: 999px;
|
|
639
|
-
background: var(--idp-ok-bg);
|
|
640
|
-
color: var(--idp-ok);
|
|
641
|
-
font-family: var(--idp-mono);
|
|
642
|
-
font-size: 10px;
|
|
643
|
-
font-weight: 500;
|
|
644
|
-
}
|
|
645
|
-
.live-dot,
|
|
646
|
-
.feed-dot {
|
|
647
|
-
width: 6px;
|
|
648
|
-
height: 6px;
|
|
649
|
-
border-radius: 50%;
|
|
650
|
-
background: var(--idp-ok);
|
|
651
|
-
box-shadow: 0 0 6px var(--idp-ok);
|
|
652
|
-
animation: idp-blink 1.6s ease-in-out infinite;
|
|
653
|
-
}
|
|
654
|
-
@keyframes idp-blink {
|
|
655
|
-
0%, 100% { opacity: 1; }
|
|
656
|
-
50% { opacity: 0.35; }
|
|
657
|
-
}
|
|
658
|
-
h1,
|
|
659
|
-
h2 {
|
|
660
|
-
margin: 0;
|
|
661
|
-
color: var(--idp-fg);
|
|
662
|
-
font-family: var(--idp-display);
|
|
663
|
-
letter-spacing: -0.025em;
|
|
664
|
-
}
|
|
665
|
-
h1 {
|
|
666
|
-
font-size: 26px;
|
|
667
|
-
font-weight: 700;
|
|
668
|
-
line-height: 1.1;
|
|
669
|
-
}
|
|
670
|
-
.lead {
|
|
671
|
-
margin-top: 4px;
|
|
672
|
-
color: var(--idp-muted-fg);
|
|
673
|
-
font-size: 13px;
|
|
674
|
-
}
|
|
675
|
-
.lead code,
|
|
676
|
-
.mono {
|
|
677
|
-
color: var(--idp-info);
|
|
678
|
-
font-family: var(--idp-mono);
|
|
679
|
-
}
|
|
680
|
-
.page-actions {
|
|
681
|
-
display: flex;
|
|
682
|
-
align-items: center;
|
|
683
|
-
gap: 12px;
|
|
684
|
-
}
|
|
685
|
-
.tabs {
|
|
686
|
-
display: inline-flex;
|
|
687
|
-
gap: 1px;
|
|
688
|
-
padding: 2px;
|
|
689
|
-
border: 1px solid var(--idp-border);
|
|
690
|
-
border-radius: 6px;
|
|
691
|
-
background: var(--idp-bg-2);
|
|
692
|
-
}
|
|
693
|
-
.tab {
|
|
694
|
-
padding: 4px 10px;
|
|
695
|
-
border-radius: 4px;
|
|
696
|
-
color: var(--idp-muted-fg);
|
|
697
|
-
font-family: var(--idp-mono);
|
|
698
|
-
font-size: 11px;
|
|
699
|
-
font-weight: 500;
|
|
700
|
-
}
|
|
701
|
-
.tab.active {
|
|
702
|
-
background: var(--idp-muted);
|
|
703
|
-
color: var(--idp-fg);
|
|
704
|
-
}
|
|
705
|
-
.plain-button {
|
|
706
|
-
display: inline-flex;
|
|
707
|
-
align-items: center;
|
|
708
|
-
gap: 6px;
|
|
709
|
-
height: 28px;
|
|
710
|
-
padding: 5px 10px;
|
|
711
|
-
border-radius: 8px;
|
|
712
|
-
background: transparent;
|
|
713
|
-
color: var(--idp-fg);
|
|
714
|
-
font-size: 12px;
|
|
715
|
-
font-weight: 500;
|
|
716
|
-
white-space: nowrap;
|
|
717
|
-
}
|
|
718
|
-
.plain-button.outline {
|
|
719
|
-
border: 1px solid var(--idp-border);
|
|
720
|
-
}
|
|
721
|
-
.plain-button.primary {
|
|
722
|
-
background: var(--idp-accent);
|
|
723
|
-
color: var(--idp-accent-fg);
|
|
724
|
-
}
|
|
725
|
-
.plain-button.destructive {
|
|
726
|
-
background: var(--idp-destructive);
|
|
727
|
-
color: var(--idp-accent-fg);
|
|
728
|
-
}
|
|
729
|
-
.plain-button.ghost {
|
|
730
|
-
color: var(--idp-fg);
|
|
731
|
-
}
|
|
732
|
-
.plain-button:disabled {
|
|
733
|
-
opacity: 0.45;
|
|
734
|
-
cursor: not-allowed;
|
|
735
|
-
}
|
|
736
|
-
.body {
|
|
737
|
-
display: flex;
|
|
738
|
-
flex-direction: column;
|
|
739
|
-
gap: 16px;
|
|
740
|
-
padding: 20px 28px 32px;
|
|
741
|
-
}
|
|
742
|
-
.narrow-body {
|
|
743
|
-
max-width: 700px;
|
|
744
|
-
}
|
|
745
|
-
.wide-body {
|
|
746
|
-
max-width: 860px;
|
|
747
|
-
}
|
|
748
503
|
.section-card {
|
|
749
504
|
margin-bottom: 16px;
|
|
750
505
|
padding: 20px;
|
|
@@ -963,135 +718,6 @@ let IdpAdminShell = (() => {
|
|
|
963
718
|
font-weight: 500;
|
|
964
719
|
box-shadow: 0 1px 3px rgba(0,0,0,0.06);
|
|
965
720
|
}
|
|
966
|
-
.kpis {
|
|
967
|
-
display: grid;
|
|
968
|
-
grid-template-columns: repeat(4, 1fr);
|
|
969
|
-
gap: 12px;
|
|
970
|
-
}
|
|
971
|
-
.kpi,
|
|
972
|
-
.card {
|
|
973
|
-
border: 1px solid var(--idp-border);
|
|
974
|
-
background: var(--idp-card);
|
|
975
|
-
}
|
|
976
|
-
.kpi {
|
|
977
|
-
position: relative;
|
|
978
|
-
min-height: 132px;
|
|
979
|
-
display: flex;
|
|
980
|
-
flex-direction: column;
|
|
981
|
-
gap: 4px;
|
|
982
|
-
overflow: hidden;
|
|
983
|
-
padding: 18px 20px 14px;
|
|
984
|
-
border-radius: 10px;
|
|
985
|
-
}
|
|
986
|
-
.kpi::before {
|
|
987
|
-
content: '';
|
|
988
|
-
position: absolute;
|
|
989
|
-
top: 0;
|
|
990
|
-
left: 0;
|
|
991
|
-
right: 0;
|
|
992
|
-
height: 2px;
|
|
993
|
-
background: var(--kpi-accent);
|
|
994
|
-
}
|
|
995
|
-
.kpi-label {
|
|
996
|
-
color: var(--idp-muted-fg);
|
|
997
|
-
font-size: 11.5px;
|
|
998
|
-
font-weight: 500;
|
|
999
|
-
letter-spacing: 0.02em;
|
|
1000
|
-
}
|
|
1001
|
-
.kpi-value {
|
|
1002
|
-
color: var(--idp-fg);
|
|
1003
|
-
font-family: var(--idp-display);
|
|
1004
|
-
font-size: 30px;
|
|
1005
|
-
font-weight: 700;
|
|
1006
|
-
font-variant-numeric: tabular-nums;
|
|
1007
|
-
letter-spacing: -0.025em;
|
|
1008
|
-
line-height: 1.1;
|
|
1009
|
-
}
|
|
1010
|
-
.kpi-value span {
|
|
1011
|
-
margin-left: 2px;
|
|
1012
|
-
color: var(--idp-muted-fg);
|
|
1013
|
-
font-size: 14px;
|
|
1014
|
-
font-weight: 500;
|
|
1015
|
-
}
|
|
1016
|
-
.kpi-sub {
|
|
1017
|
-
color: var(--idp-fg-3);
|
|
1018
|
-
font-family: var(--idp-mono);
|
|
1019
|
-
font-size: 11px;
|
|
1020
|
-
}
|
|
1021
|
-
.kpi-foot {
|
|
1022
|
-
display: flex;
|
|
1023
|
-
align-items: flex-end;
|
|
1024
|
-
justify-content: space-between;
|
|
1025
|
-
gap: 8px;
|
|
1026
|
-
margin-top: auto;
|
|
1027
|
-
}
|
|
1028
|
-
.delta {
|
|
1029
|
-
display: inline-flex;
|
|
1030
|
-
align-items: center;
|
|
1031
|
-
gap: 4px;
|
|
1032
|
-
color: var(--idp-ok);
|
|
1033
|
-
font-family: var(--idp-mono);
|
|
1034
|
-
font-size: 11px;
|
|
1035
|
-
font-weight: 600;
|
|
1036
|
-
}
|
|
1037
|
-
.sparkline {
|
|
1038
|
-
width: 84px;
|
|
1039
|
-
opacity: 0.85;
|
|
1040
|
-
}
|
|
1041
|
-
.primary-grid,
|
|
1042
|
-
.secondary-grid {
|
|
1043
|
-
display: grid;
|
|
1044
|
-
grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr);
|
|
1045
|
-
gap: 16px;
|
|
1046
|
-
}
|
|
1047
|
-
.card {
|
|
1048
|
-
overflow: hidden;
|
|
1049
|
-
border-radius: 8px;
|
|
1050
|
-
}
|
|
1051
|
-
.card-head {
|
|
1052
|
-
display: flex;
|
|
1053
|
-
align-items: center;
|
|
1054
|
-
gap: 10px;
|
|
1055
|
-
padding: 12px 16px;
|
|
1056
|
-
border-bottom: 1px solid var(--idp-border-soft);
|
|
1057
|
-
}
|
|
1058
|
-
.card-title {
|
|
1059
|
-
color: var(--idp-fg);
|
|
1060
|
-
font-size: 13px;
|
|
1061
|
-
font-weight: 600;
|
|
1062
|
-
}
|
|
1063
|
-
.feed-dot {
|
|
1064
|
-
display: inline-block;
|
|
1065
|
-
width: 8px;
|
|
1066
|
-
height: 8px;
|
|
1067
|
-
border-radius: 4px;
|
|
1068
|
-
background: var(--dot-color);
|
|
1069
|
-
box-shadow: var(--dot-glow, none);
|
|
1070
|
-
}
|
|
1071
|
-
.feed-meta {
|
|
1072
|
-
color: var(--idp-muted-fg);
|
|
1073
|
-
font-family: var(--idp-mono);
|
|
1074
|
-
font-size: 11.5px;
|
|
1075
|
-
}
|
|
1076
|
-
.feed-item {
|
|
1077
|
-
display: grid;
|
|
1078
|
-
grid-template-columns: 14px 1fr auto;
|
|
1079
|
-
gap: 12px;
|
|
1080
|
-
align-items: center;
|
|
1081
|
-
padding: 11px 16px;
|
|
1082
|
-
border-bottom: 1px solid var(--idp-border-soft);
|
|
1083
|
-
}
|
|
1084
|
-
.feed-item:last-child {
|
|
1085
|
-
border-bottom: 0;
|
|
1086
|
-
}
|
|
1087
|
-
.feed-text {
|
|
1088
|
-
color: var(--idp-fg-2);
|
|
1089
|
-
font-size: 12.5px;
|
|
1090
|
-
}
|
|
1091
|
-
.feed-text strong {
|
|
1092
|
-
color: var(--idp-fg);
|
|
1093
|
-
font-weight: 600;
|
|
1094
|
-
}
|
|
1095
721
|
.dialog-backdrop {
|
|
1096
722
|
position: fixed;
|
|
1097
723
|
inset: 0;
|
|
@@ -1191,29 +817,11 @@ let IdpAdminShell = (() => {
|
|
|
1191
817
|
.shell {
|
|
1192
818
|
grid-template-columns: 1fr;
|
|
1193
819
|
}
|
|
1194
|
-
|
|
820
|
+
idp-admin-sidebar {
|
|
1195
821
|
display: none;
|
|
1196
822
|
}
|
|
1197
|
-
.kpis {
|
|
1198
|
-
grid-template-columns: repeat(2, 1fr);
|
|
1199
|
-
}
|
|
1200
|
-
.primary-grid,
|
|
1201
|
-
.secondary-grid {
|
|
1202
|
-
grid-template-columns: 1fr;
|
|
1203
|
-
}
|
|
1204
823
|
}
|
|
1205
824
|
@media (max-width: 720px) {
|
|
1206
|
-
.page-head,
|
|
1207
|
-
.body {
|
|
1208
|
-
padding-left: 20px;
|
|
1209
|
-
padding-right: 20px;
|
|
1210
|
-
}
|
|
1211
|
-
.page-actions {
|
|
1212
|
-
flex-wrap: wrap;
|
|
1213
|
-
}
|
|
1214
|
-
.kpis {
|
|
1215
|
-
grid-template-columns: 1fr;
|
|
1216
|
-
}
|
|
1217
825
|
.mapping-row {
|
|
1218
826
|
grid-template-columns: 1fr;
|
|
1219
827
|
}
|
|
@@ -1289,10 +897,38 @@ let IdpAdminShell = (() => {
|
|
|
1289
897
|
#credentialMessage_accessor_storage = (__runInitializers(this, _passkeys_extraInitializers), __runInitializers(this, _credentialMessage_initializers, ''));
|
|
1290
898
|
get credentialMessage() { return this.#credentialMessage_accessor_storage; }
|
|
1291
899
|
set credentialMessage(value) { this.#credentialMessage_accessor_storage = value; }
|
|
1292
|
-
#
|
|
1293
|
-
get
|
|
1294
|
-
set
|
|
1295
|
-
#
|
|
900
|
+
#accounts_accessor_storage = (__runInitializers(this, _credentialMessage_extraInitializers), __runInitializers(this, _accounts_initializers, []));
|
|
901
|
+
get accounts() { return this.#accounts_accessor_storage; }
|
|
902
|
+
set accounts(value) { this.#accounts_accessor_storage = value; }
|
|
903
|
+
#gaUsers_accessor_storage = (__runInitializers(this, _accounts_extraInitializers), __runInitializers(this, _gaUsers_initializers, []));
|
|
904
|
+
get gaUsers() { return this.#gaUsers_accessor_storage; }
|
|
905
|
+
set gaUsers(value) { this.#gaUsers_accessor_storage = value; }
|
|
906
|
+
#overviewData_accessor_storage = (__runInitializers(this, _gaUsers_extraInitializers), __runInitializers(this, _overviewData_initializers, null));
|
|
907
|
+
get overviewData() { return this.#overviewData_accessor_storage; }
|
|
908
|
+
set overviewData(value) { this.#overviewData_accessor_storage = value; }
|
|
909
|
+
#delegationApps_accessor_storage = (__runInitializers(this, _overviewData_extraInitializers), __runInitializers(this, _delegationApps_initializers, []));
|
|
910
|
+
get delegationApps() { return this.#delegationApps_accessor_storage; }
|
|
911
|
+
set delegationApps(value) { this.#delegationApps_accessor_storage = value; }
|
|
912
|
+
#delegations_accessor_storage = (__runInitializers(this, _delegationApps_extraInitializers), __runInitializers(this, _delegations_initializers, []));
|
|
913
|
+
get delegations() { return this.#delegations_accessor_storage; }
|
|
914
|
+
set delegations(value) { this.#delegations_accessor_storage = value; }
|
|
915
|
+
#logoutEverywhere_accessor_storage = (__runInitializers(this, _delegations_extraInitializers), __runInitializers(this, _logoutEverywhere_initializers, false));
|
|
916
|
+
get logoutEverywhere() { return this.#logoutEverywhere_accessor_storage; }
|
|
917
|
+
set logoutEverywhere(value) { this.#logoutEverywhere_accessor_storage = value; }
|
|
918
|
+
#createOrgName_accessor_storage = (__runInitializers(this, _logoutEverywhere_extraInitializers), __runInitializers(this, _createOrgName_initializers, ''));
|
|
919
|
+
get createOrgName() { return this.#createOrgName_accessor_storage; }
|
|
920
|
+
set createOrgName(value) { this.#createOrgName_accessor_storage = value; }
|
|
921
|
+
#createOrgSlug_accessor_storage = (__runInitializers(this, _createOrgName_extraInitializers), __runInitializers(this, _createOrgSlug_initializers, ''));
|
|
922
|
+
get createOrgSlug() { return this.#createOrgSlug_accessor_storage; }
|
|
923
|
+
set createOrgSlug(value) { this.#createOrgSlug_accessor_storage = value; }
|
|
924
|
+
#gaUserSearch_accessor_storage = (__runInitializers(this, _createOrgSlug_extraInitializers), __runInitializers(this, _gaUserSearch_initializers, ''));
|
|
925
|
+
get gaUserSearch() { return this.#gaUserSearch_accessor_storage; }
|
|
926
|
+
set gaUserSearch(value) { this.#gaUserSearch_accessor_storage = value; }
|
|
927
|
+
#toast_accessor_storage = (__runInitializers(this, _gaUserSearch_extraInitializers), __runInitializers(this, _toast_initializers, null));
|
|
928
|
+
get toast() { return this.#toast_accessor_storage; }
|
|
929
|
+
set toast(value) { this.#toast_accessor_storage = value; }
|
|
930
|
+
toastTimer = (__runInitializers(this, _toast_extraInitializers), null);
|
|
931
|
+
#currentPassword_accessor_storage = __runInitializers(this, _currentPassword_initializers, '');
|
|
1296
932
|
get currentPassword() { return this.#currentPassword_accessor_storage; }
|
|
1297
933
|
set currentPassword(value) { this.#currentPassword_accessor_storage = value; }
|
|
1298
934
|
#newPassword_accessor_storage = (__runInitializers(this, _currentPassword_extraInitializers), __runInitializers(this, _newPassword_initializers, ''));
|
|
@@ -1358,29 +994,6 @@ let IdpAdminShell = (() => {
|
|
|
1358
994
|
#dialogAppMappings_accessor_storage = (__runInitializers(this, _dialogApp_extraInitializers), __runInitializers(this, _dialogAppMappings_initializers, []));
|
|
1359
995
|
get dialogAppMappings() { return this.#dialogAppMappings_accessor_storage; }
|
|
1360
996
|
set dialogAppMappings(value) { this.#dialogAppMappings_accessor_storage = value; }
|
|
1361
|
-
workspaceNav = (__runInitializers(this, _dialogAppMappings_extraInitializers), [
|
|
1362
|
-
{ id: 'overview', label: 'Overview', icon: 'grid' },
|
|
1363
|
-
]);
|
|
1364
|
-
accountNav = [
|
|
1365
|
-
{ id: 'profile', label: 'Profile', icon: 'user' },
|
|
1366
|
-
{ id: 'security', label: 'Security', icon: 'shield' },
|
|
1367
|
-
{ id: 'sessions', label: 'Sessions & Devices', icon: 'monitor' },
|
|
1368
|
-
{ id: 'apps', label: 'Connected Apps', icon: 'grid' },
|
|
1369
|
-
];
|
|
1370
|
-
orgNav = [
|
|
1371
|
-
{ id: 'org-general', label: 'General', icon: 'building' },
|
|
1372
|
-
{ id: 'org-settings', label: 'Settings', icon: 'settings' },
|
|
1373
|
-
{ id: 'org-members', label: 'Members', icon: 'users' },
|
|
1374
|
-
{ id: 'org-apps', label: 'OAuth Apps', icon: 'box' },
|
|
1375
|
-
];
|
|
1376
|
-
supportNav = [
|
|
1377
|
-
{ id: 'support', label: 'Support', icon: 'shield' },
|
|
1378
|
-
];
|
|
1379
|
-
adminNav = [
|
|
1380
|
-
{ id: 'ga-users', label: 'All Users', icon: 'users' },
|
|
1381
|
-
{ id: 'ga-orgs', label: 'All Organisations', icon: 'building' },
|
|
1382
|
-
{ id: 'ga-apps', label: 'Platform Apps', icon: 'globe' },
|
|
1383
|
-
];
|
|
1384
997
|
get safeOrgs() {
|
|
1385
998
|
return Array.isArray(this.orgs) ? this.orgs.filter(Boolean) : [];
|
|
1386
999
|
}
|
|
@@ -1592,32 +1205,73 @@ let IdpAdminShell = (() => {
|
|
|
1592
1205
|
}
|
|
1593
1206
|
setPage(pageArg) {
|
|
1594
1207
|
this.page = pageArg;
|
|
1595
|
-
this.orgMenuOpen = false;
|
|
1596
1208
|
this.dispatchEvent(new CustomEvent('idp-admin-navigate', {
|
|
1597
1209
|
detail: { page: pageArg },
|
|
1598
1210
|
bubbles: true,
|
|
1599
1211
|
composed: true,
|
|
1600
1212
|
}));
|
|
1601
1213
|
}
|
|
1602
|
-
|
|
1603
|
-
this.
|
|
1604
|
-
|
|
1214
|
+
handleSidebarNavigate(eventArg) {
|
|
1215
|
+
this.page = eventArg.detail.page;
|
|
1216
|
+
}
|
|
1217
|
+
handleSidebarOrgSelect(eventArg) {
|
|
1218
|
+
this.selectedOrgId = eventArg.detail.orgId;
|
|
1605
1219
|
this.page = 'org-general';
|
|
1606
|
-
this.dispatchEvent(new CustomEvent('idp-admin-org-select', {
|
|
1607
|
-
detail: {
|
|
1608
|
-
orgId: orgIdArg,
|
|
1609
|
-
org: this.orgs.find((orgArg) => orgArg.id === orgIdArg) || null,
|
|
1610
|
-
},
|
|
1611
|
-
bubbles: true,
|
|
1612
|
-
composed: true,
|
|
1613
|
-
}));
|
|
1614
1220
|
}
|
|
1615
1221
|
requestOrgCreate() {
|
|
1616
|
-
this.
|
|
1617
|
-
this.
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1222
|
+
this.createOrgName = '';
|
|
1223
|
+
this.createOrgSlug = '';
|
|
1224
|
+
this.dialogError = '';
|
|
1225
|
+
this.dialogMode = 'create-org';
|
|
1226
|
+
}
|
|
1227
|
+
slugify(valueArg) {
|
|
1228
|
+
return valueArg
|
|
1229
|
+
.toLowerCase()
|
|
1230
|
+
.replace(/[^a-z0-9]/g, '-')
|
|
1231
|
+
.replace(/-+/g, '-')
|
|
1232
|
+
.replace(/^-|-$/g, '');
|
|
1233
|
+
}
|
|
1234
|
+
setCreateOrgName(eventArg) {
|
|
1235
|
+
const value = eventArg.target.value;
|
|
1236
|
+
this.createOrgName = value;
|
|
1237
|
+
this.createOrgSlug = this.slugify(value);
|
|
1238
|
+
}
|
|
1239
|
+
submitCreateOrg() {
|
|
1240
|
+
if (!this.createOrgName.trim()) {
|
|
1241
|
+
this.dialogError = 'Enter an organisation name.';
|
|
1242
|
+
return;
|
|
1243
|
+
}
|
|
1244
|
+
this.dispatchShellEvent('idp-admin-org-create', {
|
|
1245
|
+
name: this.createOrgName.trim(),
|
|
1246
|
+
slug: this.createOrgSlug || this.slugify(this.createOrgName),
|
|
1247
|
+
});
|
|
1248
|
+
this.closeDialog();
|
|
1249
|
+
}
|
|
1250
|
+
requestLogout() {
|
|
1251
|
+
this.logoutEverywhere = false;
|
|
1252
|
+
this.dialogMode = 'logout-confirm';
|
|
1253
|
+
}
|
|
1254
|
+
confirmLogout() {
|
|
1255
|
+
const everywhere = this.logoutEverywhere;
|
|
1256
|
+
this.closeDialog();
|
|
1257
|
+
this.dispatchShellEvent('idp-admin-logout', { everywhere });
|
|
1258
|
+
}
|
|
1259
|
+
showToast(messageArg, toneArg = 'ok') {
|
|
1260
|
+
this.toast = { message: messageArg, tone: toneArg };
|
|
1261
|
+
if (this.toastTimer) {
|
|
1262
|
+
clearTimeout(this.toastTimer);
|
|
1263
|
+
}
|
|
1264
|
+
this.toastTimer = setTimeout(() => {
|
|
1265
|
+
this.toast = null;
|
|
1266
|
+
this.toastTimer = null;
|
|
1267
|
+
}, 3000);
|
|
1268
|
+
}
|
|
1269
|
+
async disconnectedCallback() {
|
|
1270
|
+
if (this.toastTimer) {
|
|
1271
|
+
clearTimeout(this.toastTimer);
|
|
1272
|
+
this.toastTimer = null;
|
|
1273
|
+
}
|
|
1274
|
+
await super.disconnectedCallback();
|
|
1621
1275
|
}
|
|
1622
1276
|
dispatchShellEvent(eventNameArg, detailArg) {
|
|
1623
1277
|
this.dispatchEvent(new CustomEvent(eventNameArg, {
|
|
@@ -1627,31 +1281,10 @@ let IdpAdminShell = (() => {
|
|
|
1627
1281
|
}));
|
|
1628
1282
|
}
|
|
1629
1283
|
formatTimeAgo(timestampArg) {
|
|
1630
|
-
|
|
1631
|
-
return 'unknown';
|
|
1632
|
-
}
|
|
1633
|
-
const diff = Date.now() - timestampArg;
|
|
1634
|
-
const minutes = Math.floor(diff / 60000);
|
|
1635
|
-
const hours = Math.floor(diff / 3600000);
|
|
1636
|
-
const days = Math.floor(diff / 86400000);
|
|
1637
|
-
if (minutes < 1)
|
|
1638
|
-
return 'just now';
|
|
1639
|
-
if (minutes < 60)
|
|
1640
|
-
return `${minutes}m ago`;
|
|
1641
|
-
if (hours < 24)
|
|
1642
|
-
return `${hours}h ago`;
|
|
1643
|
-
if (days < 7)
|
|
1644
|
-
return `${days}d ago`;
|
|
1645
|
-
return new Date(timestampArg).toLocaleDateString();
|
|
1284
|
+
return formatAdminTimeAgo(timestampArg);
|
|
1646
1285
|
}
|
|
1647
1286
|
renderStateCard(titleArg, descriptionArg, iconArg = 'box') {
|
|
1648
|
-
return
|
|
1649
|
-
<div class="state-card">
|
|
1650
|
-
<span class="state-icon"><idp-icon name=${iconArg} size="17"></idp-icon></span>
|
|
1651
|
-
<div class="state-title">${titleArg}</div>
|
|
1652
|
-
<div class="state-description">${descriptionArg}</div>
|
|
1653
|
-
</div>
|
|
1654
|
-
`;
|
|
1287
|
+
return renderAdminStateCard(titleArg, descriptionArg, iconArg);
|
|
1655
1288
|
}
|
|
1656
1289
|
renderDataState(emptyTitleArg, emptyDescriptionArg, iconArg = 'box') {
|
|
1657
1290
|
if (this.dataLoading) {
|
|
@@ -1948,6 +1581,47 @@ let IdpAdminShell = (() => {
|
|
|
1948
1581
|
<button class="plain-button primary" @click=${() => this.submitAppRoleMappingsDialog()}>Save mappings</button>
|
|
1949
1582
|
</div>
|
|
1950
1583
|
</div>
|
|
1584
|
+
`;
|
|
1585
|
+
}
|
|
1586
|
+
renderCreateOrgDialog() {
|
|
1587
|
+
return html `
|
|
1588
|
+
<div class="dialog-card" @click=${(eventArg) => eventArg.stopPropagation()}>
|
|
1589
|
+
<div class="dialog-head">
|
|
1590
|
+
<div><div class="dialog-title">Create organisation</div><div class="muted">Organisations group members, roles, and OAuth apps.</div></div>
|
|
1591
|
+
<button class="plain-button ghost" @click=${() => this.closeDialog()}>Close</button>
|
|
1592
|
+
</div>
|
|
1593
|
+
<div class="dialog-body">
|
|
1594
|
+
${this.renderDialogError()}
|
|
1595
|
+
${this.renderFormRow('Organisation name', 'Shown to members and in app consent screens.', html `<input class="input" placeholder="Acme Corp" .value=${this.createOrgName} @input=${(eventArg) => this.setCreateOrgName(eventArg)} />`, true)}
|
|
1596
|
+
${this.renderFormRow('URL slug', 'Public identifier under idp.global/', html `<input class="input" placeholder="acme-corp" .value=${this.createOrgSlug} @input=${(eventArg) => { this.createOrgSlug = this.slugify(eventArg.target.value); }} />`)}
|
|
1597
|
+
</div>
|
|
1598
|
+
<div class="dialog-actions">
|
|
1599
|
+
<button class="plain-button outline" @click=${() => this.closeDialog()}>Cancel</button>
|
|
1600
|
+
<button class="plain-button primary" ?disabled=${!this.createOrgName.trim()} @click=${() => this.submitCreateOrg()}>Create</button>
|
|
1601
|
+
</div>
|
|
1602
|
+
</div>
|
|
1603
|
+
`;
|
|
1604
|
+
}
|
|
1605
|
+
renderLogoutConfirmDialog() {
|
|
1606
|
+
const otherSessionCount = this.sessions.filter((sessionArg) => !sessionArg.isCurrent).length;
|
|
1607
|
+
return html `
|
|
1608
|
+
<div class="dialog-card" @click=${(eventArg) => eventArg.stopPropagation()}>
|
|
1609
|
+
<div class="dialog-head">
|
|
1610
|
+
<div><div class="dialog-title">Sign out?</div></div>
|
|
1611
|
+
<button class="plain-button ghost" @click=${() => this.closeDialog()}>Close</button>
|
|
1612
|
+
</div>
|
|
1613
|
+
<div class="dialog-body">
|
|
1614
|
+
<div class="muted">You'll be signed out of idp.global on this device. Apps you've signed into with idp.global keep their own sessions.</div>
|
|
1615
|
+
<label class="logout-everywhere-row">
|
|
1616
|
+
<idp-toggle .checked=${this.logoutEverywhere} @idp-toggle-change=${(eventArg) => { this.logoutEverywhere = !!eventArg.detail?.checked; }}></idp-toggle>
|
|
1617
|
+
<span>Also sign out of all other devices${otherSessionCount ? html ` <span class="muted">(${otherSessionCount} other ${otherSessionCount === 1 ? 'session' : 'sessions'})</span>` : html ``}</span>
|
|
1618
|
+
</label>
|
|
1619
|
+
</div>
|
|
1620
|
+
<div class="dialog-actions">
|
|
1621
|
+
<button class="plain-button outline" @click=${() => this.closeDialog()}>Cancel</button>
|
|
1622
|
+
<button class="plain-button destructive" @click=${() => this.confirmLogout()}>${this.logoutEverywhere ? 'Sign out everywhere' : 'Sign out'}</button>
|
|
1623
|
+
</div>
|
|
1624
|
+
</div>
|
|
1951
1625
|
`;
|
|
1952
1626
|
}
|
|
1953
1627
|
renderDialog() {
|
|
@@ -1960,106 +1634,13 @@ let IdpAdminShell = (() => {
|
|
|
1960
1634
|
? this.renderRoleDeleteDialog()
|
|
1961
1635
|
: this.dialogMode === 'member-roles'
|
|
1962
1636
|
? this.renderMemberRolesDialog()
|
|
1963
|
-
: this.
|
|
1637
|
+
: this.dialogMode === 'create-org'
|
|
1638
|
+
? this.renderCreateOrgDialog()
|
|
1639
|
+
: this.dialogMode === 'logout-confirm'
|
|
1640
|
+
? this.renderLogoutConfirmDialog()
|
|
1641
|
+
: this.renderAppRoleMappingsDialog();
|
|
1964
1642
|
return html `<div class="dialog-backdrop" @click=${() => this.closeDialog()}>${dialog}</div>`;
|
|
1965
1643
|
}
|
|
1966
|
-
renderNavGroup(items, active = '') {
|
|
1967
|
-
return html `
|
|
1968
|
-
<div class="nav-list">
|
|
1969
|
-
${items.map((item) => html `
|
|
1970
|
-
<button class="nav-item ${item.id === active ? 'active' : ''}" @click=${() => this.setPage(item.id)}>
|
|
1971
|
-
<idp-icon name=${item.icon} size="14"></idp-icon>
|
|
1972
|
-
${item.label}
|
|
1973
|
-
${item.badge ? html `<idp-badge variant="accent" style="margin-left:auto">${item.badge}</idp-badge>` : html ``}
|
|
1974
|
-
</button>
|
|
1975
|
-
`)}
|
|
1976
|
-
</div>
|
|
1977
|
-
`;
|
|
1978
|
-
}
|
|
1979
|
-
renderSidebar() {
|
|
1980
|
-
const currentOrg = this.currentOrg;
|
|
1981
|
-
return html `
|
|
1982
|
-
<aside class="sidebar">
|
|
1983
|
-
<div class="logo-block">
|
|
1984
|
-
<div class="logo">
|
|
1985
|
-
<div class="logo-icon" aria-hidden="true">
|
|
1986
|
-
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
1987
|
-
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
|
|
1988
|
-
</svg>
|
|
1989
|
-
</div>
|
|
1990
|
-
<span class="logo-text">idp.global</span>
|
|
1991
|
-
</div>
|
|
1992
|
-
</div>
|
|
1993
|
-
<div class="nav-wrap">
|
|
1994
|
-
<div class="nav-section"><div class="nav-title">Workspace</div>${this.renderNavGroup(this.workspaceNav, this.page)}</div>
|
|
1995
|
-
<div class="nav-section"><div class="nav-title">My Account</div>${this.renderNavGroup(this.accountNav, this.page)}</div>
|
|
1996
|
-
<div class="nav-section">
|
|
1997
|
-
<div class="nav-title">Organisation</div>
|
|
1998
|
-
<div class="org-switch-wrap">
|
|
1999
|
-
<button class="org-switch ${this.orgMenuOpen ? 'open' : ''}" @click=${() => { this.orgMenuOpen = !this.orgMenuOpen; }}>
|
|
2000
|
-
<span class="org-avatar">${currentOrg.name.slice(0, 2).toUpperCase()}</span>
|
|
2001
|
-
<span class="org-name">${currentOrg.name}</span>
|
|
2002
|
-
<idp-icon name="chevron-down" size="10"></idp-icon>
|
|
2003
|
-
</button>
|
|
2004
|
-
${this.orgMenuOpen ? html `
|
|
2005
|
-
<div class="org-menu">
|
|
2006
|
-
<div class="org-menu-title">Switch organisation</div>
|
|
2007
|
-
${this.safeOrgs.map((orgArg) => html `
|
|
2008
|
-
<button class="org-menu-item ${orgArg.id === this.selectedOrgId ? 'selected' : ''}" @click=${() => this.selectOrg(orgArg.id)}>
|
|
2009
|
-
<span class="org-avatar">${orgArg.name.slice(0, 2).toUpperCase()}</span>
|
|
2010
|
-
<span style="flex:1;min-width:0"><span class="org-menu-name">${orgArg.name}</span><span class="org-menu-role">${orgArg.myRole || 'member'}</span></span>
|
|
2011
|
-
${orgArg.id === this.selectedOrgId ? html `<idp-icon name="check" size="11"></idp-icon>` : html ``}
|
|
2012
|
-
</button>
|
|
2013
|
-
`)}
|
|
2014
|
-
<div class="org-menu-divider"></div>
|
|
2015
|
-
<button class="org-create" @click=${() => this.requestOrgCreate()}><span class="org-create-icon"><idp-icon name="plus" size="9"></idp-icon></span>Create organisation</button>
|
|
2016
|
-
</div>
|
|
2017
|
-
` : html ``}
|
|
2018
|
-
</div>
|
|
2019
|
-
${this.renderNavGroup(this.orgNav, this.page)}
|
|
2020
|
-
</div>
|
|
2021
|
-
<div class="nav-section"><div class="nav-title">Support</div>${this.renderNavGroup(this.supportNav, this.page)}</div>
|
|
2022
|
-
${this.globalAdmin ? html `<div class="nav-section"><div class="nav-title">Global Admin</div>${this.renderNavGroup(this.adminNav, this.page)}</div>` : html ``}
|
|
2023
|
-
</div>
|
|
2024
|
-
<div class="user-footer">
|
|
2025
|
-
<span class="user-avatar">${this.userInitials}</span>
|
|
2026
|
-
<div class="user-meta"><div class="user-name">${this.user?.name || 'Unknown User'}</div><div class="user-email">${this.user?.email || 'No email'}</div></div>
|
|
2027
|
-
</div>
|
|
2028
|
-
</aside>
|
|
2029
|
-
`;
|
|
2030
|
-
}
|
|
2031
|
-
renderSparkline(data, color) {
|
|
2032
|
-
const max = Math.max(...data);
|
|
2033
|
-
const min = Math.min(...data);
|
|
2034
|
-
const range = max - min || 1;
|
|
2035
|
-
const width = 100;
|
|
2036
|
-
const height = 22;
|
|
2037
|
-
const points = data.map((valueArg, indexArg) => {
|
|
2038
|
-
const x = (indexArg / (data.length - 1)) * width;
|
|
2039
|
-
const y = height - ((valueArg - min) / range) * (height - 4) - 2;
|
|
2040
|
-
return `${x},${y}`;
|
|
2041
|
-
}).join(' ');
|
|
2042
|
-
const area = `0,${height} ${points} ${width},${height}`;
|
|
2043
|
-
return html `
|
|
2044
|
-
<svg viewBox="0 0 ${width} ${height}" preserveAspectRatio="none">
|
|
2045
|
-
<polygon points=${area} fill=${color} opacity="0.12"></polygon>
|
|
2046
|
-
<polyline points=${points} fill="none" stroke=${color} stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></polyline>
|
|
2047
|
-
</svg>
|
|
2048
|
-
`;
|
|
2049
|
-
}
|
|
2050
|
-
renderKpi(kpi) {
|
|
2051
|
-
return html `
|
|
2052
|
-
<div class="kpi" style="--kpi-accent:${kpi.accent}">
|
|
2053
|
-
<div class="kpi-label">${kpi.label}</div>
|
|
2054
|
-
<div class="kpi-value">${kpi.value}${kpi.unit ? html `<span>${kpi.unit}</span>` : html ``}</div>
|
|
2055
|
-
<div class="kpi-sub">${kpi.sub}</div>
|
|
2056
|
-
<div class="kpi-foot">
|
|
2057
|
-
<span class="delta">${kpi.deltaKind === 'live' ? html `<span class="live-dot"></span>` : html ``}${kpi.delta}</span>
|
|
2058
|
-
<div class="sparkline">${this.renderSparkline(kpi.spark, kpi.sparkColor)}</div>
|
|
2059
|
-
</div>
|
|
2060
|
-
</div>
|
|
2061
|
-
`;
|
|
2062
|
-
}
|
|
2063
1644
|
renderPageHeader(titleArg, descriptionArg, actionArg) {
|
|
2064
1645
|
return html `
|
|
2065
1646
|
<header class="page-head">
|
|
@@ -2093,78 +1674,17 @@ let IdpAdminShell = (() => {
|
|
|
2093
1674
|
return html `<div class="code-block"><code>${valueArg}</code><idp-icon name="copy" size="13"></idp-icon></div>`;
|
|
2094
1675
|
}
|
|
2095
1676
|
renderOverview() {
|
|
2096
|
-
const firstName = this.user?.name?.split(' ')[0] || 'there';
|
|
2097
|
-
const activeSessionCount = this.sessions.filter((sessionArg) => sessionArg.isCurrent).length || this.sessions.length;
|
|
2098
|
-
const activePassportCount = this.passportDevices.filter((deviceArg) => deviceArg.status === 'active').length;
|
|
2099
|
-
const kpis = [
|
|
2100
|
-
{
|
|
2101
|
-
label: 'Organisations',
|
|
2102
|
-
value: String(this.orgs.length),
|
|
2103
|
-
delta: 'live',
|
|
2104
|
-
deltaKind: 'live',
|
|
2105
|
-
spark: [1, 1, 1, 1, 1, 1, 1, Math.max(this.orgs.length, 1)],
|
|
2106
|
-
sparkColor: 'var(--idp-spark-info)',
|
|
2107
|
-
accent: 'var(--idp-chart-1)',
|
|
2108
|
-
sub: 'Memberships visible to this account',
|
|
2109
|
-
},
|
|
2110
|
-
{
|
|
2111
|
-
label: 'Sessions',
|
|
2112
|
-
value: String(this.sessions.length),
|
|
2113
|
-
delta: `${activeSessionCount} active`,
|
|
2114
|
-
deltaKind: 'up',
|
|
2115
|
-
spark: [1, 2, 1, 2, 3, 2, Math.max(this.sessions.length, 1)],
|
|
2116
|
-
sparkColor: 'var(--idp-spark-up)',
|
|
2117
|
-
accent: 'var(--idp-chart-2)',
|
|
2118
|
-
sub: this.sessions.length ? `Latest ${this.formatTimeAgo(Math.max(...this.sessions.map((sessionArg) => sessionArg.lastActive)))}` : 'No active sessions loaded',
|
|
2119
|
-
},
|
|
2120
|
-
{
|
|
2121
|
-
label: 'Passport devices',
|
|
2122
|
-
value: String(this.passportDevices.length),
|
|
2123
|
-
delta: `${activePassportCount} active`,
|
|
2124
|
-
deltaKind: 'live',
|
|
2125
|
-
spark: [1, 1, 1, Math.max(this.passportDevices.length, 1)],
|
|
2126
|
-
sparkColor: 'var(--idp-spark-info)',
|
|
2127
|
-
accent: 'var(--idp-chart-5)',
|
|
2128
|
-
sub: 'Cryptographic credentials',
|
|
2129
|
-
},
|
|
2130
|
-
{
|
|
2131
|
-
label: 'Activity',
|
|
2132
|
-
value: String(this.activities.length),
|
|
2133
|
-
delta: 'live',
|
|
2134
|
-
deltaKind: 'live',
|
|
2135
|
-
spark: [1, 2, 2, 3, Math.max(this.activities.length, 1)],
|
|
2136
|
-
sparkColor: 'var(--idp-spark-info)',
|
|
2137
|
-
accent: 'var(--idp-info)',
|
|
2138
|
-
sub: 'Recent account events',
|
|
2139
|
-
},
|
|
2140
|
-
];
|
|
2141
1677
|
return html `
|
|
2142
|
-
<
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
${this.dataLoading || this.dataError ? this.renderDataState('No overview data', 'The console has not received live account data yet.', 'activity') : html ``}
|
|
2153
|
-
<div class="primary-grid">
|
|
2154
|
-
<div class="card">
|
|
2155
|
-
<div class="card-head"><span class="card-title">Recent activity</span><idp-badge>${this.activities.length} events</idp-badge></div>
|
|
2156
|
-
${this.activities.length ? this.activities.slice(0, 8).map((activityArg) => html `
|
|
2157
|
-
<div class="feed-item"><span class="feed-dot" style="--dot-color:var(--idp-info)"></span><div class="feed-text"><strong>${activityArg.action.replace(/_/g, ' ')}</strong> - ${activityArg.description}</div><span class="feed-meta">${this.formatTimeAgo(activityArg.timestamp)}</span></div>
|
|
2158
|
-
`) : this.renderStateCard('No activity yet', 'Activity events will appear here after logins, app changes, and organisation updates.', 'activity')}
|
|
2159
|
-
</div>
|
|
2160
|
-
<div class="card">
|
|
2161
|
-
<div class="card-head"><span class="card-title">Current sessions</span><idp-badge>${this.sessions.length} total</idp-badge></div>
|
|
2162
|
-
${this.sessions.length ? this.sessions.slice(0, 5).map((sessionArg) => html `
|
|
2163
|
-
<div class="feed-item"><span class="feed-dot" style="--dot-color:${sessionArg.isCurrent ? 'var(--idp-ok)' : 'var(--idp-muted-fg)'}"></span><div class="feed-text"><strong>${sessionArg.deviceName || 'Unknown device'}</strong> - <span class="mono">${sessionArg.browser} ${sessionArg.os}</span></div><span class="feed-meta">${this.formatTimeAgo(sessionArg.lastActive)}</span></div>
|
|
2164
|
-
`) : this.renderStateCard('No sessions loaded', 'Active session telemetry is unavailable or there are no sessions.', 'monitor')}
|
|
2165
|
-
</div>
|
|
2166
|
-
</div>
|
|
2167
|
-
</div>
|
|
1678
|
+
<idp-admin-overview
|
|
1679
|
+
.user=${this.user}
|
|
1680
|
+
.orgs=${this.orgs}
|
|
1681
|
+
.sessions=${this.sessions}
|
|
1682
|
+
.activities=${this.activities}
|
|
1683
|
+
.passportDevices=${this.passportDevices}
|
|
1684
|
+
.dataLoading=${this.dataLoading}
|
|
1685
|
+
.dataError=${this.dataError}
|
|
1686
|
+
.overviewData=${this.overviewData}
|
|
1687
|
+
></idp-admin-overview>
|
|
2168
1688
|
`;
|
|
2169
1689
|
}
|
|
2170
1690
|
renderProfile() {
|
|
@@ -2181,6 +1701,9 @@ let IdpAdminShell = (() => {
|
|
|
2181
1701
|
${this.renderFormRow('Mobile number', 'Used for SMS verification', html `<input class="input" .value=${this.user?.mobileNumber || ''} disabled />`)}
|
|
2182
1702
|
`)}
|
|
2183
1703
|
${this.renderSectionCard('Account status', '', html `<div class="split-row"><div><div class="section-title">Status</div><div class="muted">Your account is currently ${status}.</div></div><idp-badge variant=${status === 'active' ? 'ok' : status === 'suspended' ? 'error' : 'warn'}>${status}</idp-badge></div>${this.globalAdmin ? html `<div class="divider"></div><div class="split-row"><div><div class="section-title">Global admin</div><div class="muted">You have platform-wide administrative access.</div></div><idp-badge variant="accent">Admin</idp-badge></div>` : html ``}`)}
|
|
1704
|
+
${this.delegationApps.length
|
|
1705
|
+
? html `<idp-delegation-section .apps=${this.delegationApps} .delegations=${this.delegations}></idp-delegation-section>`
|
|
1706
|
+
: html ``}
|
|
2184
1707
|
</div>
|
|
2185
1708
|
`;
|
|
2186
1709
|
}
|
|
@@ -2401,7 +1924,7 @@ let IdpAdminShell = (() => {
|
|
|
2401
1924
|
<div class="page-actions"><button class="plain-button outline" @click=${() => this.setPage('org-members')}>Manage members</button><button class="plain-button primary" @click=${() => this.setPage('org-apps')}>Manage apps</button></div>
|
|
2402
1925
|
</header>
|
|
2403
1926
|
<div class="body">
|
|
2404
|
-
<div class="kpis">${kpis.map((kpiArg) =>
|
|
1927
|
+
<div class="kpis">${kpis.map((kpiArg) => renderAdminKpi(kpiArg))}</div>
|
|
2405
1928
|
${this.dataLoading || this.dataError ? this.renderDataState('No organisation data', 'The console has not received live organisation data yet.', 'building') : html ``}
|
|
2406
1929
|
<div class="primary-grid">
|
|
2407
1930
|
<div class="card">
|
|
@@ -2625,9 +2148,59 @@ let IdpAdminShell = (() => {
|
|
|
2625
2148
|
`;
|
|
2626
2149
|
}
|
|
2627
2150
|
renderGAUsers() {
|
|
2628
|
-
|
|
2151
|
+
if (!this.gaUsers.length) {
|
|
2152
|
+
return html `${this.renderPageHeader('All Users', 'Platform-wide user administration.')}<div class="body wide-body">${this.renderDataState('User directory not connected', 'The shell is ready for global user data, but no platform user-list endpoint is wired into this app yet. No demo users are shown in production mode.', 'users')}</div>`;
|
|
2153
|
+
}
|
|
2154
|
+
const query = this.gaUserSearch.trim().toLowerCase();
|
|
2155
|
+
const filtered = query
|
|
2156
|
+
? this.gaUsers.filter((userArg) => userArg.name.toLowerCase().includes(query) || userArg.email.toLowerCase().includes(query))
|
|
2157
|
+
: this.gaUsers;
|
|
2158
|
+
const statusVariant = (statusArg) => statusArg === 'active' ? 'ok' : statusArg === 'suspended' ? 'error' : statusArg === 'new' ? 'warn' : 'default';
|
|
2159
|
+
const userRows = filtered.map((userArg) => ({
|
|
2160
|
+
cells: [
|
|
2161
|
+
html `
|
|
2162
|
+
<div class="identity-cell">
|
|
2163
|
+
<idp-avatar name=${userArg.name || userArg.email} size="28"></idp-avatar>
|
|
2164
|
+
<div>
|
|
2165
|
+
<div class="identity-primary">${userArg.name}</div>
|
|
2166
|
+
<div class="identity-secondary">${userArg.email}</div>
|
|
2167
|
+
</div>
|
|
2168
|
+
</div>
|
|
2169
|
+
`,
|
|
2170
|
+
String(userArg.orgCount),
|
|
2171
|
+
html `<idp-badge variant=${statusVariant(userArg.status)}>${userArg.status}</idp-badge>`,
|
|
2172
|
+
userArg.isGlobalAdmin ? html `<idp-badge variant="accent">Admin</idp-badge>` : '-',
|
|
2173
|
+
this.formatTimeAgo(userArg.createdAt),
|
|
2174
|
+
html `<button class="plain-button ghost" style="font-size:11px" @click=${() => this.dispatchShellEvent('idp-admin-ga-user-action', { userId: userArg.id, action: userArg.status === 'suspended' ? 'unsuspend' : 'suspend' })}>${userArg.status === 'suspended' ? 'Unsuspend' : 'Suspend'}</button>`,
|
|
2175
|
+
],
|
|
2176
|
+
}));
|
|
2177
|
+
return html `
|
|
2178
|
+
${this.renderPageHeader('All Users', `${this.gaUsers.length} users on the platform`)}
|
|
2179
|
+
<div class="body wide-body">
|
|
2180
|
+
<div style="margin-bottom:12px;max-width:360px">
|
|
2181
|
+
<input class="input" placeholder="Search users…" .value=${this.gaUserSearch} @input=${(eventArg) => { this.gaUserSearch = eventArg.target.value; }} />
|
|
2182
|
+
</div>
|
|
2183
|
+
<idp-data-table
|
|
2184
|
+
title="Users"
|
|
2185
|
+
badge=${`${filtered.length} shown`}
|
|
2186
|
+
empty-title="No matching users"
|
|
2187
|
+
empty-description="No users match the current search."
|
|
2188
|
+
.columns=${[
|
|
2189
|
+
{ label: 'User' },
|
|
2190
|
+
{ label: 'Orgs', mono: true, hideBelow: 'mobile' },
|
|
2191
|
+
{ label: 'Status' },
|
|
2192
|
+
{ label: 'Admin', hideBelow: 'mobile' },
|
|
2193
|
+
{ label: 'Joined', hideBelow: 'tablet' },
|
|
2194
|
+
{ label: '' },
|
|
2195
|
+
]}
|
|
2196
|
+
.rows=${userRows}
|
|
2197
|
+
></idp-data-table>
|
|
2198
|
+
</div>
|
|
2199
|
+
`;
|
|
2629
2200
|
}
|
|
2630
2201
|
renderGAOrgs() {
|
|
2202
|
+
const planVariant = (planArg) => planArg === 'Pro' ? 'accent' : planArg === 'Enterprise' ? 'ok' : planArg === 'Internal' ? 'warn' : 'default';
|
|
2203
|
+
const hasAdminFields = this.orgs.some((orgArg) => orgArg.status || orgArg.plan);
|
|
2631
2204
|
const orgRows = this.orgs.map((orgArg) => ({
|
|
2632
2205
|
cells: [
|
|
2633
2206
|
html `
|
|
@@ -2640,8 +2213,17 @@ let IdpAdminShell = (() => {
|
|
|
2640
2213
|
</div>
|
|
2641
2214
|
`,
|
|
2642
2215
|
orgArg.slug || '-',
|
|
2643
|
-
|
|
2644
|
-
|
|
2216
|
+
...(hasAdminFields
|
|
2217
|
+
? [
|
|
2218
|
+
orgArg.memberCount !== undefined ? String(orgArg.memberCount) : '-',
|
|
2219
|
+
orgArg.plan ? html `<idp-badge variant=${planVariant(orgArg.plan)}>${orgArg.plan}</idp-badge>` : '-',
|
|
2220
|
+
html `<idp-badge variant=${orgArg.status === 'suspended' ? 'error' : 'ok'}>${orgArg.status || 'active'}</idp-badge>`,
|
|
2221
|
+
html `<button class="plain-button ghost" style="font-size:11px" @click=${() => this.dispatchShellEvent('idp-admin-ga-org-action', { orgId: orgArg.id, action: orgArg.status === 'suspended' ? 'unsuspend' : 'suspend' })}>${orgArg.status === 'suspended' ? 'Unsuspend' : 'Suspend'}</button>`,
|
|
2222
|
+
]
|
|
2223
|
+
: [
|
|
2224
|
+
html `<idp-badge variant=${this.roleVariant(orgArg.myRole || 'member')}>${orgArg.myRole || 'member'}</idp-badge>`,
|
|
2225
|
+
orgArg.id,
|
|
2226
|
+
]),
|
|
2645
2227
|
],
|
|
2646
2228
|
}));
|
|
2647
2229
|
return html `
|
|
@@ -2652,12 +2234,21 @@ let IdpAdminShell = (() => {
|
|
|
2652
2234
|
badge=${`${this.orgs.length} total`}
|
|
2653
2235
|
empty-title="No organisations"
|
|
2654
2236
|
empty-description="No organisations are visible to this admin session."
|
|
2655
|
-
.columns=${
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2237
|
+
.columns=${hasAdminFields
|
|
2238
|
+
? [
|
|
2239
|
+
{ label: 'Organisation' },
|
|
2240
|
+
{ label: 'Slug', mono: true, hideBelow: 'mobile' },
|
|
2241
|
+
{ label: 'Members', mono: true, hideBelow: 'mobile' },
|
|
2242
|
+
{ label: 'Plan' },
|
|
2243
|
+
{ label: 'Status' },
|
|
2244
|
+
{ label: '' },
|
|
2245
|
+
]
|
|
2246
|
+
: [
|
|
2247
|
+
{ label: 'Organisation' },
|
|
2248
|
+
{ label: 'Slug', mono: true, hideBelow: 'mobile' },
|
|
2249
|
+
{ label: 'Role' },
|
|
2250
|
+
{ label: 'Identifier', mono: true, hideBelow: 'tablet' },
|
|
2251
|
+
]}
|
|
2661
2252
|
.rows=${orgRows}
|
|
2662
2253
|
></idp-data-table>
|
|
2663
2254
|
</div>
|
|
@@ -2679,7 +2270,15 @@ let IdpAdminShell = (() => {
|
|
|
2679
2270
|
html `<idp-badge variant=${appArg.type === 'global' ? 'accent' : 'outline'}>${appArg.type || 'global'}</idp-badge>`,
|
|
2680
2271
|
appArg.category || '-',
|
|
2681
2272
|
appArg.connectionCount ?? '-',
|
|
2682
|
-
html `<idp-badge variant=${appArg.status === 'suspended' ? 'error' : appArg.status === 'pending_review' ? 'warn' : 'ok'}>${appArg.status || 'active'}</idp-badge>`,
|
|
2273
|
+
html `<idp-badge variant=${appArg.status === 'suspended' || appArg.status === 'rejected' ? 'error' : appArg.status === 'pending_review' ? 'warn' : 'ok'}>${(appArg.status || 'active').replace(/_/g, ' ')}</idp-badge>`,
|
|
2274
|
+
appArg.status === 'pending_review'
|
|
2275
|
+
? html `
|
|
2276
|
+
<div style="display:flex;gap:4px">
|
|
2277
|
+
<button class="plain-button outline" style="font-size:11px;color:var(--idp-ok);border-color:var(--idp-ok-border)" @click=${() => this.dispatchShellEvent('idp-admin-ga-app-action', { appId: appArg.id, action: 'approve' })}>Approve</button>
|
|
2278
|
+
<button class="plain-button ghost" style="font-size:11px;color:var(--idp-destructive)" @click=${() => this.dispatchShellEvent('idp-admin-ga-app-action', { appId: appArg.id, action: 'reject' })}>Reject</button>
|
|
2279
|
+
</div>
|
|
2280
|
+
`
|
|
2281
|
+
: html `<button class="plain-button ghost" style="font-size:11px" @click=${() => this.dispatchShellEvent('idp-admin-ga-app-action', { appId: appArg.id, action: appArg.status === 'suspended' ? 'reinstate' : 'suspend' })}>${appArg.status === 'suspended' ? 'Reinstate' : 'Suspend'}</button>`,
|
|
2683
2282
|
],
|
|
2684
2283
|
}));
|
|
2685
2284
|
return html `
|
|
@@ -2696,6 +2295,7 @@ let IdpAdminShell = (() => {
|
|
|
2696
2295
|
{ label: 'Category', hideBelow: 'mobile' },
|
|
2697
2296
|
{ label: 'Connections', align: 'right', mono: true, hideBelow: 'mobile' },
|
|
2698
2297
|
{ label: 'Status' },
|
|
2298
|
+
{ label: '' },
|
|
2699
2299
|
]}
|
|
2700
2300
|
.rows=${appRows}
|
|
2701
2301
|
></idp-data-table>
|
|
@@ -2722,13 +2322,39 @@ let IdpAdminShell = (() => {
|
|
|
2722
2322
|
}
|
|
2723
2323
|
render() {
|
|
2724
2324
|
return html `
|
|
2725
|
-
<div
|
|
2726
|
-
|
|
2325
|
+
<div
|
|
2326
|
+
class="shell"
|
|
2327
|
+
@idp-admin-navigate=${this.handleSidebarNavigate}
|
|
2328
|
+
@idp-admin-org-select=${this.handleSidebarOrgSelect}
|
|
2329
|
+
@idp-admin-org-create-request=${this.requestOrgCreate}
|
|
2330
|
+
@idp-admin-logout-request=${this.requestLogout}
|
|
2331
|
+
>
|
|
2332
|
+
<idp-admin-sidebar
|
|
2333
|
+
.page=${this.page}
|
|
2334
|
+
.user=${this.user}
|
|
2335
|
+
.accounts=${this.accounts}
|
|
2336
|
+
.orgs=${this.orgs}
|
|
2337
|
+
.selectedOrgId=${this.selectedOrgId}
|
|
2338
|
+
.globalAdmin=${this.globalAdmin}
|
|
2339
|
+
.sessionCount=${this.sessions.length}
|
|
2340
|
+
></idp-admin-sidebar>
|
|
2727
2341
|
<main>${this.renderMainContent()}</main>
|
|
2728
2342
|
</div>
|
|
2729
2343
|
${this.renderDialog()}
|
|
2344
|
+
${this.toast
|
|
2345
|
+
? html `
|
|
2346
|
+
<div class="toast ${this.toast.tone}">
|
|
2347
|
+
<idp-icon name=${this.toast.tone === 'ok' ? 'check' : 'alert'} size="14"></idp-icon>
|
|
2348
|
+
<span style="flex:1">${this.toast.message}</span>
|
|
2349
|
+
</div>
|
|
2350
|
+
`
|
|
2351
|
+
: html ``}
|
|
2730
2352
|
`;
|
|
2731
2353
|
}
|
|
2354
|
+
constructor() {
|
|
2355
|
+
super(...arguments);
|
|
2356
|
+
__runInitializers(this, _dialogAppMappings_extraInitializers);
|
|
2357
|
+
}
|
|
2732
2358
|
static {
|
|
2733
2359
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
2734
2360
|
}
|
|
@@ -2736,4 +2362,4 @@ let IdpAdminShell = (() => {
|
|
|
2736
2362
|
return IdpAdminShell = _classThis;
|
|
2737
2363
|
})();
|
|
2738
2364
|
export { IdpAdminShell };
|
|
2739
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWFkbWluLXNoZWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2lkcC1hZG1pbi1zaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUF1QixNQUFNLDZCQUE2QixDQUFDO0FBQzFILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8scUJBQXFCLENBQUM7SUErUWhCLGFBQWE7NEJBRHpCLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzZCQUFuQixTQUFRLFdBQVc7Ozs7Z0NBbTdCM0MsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dDQUcxQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0NBTTFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQzt5Q0FHekIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQzt1Q0FHeEQsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQzt1Q0FHckUsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztxQ0FHckUsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQUM7b0NBR25ELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztzQ0FHekIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO3NDQUd6QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7MENBR3pCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQzs4Q0FHekIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO21DQUd6QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7dUNBR3pCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztxQ0FHekIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDOzJDQUd6QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7OENBR3pCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQzt1Q0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLENBQUM7Z0RBR3RELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLENBQUM7MENBRy9ELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztvQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDOzZDQUd6QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO3VDQUczRCxLQUFLLEVBQUU7MkNBR1AsS0FBSyxFQUFFO3VDQUdQLEtBQUssRUFBRTsyQ0FHUCxLQUFLLEVBQUU7MkNBR1AsS0FBSyxFQUFFOzRDQUdQLEtBQUssRUFBRTt3Q0FHUCxLQUFLLEVBQUU7d0NBR1AsS0FBSyxFQUFFO21EQUdQLEtBQUssRUFBRTsyQ0FHUCxLQUFLLEVBQUU7Z0RBR1AsS0FBSyxFQUFFOzhDQUdQLEtBQUssRUFBRTs0Q0FHUCxLQUFLLEVBQUU7c0NBR1AsS0FBSyxFQUFFO3VDQUdQLEtBQUssRUFBRTt5Q0FHUCxLQUFLLEVBQUU7MENBR1AsS0FBSyxFQUFFO2lEQUdQLEtBQUssRUFBRTt3REFHUCxLQUFLLEVBQUU7d0NBR1AsS0FBSyxFQUFFOzZDQUdQLEtBQUssRUFBRTtxQ0FHUCxLQUFLLEVBQUU7NkNBR1AsS0FBSyxFQUFFO1lBdElSLGlLQUFnQixJQUFJLDZCQUFKLElBQUksbUZBQTZCO1lBR2pELGlLQUFnQixJQUFJLDZCQUFKLElBQUksbUZBR2xCO1lBR0YsaUtBQWdCLElBQUksNkJBQUosSUFBSSxtRkFBc0I7WUFHMUMsNExBQWdCLGFBQWEsNkJBQWIsYUFBYSxxR0FBTTtZQUduQyxzTEFBZ0IsV0FBVyw2QkFBWCxXQUFXLGlHQUFTO1lBR3BDLHNMQUFnQixXQUFXLDZCQUFYLFdBQVcsaUdBQVM7WUFHcEMsZ0xBQWdCLFNBQVMsNkJBQVQsU0FBUyw2RkFBTTtZQUcvQiw2S0FBZ0IsUUFBUSw2QkFBUixRQUFRLDJGQUEwQjtZQUdsRCxtTEFBZ0IsVUFBVSw2QkFBVixVQUFVLCtGQUEyQjtZQUdyRCxtTEFBZ0IsVUFBVSw2QkFBVixVQUFVLCtGQUF5QjtZQUduRCwrTEFBZ0IsY0FBYyw2QkFBZCxjQUFjLHVHQUE2QjtZQUczRCwyTUFBZ0Isa0JBQWtCLDZCQUFsQixrQkFBa0IsK0dBQW9DO1lBR3RFLDBLQUFnQixPQUFPLDZCQUFQLE9BQU8seUZBQXNCO1lBRzdDLHNMQUFnQixXQUFXLDZCQUFYLFdBQVcsaUdBQXNCO1lBR2pELGdMQUFnQixTQUFTLDZCQUFULFNBQVMsNkZBQXNCO1lBRy9DLGtNQUFnQixlQUFlLDZCQUFmLGVBQWUseUdBQWlDO1lBR2hFLDJNQUFnQixrQkFBa0IsNkJBQWxCLGtCQUFrQiwrR0FBNEM7WUFHOUUsc0xBQWdCLFdBQVcsNkJBQVgsV0FBVyxpR0FBUztZQUdwQyxpTkFBZ0Isb0JBQW9CLDZCQUFwQixvQkFBb0IsbUhBQUs7WUFHekMsK0xBQWdCLGNBQWMsNkJBQWQsY0FBYyx1R0FBd0M7WUFHdEUsNktBQWdCLFFBQVEsNkJBQVIsUUFBUSwyRkFBMEI7WUFHbEQsd01BQWdCLGlCQUFpQiw2QkFBakIsaUJBQWlCLDZHQUFNO1lBR3ZDLHNMQUFpQixXQUFXLDZCQUFYLFdBQVcsaUdBQVM7WUFHckMsa01BQWlCLGVBQWUsNkJBQWYsZUFBZSx5R0FBTTtZQUd0QyxzTEFBaUIsV0FBVyw2QkFBWCxXQUFXLGlHQUFNO1lBR2xDLGtNQUFpQixlQUFlLDZCQUFmLGVBQWUseUdBQU07WUFHdEMsa01BQWlCLGVBQWUsNkJBQWYsZUFBZSx5R0FBTTtZQUd0QyxxTUFBaUIsZ0JBQWdCLDZCQUFoQixnQkFBZ0IsMkdBQU07WUFHdkMseUxBQWlCLFlBQVksNkJBQVosWUFBWSxtR0FBTTtZQUduQyx5TEFBaUIsWUFBWSw2QkFBWixZQUFZLG1HQUFNO1lBR25DLDBOQUFpQix1QkFBdUIsNkJBQXZCLHVCQUF1Qix5SEFBTTtZQUc5QyxrTUFBaUIsZUFBZSw2QkFBZixlQUFlLHlHQUFNO1lBR3RDLGlOQUFpQixvQkFBb0IsNkJBQXBCLG9CQUFvQixtSEFBTTtZQUczQywyTUFBaUIsa0JBQWtCLDZCQUFsQixrQkFBa0IsK0dBQU07WUFHekMscU1BQWlCLGdCQUFnQiw2QkFBaEIsZ0JBQWdCLDJHQUFNO1lBR3ZDLG1MQUFpQixVQUFVLDZCQUFWLFVBQVUsK0ZBQXlGO1lBR3BILHNMQUFpQixXQUFXLDZCQUFYLFdBQVcsaUdBQU07WUFHbEMsNExBQWlCLGFBQWEsNkJBQWIsYUFBYSxxR0FBTTtZQUdwQywrTEFBaUIsY0FBYyw2QkFBZCxjQUFjLHVHQUFNO1lBR3JDLG9OQUFpQixxQkFBcUIsNkJBQXJCLHFCQUFxQixxSEFBTTtZQUc1Qyx5T0FBaUIsNEJBQTRCLDZCQUE1Qiw0QkFBNEIsbUlBQU07WUFHbkQseUxBQWlCLFlBQVksNkJBQVosWUFBWSxtR0FBZ0M7WUFHN0Qsd01BQWlCLGlCQUFpQiw2QkFBakIsaUJBQWlCLDZHQUFnQjtZQUdsRCxnTEFBaUIsU0FBUyw2QkFBVCxTQUFTLDZGQUE2QjtZQUd2RCx3TUFBaUIsaUJBQWlCLDZCQUFqQixpQkFBaUIsNkdBQWlDO1lBM2pDckUsNktBbytFQzs7OztRQW4rRVEsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUEsa0RBQWtELENBQUM7UUFDM0UsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFakQsTUFBTSxDQUFDLE1BQU0sR0FBRztZQUNyQixHQUFHLGdCQUFnQjtZQUNuQixHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMDZCRjtTQUNGLENBQUM7UUFHRixxRUFBc0MsVUFBVSxFQUFDO1FBQWpELElBQWdCLElBQUksMENBQTZCO1FBQWpELElBQWdCLElBQUksZ0RBQTZCO1FBR2pELHdIQUFzQztZQUNwQyxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxFQUFFO1NBQ1YsR0FBQztRQUhGLElBQWdCLElBQUksMENBR2xCO1FBSEYsSUFBZ0IsSUFBSSxnREFHbEI7UUFHRix3SEFBdUMsRUFBRSxHQUFDO1FBQTFDLElBQWdCLElBQUksMENBQXNCO1FBQTFDLElBQWdCLElBQUksZ0RBQXNCO1FBRzFDLDBJQUFnQyxFQUFFLEdBQUM7UUFBbkMsSUFBZ0IsYUFBYSxtREFBTTtRQUFuQyxJQUFnQixhQUFhLHlEQUFNO1FBR25DLCtJQUE4QixLQUFLLEdBQUM7UUFBcEMsSUFBZ0IsV0FBVyxpREFBUztRQUFwQyxJQUFnQixXQUFXLHVEQUFTO1FBR3BDLDZJQUE4QixLQUFLLEdBQUM7UUFBcEMsSUFBZ0IsV0FBVyxpREFBUztRQUFwQyxJQUFnQixXQUFXLHVEQUFTO1FBR3BDLHlJQUE0QixFQUFFLEdBQUM7UUFBL0IsSUFBZ0IsU0FBUywrQ0FBTTtRQUEvQixJQUFnQixTQUFTLHFEQUFNO1FBRy9CLHFJQUErQyxFQUFFLEdBQUM7UUFBbEQsSUFBZ0IsUUFBUSw4Q0FBMEI7UUFBbEQsSUFBZ0IsUUFBUSxvREFBMEI7UUFHbEQsd0lBQWtELEVBQUUsR0FBQztRQUFyRCxJQUFnQixVQUFVLGdEQUEyQjtRQUFyRCxJQUFnQixVQUFVLHNEQUEyQjtRQUdyRCwwSUFBZ0QsRUFBRSxHQUFDO1FBQW5ELElBQWdCLFVBQVUsZ0RBQXlCO1FBQW5ELElBQWdCLFVBQVUsc0RBQXlCO1FBR25ELGtKQUF3RCxFQUFFLEdBQUM7UUFBM0QsSUFBZ0IsY0FBYyxvREFBNkI7UUFBM0QsSUFBZ0IsY0FBYywwREFBNkI7UUFHM0QsOEpBQW1FLEVBQUUsR0FBQztRQUF0RSxJQUFnQixrQkFBa0Isd0RBQW9DO1FBQXRFLElBQWdCLGtCQUFrQiw4REFBb0M7UUFHdEUsNElBQTBDLEVBQUUsR0FBQztRQUE3QyxJQUFnQixPQUFPLDZDQUFzQjtRQUE3QyxJQUFnQixPQUFPLG1EQUFzQjtRQUc3Qyx5SUFBOEMsRUFBRSxHQUFDO1FBQWpELElBQWdCLFdBQVcsaURBQXNCO1FBQWpELElBQWdCLFdBQVcsdURBQXNCO1FBR2pELHlJQUE0QyxFQUFFLEdBQUM7UUFBL0MsSUFBZ0IsU0FBUywrQ0FBc0I7UUFBL0MsSUFBZ0IsU0FBUyxxREFBc0I7UUFHL0MsbUpBQTZELEVBQUUsR0FBQztRQUFoRSxJQUFnQixlQUFlLHFEQUFpQztRQUFoRSxJQUFnQixlQUFlLDJEQUFpQztRQUdoRSwrSkFBeUUsSUFBSSxHQUFDO1FBQTlFLElBQWdCLGtCQUFrQix3REFBNEM7UUFBOUUsSUFBZ0Isa0JBQWtCLDhEQUE0QztRQUc5RSxvSkFBOEIsS0FBSyxHQUFDO1FBQXBDLElBQWdCLFdBQVcsaURBQVM7UUFBcEMsSUFBZ0IsV0FBVyx1REFBUztRQUdwQywrSkFBdUMsQ0FBQyxHQUFDO1FBQXpDLElBQWdCLG9CQUFvQiwwREFBSztRQUF6QyxJQUFnQixvQkFBb0IsZ0VBQUs7UUFHekMsNEpBQWlFLElBQUksR0FBQztRQUF0RSxJQUFnQixjQUFjLG9EQUF3QztRQUF0RSxJQUFnQixjQUFjLDBEQUF3QztRQUd0RSwwSUFBK0MsRUFBRSxHQUFDO1FBQWxELElBQWdCLFFBQVEsOENBQTBCO1FBQWxELElBQWdCLFFBQVEsb0RBQTBCO1FBR2xELHNKQUFvQyxFQUFFLEdBQUM7UUFBdkMsSUFBZ0IsaUJBQWlCLHVEQUFNO1FBQXZDLElBQWdCLGlCQUFpQiw2REFBTTtRQUd2QyxtSkFBK0IsS0FBSyxHQUFDO1FBQXJDLElBQWlCLFdBQVcsaURBQVM7UUFBckMsSUFBaUIsV0FBVyx1REFBUztRQUdyQyxxSkFBbUMsRUFBRSxHQUFDO1FBQXRDLElBQWlCLGVBQWUscURBQU07UUFBdEMsSUFBaUIsZUFBZSwyREFBTTtRQUd0QyxpSkFBK0IsRUFBRSxHQUFDO1FBQWxDLElBQWlCLFdBQVcsaURBQU07UUFBbEMsSUFBaUIsV0FBVyx1REFBTTtRQUdsQyxxSkFBbUMsRUFBRSxHQUFDO1FBQXRDLElBQWlCLGVBQWUscURBQU07UUFBdEMsSUFBaUIsZUFBZSwyREFBTTtRQUd0Qyx5SkFBbUMsRUFBRSxHQUFDO1FBQXRDLElBQWlCLGVBQWUscURBQU07UUFBdEMsSUFBaUIsZUFBZSwyREFBTTtRQUd0QywySkFBb0MsRUFBRSxHQUFDO1FBQXZDLElBQWlCLGdCQUFnQixzREFBTTtRQUF2QyxJQUFpQixnQkFBZ0IsNERBQU07UUFHdkMsb0pBQWdDLEVBQUUsR0FBQztRQUFuQyxJQUFpQixZQUFZLGtEQUFNO1FBQW5DLElBQWlCLFlBQVksd0RBQU07UUFHbkMsZ0pBQWdDLEVBQUUsR0FBQztRQUFuQyxJQUFpQixZQUFZLGtEQUFNO1FBQW5DLElBQWlCLFlBQVksd0RBQU07UUFHbkMsc0tBQTJDLEVBQUUsR0FBQztRQUE5QyxJQUFpQix1QkFBdUIsNkRBQU07UUFBOUMsSUFBaUIsdUJBQXVCLG1FQUFNO1FBRzlDLGlLQUFtQyxFQUFFLEdBQUM7UUFBdEMsSUFBaUIsZUFBZSxxREFBTTtRQUF0QyxJQUFpQixlQUFlLDJEQUFNO1FBR3RDLG1LQUF3QyxFQUFFLEdBQUM7UUFBM0MsSUFBaUIsb0JBQW9CLDBEQUFNO1FBQTNDLElBQWlCLG9CQUFvQixnRUFBTTtRQUczQyxvS0FBc0MsRUFBRSxHQUFDO1FBQXpDLElBQWlCLGtCQUFrQix3REFBTTtRQUF6QyxJQUFpQixrQkFBa0IsOERBQU07UUFHekMsOEpBQW9DLEVBQUUsR0FBQztRQUF2QyxJQUFpQixnQkFBZ0Isc0RBQU07UUFBdkMsSUFBaUIsZ0JBQWdCLDREQUFNO1FBR3ZDLGdKQUE2RyxNQUFNLEdBQUM7UUFBcEgsSUFBaUIsVUFBVSxnREFBeUY7UUFBcEgsSUFBaUIsVUFBVSxzREFBeUY7UUFHcEgsNElBQStCLEVBQUUsR0FBQztRQUFsQyxJQUFpQixXQUFXLGlEQUFNO1FBQWxDLElBQWlCLFdBQVcsdURBQU07UUFHbEMsaUpBQWlDLEVBQUUsR0FBQztRQUFwQyxJQUFpQixhQUFhLG1EQUFNO1FBQXBDLElBQWlCLGFBQWEseURBQU07UUFHcEMscUpBQWtDLEVBQUUsR0FBQztRQUFyQyxJQUFpQixjQUFjLG9EQUFNO1FBQXJDLElBQWlCLGNBQWMsMERBQU07UUFHckMsb0tBQXlDLEVBQUUsR0FBQztRQUE1QyxJQUFpQixxQkFBcUIsMkRBQU07UUFBNUMsSUFBaUIscUJBQXFCLGlFQUFNO1FBRzVDLHlMQUFnRCxFQUFFLEdBQUM7UUFBbkQsSUFBaUIsNEJBQTRCLGtFQUFNO1FBQW5ELElBQWlCLDRCQUE0Qix3RUFBTTtRQUduRCxnS0FBd0QsSUFBSSxHQUFDO1FBQTdELElBQWlCLFlBQVksa0RBQWdDO1FBQTdELElBQWlCLFlBQVksd0RBQWdDO1FBRzdELDBKQUErQyxFQUFFLEdBQUM7UUFBbEQsSUFBaUIsaUJBQWlCLHVEQUFnQjtRQUFsRCxJQUFpQixpQkFBaUIsNkRBQWdCO1FBR2xELCtJQUFrRCxJQUFJLEdBQUM7UUFBdkQsSUFBaUIsU0FBUywrQ0FBNkI7UUFBdkQsSUFBaUIsU0FBUyxxREFBNkI7UUFHdkQsdUpBQWdFLEVBQUUsR0FBQztRQUFuRSxJQUFpQixpQkFBaUIsdURBQWlDO1FBQW5FLElBQWlCLGlCQUFpQiw2REFBaUM7UUFFM0QsWUFBWSxtRUFBZTtZQUNqQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1NBQ3BELEVBQUM7UUFFTSxVQUFVLEdBQWU7WUFDL0IsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNqRCxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3JELEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNoRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7U0FDdEQsQ0FBQztRQUVNLE1BQU0sR0FBZTtZQUMzQixFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3pELEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDM0QsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUN0RCxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFO1NBQ3JELENBQUM7UUFFTSxVQUFVLEdBQWU7WUFDL0IsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtTQUNwRCxDQUFDO1FBRU0sUUFBUSxHQUFlO1lBQzdCLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDckQsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQy9ELEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7U0FDekQsQ0FBQztRQUVGLElBQVksUUFBUTtZQUNsQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25FLENBQUM7UUFFRCxJQUFZLFVBQVU7WUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSTtnQkFDM0UsRUFBRSxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLEVBQUU7YUFDWCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQVksWUFBWTtZQUN0QixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDNUIsQ0FBQztZQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxJQUFJLEdBQUcsQ0FBQztZQUMxRCxPQUFPLE1BQU07aUJBQ1YsS0FBSyxDQUFDLE9BQU8sQ0FBQztpQkFDZCxNQUFNLENBQUMsT0FBTyxDQUFDO2lCQUNmLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM1QixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDWCxJQUFJLENBQUMsRUFBRSxDQUFDO2lCQUNSLFdBQVcsRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFFTyxXQUFXLENBQUMsUUFBaUI7WUFDbkMsTUFBTSxNQUFNLEdBQUcsUUFBUSxJQUFJLEdBQUcsQ0FBQztZQUMvQixPQUFPLE1BQU07aUJBQ1YsS0FBSyxDQUFDLFlBQVksQ0FBQztpQkFDbkIsTUFBTSxDQUFDLE9BQU8sQ0FBQztpQkFDZixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDNUIsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ1gsSUFBSSxDQUFDLEVBQUUsQ0FBQztpQkFDUixXQUFXLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBRU8sZ0JBQWdCLENBQUMsUUFBdUMsRUFBRSxRQUFlO1lBQy9FLE1BQU0sS0FBSyxHQUFJLFFBQVEsQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztZQUMxRCxJQUFJLFFBQVEsS0FBSyxTQUFTO2dCQUFFLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQ3pELElBQUksUUFBUSxLQUFLLEtBQUs7Z0JBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7WUFDakQsSUFBSSxRQUFRLEtBQUssU0FBUztnQkFBRSxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUN6RCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBRU8sb0JBQW9CO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDeEUsSUFBSSxDQUFDLGVBQWUsR0FBRywyREFBMkQsQ0FBQztnQkFDbkYsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLGtEQUFrRCxDQUFDO2dCQUMxRSxPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxlQUFlLEdBQUcsNkNBQTZDLENBQUM7Z0JBQ3JFLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFxQywyQkFBMkIsRUFBRTtnQkFDdkYsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUNyQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7YUFDOUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVPLG9CQUFvQjtZQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzVCLElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDckMsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUM3QixDQUFDO1FBRU8sbUJBQW1CLENBQ3pCLFFBQXNILEVBQ3RILFFBQWU7WUFFZixNQUFNLEtBQUssR0FBSSxRQUFRLENBQUMsTUFBK0MsQ0FBQyxLQUFLLENBQUM7WUFDOUUsSUFBSSxRQUFRLEtBQUssTUFBTTtnQkFBRSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUNuRCxJQUFJLFFBQVEsS0FBSyxNQUFNO2dCQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hFLElBQUksUUFBUSxLQUFLLHNCQUFzQjtnQkFBRSxJQUFJLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDO1lBQzlFLElBQUksUUFBUSxLQUFLLGlCQUFpQjtnQkFBRSxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztZQUNqRSxJQUFJLFFBQVEsS0FBSyxzQkFBc0I7Z0JBQUUsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztZQUMzRSxJQUFJLFFBQVEsS0FBSyxvQkFBb0I7Z0JBQUUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUN2RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFFTyx1QkFBdUI7WUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsa0RBQWtELENBQUM7Z0JBQzNFLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsMENBQTBDLENBQUM7Z0JBQ25FLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0VBQWdFLENBQUM7Z0JBQ3pGLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxHQUFHLENBQUMsSUFBSSw0Q0FBNEMsQ0FBQztnQkFDckYsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQWdDLHNCQUFzQixFQUFFO2dCQUM3RSxjQUFjLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RCLElBQUk7Z0JBQ0osSUFBSTtnQkFDSixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFO2FBQ3RELENBQUMsQ0FBQztRQUNMLENBQUM7UUFFTyxpQkFBaUI7WUFDdkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUM1QixNQUFNLFlBQVksR0FBRyxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyx1REFBdUQsQ0FBQztnQkFDaEYsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsb0RBQW9ELENBQUM7Z0JBQzdFLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLEtBQUssWUFBWSxFQUFFLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLFlBQVksaUNBQWlDLENBQUM7Z0JBQzlFLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFrQyx3QkFBd0IsRUFBRTtnQkFDakYsY0FBYyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUN0QixVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWU7Z0JBQ2hDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUU7YUFDbkQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVPLGVBQWU7WUFDckIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUM1QixNQUFNLFlBQVksR0FBRyxVQUFVLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyw0Q0FBNEMsQ0FBQztnQkFDckUsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsS0FBSyxZQUFZLEVBQUUsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsWUFBWSxvQ0FBb0MsQ0FBQztnQkFDakYsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQWdDLHNCQUFzQixFQUFFO2dCQUM3RSxjQUFjLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7YUFDakQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVPLHlCQUF5QjtZQUMvQixNQUFNLGFBQWEsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXO2dCQUNwRCxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyx5QkFBeUI7Z0JBQy9GLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUN0QixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDakIsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQXlDLDJCQUEyQixFQUFFO2dCQUMzRixXQUFXO2FBQ1osQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVPLHFCQUFxQjtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUVPLG9CQUFvQjtZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN6QixPQUFPO1lBQ1QsQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQy9ELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDVixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBaUMsdUJBQXVCLEVBQUU7Z0JBQy9FLFlBQVksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVk7Z0JBQzlDLElBQUk7YUFDTCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRU8sV0FBVztZQUNqQixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsdURBQXVELENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNsRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQStCLHdCQUF3QixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBRU8scUJBQXFCO1lBQzNCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxrRUFBa0UsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzdHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDVixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBK0IsbUNBQW1DLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZHLENBQUM7UUFFTywwQkFBMEI7WUFDaEMsTUFBTSxhQUFhLEdBQUcsT0FBTyxTQUFTLEtBQUssV0FBVztnQkFDcEQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO2dCQUMvRSxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMxRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsa0JBQWtCLENBQTBDLDRCQUE0QixFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1RyxDQUFDO1FBRU8sT0FBTyxDQUFDLE9BQXNCO1lBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQStCLG9CQUFvQixFQUFFO2dCQUNyRixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO2dCQUN6QixPQUFPLEVBQUUsSUFBSTtnQkFDYixRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUVPLFNBQVMsQ0FBQyxRQUFnQjtZQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztZQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQztZQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFnQyxzQkFBc0IsRUFBRTtnQkFDeEYsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxRQUFRO29CQUNmLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsSUFBSSxJQUFJO2lCQUNoRTtnQkFDRCxPQUFPLEVBQUUsSUFBSTtnQkFDYixRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUVPLGdCQUFnQjtZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLHNCQUFzQixFQUFFO2dCQUN6RCxPQUFPLEVBQUUsSUFBSTtnQkFDYixRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUVPLGtCQUFrQixDQUFVLFlBQW9CLEVBQUUsU0FBa0I7WUFDMUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFdBQVcsQ0FBVSxZQUFZLEVBQUU7Z0JBQ3hELE1BQU0sRUFBRSxTQUFTO2dCQUNqQixPQUFPLEVBQUUsSUFBSTtnQkFDYixRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUVPLGFBQWEsQ0FBQyxZQUFxQjtZQUN6QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7WUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsWUFBWSxDQUFDO1lBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDO1lBRXpDLElBQUksT0FBTyxHQUFHLENBQUM7Z0JBQUUsT0FBTyxVQUFVLENBQUM7WUFDbkMsSUFBSSxPQUFPLEdBQUcsRUFBRTtnQkFBRSxPQUFPLEdBQUcsT0FBTyxPQUFPLENBQUM7WUFDM0MsSUFBSSxLQUFLLEdBQUcsRUFBRTtnQkFBRSxPQUFPLEdBQUcsS0FBSyxPQUFPLENBQUM7WUFDdkMsSUFBSSxJQUFJLEdBQUcsQ0FBQztnQkFBRSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUM7WUFDcEMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3JELENBQUM7UUFFTyxlQUFlLENBQUMsUUFBZ0IsRUFBRSxjQUFzQixFQUFFLE9BQU8sR0FBRyxLQUFLO1lBQy9FLE9BQU8sSUFBSSxDQUFBOztrREFFbUMsT0FBYzttQ0FDN0IsUUFBUTt5Q0FDRixjQUFjOztLQUVsRCxDQUFDO1FBQ0osQ0FBQztRQUVPLGVBQWUsQ0FBQyxhQUFxQixFQUFFLG1CQUEyQixFQUFFLE9BQU8sR0FBRyxLQUFLO1lBQ3pGLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxFQUFFLG9EQUFvRCxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzdHLENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDM0UsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUVPLFdBQVcsQ0FBQyxPQUFlO1lBQ2pDLElBQUksT0FBTyxLQUFLLE9BQU87Z0JBQUUsT0FBTyxRQUFRLENBQUM7WUFDekMsSUFBSSxPQUFPLEtBQUssT0FBTztnQkFBRSxPQUFPLE1BQU0sQ0FBQztZQUN2QyxJQUFJLE9BQU8sS0FBSyxRQUFRO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQ3RDLElBQUksT0FBTyxLQUFLLFFBQVE7Z0JBQUUsT0FBTyxPQUFPLENBQUM7WUFDekMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELElBQVksYUFBYTtZQUN2QixPQUFPO2dCQUNMLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQ0FBa0MsRUFBRTtnQkFDaEYsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxFQUFFO2dCQUNoRixFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsNkJBQTZCLEVBQUU7Z0JBQzdFLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRTtnQkFDN0UsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLDZCQUE2QixFQUFFO2dCQUMzRSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUU7YUFDaEYsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFZLGlCQUFpQjtZQUMzQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLElBQUksRUFBRSxDQUFDO1lBQ2xELE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFFLE9BQU87Z0JBQ0wsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0UsR0FBRyxXQUFXO2FBQ2YsQ0FBQztRQUNKLENBQUM7UUFFTyxRQUFRLENBQUMsUUFBZ0I7WUFDL0IsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUVPLGdCQUFnQixDQUFDLFFBQWdCO1lBQ3ZDLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRixDQUFDO1FBRU8sV0FBVztZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzlCLENBQUM7UUFFTyxvQkFBb0IsQ0FBQyxPQUFvQztZQUMvRCxJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE9BQU8sRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzFELENBQUM7UUFFTyxvQkFBb0IsQ0FBQyxPQUFtQztZQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQztZQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ25DLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsNEJBQTRCLEdBQUcsRUFBRSxDQUFDO1FBQ3pDLENBQUM7UUFFTyxxQkFBcUIsQ0FBQyxTQUEwQjtZQUN0RCxJQUFJLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQztZQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztZQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBRU8seUJBQXlCLENBQUMsTUFBb0I7WUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUM5RCxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEgsT0FBTztvQkFDTCxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUc7b0JBQ3ZCLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUNoRCxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDdEQsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQzdDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFTyxrQkFBa0IsQ0FBQyxRQUErRCxFQUFFLFFBQWU7WUFDekcsTUFBTSxLQUFLLEdBQUksUUFBUSxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDO1lBQzFELElBQUksUUFBUSxLQUFLLEtBQUs7Z0JBQUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUUsSUFBSSxRQUFRLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO29CQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLFFBQVEsS0FBSyxhQUFhO2dCQUFFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7WUFDbkUsSUFBSSxRQUFRLEtBQUssb0JBQW9CO2dCQUFFLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUM7WUFDakYsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDeEIsQ0FBQztRQUVPLHNCQUFzQixDQUFDLFVBQWtCLEVBQUUsVUFBbUI7WUFDcEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDbEQsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFFTyxxQkFBcUIsQ0FBQyxVQUFrQixFQUFFLFFBQStDLEVBQUUsUUFBZTtZQUNoSCxNQUFNLEtBQUssR0FBSSxRQUFRLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUM7WUFDMUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEtBQUssVUFBVTtnQkFDdEcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyRCxDQUFDLENBQUMsVUFBVSxDQUNiLENBQUM7WUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBRU8sc0JBQXNCO1lBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsaUNBQWlDLENBQUM7Z0JBQ3JELE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFvQywyQkFBMkIsRUFBRTtnQkFDdEYsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDbEMsY0FBYyxFQUFFO29CQUNkLEdBQUc7b0JBQ0gsSUFBSTtvQkFDSixXQUFXLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRTtpQkFDL0M7YUFDRixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUVPLHNCQUFzQjtZQUM1QixNQUFNLFlBQVksR0FBRyxlQUFlLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6RCxJQUFJLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxZQUFZLEVBQUUsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLFlBQVksNEJBQTRCLENBQUM7Z0JBQ3BFLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFvQywyQkFBMkIsRUFBRTtnQkFDdEYsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDbEMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUMzQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFO2FBQzNELENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBRU8sdUJBQXVCO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTtnQkFBRSxPQUFPO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsZ0NBQWdDLENBQUM7Z0JBQ3BELE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFrQywrQkFBK0IsRUFBRTtnQkFDeEYsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTtnQkFDaEMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7YUFDOUIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFFTywyQkFBMkI7WUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUFFLE9BQU87WUFDNUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQjtpQkFDeEMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQixVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVU7Z0JBQ2pDLFFBQVEsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDbEMsV0FBVyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO2dCQUN4QyxNQUFNLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDL0IsQ0FBQyxDQUFDO2lCQUNGLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuSCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7WUFDbEQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDdEksSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsMkJBQTJCLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO2dCQUN4RixPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBc0Msb0NBQW9DLEVBQUU7Z0JBQ2pHLGNBQWMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2xDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3hCLFlBQVk7YUFDYixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUVPLGlCQUFpQjtZQUN2QixPQUFPLElBQUksQ0FBQyxXQUFXO2dCQUNyQixDQUFDLENBQUMsSUFBSSxDQUFBLHlSQUF5UixJQUFJLENBQUMsV0FBVyxvQkFBb0I7Z0JBQ25VLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRSxDQUFDO1FBQ2IsQ0FBQztRQUVPLHNCQUFzQjtZQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM3RixPQUFPLElBQUksQ0FBQTt3Q0FDeUIsQ0FBQyxRQUFlLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUU7OzJDQUU1QyxNQUFNLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxpQkFBaUI7c0RBQ3BDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7OztZQUdsRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsaUNBQWlDLEVBQUUsSUFBSSxDQUFBLCtCQUErQixJQUFJLENBQUMsY0FBYyxXQUFXLENBQUMsUUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQzlNLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLG1FQUFtRSxFQUFFLElBQUksQ0FBQSwrQkFBK0IsSUFBSSxDQUFDLGFBQWEsV0FBVyxDQUFDLFFBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsY0FBYyxNQUFNLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDalEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsK0RBQStELEVBQUUsSUFBSSxDQUFBLHFDQUFxQyxJQUFJLENBQUMscUJBQXFCLFdBQVcsQ0FBQyxRQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQzs7O3dEQUd6TixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO3dEQUN4QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7OztLQUd0RixDQUFDO1FBQ0osQ0FBQztRQUVPLHNCQUFzQjtZQUM1QixNQUFNLFlBQVksR0FBRyxlQUFlLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6RCxPQUFPLElBQUksQ0FBQTt3Q0FDeUIsQ0FBQyxRQUFlLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUU7OztzREFHakMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTs7O1lBR2xFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTsyUEFDdU4sSUFBSSxDQUFDLGNBQWMsb0RBQW9ELFlBQVk7WUFDbFUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsUUFBUSxZQUFZLEVBQUUsRUFBRSxJQUFJLENBQUEsK0JBQStCLElBQUksQ0FBQyw0QkFBNEIsV0FBVyxDQUFDLFFBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDOzs7d0RBR3RMLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7NERBQ3BCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTs7O0tBRzFGLENBQUM7UUFDSixDQUFDO1FBRU8sdUJBQXVCO1lBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUE7d0NBQ3lCLENBQUMsUUFBZSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFOztxRkFFRixNQUFNLEVBQUUsSUFBSSxJQUFJLE1BQU0sRUFBRSxLQUFLLElBQUksUUFBUTtzREFDeEUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTs7O1lBR2xFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTs7Y0FFdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0QsT0FBTyxJQUFJLENBQUE7O29EQUUyQixPQUFPLFlBQVksQ0FBQyxRQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFHLFFBQVEsQ0FBQyxNQUEyQixDQUFDLE9BQU8sQ0FBQztzREFDN0gsT0FBTyxDQUFDLElBQUksb0RBQW9ELE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLEdBQUc7O2VBRXpJLENBQUM7WUFDSixDQUFDLENBQUM7Ozs7d0RBSTBDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7d0RBQ3hCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRTs7O0tBR3ZGLENBQUM7UUFDSixDQUFDO1FBRU8sMkJBQTJCO1lBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUE7NkNBQzhCLENBQUMsUUFBZSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFOzs4RkFFRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksbUVBQW1FLEdBQUcsRUFBRSxJQUFJLElBQUksVUFBVTtzREFDdEosR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTs7O1lBR2xFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN4QixHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLGlFQUFpRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsbUhBQW1IO1lBQ3pQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDMUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzdGLE9BQU8sSUFBSSxDQUFBOzs0Q0FFcUIsSUFBSSxFQUFFLElBQUksSUFBSSxVQUFVLENBQUMsVUFBVSx1QkFBdUIsVUFBVSxDQUFDLFVBQVU7dUJBQ3BHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUEsK0JBQStCLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQzt1QkFDbE4sSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQSwrQkFBK0IsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDO3VCQUMxTixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFBLCtCQUErQixVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUM7O2FBRXJOLENBQUM7WUFDSixDQUFDLENBQUM7Ozt3REFHNEMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTt3REFDeEIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFOzs7S0FHM0YsQ0FBQztRQUNKLENBQUM7UUFFTyxZQUFZO1lBQ2xCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxJQUFJLENBQUEsRUFBRSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxLQUFLLGFBQWE7Z0JBQzlDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7Z0JBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLGFBQWE7b0JBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7b0JBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLGNBQWM7d0JBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7d0JBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQSx1Q0FBdUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU0sUUFBUSxDQUFDO1FBQy9GLENBQUM7UUFFTyxjQUFjLENBQUMsS0FBaUIsRUFBRSxNQUFNLEdBQUcsRUFBRTtZQUNuRCxPQUFPLElBQUksQ0FBQTs7VUFFTCxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUE7b0NBQ0UsSUFBSSxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzs2QkFDaEYsSUFBSSxDQUFDLElBQVc7Y0FDL0IsSUFBSSxDQUFDLEtBQUs7Y0FDVixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsd0RBQXdELElBQUksQ0FBQyxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLEVBQUU7O1NBRS9HLENBQUM7O0tBRUwsQ0FBQztRQUNKLENBQUM7UUFFTyxhQUFhO1lBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDbkMsT0FBTyxJQUFJLENBQUE7Ozs7Ozs7Ozs7Ozs7MkVBYTRELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDOzRFQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQzs7OzswQ0FJakYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDOzJDQUN4RixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFO3lDQUMzQyxVQUFVLENBQUMsSUFBSTs7O2dCQUd4QyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7OztvQkFHbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQTttREFDSCxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztpREFDL0YsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTtxRkFDRCxNQUFNLENBQUMsSUFBSSxzQ0FBc0MsTUFBTSxDQUFDLE1BQU0sSUFBSSxRQUFRO3dCQUN2SSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSw4Q0FBOEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLEVBQUU7O21CQUVuRyxDQUFDOztzREFFa0MsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFOztlQUVwRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRTs7Y0FFVixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQzs7eUVBRWdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzVHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxxRUFBcUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRTs7O3NDQUdoSSxJQUFJLENBQUMsWUFBWTswREFDRyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxjQUFjLGlDQUFpQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxVQUFVOzs7S0FHckosQ0FBQztRQUNKLENBQUM7UUFFTyxlQUFlLENBQUMsSUFBYyxFQUFFLEtBQWE7WUFDbkQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzlCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM5QixNQUFNLEtBQUssR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM3QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDbEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzdDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDakQsTUFBTSxDQUFDLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNiLE1BQU0sSUFBSSxHQUFHLEtBQUssTUFBTSxJQUFJLE1BQU0sSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFFeEQsT0FBTyxJQUFJLENBQUE7MEJBQ1csS0FBSyxJQUFJLE1BQU07MEJBQ2YsSUFBSSxTQUFTLEtBQUs7MkJBQ2pCLE1BQU0sdUJBQXVCLEtBQUs7O0tBRXhELENBQUM7UUFDSixDQUFDO1FBRU8sU0FBUyxDQUFDLEdBQVM7WUFDekIsT0FBTyxJQUFJLENBQUE7NkNBQzhCLEdBQUcsQ0FBQyxNQUFNO2lDQUN0QixHQUFHLENBQUMsS0FBSztpQ0FDVCxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxTQUFTLEdBQUcsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLEVBQUU7K0JBQ2hFLEdBQUcsQ0FBQyxHQUFHOztnQ0FFTixHQUFHLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLO21DQUNqRixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQzs7O0tBRzdFLENBQUM7UUFDSixDQUFDO1FBRU8sZ0JBQWdCLENBQUMsUUFBZ0IsRUFBRSxjQUFzQixFQUFFLFNBQTBCO1lBQzNGLE9BQU8sSUFBSSxDQUFBOzttQkFFSSxRQUFRLDBCQUEwQixjQUFjO1VBQ3pELFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLDZCQUE2QixTQUFTLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLEVBQUU7O0tBRTVFLENBQUM7UUFDSixDQUFDO1FBRU8saUJBQWlCLENBQUMsUUFBZ0IsRUFBRSxjQUFzQixFQUFFLFVBQTBCLEVBQUUsU0FBMEI7WUFDeEgsT0FBTyxJQUFJLENBQUE7O1VBRUwsUUFBUSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBOzs4Q0FFUSxRQUFRLFNBQVMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsb0NBQW9DLGNBQWMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRTtjQUN6SSxTQUFTOztTQUVkLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxFQUFFO1VBQ1IsVUFBVTs7S0FFZixDQUFDO1FBQ0osQ0FBQztRQUVPLGFBQWEsQ0FBQyxRQUFnQixFQUFFLE9BQWUsRUFBRSxVQUEwQixFQUFFLFdBQVcsR0FBRyxLQUFLO1lBQ3RHLE9BQU8sSUFBSSxDQUFBOzt1Q0FFd0IsUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLCtDQUErQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRSxTQUFTLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLDBCQUEwQixPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLEVBQUU7ZUFDdEwsVUFBVTs7S0FFcEIsQ0FBQztRQUNKLENBQUM7UUFFTyxlQUFlLENBQUMsUUFBZ0I7WUFDdEMsT0FBTyxJQUFJLENBQUEsaUNBQWlDLFFBQVEsMERBQTBELENBQUM7UUFDakgsQ0FBQztRQUVPLGNBQWM7WUFDcEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQztZQUM1RCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3JILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzdHLE1BQU0sSUFBSSxHQUFXO2dCQUNuQjtvQkFDRSxLQUFLLEVBQUUsZUFBZTtvQkFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDL0IsS0FBSyxFQUFFLE1BQU07b0JBQ2IsU0FBUyxFQUFFLE1BQU07b0JBQ2pCLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUMzRCxVQUFVLEVBQUUsdUJBQXVCO29CQUNuQyxNQUFNLEVBQUUsb0JBQW9CO29CQUM1QixHQUFHLEVBQUUscUNBQXFDO2lCQUMzQztnQkFDRDtvQkFDRSxLQUFLLEVBQUUsVUFBVTtvQkFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztvQkFDbkMsS0FBSyxFQUFFLEdBQUcsa0JBQWtCLFNBQVM7b0JBQ3JDLFNBQVMsRUFBRSxJQUFJO29CQUNmLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzVELFVBQVUsRUFBRSxxQkFBcUI7b0JBQ2pDLE1BQU0sRUFBRSxvQkFBb0I7b0JBQzVCLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywyQkFBMkI7aUJBQ2hLO2dCQUNEO29CQUNFLEtBQUssRUFBRSxrQkFBa0I7b0JBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7b0JBQzFDLEtBQUssRUFBRSxHQUFHLG1CQUFtQixTQUFTO29CQUN0QyxTQUFTLEVBQUUsTUFBTTtvQkFDakIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDMUQsVUFBVSxFQUFFLHVCQUF1QjtvQkFDbkMsTUFBTSxFQUFFLG9CQUFvQjtvQkFDNUIsR0FBRyxFQUFFLDJCQUEyQjtpQkFDakM7Z0JBQ0Q7b0JBQ0UsS0FBSyxFQUFFLFVBQVU7b0JBQ2pCLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7b0JBQ3JDLEtBQUssRUFBRSxNQUFNO29CQUNiLFNBQVMsRUFBRSxNQUFNO29CQUNqQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDeEQsVUFBVSxFQUFFLHVCQUF1QjtvQkFDbkMsTUFBTSxFQUFFLGlCQUFpQjtvQkFDekIsR0FBRyxFQUFFLHVCQUF1QjtpQkFDN0I7YUFDRixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUE7Ozs7OEJBSWUsU0FBUzs7O2dGQUd5QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyx3RUFBd0UsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7Ozs0QkFHeEwsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztVQUM5RCxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLEVBQUUscURBQXFELEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxFQUFFOzs7K0ZBR3BFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTtjQUN2RyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFBO3dJQUM0QyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLGVBQWUsV0FBVyxDQUFDLFdBQVcsaUNBQWlDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQzthQUNoUixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsdUZBQXVGLEVBQUUsVUFBVSxDQUFDOzs7Z0dBRzdELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtjQUN0RyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFBO2lGQUNOLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMscUJBQXFCLDJDQUEyQyxVQUFVLENBQUMsVUFBVSxJQUFJLGdCQUFnQixrQ0FBa0MsVUFBVSxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsRUFBRSx3Q0FBd0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO2FBQzVXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxtRUFBbUUsRUFBRSxTQUFTLENBQUM7Ozs7S0FJdEksQ0FBQztRQUNKLENBQUM7UUFFTyxhQUFhO1lBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksUUFBUSxDQUFDO1lBQzdDLE9BQU8sSUFBSSxDQUFBO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSwyREFBMkQsQ0FBQzs7VUFFM0YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSwwQ0FBMEMsRUFBRSxJQUFJLENBQUEsZ0lBQWdJLElBQUksQ0FBQyxZQUFZLDBDQUEwQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxjQUFjLGlJQUFpSSxDQUFDO1VBQy9hLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFBO1lBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUEsK0JBQStCLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQztZQUNqSCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxpQ0FBaUMsRUFBRSxJQUFJLENBQUEsMEdBQTBHLFFBQVEsb0JBQW9CLENBQUM7WUFDN00sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsNkNBQTZDLEVBQUUsSUFBSSxDQUFBLCtCQUErQixJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFLGNBQWMsQ0FBQztZQUNuSixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSwyQkFBMkIsRUFBRSxJQUFJLENBQUEsK0JBQStCLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxJQUFJLEVBQUUsY0FBYyxDQUFDO1NBQ25KLENBQUM7VUFDQSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQSxtSEFBbUgsTUFBTSxtQ0FBbUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLHFCQUFxQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEscU9BQXFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxFQUFFLEVBQUUsQ0FBQzs7S0FFL2pCLENBQUM7UUFDSixDQUFDO1FBRU8sY0FBYztZQUNwQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDNUQsS0FBSyxFQUFFO29CQUNMLElBQUksQ0FBQTs7NENBRWdDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQzs7OENBRS9CLFNBQVMsQ0FBQyxLQUFLO2dEQUNiLFNBQVMsQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7OztTQUdwSDtvQkFDRCxJQUFJLENBQUEsc0JBQXNCLFNBQVMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsTUFBTSxjQUFjO29CQUMxRzt3QkFDRSxTQUFTLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUMxQyxTQUFTLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUN4QyxTQUFTLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO3FCQUN6QyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRztvQkFDbkMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87b0JBQ3pFLElBQUksQ0FBQSw2RUFBNkUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFxQywyQkFBMkIsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsd0JBQXdCO2lCQUNwTzthQUNGLENBQUMsQ0FBQyxDQUFDO1lBQ0osTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELEtBQUssRUFBRTtvQkFDTCxJQUFJLENBQUE7OzRDQUVnQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7OzhDQUVoQyxVQUFVLENBQUMsS0FBSztnREFDZCxVQUFVLENBQUMsVUFBVSxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7OztTQUdySDtvQkFDRCxJQUFJLENBQUEsc0JBQXNCLFVBQVUsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsTUFBTSxjQUFjO29CQUM1RyxDQUFDLFVBQVUsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUc7b0JBQy9DLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPO29CQUMzRSxJQUFJLENBQUEsNkVBQTZFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBOEIsMEJBQTBCLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLHdCQUF3QjtpQkFDOU47YUFDRixDQUFDLENBQUMsQ0FBQztZQUVKLE9BQU8sSUFBSSxDQUFBO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSx1REFBdUQsQ0FBQzs7VUFFeEYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsbUpBQW1KLElBQUksQ0FBQyxpQkFBaUIsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxFQUFFO1VBQ25PLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSwyUkFBMlIsSUFBSSxDQUFDLGVBQWUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxFQUFFO1VBQ3ZXLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsRUFBRSxrRkFBa0YsRUFBRSxJQUFJLENBQUE7K01BQ2tFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTs7d0RBRTNLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQzdFLENBQUM7VUFDQSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLGdHQUFnRyxFQUFFLElBQUksQ0FBQTtZQUN2SSxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUEsK0VBQStFLElBQUksQ0FBQyxlQUFlLFdBQVcsQ0FBQyxRQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDeE8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsSUFBSSxDQUFBLDJFQUEyRSxJQUFJLENBQUMsV0FBVyxXQUFXLENBQUMsUUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQzlPLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQSwyRUFBMkUsSUFBSSxDQUFDLGVBQWUsV0FBVyxDQUFDLFFBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzs7d0RBRXhMLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtTQUNoRixDQUFDO1VBQ0EsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixFQUFFLGlHQUFpRyxFQUFFLElBQUksQ0FBQTtrR0FDM0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsa0NBQWtDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVTtZQUNwVCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7OztjQUd4QixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2NBQ3pGLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7MERBQy9DLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtXQUNoRixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7O2NBRUosSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBOzs4REFFeUIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFOzJGQUNMLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7O2FBRXRHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSwrQ0FBK0MsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLG9DQUFvQztXQUM5SDtTQUNGLENBQUM7Ozs7a0JBSVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sUUFBUTs7O3FCQUc1QjtnQkFDVCxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQ3BCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFDbkIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUU7Z0JBQzVDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUU7Z0JBQ3ZELEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2FBQ3BDO2tCQUNPLFdBQVc7Ozs7OzBEQUs2QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUU7Ozs7OztrQkFNL0UsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sUUFBUTs7O3FCQUduQztnQkFDVCxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBQ25CLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFDbkIsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUU7Z0JBQzlDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUU7Z0JBQ3ZELEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2FBQ3BDO2tCQUNPLFlBQVk7Ozs7OzBEQUs0QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUU7O1lBRXBGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO3VNQUM2SixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFO2NBQ3JQLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztjQUNuRyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztjQUN2RyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztXQUMxRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsMERBQTBEOzs7S0FHdkUsQ0FBQztRQUNKLENBQUM7UUFFTyxjQUFjO1lBQ3BCLE9BQU8sSUFBSSxDQUFBO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLGdEQUFnRCxDQUFDOztVQUUzRixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQTs7OztpR0FJMEIsVUFBVSxDQUFDLFVBQVUsSUFBSSxnQkFBZ0IsVUFBVSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEscURBQXFELENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxFQUFFO21DQUMxTSxVQUFVLENBQUMsT0FBTyxJQUFJLGlCQUFpQixNQUFNLFVBQVUsQ0FBQyxFQUFFLElBQUksWUFBWSw2QkFBNkIsVUFBVSxDQUFDLEVBQUUsSUFBSSxTQUFTOzJDQUN6SCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7O2NBRTNILFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSw0RUFBNEUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUE4QiwwQkFBMEIsRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsa0JBQWtCOztTQUUzUCxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLG9GQUFvRixFQUFFLFNBQVMsQ0FBQzs7S0FFNUksQ0FBQztRQUNKLENBQUM7UUFFTyxpQkFBaUI7WUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQTtRQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSx1RUFBdUUsQ0FBQzs7VUFFOUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFBLGtEQUFrRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLG1GQUFtRixNQUFNLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFBLGdDQUFnQyxRQUFRLGNBQWMsQ0FBQyxtREFBbUQsTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLHVCQUF1Qix3RkFBd0YsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFnQyxzQkFBc0IsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGtDQUFrQyxFQUFFLDZJQUE2SSxFQUFFLE1BQU0sQ0FBQzs7S0FFbjVCLENBQUM7UUFDSixDQUFDO1FBRU8sZ0JBQWdCO1lBQ3RCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDNUIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNyRixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVTtpQkFDbEMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sY0FBYyxHQUFHLEdBQUcsV0FBVyxDQUFDLFVBQVUsSUFBSSxFQUFFLElBQUksV0FBVyxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDeEcsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQzt1QkFDdEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7dUJBQ3BFLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO3VCQUM5QixjQUFjLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQzt1QkFDdkMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNmLE1BQU0sSUFBSSxHQUFXO2dCQUNuQjtvQkFDRSxLQUFLLEVBQUUsU0FBUztvQkFDaEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztvQkFDckMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLFVBQVU7b0JBQzlDLFNBQVMsRUFBRSxJQUFJO29CQUNmLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3JELFVBQVUsRUFBRSxxQkFBcUI7b0JBQ2pDLE1BQU0sRUFBRSxvQkFBb0I7b0JBQzVCLEdBQUcsRUFBRSxHQUFHLENBQUMsSUFBSTtpQkFDZDtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsZ0JBQWdCO29CQUN2QixLQUFLLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDO29CQUNoQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sWUFBWTtvQkFDekMsU0FBUyxFQUFFLE1BQU07b0JBQ2pCLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2hELFVBQVUsRUFBRSx1QkFBdUI7b0JBQ25DLE1BQU0sRUFBRSxpQkFBaUI7b0JBQ3pCLEdBQUcsRUFBRSw4QkFBOEI7aUJBQ3BDO2dCQUNEO29CQUNFLEtBQUssRUFBRSxNQUFNO29CQUNiLEtBQUssRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLFFBQVE7b0JBQzdCLEtBQUssRUFBRSxNQUFNO29CQUNiLFNBQVMsRUFBRSxNQUFNO29CQUNqQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ25CLFVBQVUsRUFBRSx1QkFBdUI7b0JBQ25DLE1BQU0sRUFBRSxvQkFBb0I7b0JBQzVCLEdBQUcsRUFBRSxtQkFBbUI7aUJBQ3pCO2dCQUNEO29CQUNFLEtBQUssRUFBRSxVQUFVO29CQUNqQixLQUFLLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7b0JBQ25DLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxpQkFBaUI7b0JBQ2pELFNBQVMsRUFBRSxJQUFJO29CQUNmLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNoRCxVQUFVLEVBQUUscUJBQXFCO29CQUNqQyxNQUFNLEVBQUUsb0JBQW9CO29CQUM1QixHQUFHLEVBQUUsMkJBQTJCO2lCQUNqQzthQUNGLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQTs7OztnQkFJQyxHQUFHLENBQUMsSUFBSTt3RUFDZ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksMEJBQTBCOztnRkFFeEQsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsdUVBQXVFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDOzs7NEJBRzFMLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7VUFDOUQsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixFQUFFLDBEQUEwRCxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRTs7O29HQUd4RSxHQUFHLENBQUMsTUFBTSxJQUFJLFFBQVE7O2dLQUVzQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLCtFQUErRSxHQUFHLENBQUMsSUFBSSwwQ0FBMEMsR0FBRyxDQUFDLElBQUksSUFBSSxZQUFZO2dCQUMzVSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksMEJBQTBCLENBQUM7Ozs7OzRHQUtrQyxhQUFhLENBQUMsTUFBTTtjQUNsSCxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUE7d0lBQzRELFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsZUFBZSxXQUFXLENBQUMsV0FBVyxpQ0FBaUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO2FBQ2hSLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxtR0FBbUcsRUFBRSxVQUFVLENBQUM7Ozs7S0FJeEssQ0FBQztRQUNKLENBQUM7UUFFTyxpQkFBaUI7WUFDdkIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUM1QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM1QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMzRixNQUFNLG1CQUFtQixHQUFHLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25ELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDL0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQztZQUNySCxPQUFPLElBQUksQ0FBQTtRQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsRUFBRSxvRUFBb0UsQ0FBQzs7VUFFbEgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsa1NBQWtTLElBQUksQ0FBQyxnQkFBZ0Isb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSxFQUFFO1VBQ2hYLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLEdBQUcsQ0FBQyxJQUFJLHlGQUF5RixFQUFFLElBQUksQ0FBQTs0SkFDYixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLCtFQUErRSxHQUFHLENBQUMsSUFBSSwwQ0FBMEMsR0FBRyxDQUFDLElBQUk7WUFDM1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFBLCtCQUErQixJQUFJLENBQUMsWUFBWSxXQUFXLENBQUMsUUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ3RMLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLGlDQUFpQyxFQUFFLElBQUksQ0FBQSx5R0FBeUcsSUFBSSxDQUFDLFlBQVksV0FBVyxDQUFDLFFBQWUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDO1lBQ3RSLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQSwrQkFBK0IsSUFBSSxDQUFDLHVCQUF1QixXQUFXLENBQUMsUUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQzs7MkRBRXZLLENBQUMsZUFBZSxXQUFXLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtTQUNqSCxDQUFDO1VBQ0EsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixFQUFFLDRDQUE0QyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1VBQ3JILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsRUFBRSw4QkFBOEIsbUJBQW1CLGNBQWMsRUFBRSxJQUFJLENBQUE7WUFDaEgsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7Y0FDOUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUseURBQXlELEVBQUUsSUFBSSxDQUFBOzhDQUMvRCxJQUFJLENBQUMsZUFBZSxZQUFZLENBQUMsUUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDOztrQkFFdEksa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUEsaUJBQWlCLFNBQVMsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxLQUFLLFlBQVksQ0FBQzs7YUFFdEosRUFBRSxJQUFJLENBQUM7Y0FDTixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxRQUFRLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxDQUFBLCtCQUErQixJQUFJLENBQUMsb0JBQW9CLFdBQVcsQ0FBQyxRQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDOzswREFFbEwsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1dBQzdFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsK0JBQStCLEVBQUUsMERBQTBELEVBQUUsT0FBTyxDQUFDO1NBQy9ILENBQUM7VUFDQSxJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsMENBQTBDLGlCQUFpQix1SEFBdUgsRUFBRSxJQUFJLENBQUE7WUFDcE8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsUUFBUSxpQkFBaUIsRUFBRSxFQUFFLElBQUksQ0FBQSwrQkFBK0IsSUFBSSxDQUFDLGtCQUFrQixXQUFXLENBQUMsUUFBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQzs7NERBRXhLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7U0FDL0UsQ0FBQzs7S0FFTCxDQUFDO1FBQ0osQ0FBQztRQUVPLGdCQUFnQjtZQUN0QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMvRCxLQUFLLEVBQUU7b0JBQ0wsSUFBSSxDQUFBOzs0Q0FFZ0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDOzs4Q0FFNUIsT0FBTyxDQUFDLElBQUk7Z0RBQ1YsT0FBTyxDQUFDLFdBQVcsSUFBSSwwQkFBMEI7OztTQUd4RjtvQkFDRCxPQUFPLENBQUMsR0FBRztvQkFDWCxJQUFJLENBQUE7O2tEQUVzQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDOzhEQUM1QixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDOztTQUU3RjtpQkFDRjthQUNGLENBQUMsQ0FBQyxDQUFDO1lBQ0osTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELEtBQUssRUFBRTtvQkFDTCxJQUFJLENBQUE7OzRDQUVnQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQzs7OENBRWpELFNBQVMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLEtBQUs7Z0RBQy9CLFNBQVMsQ0FBQyxLQUFLOzs7U0FHdEQ7b0JBQ0QsSUFBSSxDQUFBLHlCQUF5QixTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFBLHNCQUFzQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sY0FBYyxDQUFDLFFBQVE7b0JBQ25KLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSw2Q0FBNkMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLGlEQUFpRDtvQkFDbkksU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksU0FBUyxDQUFDLGFBQWE7d0JBQzFELENBQUMsQ0FBQyxJQUFJLENBQUEsaUVBQWlFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsNEJBQTRCO3dCQUM5SSxDQUFDLENBQUMsSUFBSSxDQUFBLGlFQUFpRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLHVFQUF1RSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQTZCLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyx3QkFBd0I7aUJBQ3RVO2FBQ0YsQ0FBQyxDQUFDLENBQUM7WUFDSixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDN0QsS0FBSyxFQUFFO29CQUNMLElBQUksQ0FBQTs7NENBRWdDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQzs7OENBRS9CLFNBQVMsQ0FBQyxLQUFLO3dEQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQzs7O1NBR3RGO29CQUNELElBQUksQ0FBQSx5QkFBeUIsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQSxzQkFBc0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLGNBQWMsQ0FBQyxRQUFRO29CQUNuSixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsa0JBQWtCLEVBQUU7b0JBQ2xELElBQUksQ0FBQTs7a0RBRXNDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBaUMsNkJBQTZCLEVBQUUsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDOzhEQUNoSCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQWlDLDZCQUE2QixFQUFFLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs7U0FFakw7aUJBQ0Y7YUFDRixDQUFDLENBQUMsQ0FBQztZQUVKLE9BQU8sSUFBSSxDQUFBO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxjQUFjLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxzQkFBc0IsRUFBRSxJQUFJLENBQUEsK0NBQStDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLG9FQUFvRSxDQUFDOztVQUV2VSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQSw4UkFBOFIsSUFBSSxDQUFDLGdCQUFnQixvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLEVBQUU7Ozs7a0JBSXBXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sU0FBUzs7O3FCQUd2QztnQkFDVCxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0JBQ2pCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUM1QixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUNwQztrQkFDTyxjQUFjOzsyREFFMkIsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFOzs7a0JBRzFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLFFBQVE7OztxQkFHOUI7Z0JBQ1QsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2dCQUNqQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRTtnQkFDdkMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUNuQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUNwQztrQkFDTyxVQUFVOztVQUVsQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBOzs7b0JBR3ZCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLFFBQVE7dUJBQ2xDO2dCQUNULEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFDcEIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUU7Z0JBQ3ZDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUNoQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUNwQztvQkFDTyxjQUFjOztTQUV6QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRTs7S0FFYixDQUFDO1FBQ0osQ0FBQztRQUVPLGFBQWE7WUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVDLEtBQUssRUFBRTtvQkFDTCxJQUFJLENBQUE7OzRDQUVnQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7OzhDQUUzQixNQUFNLENBQUMsSUFBSTtnREFDVCxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksWUFBWTs7O1NBRzFGO29CQUNELE1BQU0sQ0FBQyxRQUFRLElBQUksR0FBRztvQkFDdEIsSUFBSSxDQUFBLHlCQUF5QixDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQSxnQ0FBZ0MsUUFBUSxjQUFjLENBQUMsUUFBUTtvQkFDcEosSUFBSSxDQUFBLHNCQUFzQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsY0FBYztvQkFDL0gsSUFBSSxDQUFBLHNCQUFzQixNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQyx1QkFBdUI7b0JBQ3ZJLElBQUksQ0FBQSw2QkFBNkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLHVDQUF1QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRSwrQkFBK0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLFlBQVksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFnQyxzQkFBc0IsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxpQkFBaUI7aUJBQ3RjO2FBQ0YsQ0FBQyxDQUFDLENBQUM7WUFFSixPQUFPLElBQUksQ0FBQTtRQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsNkNBQTZDLENBQUM7O1VBRTFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBLDhSQUE4UixJQUFJLENBQUMsZ0JBQWdCLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUEsRUFBRTs7O2tCQUdwVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxRQUFROzs7cUJBRzNCO2dCQUNULEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDaEIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRTtnQkFDdkQsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUU7Z0JBQ3hDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFDbkIsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFO2dCQUMxQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUNwQztrQkFDTyxPQUFPOzs7S0FHcEIsQ0FBQztRQUNKLENBQUM7UUFFTyxhQUFhO1lBQ25CLE1BQU0sUUFBUSxHQUFHO2dCQUNmLENBQUMsa0JBQWtCLEVBQUUsaUlBQWlJLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLENBQUM7Z0JBQzdNLENBQUMsdUJBQXVCLEVBQUUscUdBQXFHLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLENBQUM7Z0JBQzNMLENBQUMseUJBQXlCLEVBQUUsZ0dBQWdHLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLENBQUM7Z0JBQ2xMLENBQUMsMkJBQTJCLEVBQUUsdUZBQXVGLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLENBQUM7Z0JBQzFLLENBQUMsaUJBQWlCLEVBQUUsbUZBQW1GLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsbUJBQW1CLENBQUM7YUFDaEssQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFBO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSw0RkFBNEYsQ0FBQzs0ZEFDc1YsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFBLGdFQUFnRSxVQUFVLENBQUMsQ0FBQyxDQUFRLHVJQUF1SSxVQUFVLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxVQUFVLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxVQUFVLENBQUMsQ0FBQyxDQUFDLDBLQUEwSyxVQUFVLENBQUMsQ0FBQyxDQUFDLCtCQUErQixVQUFVLENBQUMsQ0FBQyxDQUFDLDRHQUE0RyxDQUFDO0tBQzdvQyxDQUFDO1FBQ0osQ0FBQztRQUVPLGFBQWE7WUFDbkIsT0FBTyxJQUFJLENBQUEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLG9DQUFvQyxDQUFDLCtCQUErQixJQUFJLENBQUMsZUFBZSxDQUFDLDhCQUE4QixFQUFFLHFKQUFxSixFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFDcFYsQ0FBQztRQUVPLFlBQVk7WUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pDLEtBQUssRUFBRTtvQkFDTCxJQUFJLENBQUE7OzRDQUVnQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7OzhDQUUzQixNQUFNLENBQUMsSUFBSTtnREFDVCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTOzs7U0FHaEc7b0JBQ0QsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHO29CQUNsQixJQUFJLENBQUEsc0JBQXNCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLFFBQVEsY0FBYztvQkFDaEgsTUFBTSxDQUFDLEVBQUU7aUJBQ1Y7YUFDRixDQUFDLENBQUMsQ0FBQztZQUVKLE9BQU8sSUFBSSxDQUFBO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLDhDQUE4QyxDQUFDOzs7O2tCQUluRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxRQUFROzs7cUJBR3hCO2dCQUNULEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRTtnQkFDekIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRTtnQkFDbEQsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2dCQUNqQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFO2FBQ3pEO2tCQUNPLE9BQU87OztLQUdwQixDQUFDO1FBQ0osQ0FBQztRQUVPLFlBQVk7WUFDbEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDcEMsS0FBSyxFQUFFO29CQUNMLElBQUksQ0FBQTs7NENBRWdDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzs7OENBRTNCLE1BQU0sQ0FBQyxJQUFJO2dEQUNULE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxjQUFjOzs7U0FHNUY7b0JBQ0QsSUFBSSxDQUFBLHNCQUFzQixNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxRQUFRLGNBQWM7b0JBQ2xILE1BQU0sQ0FBQyxRQUFRLElBQUksR0FBRztvQkFDdEIsTUFBTSxDQUFDLGVBQWUsSUFBSSxHQUFHO29CQUM3QixJQUFJLENBQUEsc0JBQXNCLE1BQU0sQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksUUFBUSxjQUFjO2lCQUNsSzthQUNGLENBQUMsQ0FBQyxDQUFDO1lBRUosT0FBTyxJQUFJLENBQUE7UUFDUCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLDhDQUE4QyxDQUFDOzs7O2tCQUk1RSxHQUFHLElBQUksQ0FBQyxNQUFNLFFBQVE7OztxQkFHbkI7Z0JBQ1QsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUNoQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7Z0JBQ2pCLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFO2dCQUMxQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUU7Z0JBQ3pFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTthQUNwQjtrQkFDTyxPQUFPOzs7S0FHcEIsQ0FBQztRQUNKLENBQUM7UUFFTyxpQkFBaUI7WUFDdkIsTUFBTSxTQUFTLEdBQWdEO2dCQUM3RCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDckMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ25DLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNyQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDckMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDcEMsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDNUMsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDOUMsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDNUMsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUNuQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2FBQ3JDLENBQUM7WUFDRixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUN4RCxDQUFDO1FBRU0sTUFBTTtZQUNYLE9BQU8sSUFBSSxDQUFBOztVQUVMLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGlCQUFpQixFQUFFOztRQUVoQyxJQUFJLENBQUMsWUFBWSxFQUFFO0tBQ3RCLENBQUM7UUFDSixDQUFDOztZQW4rRVUsdURBQWE7Ozs7O1NBQWIsYUFBYSJ9
|
|
2365
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLWFkbWluLXNoZWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfd2ViL2VsZW1lbnRzL2lkcC1hZG1pbi1zaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUF1QixNQUFNLDZCQUE2QixDQUFDO0FBQzFILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sNkJBQTZCLENBQUM7QUFDckMsT0FBTyx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLEVBQXFCLE1BQU0sdUJBQXVCLENBQUM7SUEwVTdILGFBQWE7NEJBRHpCLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzZCQUFuQixTQUFRLFdBQVc7Ozs7Z0NBd2YzQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0NBRzFCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztn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
|