@serve.zone/interfaces 32.27.0 → 32.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +48 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/data/cluster.d.ts +1 -1
- package/dist_ts/data/cluster.js +6 -1
- package/dist_ts/data/networkaddressplan.d.ts +27 -3
- package/dist_ts/data/networkaddressplan.js +38 -2
- package/dist_ts/data/runtimelocalstorageclaim.d.ts +76 -0
- package/dist_ts/data/runtimelocalstorageclaim.js +99 -8
- package/dist_ts/data/secret.d.ts +11 -0
- package/dist_ts/data/secret.js +13 -1
- package/dist_ts/data/settings.d.ts +51 -0
- package/dist_ts/data/settings.js +83 -1
- package/dist_ts/private/networkcontract.d.ts +18 -0
- package/dist_ts/private/networkcontract.js +23 -6
- package/dist_ts/requests/network.d.ts +2 -1
- package/dist_ts/requests/runtimesession.d.ts +12 -0
- package/dist_ts/requests/settings.d.ts +56 -2
- package/dist_ts/requests/settings.js +91 -1
- package/package.json +1 -1
- package/readme.md +110 -5
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/data/cluster.ts +5 -0
- package/ts/data/networkaddressplan.ts +66 -4
- package/ts/data/runtimelocalstorageclaim.ts +173 -8
- package/ts/data/secret.ts +16 -0
- package/ts/data/settings.ts +127 -0
- package/ts/private/networkcontract.ts +36 -1
- package/ts/requests/network.ts +2 -1
- package/ts/requests/runtimesession.ts +16 -0
- package/ts/requests/settings.ts +162 -2
package/dist_ts/data/secret.d.ts
CHANGED
|
@@ -401,6 +401,17 @@ export declare const createAppStoreInstallSecretEnvelopeContext: (contextArg: {
|
|
|
401
401
|
bytes: number;
|
|
402
402
|
};
|
|
403
403
|
}) => Uint8Array;
|
|
404
|
+
/**
|
|
405
|
+
* The context a dcrouter admin bootstrap token is sealed under for `bootstrapExternalGatewayCredential`.
|
|
406
|
+
*
|
|
407
|
+
* It binds the envelope to the dcrouter URL and the gateway client id the administrator named, so a
|
|
408
|
+
* sealed token opens only for a request that states the same target, and Cloudly hands it only to
|
|
409
|
+
* a gateway its own settings name.
|
|
410
|
+
*/
|
|
411
|
+
export declare const createGatewayBootstrapEnvelopeContext: (contextArg: {
|
|
412
|
+
gatewayUrl: string;
|
|
413
|
+
gatewayClientId: string;
|
|
414
|
+
}) => Uint8Array;
|
|
404
415
|
export declare const createResolvedSecretMaterialEnvelopeContext: (contextArg: {
|
|
405
416
|
recipientKeyId: string;
|
|
406
417
|
organizationId: string;
|
package/dist_ts/data/secret.js
CHANGED
|
@@ -1240,6 +1240,18 @@ export const createAppStoreInstallSecretEnvelopeContext = (contextArg) => contex
|
|
|
1240
1240
|
? { encoding: contextArg.generation.encoding, bytes: contextArg.generation.bytes }
|
|
1241
1241
|
: null,
|
|
1242
1242
|
});
|
|
1243
|
+
/**
|
|
1244
|
+
* The context a dcrouter admin bootstrap token is sealed under for `bootstrapExternalGatewayCredential`.
|
|
1245
|
+
*
|
|
1246
|
+
* It binds the envelope to the dcrouter URL and the gateway client id the administrator named, so a
|
|
1247
|
+
* sealed token opens only for a request that states the same target, and Cloudly hands it only to
|
|
1248
|
+
* a gateway its own settings name.
|
|
1249
|
+
*/
|
|
1250
|
+
export const createGatewayBootstrapEnvelopeContext = (contextArg) => contextBytes({
|
|
1251
|
+
purpose: 'serve.zone/gateway-bootstrap',
|
|
1252
|
+
gatewayUrl: contextArg.gatewayUrl,
|
|
1253
|
+
gatewayClientId: contextArg.gatewayClientId,
|
|
1254
|
+
});
|
|
1243
1255
|
export const createResolvedSecretMaterialEnvelopeContext = (contextArg) => contextBytes({
|
|
1244
1256
|
purpose: 'serve.zone/resolved-secret-material',
|
|
1245
1257
|
recipientKeyId: contextArg.recipientKeyId,
|
|
@@ -1265,4 +1277,4 @@ export const createSecretRecipientEnrollmentChallengeContext = (contextArg) => c
|
|
|
1265
1277
|
generation: contextArg.generation,
|
|
1266
1278
|
expiresAt: contextArg.expiresAt,
|
|
1267
1279
|
});
|
|
1268
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9zZWNyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQWlCNUQsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBQzdDLGlCQUErQyxFQUMvQywrQkFBd0MsRUFDL0IsRUFBRSxDQUFDLGlCQUFpQixLQUFLLFFBQVE7T0FDdkMsQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLElBQUksK0JBQStCLENBQUMsQ0FBQztBQWtGMUUsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNqRSxlQUFlLEVBQUUsR0FBRztDQUNyQixDQUFDLENBQUM7QUEySUgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM3QyxZQUFZLEVBQUUsR0FBRyxHQUFHLElBQUk7SUFDeEIscUJBQXFCLEVBQUUsRUFBRTtJQUN6QixxQkFBcUIsRUFBRSxFQUFFO0NBQzFCLENBQUMsQ0FBQztBQThHSCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxDQUNuRCxPQUFxRCxFQUNyRCxRQUFzRCxFQUM3QyxFQUFFLENBQUMsQ0FDWixPQUFPLENBQUMsT0FBTyxDQUFDO09BQ2IsT0FBTyxDQUFDLFFBQVEsQ0FBQztPQUNqQixPQUFPLEVBQUUsVUFBVSxLQUFLLFFBQVEsRUFBRSxVQUFVO09BQzVDLE9BQU8sRUFBRSxjQUFjLEtBQUssUUFBUSxFQUFFLGNBQWM7T0FDcEQsT0FBTyxFQUFFLFNBQVMsS0FBSyxRQUFRLEVBQUUsU0FBUztPQUMxQyxPQUFPLEVBQUUsY0FBYyxLQUFLLFFBQVEs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
|
|
1280
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvZGF0YS9zZWNyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQWlCNUQsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBQzdDLGlCQUErQyxFQUMvQywrQkFBd0MsRUFDL0IsRUFBRSxDQUFDLGlCQUFpQixLQUFLLFFBQVE7T0FDdkMsQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLElBQUksK0JBQStCLENBQUMsQ0FBQztBQWtGMUUsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNqRSxlQUFlLEVBQUUsR0FBRztDQUNyQixDQUFDLENBQUM7QUEySUgsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUM3QyxZQUFZLEVBQUUsR0FBRyxHQUFHLElBQUk7SUFDeEIscUJBQXFCLEVBQUUsRUFBRTtJQUN6QixxQkFBcUIsRUFBRSxFQUFFO0NBQzFCLENBQUMsQ0FBQztBQThHSCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxDQUNuRCxPQUFxRCxFQUNyRCxRQUFzRCxFQUM3QyxFQUFFLENBQUMsQ0FDWixPQUFPLENBQUMsT0FBTyxDQUFDO09BQ2IsT0FBTyxDQUFDLFFBQVEsQ0FBQztPQUNqQixPQUFPLEVBQUUsVUFBVSxLQUFLLFFBQVEsRUFBRSxVQUFVO09BQzVDLE9BQU8sRUFBRSxjQUFjLEtBQUssUUFBUSxFQUFFLGNBQWM7T0FDcEQsT0FBTyxFQUFFLFNBQVMsS0FBSyxRQUFRLEVBQUUsU0FBUztPQUMxQyxPQUFPLEVBQUUsY0FBYyxLQUFLLFFBQVEsRUFBRSxjQUFjO09BQ3BELE9BQU8sRUFBRSxzQkFBc0IsS0FBSyxRQUFRLEVBQUUsc0JBQXNCO09BQ3BFLE9BQU8sRUFBRSxvQkFBb0IsS0FBSyxRQUFRLEVBQUUsb0JBQW9CO09BQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsS0FBSyxRQUFRLEVBQUUsZ0JBQWdCO09BQ3hELE9BQU8sRUFBRSxlQUFlLEtBQUssUUFBUSxFQUFFLGVBQWU7T0FDdEQsT0FBTyxFQUFFLHVCQUF1QixLQUFLLFFBQVEsRUFBRSx1QkFBdUIsQ0FDMUUsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlDQUF5QyxHQUFHLENBQ3ZELFFBQXVDLEVBQ3ZDLFlBQThDLEVBQzlDLE1BQWMsRUFDTCxFQUFFLENBQUMsQ0FDWixxQ0FBcUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQztPQUMxRSxxQ0FBcUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQztPQUM3RSxDQUNELE9BQU8sQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUM7V0FDdkMsTUFBTSxHQUFHLFFBQVEsQ0FBQyx3QkFBeUIsQ0FBQyxhQUFhO1dBQ3pELHFDQUFxQyxDQUN0QyxRQUFRLENBQUMsd0JBQXlCLENBQUMsUUFBUSxFQUMzQyxZQUFZLENBQ2IsQ0FDRixDQUNGLENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFHLHFDQUFxQyxDQUFDO0FBQ3BFLE1BQU0sc0JBQXNCLEdBQUcsbUNBQW1DLENBQUM7QUFDbkUsTUFBTSxjQUFjLEdBQUcsMEJBQTBCLENBQUM7QUFDbEQsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUVsRCxNQUFNLFFBQVEsR0FBRyxDQUFDLFFBQWlCLEVBQXVDLEVBQUUsQ0FBQyxDQUMzRSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDOUUsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLENBQ2xCLFFBQWlDLEVBQ2pDLE9BQWlCLEVBQ1IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFFaEYsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFFBQWlCLEVBQXNCLEVBQUUsQ0FBQyxDQUNwRSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUNyRSxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxRQUFpQixFQUFzQixFQUFFLENBQUMsQ0FDN0QsT0FBTyxRQUFRLEtBQUssUUFBUSxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQzlELENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsUUFBaUIsRUFBc0IsRUFBRSxDQUFDLENBQ3JFLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3RFLENBQUM7QUFFRixNQUFNLHdCQUF3QixHQUFHLENBQUMsUUFBaUIsRUFBc0IsRUFBRSxDQUFDLENBQzFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUssUUFBbUIsSUFBSSxDQUFDLENBQzVELENBQUM7QUFFRixNQUFNLHFCQUFxQixHQUFHLENBQUMsUUFBaUIsRUFBc0IsRUFBRSxDQUFDLENBQ3ZFLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUssUUFBbUIsR0FBRyxDQUFDLENBQzNELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLGFBQXNCLEVBQVksRUFBRSxDQUFDLENBQzVFLGtCQUFrQixDQUFDLGFBQWEsQ0FBQztJQUMvQixDQUFDLENBQUMsRUFBRTtJQUNKLENBQUMsQ0FBQyxDQUFDLDJDQUEyQyxDQUFDLENBQ2xELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBRyxDQUN0RCxhQUFzQixFQUNaLEVBQUU7SUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7V0FDNUIsYUFBYSxDQUFDLE1BQU0sR0FBRyxxQ0FBcUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNsRixPQUFPLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUF1QztRQUMxRCxrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLDRCQUE0QjtRQUM1QixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLFFBQVE7UUFDUixrQkFBa0I7S0FDbkIsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxlQUFtQyxDQUFDO0lBQ3hDLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsSUFBSSxhQUFhLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztlQUN0QixDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2VBQy9ELENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBNEMsQ0FBQztlQUNyRSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7ZUFDNUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxLQUFLLG9CQUFvQixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2VBQ3hGLENBQUMsWUFBWSxDQUFDLFNBQVMsS0FBSyxTQUFTO21CQUNuQyxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsS0FBSyxxQkFBcUIsQ0FBQyxDQUFDO1lBQy9FLFNBQVM7UUFDWCxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxVQUFVLEtBQzlELFlBQVksQ0FBQyxTQUFTLEtBQUssU0FBUztZQUNsQyxDQUFDLENBQUMsRUFBRTtZQUNKLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUNyRCxFQUFFLENBQUM7UUFDSCxJQUFJLGVBQWUsS0FBSyxTQUFTLElBQUksT0FBTyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkRBQTZELENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBQ0QsZUFBZSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsQ0FDM0MsVUFBbUIsRUFDVCxFQUFFO0lBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFBRSxPQUFPLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUNoRixNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUU7UUFDM0IsSUFBSTtRQUNKLFVBQVU7UUFDVixVQUFVO1FBQ1YsZ0JBQWdCO1FBQ2hCLFdBQVc7UUFDWCxXQUFXO1FBQ1gsUUFBUTtRQUNSLFdBQVc7UUFDWCxXQUFXO1FBQ1gsa0JBQWtCO1FBQ2xCLFVBQVU7S0FDWCxDQUFDLEVBQUUsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMscURBQXFELENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ25GLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFFBQVEsQ0FBQztTQUM3RCxRQUFRLENBQUMsVUFBVSxDQUFDLGNBQXdCLENBQUMsRUFBRSxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxJQUFJLENBQUMsMERBQTBELENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7V0FDOUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO1dBQ3pDLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDO2FBQ3RGLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQVUsRUFBRSxDQUFDO1FBQ3BFLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDcEYsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsS0FBSyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM1RSxJQUFJLFVBQVUsQ0FBQyxjQUFjLEtBQUssZUFBZSxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixJQUFJLFVBQVUsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUQsTUFBTSxDQUFDLElBQUksQ0FBQyx1RUFBdUUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7SUFDSCxDQUFDO1NBQU0sSUFBSSxVQUFVLENBQUMsY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0VBQXdFLENBQUMsQ0FBQztRQUN4RixDQUFDO0lBQ0gsQ0FBQztTQUFNLElBQUksVUFBVSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsSUFBSSxVQUFVLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzFGLE1BQU0sQ0FBQyxJQUFJLENBQUMsMERBQTBELENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsQ0FDOUMsU0FBa0IsRUFDUixFQUFFO0lBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7V0FDbkIsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFO1lBQzFCLFlBQVk7WUFDWixVQUFVO1lBQ1YsaUJBQWlCO1lBQ2pCLHdCQUF3QjtZQUN4QiwrQkFBK0I7WUFDL0IsK0JBQStCO1NBQ2hDLENBQUMsRUFBRSxDQUFDO1FBQ0wsT0FBTyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5RCxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFVLEVBQUUsQ0FBQztRQUM3RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixLQUFLLG9CQUFvQixDQUFDLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUM7SUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsK0JBQStCLENBQVUsRUFBRSxDQUFDO1FBQ3pGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0JBQStCLEtBQUssbUJBQW1CLENBQUMsQ0FBQztRQUN2RSxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDO1FBQ3ZFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUNBQXlDLEdBQUcsQ0FDdkQsU0FBb0MsRUFDNUIsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsT0FBTyxFQUFFLGlDQUFpQztJQUMxQyxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVU7SUFDaEMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxRQUFRO0lBQzVCLGVBQWUsRUFBRSxTQUFTLENBQUMsZUFBZTtJQUMxQyxzQkFBc0IsRUFBRSxTQUFTLENBQUMsc0JBQXNCO0lBQ3hELDZCQUE2QixFQUFFLFNBQVMsQ0FBQyw2QkFBNkI7SUFDdEUsNkJBQTZCLEVBQUUsU0FBUyxDQUFDLDZCQUE2QjtDQUN2RSxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxLQUFLLEVBQ3hELFNBQW9DLEVBQ1osRUFBRTtJQUMxQixJQUFJLGdDQUFnQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNqRSxTQUFTLEVBQ1QsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMseUNBQXlDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDL0UsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxVQUFVLENBQUMsR0FBRyxNQUFNLENBQUM7U0FDekIsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDdkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFtQixDQUFDO0FBQ2pDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLEtBQUssRUFDdkQsU0FBb0MsRUFDcEMsU0FBa0IsRUFDQSxFQUFFO0lBQ3BCLElBQUksQ0FBQztRQUNILE9BQU8sT0FBTyxTQUFTLEtBQUssUUFBUTtlQUMvQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2VBQ2pDLFNBQVMsS0FBSyxNQUFNLHFDQUFxQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxLQUFLLEVBQ3RELFlBQXFCLEVBQ0YsRUFBRTtJQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztRQUFFLE9BQU8sQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ3pGLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFDakMsTUFBTSxZQUFZLEdBQUcsS0FBSyxLQUFLLFFBQVE7UUFDckMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQztRQUM1RixDQUFDLENBQUMsS0FBSyxLQUFLLFdBQVc7WUFDckIsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQztZQUM3RixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0RixJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBZSxDQUFDO1dBQ3ZFLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxnQ0FBZ0MsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzFGLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0VBQXdFLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7V0FDaEQsQ0FBQyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO1dBQ2hELFlBQVksQ0FBQyxTQUFvQixHQUFJLFlBQVksQ0FBQyxTQUFvQixFQUFFLENBQUM7UUFDN0UsTUFBTSxDQUFDLElBQUksQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDO1dBQzVCLE9BQU8sWUFBWSxDQUFDLFlBQVksS0FBSyxRQUFRO1dBQzdDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsTUFBTSxvQ0FBb0MsQ0FDN0MsWUFBWSxDQUFDLE1BQThDLEVBQzNELFlBQVksQ0FBQyxZQUFZLENBQzFCLEVBQUUsQ0FBQztnQkFDRixNQUFNLENBQUMsSUFBSSxDQUFDLDREQUE0RCxDQUFDLENBQUM7WUFDNUUsQ0FBQztRQUNILENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLGdFQUFnRSxDQUFDLENBQUM7UUFDaEYsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxDQUFDLElBQUksQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFDRCxJQUFJLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7ZUFDOUIsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7ZUFDdEUsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRO2VBQzdDLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2VBQzFELE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUztlQUNuRCxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2VBQ3ZELFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBbUIsR0FBSSxZQUFZLENBQUMsU0FBb0I7ZUFDN0UsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFtQixHQUFJLFlBQVksQ0FBQyxTQUFvQixFQUFFLENBQUM7WUFDcEYsTUFBTSxDQUFDLElBQUksQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQzFFLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxLQUFLLEtBQUssV0FBVztXQUNwQixDQUFDLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztlQUM5QyxZQUFZLENBQUMsUUFBbUIsR0FBSSxZQUFZLENBQUMsU0FBb0I7ZUFDckUsWUFBWSxDQUFDLFFBQW1CLEdBQUksWUFBWSxDQUFDLFNBQW9CLENBQUMsRUFBRSxDQUFDO1FBQy9FLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0VBQXdFLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxRQUFpQixFQUFZLEVBQUU7SUFDakUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFBRSxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNuRSxNQUFNLFdBQVcsR0FBRztRQUNsQixPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDO1FBQzlCLFlBQVksRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUM7UUFDckMsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUM7UUFDakQsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztLQUNwQixDQUFDO0lBQ1gsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFnQyxDQUFDLENBQUM7SUFDcEUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxPQUFPLENBQUMsdURBQXVELENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUFFO1FBQ0osQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLE9BQU8sb0JBQW9CLENBQUMsQ0FBQztBQUNwRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUMzQyxTQUFrQyxFQUNsQyxRQUFpQixFQUNQLEVBQUU7SUFDWixJQUFJLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUM1QixPQUFPLFNBQVMsS0FBSyxVQUFVO1lBQzdCLENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsb0NBQW9DLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RCxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRCxJQUNFLGNBQWMsR0FBRyxDQUFDO1dBQ2YsQ0FBQyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQzthQUMxRSxRQUFRLENBQUMsV0FBVyxDQUFDO1dBQ3JCLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLEVBQ3ZDLENBQUM7UUFDRCxPQUFPLENBQUMsb0NBQW9DLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsT0FBTyxXQUFXLEtBQUssU0FBUztRQUM5QixDQUFDLENBQUMsRUFBRTtRQUNKLENBQUMsQ0FBQyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7QUFDL0QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxXQUFvQixFQUFZLEVBQUU7SUFDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFBRSxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsSUFBSSxLQUFLLHNCQUFzQixDQUFDO0lBQy9ELElBQUksQ0FBQyxVQUFVLElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUMvQyxPQUFPLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsVUFBVTtRQUM3QixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsSUFBSSxVQUFVLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDekQsTUFBTSxDQUFDLElBQUksQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFDRCxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsT0FBTyxXQUFXLENBQUMsVUFBVSxLQUFLLFFBQVE7V0FDekQsNEJBQTRCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxVQUFVO1dBQy9FLENBQUMsb0RBQW9ELENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekYsTUFBTSxDQUFDLElBQUksQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBVSxFQUFFLENBQUM7UUFDNUMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztlQUMxQixLQUFnQixHQUFHLENBQUM7ZUFDcEIsS0FBZ0IsR0FBRyxhQUFhLEVBQUUsQ0FBQztZQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sYUFBYSxLQUFLLHFDQUFxQyxDQUFDLENBQUM7UUFDMUcsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDN0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLHFDQUFxQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsU0FBa0IsRUFBWSxFQUFFO0lBQ3JFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQUUsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFDdkUsTUFBTSxZQUFZLEdBQUc7UUFDbkIsSUFBSTtRQUNKLGdCQUFnQjtRQUNoQixPQUFPO1FBQ1AsS0FBSztRQUNMLGFBQWE7UUFDYixNQUFNO1FBQ04sR0FBRyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0QsTUFBTTtRQUNOLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFDakIsaUJBQWlCO1FBQ2pCLGdCQUFnQjtRQUNoQixHQUFHLENBQUMsU0FBUyxDQUFDLGFBQWEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRSxjQUFjO1FBQ2QsVUFBVTtRQUNWLFdBQVc7UUFDWCxXQUFXO1FBQ1gsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7S0FDcEUsQ0FBQztJQUNGLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ3ZGLE1BQU0sQ0FBQyxJQUFJLENBQUMsNENBQTRDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDL0UsTUFBTSxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxJQUFJLE9BQU8sU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRO1dBQ2pDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssU0FBUyxDQUFDLElBQUk7V0FDeEMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztXQUN6QixTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHO1dBQzNCLENBQUMsU0FBUyxDQUFDLFdBQVcsS0FBSyxTQUFTO2VBQ2xDLENBQUMsT0FBTyxTQUFTLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0YsTUFBTSxDQUFDLElBQUksQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDakUsTUFBTSxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQzlELENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO1FBQzdCLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDdkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7bUJBQ2hCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQzttQkFDdkMsT0FBTyxNQUFNLENBQUMsR0FBRyxLQUFLLFFBQVE7bUJBQzlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUM7bUJBQ3JCLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUc7bUJBQ3ZCLE9BQU8sTUFBTSxDQUFDLEtBQUssS0FBSyxRQUFRO21CQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsS0FBSyx5Q0FBeUMsQ0FBQyxDQUFDO1lBQ3RGLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsSUFBSSxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDO1NBQ3ZGLFFBQVEsQ0FBQyxTQUFTLENBQUMsZ0JBQTBCLENBQUMsRUFBRSxDQUFDO1FBQ2xELE1BQU0sQ0FBQyxJQUFJLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUNwRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyw2QkFBNkIsQ0FDMUMsU0FBUyxDQUFDLGdCQUEyQyxFQUNyRCxTQUFTLENBQUMsZUFBZSxDQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsY0FBd0IsQ0FBQyxFQUFFLENBQUM7UUFDOUYsTUFBTSxDQUFDLElBQUksQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO2VBQ2pDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztlQUN2RSxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsRUFBRTtlQUNqRCxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUNsRSxNQUFNLENBQUMsSUFBSSxDQUFDLGtFQUFrRSxDQUFDLENBQUM7UUFDbEYsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztXQUNoRCxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7V0FDMUMsQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1dBQzlDLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztXQUM3QyxTQUFTLENBQUMsU0FBb0IsR0FBSSxTQUFTLENBQUMsU0FBb0IsRUFBRSxDQUFDO1FBQ3ZFLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0VBQW9FLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsYUFBYSxLQUFLLFNBQVM7V0FDcEMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7ZUFDaEQsU0FBUyxDQUFDLGFBQXdCLEdBQUksU0FBUyxDQUFDLFNBQW9CO2VBQ3BFLFNBQVMsQ0FBQyxhQUF3QixHQUFJLFNBQVMsQ0FBQyxTQUFvQixDQUFDLEVBQUUsQ0FBQztRQUM5RSxNQUFNLENBQUMsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsYUFBc0IsRUFBWSxFQUFFO0lBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQUUsT0FBTyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDdEUsSUFBSSxhQUFhLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxPQUFPLENBQUMsNkNBQTZDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakYsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU07bUJBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BELENBQUMsQ0FBQyxFQUFFO2dCQUNKLENBQUMsQ0FBQyxDQUFDLDBDQUEwQyxpQkFBaUIsQ0FBQyxZQUFZLFFBQVEsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLENBQUMsNkRBQTZELENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksYUFBYSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hFLE9BQU8sQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxhQUFhLENBQUMsUUFBUSxLQUFLLEtBQUssSUFBSSxhQUFhLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQy9FLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0RBQXdELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztlQUN4QyxhQUFhLENBQUMsS0FBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxxQkFBcUI7ZUFDeEUsYUFBYSxDQUFDLEtBQWdCLEdBQUcsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMvRSxNQUFNLENBQUMsSUFBSSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLENBQUMsNkNBQTZDLENBQUMsQ0FBQztBQUN6RCxDQUFDLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQW9CLEVBQVUsRUFBRTtJQUN2RCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDaEIsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRO1FBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUMzQixPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztTQUNuQixPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztTQUNuQixPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGLHdGQUF3RjtBQUN4RixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxLQUFLLEVBQzlDLFdBQW9CLEVBQ3BCLFVBQW1CLEVBQ0QsRUFBRTtJQUNwQixJQUFJLENBQUMsQ0FBQyxVQUFVLFlBQVksVUFBVSxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDdEQsSUFBSSxRQUErQyxDQUFDO0lBQ3BELElBQUksQ0FBQztRQUNILFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDeEUsU0FBUyxFQUNULElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUMzQixDQUFDLENBQUM7SUFDSCxPQUFPLFFBQVEsQ0FBQyxhQUFhLEtBQUssZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ25FLENBQUMsQ0FBQztBQUVGLHFGQUFxRjtBQUNyRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUN0QyxhQUFzQixFQUN0QixXQUE0QixFQUNsQixFQUFFO0lBQ1osSUFBSSxDQUFDLENBQUMsYUFBYSxZQUFZLFVBQVUsQ0FBQztRQUFFLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0lBQ3JGLElBQUksYUFBYSxDQUFDLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM5RCxPQUFPLENBQUMsbUNBQW1DLGlCQUFpQixDQUFDLFlBQVksUUFBUSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLElBQUksS0FBSyxNQUFNO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDM0MsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUMsK0NBQStDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNULENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLENBQUMsOENBQThDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsV0FJckMsRUFBbUIsRUFBRSxDQUFDLENBQ3JCLFdBQVcsQ0FBQyxnQkFBZ0I7T0FDekIsV0FBVyxDQUFDLGtCQUFrQjtPQUM5QixXQUFXLENBQUMsYUFBYSxDQUM3QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsQ0FDaEQsZ0JBQXlCLEVBQ2YsRUFBRTtJQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRTtRQUNsQyxVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLHNCQUFzQjtLQUN2QixDQUFDLEVBQUUsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1FBQzFELE1BQU0sQ0FBQyxJQUFJLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUNyRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1FBQ3BFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7V0FDOUMsZ0JBQWdCLENBQUMsUUFBbUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztXQUNyRCxnQkFBZ0IsQ0FBQyxlQUEwQixHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQUMsb0VBQW9FLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBQ0QsTUFBTSxhQUFhLEdBQWEsRUFBRSxDQUFDO0lBQ25DLE1BQU0sa0JBQWtCLEdBQWEsRUFBRSxDQUFDO0lBQ3hDLEtBQUssTUFBTSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQzNGLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixlQUFlLHFCQUFxQixDQUFDLENBQUM7WUFDMUUsU0FBUztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM5RSxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixlQUFlLCtCQUErQixDQUFDLENBQUM7UUFDdEYsQ0FBQztRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixlQUFlLHFDQUFxQyxDQUFDLENBQUM7UUFDNUYsQ0FBQzthQUFNLENBQUM7WUFDTixhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sQ0FBQyxJQUFJLENBQ1Qsd0JBQXdCLGVBQWUsOENBQThDLENBQ3RGLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQ1Qsd0JBQXdCLGVBQWUsK0NBQStDLENBQ3ZGLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDO2VBQ3hDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2hELGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUNELElBQUksU0FBUyxDQUFDLFFBQVEsS0FBSyxTQUFTO1lBQUUsU0FBUztRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDMUUsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsZUFBZSxvQ0FBb0MsQ0FBQyxDQUFDO1lBQ3pGLFNBQVM7UUFDWCxDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sVUFBVSxHQUFhLEVBQUUsQ0FBQztRQUNoQyxLQUFLLE1BQU0sQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDNUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQ1Qsd0JBQXdCLGVBQWUsY0FBYyxZQUFZLHFCQUFxQixDQUN2RixDQUFDO2dCQUNGLFNBQVM7WUFDWCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMzRSxNQUFNLENBQUMsSUFBSSxDQUNULHdCQUF3QixlQUFlLGNBQWMsWUFBWSwrQkFBK0IsQ0FDakcsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQ1Qsd0JBQXdCLGVBQWUsY0FBYyxZQUFZLCtCQUErQixDQUNqRyxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUMsQ0FBQztZQUNELE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUM7WUFDMUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUMzQixNQUFNLENBQUMsSUFBSSxDQUNULHdCQUF3QixlQUFlLGNBQWMsWUFBWSwrQkFBK0IsQ0FDakcsQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLGdCQUFnQixDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FDbEUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQ1osd0JBQXdCLGVBQWUsY0FBYyxZQUFZLEtBQUssUUFBUSxFQUFFLENBQ2pGLENBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsZUFBZSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7UUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsZUFBZSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxJQUFJLENBQUMseUNBQXlDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksS0FBSyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuRSxNQUFNLENBQUMsSUFBSSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLENBQ2xELGdCQUE2QyxFQUM3Qyx3QkFBZ0MsRUFDaEMsYUFBbUMsRUFDekIsRUFBRTtJQUNaLE1BQU0sTUFBTSxHQUFHLGtDQUFrQyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDcEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7UUFDakUsWUFBWSxDQUFDLEVBQUU7UUFDZixZQUFZO0tBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDSixLQUFLLE1BQU0sVUFBVSxJQUFJLGdCQUFnQixDQUFDLG9CQUFvQixJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ3JFLE1BQU0sU0FBUyxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxVQUFVLENBQUMsV0FBVyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxjQUFjLEtBQUssd0JBQXdCLEVBQUUsQ0FBQztZQUNqRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsVUFBVSxDQUFDLFdBQVcsa0NBQWtDLENBQUMsQ0FBQztRQUNyRixDQUFDO2FBQU0sSUFBSSxTQUFTLENBQUMsY0FBYyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2pELE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxVQUFVLENBQUMsV0FBVyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQUcsQ0FDckQsV0FBb0MsRUFDNUIsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsRUFBRSxFQUFFLFdBQVcsQ0FBQyxFQUFFO0lBQ2xCLGNBQWMsRUFBRSxXQUFXLENBQUMsY0FBYztJQUMxQyxTQUFTLEVBQUUsV0FBVyxDQUFDLFNBQVM7SUFDaEMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxTQUFTO0lBQ2hDLGNBQWMsRUFBRSxXQUFXLENBQUMsY0FBYztJQUMxQyxzQkFBc0IsRUFBRSxXQUFXLENBQUMsc0JBQXNCO0lBQzFELG9CQUFvQixFQUFFLFdBQVcsQ0FBQyxvQkFBb0I7SUFDdEQsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLGdCQUFnQjtJQUM5QyxlQUFlLEVBQUUsV0FBVyxDQUFDLGVBQWU7SUFDNUMsdUJBQXVCLEVBQUUsV0FBVyxDQUFDLHVCQUF1QjtJQUM1RCxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRO1FBQzNCLGVBQWUsRUFBRSxRQUFRLENBQUMsZUFBZTtRQUN6QyxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUc7UUFDakIsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO1FBQ2pDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTO1lBQ3RDLENBQUMsQ0FBQztnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixTQUFTLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxTQUFTO2FBQ3BDO1lBQ0gsQ0FBQyxDQUFDO2dCQUNFLElBQUksRUFBRSxZQUFZO2dCQUNsQixXQUFXLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXO2FBQ3hDO1FBQ0wsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLHNCQUFzQjtZQUN6RCxDQUFDLENBQUM7Z0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtnQkFDNUIsWUFBWSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWTtnQkFDNUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRztnQkFDMUIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRztnQkFDMUIsSUFBSSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSTthQUM3QjtZQUNILENBQUMsQ0FBQztnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixVQUFVLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxVQUFVO2dCQUN4QyxHQUFHLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHO2dCQUMxQixHQUFHLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHO2dCQUMxQixJQUFJLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJO2FBQzdCO0tBQ04sQ0FBQyxDQUFDO0lBQ0gsU0FBUyxFQUFFLFdBQVcsQ0FBQyxTQUFTO0NBQ2pDLENBQUMsQ0FBQztBQUVILG1GQUFtRjtBQUNuRixNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxLQUFLLEVBQ3RELFdBQW9DLEVBQ1osRUFBRTtJQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx1Q0FBdUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9GLE1BQU0sWUFBWSxHQUFHLE1BQU0sVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRSxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEQsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDdkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1osT0FBTyxVQUFVLFNBQVMsRUFBbUIsQ0FBQztBQUNoRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRyxLQUFLLEVBQ3JELFdBQW9DLEVBQ2xCLEVBQUUsQ0FBQyxDQUNyQixXQUFXLENBQUMsTUFBTSxLQUFLLE1BQU0sbUNBQW1DLENBQUMsV0FBVyxDQUFDLENBQzlFLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUM1QyxXQUFvQixFQUNWLEVBQUU7SUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUFFLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRTtRQUM3QixJQUFJO1FBQ0osUUFBUTtRQUNSLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsV0FBVztRQUNYLGdCQUFnQjtRQUNoQix3QkFBd0I7UUFDeEIsc0JBQXNCO1FBQ3RCLGtCQUFrQjtRQUNsQixpQkFBaUI7UUFDakIseUJBQXlCO1FBQ3pCLFNBQVM7UUFDVCxXQUFXO0tBQ1osQ0FBQyxFQUFFLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELEtBQUssTUFBTSxLQUFLLElBQUk7UUFDbEIsSUFBSTtRQUNKLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsV0FBVztRQUNYLGdCQUFnQjtRQUNoQixpQkFBaUI7S0FDVCxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixLQUFLLGlDQUFpQyxDQUFDLENBQUM7UUFDekUsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLE9BQU8sV0FBVyxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDMUYsTUFBTSxDQUFDLElBQUksQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsa0JBQWtCLENBQVUsRUFBRSxDQUFDO1FBQzFFLElBQUksT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDMUYsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDO1dBQ3ZELFdBQVcsQ0FBQyxzQkFBaUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN4RCxNQUFNLENBQUMsSUFBSSxDQUFDLHFFQUFxRSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQztXQUN4RCxXQUFXLENBQUMsdUJBQWtDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDekQsTUFBTSxDQUFDLElBQUksQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUssV0FBVyxDQUFDLFNBQW9CLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUYsTUFBTSxDQUFDLElBQUksQ0FBQywwREFBMEQsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDNUUsTUFBTSxDQUFDLElBQUksQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxNQUFNLFNBQVMsR0FBYSxFQUFFLENBQUM7SUFDL0IsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0lBQy9CLE1BQU0sVUFBVSxHQUFhLEVBQUUsQ0FBQztJQUNoQyxNQUFNLDBCQUEwQixHQUFhLEVBQUUsQ0FBQztJQUNoRCxNQUFNLG1CQUFtQixHQUFhLEVBQUUsQ0FBQztJQUN6QyxJQUFJLGVBQW1DLENBQUM7SUFDeEMsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUMvRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsS0FBSyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ25FLFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUU7WUFDM0IsVUFBVTtZQUNWLGlCQUFpQjtZQUNqQixLQUFLO1lBQ0wsYUFBYTtZQUNiLE9BQU87WUFDUCxVQUFVO1NBQ1gsQ0FBQyxFQUFFLENBQUM7WUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixLQUFLLDZCQUE2QixDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixLQUFLLDhCQUE4QixDQUFDLENBQUM7UUFDOUUsQ0FBQzthQUFNLENBQUM7WUFDTixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ25ELE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEtBQUsscUNBQXFDLENBQUMsQ0FBQztRQUNyRixDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEtBQUsseUJBQXlCLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEtBQUssaUNBQWlDLENBQUMsQ0FBQztRQUNqRixDQUFDO2FBQU0sSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztlQUN6QixDQUNELFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVM7bUJBQy9CLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FDekM7ZUFDRSxDQUFDLFlBQVksQ0FDZCxTQUFTLENBQUMsS0FBSyxFQUNmLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVM7Z0JBQ2hDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FDNUI7ZUFDRSxDQUNELFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVM7bUJBQy9CLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FDbEQ7ZUFDRSxDQUNELFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVk7bUJBQ2xDLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FDdEQsRUFBRSxDQUFDO1lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQywyQkFBMkIsS0FBSywyQkFBMkIsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxJQUNMLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVM7ZUFDL0Isa0JBQWtCLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztlQUN6QyxTQUFTLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxXQUFXLENBQUMsU0FBUyxFQUN0RCxDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FDVCwyQkFBMkIsS0FBSyxxREFBcUQsQ0FDdEYsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FDM0QsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLDJCQUEyQixLQUFLLEtBQUssUUFBUSxFQUFFLENBQzlELENBQUMsQ0FBQztRQUNILElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2pDLElBQ0UsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssc0JBQXNCO21CQUMvQyxXQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFDL0MsQ0FBQztnQkFDRCwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNuRSxDQUFDO2lCQUFNLElBQ0wsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssTUFBTTttQkFDL0IsT0FBTyxTQUFTLENBQUMsUUFBUSxDQUFDLFVBQVUsS0FBSyxRQUFRO21CQUNqRCxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFDMUQsQ0FBQztnQkFDRCxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMxRCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM3RSxNQUFNLE9BQU8sR0FBRyxHQUFHLFNBQVMsQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzdELElBQUksZUFBZSxLQUFLLFNBQVMsSUFBSSxPQUFPLElBQUksZUFBZSxFQUFFLENBQUM7Z0JBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0VBQXdFLENBQUMsQ0FBQztZQUN4RixDQUFDO1lBQ0QsZUFBZSxHQUFHLE9BQU8sQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxNQUFNLENBQUMsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELElBQUksSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxNQUFNLENBQUMsSUFBSSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUNELElBQUksSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELElBQUksSUFBSSxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxJQUFJLEtBQUssMEJBQTBCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkYsTUFBTSxDQUFDLElBQUksQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxLQUFLLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JFLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSw2Q0FBNkMsR0FBRyxDQUNwRCxZQUFxQixFQUNyQixvQkFBNEIsRUFDNUIsT0FBZSxFQUNMLEVBQUU7SUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztXQUN0QixDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUU7WUFDN0IsWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLHdCQUF3QjtZQUN4QixzQkFBc0I7WUFDdEIsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQix5QkFBeUI7U0FDMUIsQ0FBQztXQUNDLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztXQUM1QyxPQUFPLFlBQVksQ0FBQyxjQUFjLEtBQUssUUFBUTtXQUMvQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDO1dBQ3BELFlBQVksQ0FBQyxTQUFTLEtBQUssb0JBQW9CO1dBQy9DLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztXQUNoRCxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDO1dBQ3pELFlBQVksQ0FBQyxzQkFBaUMsR0FBRyxDQUFDO1dBQ25ELE9BQU8sWUFBWSxDQUFDLG9CQUFvQixLQUFLLFFBQVE7V0FDckQsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFDO1dBQzFELE9BQU8sWUFBWSxDQUFDLGdCQUFnQixLQUFLLFFBQVE7V0FDakQsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO1dBQ3RELENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQztXQUNqRCxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDO1dBQzFELFlBQVksQ0FBQyx1QkFBa0MsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxPQUFPLENBQUMsR0FBRyxPQUFPLDBDQUEwQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUNELE9BQU8sRUFBRSxDQUFDO0FBQ1osQ0FBQyxDQUFDO0FBRUYsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHLENBQ3JELFlBQXFCLEVBQ3JCLG9CQUE0QixFQUNsQixFQUFFO0lBQ1osSUFBSSxDQUFDO1FBQ0gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsT0FBTyw2Q0FBNkMsQ0FDbEQsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixvQ0FBb0MsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUMzRSxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsQ0FDakQsT0FBZ0IsRUFDaEIsMkJBQXNDLEVBQzVCLEVBQUU7SUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUFFLE9BQU8sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRTtRQUN6QixVQUFVO1FBQ1YsZUFBZTtRQUNmLFdBQVc7S0FDWixDQUFDLEVBQUUsQ0FBQztRQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsa0RBQWtELENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFLLE9BQU8sQ0FBQyxRQUFtQixHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsNERBQTRELENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFLLE9BQU8sQ0FBQyxTQUFvQixHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2xGLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUVBQWlFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztXQUNwQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDO1dBQ2xDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0VBQXdFLENBQUMsQ0FBQztRQUN0RixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxHQUFHLEVBQTRDLENBQUM7SUFDbkYsTUFBTSxpQ0FBaUMsR0FBRyxDQUN4QyxZQUFxQixFQUNyQixvQkFBNEIsRUFDNUIsT0FBZSxFQUNULEVBQUU7UUFDUixNQUFNLGVBQWUsR0FBRyw2Q0FBNkMsQ0FDbkUsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixPQUFPLENBQ1IsQ0FBQztRQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQztRQUNoQyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDdkMsTUFBTSxTQUFTLEdBQUcsWUFBZ0QsQ0FBQztRQUNuRSxNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0UsSUFDRSxpQkFBaUI7ZUFDZCxDQUFDLHFDQUFxQyxDQUFDLGlCQUFpQixFQUFFLFNBQVMsQ0FBQyxFQUN2RSxDQUFDO1lBQ0QsTUFBTSxDQUFDLElBQUksQ0FDVCxHQUFHLE9BQU8sZ0ZBQWdGLENBQzNGLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUNELHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlELENBQUMsQ0FBQztJQUNGLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDakUsTUFBTSxJQUFJLEdBQUcsd0NBQXdDLEtBQUssR0FBRyxDQUFDO1FBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSw4QkFBOEIsQ0FBQyxDQUFDO1lBQ25ELFNBQVM7UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUU7WUFDMUIsV0FBVztZQUNYLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsMEJBQTBCO1lBQzFCLFFBQVE7WUFDUixXQUFXO1NBQ1osQ0FBQyxFQUFFLENBQUM7WUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxpQ0FBaUMsQ0FDL0IsU0FBUyxDQUFDLGVBQWUsRUFDekIsU0FBUyxDQUFDLFNBQVMsRUFDbkIsR0FBRyxJQUFJLGtCQUFrQixDQUMxQixDQUFDO1FBQ0YsSUFBSSxTQUFTLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVDLGlDQUFpQyxDQUMvQixTQUFTLENBQUMsZUFBZSxFQUN6QixTQUFTLENBQUMsU0FBUyxFQUNuQixHQUFHLElBQUksa0JBQWtCLENBQzFCLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxTQUFTLENBQUMsd0JBQXdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUM7bUJBQzVDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQzttQkFDaEYsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLENBQUM7bUJBQ3RFLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxhQUF3QixHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0RSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSw4REFBOEQsQ0FBQyxDQUFDO1lBQ3JGLENBQUM7aUJBQU0sQ0FBQztnQkFDTixpQ0FBaUMsQ0FDL0IsU0FBUyxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFDM0MsU0FBUyxDQUFDLFNBQVMsRUFDbkIsR0FBRyxJQUFJLG9DQUFvQyxDQUM1QyxDQUFDO2dCQUNGLElBQ0UsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO3VCQUNyQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsYUFBd0I7MEJBQzFELFNBQVMsQ0FBQyxTQUFvQixFQUNuQyxDQUFDO29CQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLDREQUE0RCxDQUFDLENBQUM7Z0JBQ25GLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILFNBQVM7WUFDVCxVQUFVO1lBQ1YsU0FBUztZQUNULFNBQVM7WUFDVCxRQUFRO1NBQ1QsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQWdCLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLDJCQUEyQixDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSyxTQUFTLENBQUMsU0FBb0IsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0RixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSwyQ0FBMkMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxJQUNFLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUztlQUMzQixDQUFDLHFDQUFxQyxDQUN2QyxTQUFTLENBQUMsZUFBOEQsRUFDeEUsU0FBUyxDQUFDLGVBQThELENBQ3pFLEVBQ0QsQ0FBQztZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLDZEQUE2RCxDQUFDLENBQUM7UUFDcEYsQ0FBQztJQUNILENBQUM7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFDRCxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFDaEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsK0VBQStFLENBQUMsQ0FBQztRQUMvRixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLG1DQUE0QyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLHVDQUFnRCxDQUFDO0FBQy9GLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLGdDQUF5QyxDQUFDO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUNyQywwREFBbUUsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxLQUFjLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBYSxDQUFDO0FBRTNELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxRQUFvQixFQUFVLEVBQUU7SUFDN0QsTUFBTSxRQUFRLEdBQUcsa0NBQWtDLENBQUM7SUFDcEQsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQztJQUNwQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDakIsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUM1QixXQUFXLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDZCxPQUFPLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQixRQUFRLElBQUksQ0FBQyxDQUFDO1lBQ2QsTUFBTSxJQUFJLFFBQVEsQ0FBQyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsV0FBVyxJQUFJLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxRQUFRLEdBQUcsQ0FBQztRQUFFLE1BQU0sSUFBSSxRQUFRLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMzRSxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixnRkFBZ0Y7QUFDaEYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsS0FBSyxFQUNqRCxrQkFBMEIsRUFDQyxFQUFFO0lBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxNQUFNLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDakUsU0FBUyxFQUNULElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsOEJBQThCLEtBQUssa0JBQWtCLEVBQUUsQ0FBQyxDQUNyRixDQUFDLENBQUM7SUFDSCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssRUFBRTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUMvRSxPQUFPLFFBQVEsT0FBTyxFQUFFLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FDNUMsV0FBbUIsRUFDa0IsRUFBRTtJQUN2QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxPQUFPLDJCQUEyQixXQUFXLEVBQUUsQ0FBQztBQUNsRCxDQUFDLENBQUM7QUFjRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEtBQUssRUFDbkQsV0FBb0MsRUFDRSxFQUFFO0lBQ3hDLElBQUksOEJBQThCLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUM7V0FDckQsQ0FBQyxNQUFNLGtDQUFrQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFDRCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU87U0FDbEQsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxzQkFBc0IsQ0FBQztTQUN2RSxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLE1BQU0sOEJBQThCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hGLE9BQU87WUFDTCxZQUFZLEVBQUcsUUFBUSxDQUFDLFFBQStDLENBQUMsWUFBWTtZQUNwRixRQUFRO1lBQ1IsTUFBTSxFQUFFLDhCQUE4QixDQUFDLFFBQVEsQ0FBQztTQUNqRCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUNsQyxPQUFPLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZO1FBQzFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDekQsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLE1BQU07V0FDaEYsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxNQUFNO1dBQzdFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakYsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRkFBa0YsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFDRCxPQUFPO1FBQ0wsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFFO1FBQzFCLGNBQWMsRUFBRSxXQUFXLENBQUMsTUFBTTtRQUNsQyxPQUFPO0tBQ1IsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLEtBQUssRUFDbkQsTUFBZSxFQUNmLFdBQW9DLEVBQ2xCLEVBQUU7SUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7V0FDaEIsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4RSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLGdDQUFnQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDLENBQUM7QUFPRixNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxDQUNqRCxlQUF5QixFQUNPLEVBQUU7SUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO1dBQzlCLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQztXQUM1QixlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLFdBQVcsS0FBSyxRQUFRO2VBQ25FLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQztlQUN4QixXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUNELE9BQU87UUFDTCxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztRQUNyQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLElBQUksRUFBRSxHQUFHLGVBQWUsQ0FBQztLQUNqRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBK0NGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDakQsaUJBQWlCLEVBQUUsRUFBRTtDQUN0QixDQUFDLENBQUM7QUFFSCxNQUFNLHVCQUF1QixHQUFHLHVDQUF1QyxDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBQzdDLFlBQXFCLEVBQ1gsRUFBRTtJQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQUUsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7SUFDM0UsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQztJQUNuRCxNQUFNLFlBQVksR0FBRyxjQUFjLEtBQUssUUFBUTtRQUM5QyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQztRQUNoRixDQUFDLENBQUMsY0FBYyxLQUFLLFVBQVU7WUFDN0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDO1lBQy9GLENBQUMsQ0FBQyxjQUFjLEtBQUssU0FBUztnQkFDNUIsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO2dCQUM3RixDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1gsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUMzRSxPQUFPLENBQUMsc0RBQXNELENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELElBQUksT0FBTyxZQUFZLENBQUMsU0FBUyxLQUFLLFFBQVE7V0FDekMsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDM0QsTUFBTSxDQUFDLElBQUksQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO0lBQzdGLENBQUM7SUFDRCxLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBVSxFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUssWUFBWSxDQUFDLEtBQUssQ0FBWSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RGLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEtBQUssNkJBQTZCLENBQUMsQ0FBQztRQUN0RSxDQUFDO0lBQ0gsQ0FBQztJQUNELElBQUksY0FBYyxLQUFLLFVBQVU7V0FDNUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQztlQUM3QyxZQUFZLENBQUMsV0FBc0IsSUFBSyxZQUFZLENBQUMsV0FBc0IsQ0FBQyxFQUFFLENBQUM7UUFDckYsTUFBTSxDQUFDLElBQUksQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFDRCxJQUFJLGNBQWMsS0FBSyxTQUFTO1dBQzNCLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7ZUFDM0MsWUFBWSxDQUFDLFNBQW9CLEdBQUksWUFBWSxDQUFDLFdBQXNCLENBQUMsRUFBRSxDQUFDO1FBQ2xGLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsYUFBc0IsRUFDWixFQUFFO0lBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1dBQzVCLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQztXQUMxQixhQUFhLENBQUMsTUFBTSxHQUFHLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDcEUsT0FBTztZQUNMLG1EQUFtRCxxQkFBcUIsQ0FBQyxpQkFBaUIsVUFBVTtTQUNyRyxDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUMvRCwrQkFBK0IsQ0FBQyxZQUFZLENBQUM7U0FDMUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxjQUFjLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQyxDQUM1RCxDQUFDLENBQUM7SUFDSCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xELElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDL0YsTUFBTSxDQUFDLElBQUksQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0UsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlFLElBQUksSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxNQUFNO1FBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO0lBQ25HLElBQUksSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFjLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDcEcsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUEyQixFQUFFLENBQUMsQ0FDeEYsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FDcEMsQ0FBQyxDQUFDO0lBQ0gsSUFBSSxlQUFlO1dBQ2QsTUFBTSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDO1dBQ2hELGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDO1dBQzdCLGVBQWUsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNwRSxNQUFNLENBQUMsSUFBSSxDQUFDLCtEQUErRCxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLG1EQUFtRDtBQUNuRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUN2QyxZQUFzQyxFQUM3QixFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsS0FBSyxRQUFRLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsS0FBSyxFQUN2RCxhQUFzQixFQUN0QixZQUFzQyxFQUN0QyxrQkFBOEIsRUFDWCxFQUFFO0lBQ3JCLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZELElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNyRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDN0MsTUFBTSxDQUFDLElBQUksQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDRCxJQUFJLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRixJQUFJLFFBQVEsQ0FBQyxjQUFjLEtBQUssWUFBWSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVELE1BQU0sQ0FBQyxJQUFJLENBQUMsb0VBQW9FLENBQUMsQ0FBQztRQUNwRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sMkJBQTJCLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUNyRSxNQUFNLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDakUsQ0FBQztJQUNILENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxnRUFBZ0U7SUFDbEUsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxRQUFzQixFQUEwQixFQUFFO0lBQzlFLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLEtBQUssU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUUsS0FBSyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyRixLQUFLLG1CQUFtQixDQUFDLENBQUMsT0FBTztZQUMvQixJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7WUFDbkIsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLGdCQUFnQjtTQUM1QyxDQUFDO1FBQ0YsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3RSxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLFdBQTRCLEVBQTJCLEVBQUUsQ0FBQyxDQUN6RixXQUFXLENBQUMsSUFBSSxLQUFLLHNCQUFzQjtJQUN6QyxDQUFDLENBQUM7UUFDRSxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7UUFDdEIsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUFZO1FBQ3RDLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztRQUNwQixHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUc7UUFDcEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO0tBQ3ZCO0lBQ0gsQ0FBQyxDQUFDO1FBQ0UsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO1FBQ3RCLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVTtRQUNsQyxHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUc7UUFDcEIsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO1FBQ3BCLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtLQUN2QixDQUNOLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLFFBQWlDLEVBQWMsRUFBRSxDQUFDLENBQ3RFLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDbkQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsVUFPakQsRUFBYyxFQUFFLENBQUMsWUFBWSxDQUFDO0lBQzdCLE9BQU8sRUFBRSwwQkFBMEI7SUFDbkMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVO0lBQ2pDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO0lBQy9DLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRztJQUNuQixXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVc7SUFDbkMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7SUFDdEQsNkJBQTZCLEVBQUUsVUFBVSxDQUFDLDZCQUE2QjtDQUN4RSxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxDQUFDLFVBTWpELEVBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQztJQUM3QixPQUFPLEVBQUUsMEJBQTBCO0lBQ25DLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTtJQUNqQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7SUFDN0Isc0JBQXNCLEVBQUUsVUFBVSxDQUFDLHNCQUFzQjtJQUN6RCx1QkFBdUIsRUFBRSxVQUFVLENBQUMsdUJBQXVCO0lBQzNELDZCQUE2QixFQUFFLFVBQVUsQ0FBQyw2QkFBNkI7Q0FDeEUsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQUcsQ0FBQyxVQVExRCxFQUFjLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFDN0IsT0FBTyxFQUFFLCtCQUErQjtJQUN4QyxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVU7SUFDakMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO0lBQ3ZCLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTtJQUNqQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7SUFDL0IsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHO0lBQ25CLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0lBQ3RELFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTtRQUMvQixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1FBQ2xGLENBQUMsQ0FBQyxJQUFJO0NBQ1QsQ0FBQyxDQUFDO0FBRUg7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsQ0FBQyxVQUdyRCxFQUFjLEVBQUUsQ0FBQyxZQUFZLENBQUM7SUFDN0IsT0FBTyxFQUFFLDhCQUE4QjtJQUN2QyxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVU7SUFDakMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxlQUFlO0NBQzVDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDJDQUEyQyxHQUFHLENBQUMsVUFjM0QsRUFBYyxFQUFFLENBQUMsWUFBWSxDQUFDO0lBQzdCLE9BQU8sRUFBRSxxQ0FBcUM7SUFDOUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxjQUFjO0lBQ3pDLGNBQWMsRUFBRSxVQUFVLENBQUMsY0FBYztJQUN6QyxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7SUFDL0IsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTO0lBQy9CLGNBQWMsRUFBRSxVQUFVLENBQUMsY0FBYztJQUN6QyxzQkFBc0IsRUFBRSxVQUFVLENBQUMsc0JBQXNCO0lBQ3pELG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxvQkFBb0I7SUFDckQsZUFBZSxFQUFFLFVBQVUsQ0FBQyxlQUFlO0lBQzNDLHVCQUF1QixFQUFFLFVBQVUsQ0FBQyx1QkFBdUI7SUFDM0QsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVO0lBQ2pDLGNBQWMsRUFBRSxVQUFVLENBQUMsY0FBYztJQUN6QyxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7SUFDN0IsZUFBZSxFQUFFLFVBQVUsQ0FBQyxlQUFlO0NBQzVDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLCtDQUErQyxHQUFHLENBQUMsVUFPL0QsRUFBYyxFQUFFLENBQUMsWUFBWSxDQUFDO0lBQzdCLE9BQU8sRUFBRSxrREFBa0Q7SUFDM0QsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO0lBQ3JDLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUztJQUMvQixjQUFjLEVBQUUsVUFBVSxDQUFDLGNBQWM7SUFDekMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTO0lBQy9CLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTtJQUNqQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7Q0FDaEMsQ0FBQyxDQUFDIn0=
|
|
@@ -96,3 +96,54 @@ export declare const cloudlySystemSecretKeys: Readonly<{
|
|
|
96
96
|
readonly coreMailSmtpTlsCertificatePem: "COREMAIL_SMTP_TLS_CERTIFICATE_PEM";
|
|
97
97
|
readonly coreMailSmtpTlsPrivateKeyPem: "COREMAIL_SMTP_TLS_PRIVATE_KEY_PEM";
|
|
98
98
|
}>;
|
|
99
|
+
/**
|
|
100
|
+
* How far Cloudly's enrollment as a dcrouter gateway client has come.
|
|
101
|
+
*
|
|
102
|
+
* - `unconfigured` — no `dcrouterGatewayUrl` is set, so there is nothing to enroll with.
|
|
103
|
+
* - `checking` — Cloudly is validating or provisioning its credential right now.
|
|
104
|
+
* - `ready` — Cloudly holds a validated gateway-client credential whose policy matches its settings.
|
|
105
|
+
* - `degraded` — dcrouter could not be reached; Cloudly retries on its own.
|
|
106
|
+
* - `admin-bootstrap-required` — the held credential is missing, rejected or stale (its policy no
|
|
107
|
+
* longer matches Cloudly's settings or the runtime network address plan's DNS record allowance),
|
|
108
|
+
* and only a dcrouter admin token handed in with `bootstrapExternalGatewayCredential` moves it on.
|
|
109
|
+
*/
|
|
110
|
+
export type TExternalGatewayEnrollmentStatus = 'unconfigured' | 'checking' | 'ready' | 'degraded' | 'admin-bootstrap-required';
|
|
111
|
+
/** Cloudly's gateway-client enrollment as an administrator reads it; it never carries a credential. */
|
|
112
|
+
export interface IExternalGatewayEnrollmentState {
|
|
113
|
+
status: TExternalGatewayEnrollmentStatus;
|
|
114
|
+
/** Why the state is what it is, in Cloudly's words; absent when there is nothing to say. */
|
|
115
|
+
reason?: string;
|
|
116
|
+
/** When Cloudly last finished a check, in milliseconds since the epoch. */
|
|
117
|
+
lastCheckedAt?: number;
|
|
118
|
+
/** When Cloudly retries on its own, for a `degraded` state. */
|
|
119
|
+
nextRetryAt?: number;
|
|
120
|
+
/** Whether Cloudly still holds a validated runtime credential it can serve gateway calls with. */
|
|
121
|
+
cachedValidationProof: boolean;
|
|
122
|
+
/** Whether a provisioned candidate credential still awaits finalization at dcrouter. */
|
|
123
|
+
finalizationPending: boolean;
|
|
124
|
+
}
|
|
125
|
+
export declare const externalGatewayEnrollmentStatuses: readonly ["unconfigured", "checking", "ready", "degraded", "admin-bootstrap-required"];
|
|
126
|
+
export declare const externalGatewayBootstrapContract: Readonly<{
|
|
127
|
+
/**
|
|
128
|
+
* The longest admin bootstrap token Cloudly accepts, in bytes. A dcrouter API token is far
|
|
129
|
+
* shorter; the bound only keeps an unopened envelope from carrying an arbitrary payload.
|
|
130
|
+
*/
|
|
131
|
+
readonly maximumTokenBytes: 1024;
|
|
132
|
+
/** The longest `reason` an enrollment state carries, in characters. */
|
|
133
|
+
readonly maximumReasonLength: 4096;
|
|
134
|
+
/** The longest `expectedGatewayUrl` a bootstrap request states, in characters. */
|
|
135
|
+
readonly maximumGatewayUrlLength: 2048;
|
|
136
|
+
/** The longest `expectedGatewayClientId` a bootstrap request states, in characters. */
|
|
137
|
+
readonly maximumGatewayClientIdLength: 253;
|
|
138
|
+
}>;
|
|
139
|
+
/** Every reason Cloudly answers instead of bootstrapping its gateway-client credential. */
|
|
140
|
+
export declare const externalGatewayBootstrapRefusals: readonly ["gateway-unconfigured", "gateway-target-mismatch", "bootstrap-token-invalid", "bootstrap-token-rejected", "bootstrap-token-not-admin", "bootstrap-candidate-pending", "gateway-unreachable", "bootstrap-provisioning-refused"];
|
|
141
|
+
export type TExternalGatewayBootstrapRefusal = typeof externalGatewayBootstrapRefusals[number];
|
|
142
|
+
/**
|
|
143
|
+
* The bootstrap token rule, judged on the opened bytes: 1 to `maximumTokenBytes` bytes of visible
|
|
144
|
+
* ASCII, with no whitespace or control character. The token is dcrouter's; this only refuses what
|
|
145
|
+
* could never be one, so a pasted line break or an empty pipe never reaches dcrouter.
|
|
146
|
+
*/
|
|
147
|
+
export declare const isExternalGatewayBootstrapToken: (valueArg: unknown) => valueArg is Uint8Array;
|
|
148
|
+
/** Structural check of an enrollment state as a client receives it; every problem is named. */
|
|
149
|
+
export declare const validateExternalGatewayEnrollmentState: (valueArg: unknown) => string[];
|
package/dist_ts/data/settings.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hasExactKeys, readDataProperties } from '../private/dataproperties.js';
|
|
1
2
|
export const cloudlySystemSecretOwner = Object.freeze({
|
|
2
3
|
kind: 'system',
|
|
3
4
|
systemId: 'cloudly-settings',
|
|
@@ -40,4 +41,85 @@ export const cloudlySystemSecretKeys = Object.freeze({
|
|
|
40
41
|
coreMailSmtpTlsCertificatePem: 'COREMAIL_SMTP_TLS_CERTIFICATE_PEM',
|
|
41
42
|
coreMailSmtpTlsPrivateKeyPem: 'COREMAIL_SMTP_TLS_PRIVATE_KEY_PEM',
|
|
42
43
|
});
|
|
43
|
-
|
|
44
|
+
export const externalGatewayEnrollmentStatuses = Object.freeze([
|
|
45
|
+
'unconfigured',
|
|
46
|
+
'checking',
|
|
47
|
+
'ready',
|
|
48
|
+
'degraded',
|
|
49
|
+
'admin-bootstrap-required',
|
|
50
|
+
]);
|
|
51
|
+
export const externalGatewayBootstrapContract = Object.freeze({
|
|
52
|
+
/**
|
|
53
|
+
* The longest admin bootstrap token Cloudly accepts, in bytes. A dcrouter API token is far
|
|
54
|
+
* shorter; the bound only keeps an unopened envelope from carrying an arbitrary payload.
|
|
55
|
+
*/
|
|
56
|
+
maximumTokenBytes: 1_024,
|
|
57
|
+
/** The longest `reason` an enrollment state carries, in characters. */
|
|
58
|
+
maximumReasonLength: 4_096,
|
|
59
|
+
/** The longest `expectedGatewayUrl` a bootstrap request states, in characters. */
|
|
60
|
+
maximumGatewayUrlLength: 2_048,
|
|
61
|
+
/** The longest `expectedGatewayClientId` a bootstrap request states, in characters. */
|
|
62
|
+
maximumGatewayClientIdLength: 253,
|
|
63
|
+
});
|
|
64
|
+
/** Every reason Cloudly answers instead of bootstrapping its gateway-client credential. */
|
|
65
|
+
export const externalGatewayBootstrapRefusals = Object.freeze([
|
|
66
|
+
/** Cloudly has no `dcrouterGatewayUrl` or no `dcrouterGatewayClientId` to enroll under. */
|
|
67
|
+
'gateway-unconfigured',
|
|
68
|
+
/**
|
|
69
|
+
* The request's `expectedGatewayUrl` or `expectedGatewayClientId` is not what Cloudly's settings
|
|
70
|
+
* state, so the token would reach a dcrouter or a client the administrator did not name.
|
|
71
|
+
*/
|
|
72
|
+
'gateway-target-mismatch',
|
|
73
|
+
/** The sealed token does not open, or what it opens to breaks the bootstrap token rule. */
|
|
74
|
+
'bootstrap-token-invalid',
|
|
75
|
+
/** dcrouter did not accept the token at all: unknown, revoked, disabled or expired. */
|
|
76
|
+
'bootstrap-token-rejected',
|
|
77
|
+
/** dcrouter accepted the token, but its role is not `admin`, so it cannot provision a client. */
|
|
78
|
+
'bootstrap-token-not-admin',
|
|
79
|
+
/** A candidate credential from an earlier provisioning is still being finalized; retry later. */
|
|
80
|
+
'bootstrap-candidate-pending',
|
|
81
|
+
/** dcrouter could not be reached; the held credential is unchanged and the call may be repeated. */
|
|
82
|
+
'gateway-unreachable',
|
|
83
|
+
/** dcrouter refused provisioning, or the credential it issued failed Cloudly's validation. */
|
|
84
|
+
'bootstrap-provisioning-refused',
|
|
85
|
+
]);
|
|
86
|
+
/**
|
|
87
|
+
* The bootstrap token rule, judged on the opened bytes: 1 to `maximumTokenBytes` bytes of visible
|
|
88
|
+
* ASCII, with no whitespace or control character. The token is dcrouter's; this only refuses what
|
|
89
|
+
* could never be one, so a pasted line break or an empty pipe never reaches dcrouter.
|
|
90
|
+
*/
|
|
91
|
+
export const isExternalGatewayBootstrapToken = (valueArg) => (valueArg instanceof Uint8Array
|
|
92
|
+
&& valueArg.length > 0
|
|
93
|
+
&& valueArg.length <= externalGatewayBootstrapContract.maximumTokenBytes
|
|
94
|
+
&& valueArg.every((byteArg) => byteArg >= 0x21 && byteArg <= 0x7e));
|
|
95
|
+
const isEpochMilliseconds = (valueArg) => (Number.isSafeInteger(valueArg) && valueArg >= 0);
|
|
96
|
+
/** Structural check of an enrollment state as a client receives it; every problem is named. */
|
|
97
|
+
export const validateExternalGatewayEnrollmentState = (valueArg) => {
|
|
98
|
+
const state = readDataProperties(valueArg);
|
|
99
|
+
if (state === null)
|
|
100
|
+
return ['external gateway enrollment state must be a plain record'];
|
|
101
|
+
const errors = [];
|
|
102
|
+
if (!hasExactKeys(state, ['status', 'cachedValidationProof', 'finalizationPending'], ['reason', 'lastCheckedAt', 'nextRetryAt'])) {
|
|
103
|
+
errors.push('external gateway enrollment state contains fields outside its schema');
|
|
104
|
+
}
|
|
105
|
+
if (!externalGatewayEnrollmentStatuses.some((statusArg) => statusArg === state.status)) {
|
|
106
|
+
errors.push('external gateway enrollment status is unknown');
|
|
107
|
+
}
|
|
108
|
+
if (state.reason !== undefined && (typeof state.reason !== 'string'
|
|
109
|
+
|| state.reason.length === 0
|
|
110
|
+
|| state.reason.length > externalGatewayBootstrapContract.maximumReasonLength)) {
|
|
111
|
+
errors.push('external gateway enrollment reason must be a bounded non-empty string');
|
|
112
|
+
}
|
|
113
|
+
for (const key of ['lastCheckedAt', 'nextRetryAt']) {
|
|
114
|
+
if (state[key] !== undefined && !isEpochMilliseconds(state[key])) {
|
|
115
|
+
errors.push(`external gateway enrollment ${key} must be epoch milliseconds`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
for (const key of ['cachedValidationProof', 'finalizationPending']) {
|
|
119
|
+
if (typeof state[key] !== 'boolean') {
|
|
120
|
+
errors.push(`external gateway enrollment ${key} must be a boolean`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return errors;
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9kYXRhL3NldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQWlFaEYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNwRCxJQUFJLEVBQUUsUUFBUTtJQUNkLFFBQVEsRUFBRSxrQkFBa0I7Q0FDUyxDQUFDLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQzdDLHlCQUFtRSxDQUFDO0FBRXRFLHVFQUF1RTtBQUN2RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ25ELFlBQVksRUFBRSxlQUFlO0lBQzdCLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMsK0JBQStCLEVBQUUsb0NBQW9DO0lBQ3JFLHVCQUF1QixFQUFFLDRCQUE0QjtJQUNyRCxlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDLG9CQUFvQixFQUFFLHdCQUF3QjtJQUM5QyxnQkFBZ0IsRUFBRSxtQkFBbUI7SUFDckMsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLGlCQUFpQixFQUFFLG9CQUFvQjtJQUN2QyxhQUFhLEVBQUUsaUJBQWlCO0lBQ2hDLGlCQUFpQixFQUFFLHFCQUFxQjtJQUN4QyxhQUFhLEVBQUUsaUJBQWlCO0lBQ2hDLG1CQUFtQixFQUFFLHVCQUF1QjtJQUM1QyxjQUFjLEVBQUUsa0JBQWtCO0lBQ2xDLG9CQUFvQixFQUFFLHlCQUF5QjtJQUMvQyxXQUFXLEVBQUUsZUFBZTtJQUM1QixXQUFXLEVBQUUsY0FBYztJQUMzQixpQkFBaUIsRUFBRSxxQkFBcUI7SUFDeEMsb0JBQW9CLEVBQUUsd0JBQXdCO0lBQzlDLGNBQWMsRUFB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
|
|
@@ -6,6 +6,24 @@ export declare const failNetwork: () => never;
|
|
|
6
6
|
export declare function requireNetwork(value: unknown): asserts value;
|
|
7
7
|
export declare const networkCanonical: (value: unknown) => string;
|
|
8
8
|
export declare const networkEqual: (left: unknown, right: unknown) => boolean;
|
|
9
|
+
/** The runtime network address plan's lists that must be stated in their one canonical order. */
|
|
10
|
+
export type TRuntimeNetworkAddressPlanOrderedField = 'prefixes' | 'pools' | 'resolvers' | 'platformEndpoints';
|
|
11
|
+
/** The structure rules an address plan refusal names; `order` is the only one named so far. */
|
|
12
|
+
export type TRuntimeNetworkAddressPlanStructureRule = 'order';
|
|
13
|
+
/** Which list of a plan broke which structure rule; never a value from the plan. */
|
|
14
|
+
export interface IRuntimeNetworkAddressPlanStructureViolation {
|
|
15
|
+
field: TRuntimeNetworkAddressPlanOrderedField;
|
|
16
|
+
rule: TRuntimeNetworkAddressPlanStructureRule;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A plan refused for a structure rule the contract names, rather than with the contract's generic
|
|
20
|
+
* rejection. It is the one error `networkSafe` lets through, so a caller can tell an administrator
|
|
21
|
+
* which list to fix; its message names the field and the rule and quotes nothing from the plan.
|
|
22
|
+
*/
|
|
23
|
+
export declare class RuntimeNetworkAddressPlanStructureError extends Error {
|
|
24
|
+
readonly violation: IRuntimeNetworkAddressPlanStructureViolation;
|
|
25
|
+
constructor(violationArg: IRuntimeNetworkAddressPlanStructureViolation);
|
|
26
|
+
}
|
|
9
27
|
export declare const networkSafe: <T>(operation: () => T) => T;
|
|
10
28
|
/** Bound decoded transport input before canonicalization; never execute getters/toJSON. */
|
|
11
29
|
export declare const captureNetwork: (value: unknown) => unknown;
|