@modelprofile.com/flexharness 10.17.1 → 10.19.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/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/errors.d.ts +4 -0
- package/dist_ts/errors.js +9 -1
- package/dist_ts/functions.toolpermissions.d.ts +24 -0
- package/dist_ts/functions.toolpermissions.js +38 -0
- package/dist_ts/index.d.ts +1 -0
- package/dist_ts/index.js +2 -1
- package/dist_ts/plugins.d.ts +1 -1
- package/dist_ts/plugins.js +1 -1
- package/dist_ts_chat_harness/classes.chatclient.d.ts +95 -0
- package/dist_ts_chat_harness/classes.chatclient.js +263 -0
- package/dist_ts_chat_harness/classes.chatrequesterror.d.ts +4 -0
- package/dist_ts_chat_harness/classes.chatrequesterror.js +8 -0
- package/dist_ts_chat_harness/classes.transcript.d.ts +1 -1
- package/dist_ts_chat_harness/classes.transcript.js +1 -1
- package/dist_ts_chat_harness/functions.intents.d.ts +1 -2
- package/dist_ts_chat_harness/functions.intents.js +1 -1
- package/dist_ts_chat_harness/functions.mapping.d.ts +1 -1
- package/dist_ts_chat_harness/functions.mapping.js +1 -1
- package/dist_ts_chat_harness/index.d.ts +3 -0
- package/dist_ts_chat_harness/index.js +3 -1
- package/dist_ts_chat_harness/interfaces.chat.d.ts +136 -0
- package/dist_ts_chat_harness/interfaces.chat.js +2 -0
- package/dist_ts_chat_harness/plugins.js +1 -1
- package/dist_ts_chat_harness_server/classes.chathub.d.ts +78 -0
- package/dist_ts_chat_harness_server/classes.chathub.js +332 -0
- package/dist_ts_chat_harness_server/classes.chatsubscription.d.ts +55 -0
- package/dist_ts_chat_harness_server/classes.chatsubscription.js +236 -0
- package/dist_ts_chat_harness_server/classes.sessionlists.d.ts +21 -0
- package/dist_ts_chat_harness_server/classes.sessionlists.js +70 -0
- package/dist_ts_chat_harness_server/classes.turngate.d.ts +38 -0
- package/dist_ts_chat_harness_server/classes.turngate.js +207 -0
- package/dist_ts_chat_harness_server/errors.d.ts +5 -0
- package/dist_ts_chat_harness_server/errors.js +9 -0
- package/dist_ts_chat_harness_server/functions.errorprojector.d.ts +11 -0
- package/dist_ts_chat_harness_server/functions.errorprojector.js +32 -0
- package/dist_ts_chat_harness_server/functions.validation.d.ts +18 -0
- package/dist_ts_chat_harness_server/functions.validation.js +88 -0
- package/dist_ts_chat_harness_server/index.d.ts +4 -0
- package/dist_ts_chat_harness_server/index.js +4 -0
- package/dist_ts_chat_harness_server/interfaces.d.ts +67 -0
- package/dist_ts_chat_harness_server/interfaces.js +2 -0
- package/dist_ts_chat_harness_server/plugins.d.ts +7 -0
- package/dist_ts_chat_harness_server/plugins.js +6 -0
- package/dist_ts_chat_harness_typedsocket/classes.clienttransport.d.ts +22 -0
- package/dist_ts_chat_harness_typedsocket/classes.clienttransport.js +55 -0
- package/dist_ts_chat_harness_typedsocket/classes.serverbinding.d.ts +46 -0
- package/dist_ts_chat_harness_typedsocket/classes.serverbinding.js +110 -0
- package/dist_ts_chat_harness_typedsocket/index.d.ts +3 -0
- package/dist_ts_chat_harness_typedsocket/index.js +3 -0
- package/dist_ts_chat_harness_typedsocket/interfaces.requests.d.ts +38 -0
- package/dist_ts_chat_harness_typedsocket/interfaces.requests.js +2 -0
- package/dist_ts_chat_harness_typedsocket/plugins.d.ts +9 -0
- package/dist_ts_chat_harness_typedsocket/plugins.js +8 -0
- package/dist_ts_ocr/ocr.mistral.d.ts +20 -1
- package/dist_ts_ocr/ocr.mistral.js +66 -43
- package/dist_ts_tools/tool.filesystem.d.ts +2 -0
- package/dist_ts_tools/tool.filesystem.js +42 -1
- package/dist_ts_tools_node/classes.workspacereversion.d.ts +48 -0
- package/dist_ts_tools_node/classes.workspacereversion.js +202 -0
- package/dist_ts_tools_node/functions.fileimages.d.ts +22 -0
- package/dist_ts_tools_node/functions.fileimages.js +87 -0
- package/dist_ts_tools_node/index.d.ts +3 -1
- package/dist_ts_tools_node/index.js +2 -1
- package/dist_ts_tools_node/plugins.d.ts +1 -0
- package/dist_ts_tools_node/tool.context.d.ts +20 -0
- package/dist_ts_tools_node/tool.context.js +25 -4
- package/package.json +28 -4
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/errors.ts +10 -0
- package/ts/functions.toolpermissions.ts +60 -0
- package/ts/index.ts +6 -0
- package/ts/plugins.ts +1 -0
- package/ts_chat_harness/classes.chatclient.ts +343 -0
- package/ts_chat_harness/classes.chatrequesterror.ts +7 -0
- package/ts_chat_harness/classes.transcript.ts +1 -1
- package/ts_chat_harness/functions.intents.ts +2 -2
- package/ts_chat_harness/functions.mapping.ts +1 -1
- package/ts_chat_harness/index.ts +20 -0
- package/ts_chat_harness/interfaces.chat.ts +108 -0
- package/ts_chat_harness/readme.md +24 -0
- package/ts_chat_harness_server/classes.chathub.ts +400 -0
- package/ts_chat_harness_server/classes.chatsubscription.ts +257 -0
- package/ts_chat_harness_server/classes.sessionlists.ts +90 -0
- package/ts_chat_harness_server/classes.turngate.ts +247 -0
- package/ts_chat_harness_server/errors.ts +9 -0
- package/ts_chat_harness_server/functions.errorprojector.ts +40 -0
- package/ts_chat_harness_server/functions.validation.ts +104 -0
- package/ts_chat_harness_server/index.ts +19 -0
- package/ts_chat_harness_server/interfaces.ts +92 -0
- package/ts_chat_harness_server/plugins.ts +62 -0
- package/ts_chat_harness_server/readme.md +91 -0
- package/ts_chat_harness_typedsocket/classes.clienttransport.ts +87 -0
- package/ts_chat_harness_typedsocket/classes.serverbinding.ts +172 -0
- package/ts_chat_harness_typedsocket/index.ts +17 -0
- package/ts_chat_harness_typedsocket/interfaces.requests.ts +40 -0
- package/ts_chat_harness_typedsocket/plugins.ts +28 -0
- package/ts_chat_harness_typedsocket/readme.md +57 -0
- package/ts_ocr/ocr.mistral.ts +102 -49
- package/ts_ocr/readme.md +12 -1
- package/ts_tools/readme.md +10 -0
- package/ts_tools/tool.filesystem.ts +55 -0
- package/ts_tools_node/classes.workspacereversion.ts +255 -0
- package/ts_tools_node/functions.fileimages.ts +89 -0
- package/ts_tools_node/index.ts +7 -1
- package/ts_tools_node/plugins.ts +11 -0
- package/ts_tools_node/readme.md +27 -0
- package/ts_tools_node/tool.context.ts +49 -3
|
@@ -27,6 +27,13 @@ export const createLocalToolExecutionContext = (options = {}) => {
|
|
|
27
27
|
if (!Number.isSafeInteger(jobStoreOperationTimeoutMs) || jobStoreOperationTimeoutMs <= 0) {
|
|
28
28
|
throw new Error('jobStoreOperationTimeoutMs must be a positive integer.');
|
|
29
29
|
}
|
|
30
|
+
const fileChangeObserver = options.fileChangeObserver;
|
|
31
|
+
const beforeShellOperation = fileChangeObserver
|
|
32
|
+
? async () => {
|
|
33
|
+
await options.beforeOperation?.();
|
|
34
|
+
await fileChangeObserver.beforeShellCommand();
|
|
35
|
+
}
|
|
36
|
+
: options.beforeOperation;
|
|
30
37
|
const jobs = createLocalToolJobContext({
|
|
31
38
|
cwd,
|
|
32
39
|
rootDir,
|
|
@@ -36,7 +43,7 @@ export const createLocalToolExecutionContext = (options = {}) => {
|
|
|
36
43
|
outputListenerTimeoutMs,
|
|
37
44
|
jobStoreOperationTimeoutMs,
|
|
38
45
|
settleOrphanedJob: options.settleOrphanedJob,
|
|
39
|
-
beforeOperation:
|
|
46
|
+
beforeOperation: beforeShellOperation,
|
|
40
47
|
abortSignal: options.abortSignal,
|
|
41
48
|
});
|
|
42
49
|
return {
|
|
@@ -53,7 +60,7 @@ export const createLocalToolExecutionContext = (options = {}) => {
|
|
|
53
60
|
onOutput: runOptions?.onOutput,
|
|
54
61
|
outputListenerTimeoutMs,
|
|
55
62
|
maxOutputBytes: maxShellOutputBytes,
|
|
56
|
-
beforeOperation:
|
|
63
|
+
beforeOperation: beforeShellOperation,
|
|
57
64
|
}),
|
|
58
65
|
runStructured: (command, runOptions) => runLocalStructuredCommand(command, {
|
|
59
66
|
cwd: resolveLocalPath(runOptions?.cwd ?? cwd, rootDir),
|
|
@@ -62,7 +69,7 @@ export const createLocalToolExecutionContext = (options = {}) => {
|
|
|
62
69
|
onOutput: runOptions?.onOutput,
|
|
63
70
|
outputListenerTimeoutMs,
|
|
64
71
|
maxOutputBytes: maxShellOutputBytes,
|
|
65
|
-
beforeOperation:
|
|
72
|
+
beforeOperation: beforeShellOperation,
|
|
66
73
|
}),
|
|
67
74
|
},
|
|
68
75
|
jobs,
|
|
@@ -106,6 +113,13 @@ export const createLocalToolExecutionContext = (options = {}) => {
|
|
|
106
113
|
assertCanonicalPathAllowed(canonicalProspectiveParent, canonicalBoundary.canonicalRoot, filePath, canonicalBoundary.rootDir);
|
|
107
114
|
await assertExistingWriteTargetAllowed(resolved, canonicalBoundary.canonicalRoot, filePath, canonicalBoundary.rootDir);
|
|
108
115
|
}
|
|
116
|
+
if (fileChangeObserver) {
|
|
117
|
+
await fileChangeObserver.beforeFileChange({
|
|
118
|
+
kind: 'write',
|
|
119
|
+
path: await resolveCanonicalProspectivePath(resolved),
|
|
120
|
+
});
|
|
121
|
+
throwIfAborted(abortSignal);
|
|
122
|
+
}
|
|
109
123
|
await runBeforeLocalOperation(options.beforeOperation, abortSignal);
|
|
110
124
|
await plugins.fs.promises.mkdir(parentPath, { recursive: true });
|
|
111
125
|
throwIfAborted(abortSignal);
|
|
@@ -142,6 +156,13 @@ export const createLocalToolExecutionContext = (options = {}) => {
|
|
|
142
156
|
if (rootDir) {
|
|
143
157
|
await resolveCanonicalExistingLocalPath(resolved, targetPath, rootDir);
|
|
144
158
|
}
|
|
159
|
+
if (fileChangeObserver) {
|
|
160
|
+
await fileChangeObserver.beforeFileChange({
|
|
161
|
+
kind: 'delete',
|
|
162
|
+
path: plugins.path.join(await resolveCanonicalProspectivePath(plugins.path.dirname(resolved)), plugins.path.basename(resolved)),
|
|
163
|
+
});
|
|
164
|
+
throwIfAborted(abortSignal);
|
|
165
|
+
}
|
|
145
166
|
await runBeforeLocalOperation(options.beforeOperation, abortSignal);
|
|
146
167
|
await plugins.fs.promises.rm(resolved, { recursive: false, force: false });
|
|
147
168
|
throwIfAborted(abortSignal);
|
|
@@ -834,4 +855,4 @@ const createLocalToolJobContext = (options) => {
|
|
|
834
855
|
},
|
|
835
856
|
};
|
|
836
857
|
};
|
|
837
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfdG9vbHNfbm9kZS90b29sLmNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUE2QnhDLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN6RCxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLFVBQTZDLEVBQUUsRUFBeUIsRUFBRTtJQUN4SCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN6QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2hDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDckYsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsS0FBSyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FDRixDQUFDLENBQUMsQ0FBQztJQUNKLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixJQUFJLG9DQUFvQyxDQUFDO0lBQ2hHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksbUJBQW1CLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDM0Us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
|
|
858
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfdG9vbHNfbm9kZS90b29sLmNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFtRHhDLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUN6RCxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxDQUFDLFVBQTZDLEVBQUUsRUFBeUIsRUFBRTtJQUN4SCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN6QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2hDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLHVCQUF1QixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDckYsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsS0FBSyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ2pGLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FDRixDQUFDLENBQUMsQ0FBQztJQUNKLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixJQUFJLG9DQUFvQyxDQUFDO0lBQ2hHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksbUJBQW1CLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDM0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFDRCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLEdBQUcsQ0FBQztJQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbEUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFDRCxNQUFNLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsSUFBSSxNQUFNLENBQUM7SUFDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSx1QkFBdUIsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuRixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUNELE1BQU0sMEJBQTBCLEdBQUcsT0FBTyxDQUFDLDBCQUEwQjtXQUNoRSx1QkFBdUIsQ0FBQztJQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLDBCQUEwQixJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3pGLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBQ0QsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUM7SUFDdEQsTUFBTSxvQkFBb0IsR0FBeUQsa0JBQWtCO1FBQ25HLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNULE1BQU0sT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDbEMsTUFBTSxrQkFBa0IsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2hELENBQUM7UUFDSCxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztJQUM1QixNQUFNLElBQUksR0FBRyx5QkFBeUIsQ0FBQztRQUNyQyxHQUFHO1FBQ0gsT0FBTztRQUNQLGNBQWMsRUFBRSxtQkFBbUI7UUFDbkMsZUFBZTtRQUNmLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtRQUMxQix1QkFBdUI7UUFDdkIsMEJBQTBCO1FBQzFCLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUI7UUFDNUMsZUFBZSxFQUFFLG9CQUFvQjtRQUNyQyxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7S0FDakMsQ0FBQyxDQUFDO0lBQ0gsT0FBTztRQUNMLEdBQUc7UUFDSCxPQUFPO1FBQ1AsdUJBQXVCO1FBQ3ZCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCO1FBQzVDLEtBQUssRUFBRTtZQUNMLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRTtnQkFDMUQsR0FBRyxFQUFFLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLE9BQU8sQ0FBQztnQkFDdEQsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTO2dCQUNoQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVztnQkFDM0QsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRO2dCQUM5Qix1QkFBdUI7Z0JBQ3ZCLGNBQWMsRUFBRSxtQkFBbUI7Z0JBQ25DLGVBQWUsRUFBRSxvQkFBb0I7YUFDdEMsQ0FBQztZQUNGLGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRTtnQkFDekUsR0FBRyxFQUFFLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksR0FBRyxFQUFFLE9BQU8sQ0FBQztnQkFDdEQsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTO2dCQUNoQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVztnQkFDM0QsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRO2dCQUM5Qix1QkFBdUI7Z0JBQ3ZCLGNBQWMsRUFBRSxtQkFBbUI7Z0JBQ25DLGVBQWUsRUFBRSxvQkFBb0I7YUFDdEMsQ0FBQztTQUNIO1FBQ0QsSUFBSTtRQUNKLEVBQUUsRUFBRTtZQUNGLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxFQUFFO2dCQUMzRCxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDMUUsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM1QixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUM5RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7b0JBQ2pELENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsdUJBQXVCLENBQUM7b0JBQzdELENBQUMsQ0FBQyxPQUFPO3dCQUNQLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQzt3QkFDWCxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNULE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFDeEMsQ0FBQyxDQUFDLE1BQU0scUNBQXFDLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUM7b0JBQzVFLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQ2IsTUFBTSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNwRSxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzFFLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxXQUFXLEVBQUUsU0FBUyxLQUFLLFNBQVMsSUFBSSxXQUFXLEVBQUUsT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUMvRSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNsQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQzVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNqRSxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUMsQ0FBQztnQkFDRCxPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDO1lBQ0QsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLEVBQUU7Z0JBQ3hELE1BQU0sV0FBVyxHQUFHLGlCQUFpQixFQUFFLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDO2dCQUMxRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzVCLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzFELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRCxNQUFNLGlCQUFpQixHQUFHLE9BQU87b0JBQy9CLENBQUMsQ0FBQzt3QkFDRSxPQUFPO3dCQUNQLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNwRjtvQkFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUNkLElBQUksaUJBQWlCLEVBQUUsQ0FBQztvQkFDdEIsTUFBTSwwQkFBMEIsR0FBRyxNQUFNLCtCQUErQixDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUNyRiwwQkFBMEIsQ0FDeEIsMEJBQTBCLEVBQzFCLGlCQUFpQixDQUFDLGFBQWEsRUFDL0IsUUFBUSxFQUNSLGlCQUFpQixDQUFDLE9BQU8sQ0FDMUIsQ0FBQztvQkFDRixNQUFNLGdDQUFnQyxDQUNwQyxRQUFRLEVBQ1IsaUJBQWlCLENBQUMsYUFBYSxFQUMvQixRQUFRLEVBQ1IsaUJBQWlCLENBQUMsT0FBTyxDQUMxQixDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO29CQUN2QixNQUFNLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDO3dCQUN4QyxJQUFJLEVBQUUsT0FBTzt3QkFDYixJQUFJLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQyxRQUFRLENBQUM7cUJBQ3RELENBQUMsQ0FBQztvQkFDSCxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlCLENBQUM7Z0JBQ0QsTUFBTSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNwRSxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDakUsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM1QixJQUFJLGlCQUFpQixFQUFFLENBQUM7b0JBQ3RCLE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUN2RSwwQkFBMEIsQ0FDeEIsZUFBZSxFQUNmLGlCQUFpQixDQUFDLGFBQWEsRUFDL0IsUUFBUSxFQUNSLGlCQUFpQixDQUFDLE9BQU8sQ0FDMUIsQ0FBQztvQkFDRixNQUFNLGdDQUFnQyxDQUNwQyxRQUFRLEVBQ1IsaUJBQWlCLENBQUMsYUFBYSxFQUMvQixRQUFRLEVBQ1IsaUJBQWlCLENBQUMsT0FBTyxDQUMxQixDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsTUFBTSxPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDL0QsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM1QixPQUFPLFdBQVcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLGFBQWEsUUFBUSxFQUFFLENBQUM7WUFDOUUsQ0FBQztZQUNELGFBQWEsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxFQUFFO2dCQUNyRSxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsRUFBRSxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQztnQkFDMUUsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM1QixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNuRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7b0JBQ3RELENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsdUJBQXVCLENBQUM7b0JBQzdELENBQUMsQ0FBQyxPQUFPO3dCQUNQLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQzt3QkFDWCxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNULE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztvQkFDeEMsQ0FBQyxDQUFDLE1BQU0scUNBQXFDLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUM7b0JBQ2pGLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQ2IsTUFBTSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNwRSxNQUFNLE1BQU0sR0FBRyxNQUFNLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDOUYsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM1QixPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1lBQ0QsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsRUFBRTtnQkFDbEQsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLEVBQUUsV0FBVyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUM7Z0JBQzFFLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDNUIsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDWixNQUFNLGlDQUFpQyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3pFLENBQUM7Z0JBQ0QsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO29CQUN2QixNQUFNLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDO3dCQUN4QyxJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3JCLE1BQU0sK0JBQStCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDckUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQ2hDO3FCQUNGLENBQUMsQ0FBQztvQkFDSCxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzlCLENBQUM7Z0JBQ0QsTUFBTSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNwRSxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzVCLE9BQU8sV0FBVyxVQUFVLEVBQUUsQ0FBQztZQUNqQyxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFVBQWtCLEVBQUUsT0FBZ0IsRUFBRSxPQUFnQixFQUFVLEVBQUU7SUFDMUYsTUFBTSxJQUFJLEdBQUcsT0FBTyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDakQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1FBQ2xELENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDbEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMzQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsSUFBSSxRQUFRLEtBQUssWUFBWSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLFVBQVUsOEJBQThCLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDekYsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQzNCLFVBQWtCLEVBQ2xCLE9BQWdCLEVBQ2hCLE9BQWdCLEVBQ1IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztJQUM5QyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUUxRSxNQUFNLHFDQUFxQyxHQUFHLEtBQUssRUFDakQsWUFBb0IsRUFDcEIsVUFBa0IsRUFDbEIsU0FBbUIsRUFDRixFQUFFO0lBQ25CLE1BQU0sYUFBYSxHQUFHLE1BQU0sT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7UUFDakMsTUFBTSxhQUFhLEdBQUcsTUFBTSwrQkFBK0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVGLElBQUksc0JBQXNCLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQztZQUFFLE9BQU8sYUFBYSxDQUFDO0lBQ2pGLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixVQUFVLHdDQUF3QyxDQUFDLENBQUM7QUFDekYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxpQ0FBaUMsR0FBRyxLQUFLLEVBQzdDLFlBQW9CLEVBQ3BCLFVBQWtCLEVBQ2xCLE9BQWUsRUFDRSxFQUFFO0lBQ25CLE1BQU0sYUFBYSxHQUFHLE1BQU0sK0JBQStCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUMzRixNQUFNLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RSwwQkFBMEIsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RSxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDLENBQUM7QUFFRixNQUFNLCtCQUErQixHQUFHLEtBQUssRUFBRSxVQUFrQixFQUFtQixFQUFFO0lBQ3BGLElBQUksZ0JBQWdCLEdBQUcsVUFBVSxDQUFDO0lBQ2xDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUM7WUFDSCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDL0UsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDekIsaUJBQWlCLEVBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxDQUNwRCxDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFNBQVMsR0FBSSxLQUErQixDQUFDLElBQUksQ0FBQztZQUN4RCxJQUFJLFNBQVMsS0FBSyxRQUFRLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN0RCxNQUFNLEtBQUssQ0FBQztZQUNkLENBQUM7WUFDRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzFELElBQUksVUFBVSxLQUFLLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUNELGdCQUFnQixHQUFHLFVBQVUsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sZ0NBQWdDLEdBQUcsS0FBSyxFQUM1QyxZQUFvQixFQUNwQixhQUFxQixFQUNyQixVQUFrQixFQUNsQixPQUFlLEVBQ0EsRUFBRTtJQUNqQixJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUssS0FBK0IsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkQsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLGVBQXVCLENBQUM7SUFDNUIsSUFBSSxDQUFDO1FBQ0gsZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSyxLQUErQixDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2RCxNQUFNLHVCQUF1QixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0lBQ0QsMEJBQTBCLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDbEYsQ0FBQyxDQUFDO0FBRUYsTUFBTSwwQkFBMEIsR0FBRyxDQUNqQyxhQUFxQixFQUNyQixhQUFxQixFQUNyQixVQUFrQixFQUNsQixPQUFlLEVBQ1QsRUFBRTtJQUNSLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLHVCQUF1QixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBRyxDQUM3QixhQUFxQixFQUNyQixhQUFxQixFQUNaLEVBQUU7SUFDWCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDekUsT0FBTyxZQUFZLEtBQUssSUFBSTtXQUN2QixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1dBQ2pELENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBRUYsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLFVBQWtCLEVBQUUsT0FBZSxFQUFTLEVBQUUsQ0FDN0UsSUFBSSxLQUFLLENBQUMsbUJBQW1CLFVBQVUsc0NBQXNDLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFFM0YsTUFBTSxjQUFjLEdBQUcsQ0FBQyxXQUF5QixFQUFRLEVBQUU7SUFDekQsV0FBVyxFQUFFLGNBQWMsRUFBRSxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGLE1BQU0sdUJBQXVCLEdBQUcsS0FBSyxFQUNuQyxlQUFxRSxFQUNyRSxXQUF5QixFQUNWLEVBQUU7SUFDakIsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLElBQUksQ0FBQyxlQUFlO1FBQUUsT0FBTztJQUM3QixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDckUsS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixNQUFNLFlBQVksQ0FBQztRQUNuQixPQUFPO0lBQ1QsQ0FBQztJQUNELElBQUksT0FBb0IsQ0FBQztJQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBUSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUN0RCxPQUFPLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUNwQixXQUFXLENBQUMsTUFBTSxJQUFJLElBQUksWUFBWSxDQUFDLHlCQUF5QixFQUFFLFlBQVksQ0FBQyxDQUNoRixDQUFDO1FBQ0YsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLFdBQVcsQ0FBQyxPQUFPO1lBQUUsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDSCxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO1lBQVMsQ0FBQztRQUNULFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFFRixNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDOUIsYUFBcUIsRUFDckIsU0FBa0IsRUFDbEIsV0FBeUIsRUFDTixFQUFFO0lBQ3JCLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QixNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRixjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUIsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO0lBQzVCLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekUsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQixJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxNQUFNLFlBQVksR0FBRyxNQUFNLGtCQUFrQixDQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUM1QyxJQUFJLEVBQ0osV0FBVyxDQUNaLENBQUM7WUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDO0lBQ0gsQ0FBQztJQUNELGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFJRixnQkFBZ0I7QUFDaEIsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FDeEMsS0FBWSxFQUNaLFFBQTRCLEVBQzVCLFFBSUMsRUFDSyxFQUFFO0lBQ1IsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDM0IsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLE9BQU87SUFDVCxDQUFDO0lBQ0QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLEtBQUssRUFDaEMsT0FBZSxFQUNmLE9BSUMsRUFDMEIsRUFBRSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztBQUV6RSxNQUFNLHlCQUF5QixHQUFHLEtBQUssRUFDckMsT0FBc0IsRUFDdEIsT0FJQyxFQUMwQixFQUFFO0lBQzdCLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sc0JBQXNCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQztBQUVGLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxPQUFzQixFQUFRLEVBQUU7SUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO0lBQ2xHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNwRSxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7SUFDckUsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxFQUNsQyxPQUErQixFQUMvQixPQUlDLEVBQzBCLEVBQUU7SUFDN0IsSUFBSSxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDNUIsTUFBTSx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RSxDQUFDO1NBQU0sQ0FBQztRQUNOLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUNELE9BQU8sSUFBSSxPQUFPLENBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDL0MsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQztRQUN0RCxNQUFNLFVBQVUsR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUM3RSxNQUFNLElBQUksR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQzNFLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUU7WUFDekQsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsS0FBSyxFQUFFLEtBQUs7WUFDWixLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztTQUNsQyxDQUFDLENBQUM7UUFDSCxNQUFNLFlBQVksR0FBYSxFQUFFLENBQUM7UUFDbEMsTUFBTSxZQUFZLEdBQWEsRUFBRSxDQUFDO1FBQ2xDLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN0QixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxpQkFBMkQsQ0FBQztRQUNoRSxJQUFJLFVBQTZCLENBQUM7UUFDbEMsSUFBSSxXQUE4QixDQUFDO1FBQ25DLElBQUksbUJBQXNDLENBQUM7UUFDM0MsSUFBSSxXQUFXLEdBQWtCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuRCxNQUFNLHFCQUFxQixHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEQsTUFBTSxjQUFjLEdBQUc7WUFDckIsTUFBTSxFQUFFLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDekMsTUFBTSxFQUFFLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7U0FDMUMsQ0FBQztRQUNGLElBQUksU0FBcUMsQ0FBQztRQUMxQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQztZQUM3RCxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDcEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBc0IsRUFBRSxFQUFFO1lBQy9DLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTO2dCQUFFLE9BQU87WUFDcEMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUM7b0JBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ2pDLE9BQU87Z0JBQ1QsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLElBQUssS0FBK0IsQ0FBQyxJQUFJLEtBQUssT0FBTzt3QkFBRSxPQUFPO29CQUM5RCxXQUFXLEdBQUcsS0FBYyxDQUFDO2dCQUMvQixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQztnQkFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JCLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUssS0FBK0IsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQ3RELFdBQVcsR0FBRyxLQUFjLENBQUM7Z0JBQy9CLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsU0FBUyxrQkFBa0IsQ0FBQyxNQUFvQztZQUM5RCxJQUFJLGlCQUFpQjtnQkFBRSxPQUFPO1lBQzlCLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztZQUMzQixxQkFBcUIsQ0FBQyxLQUFLLENBQ3pCLElBQUksS0FBSyxDQUFDLHVFQUF1RSxNQUFNLElBQUksQ0FBQyxDQUM3RixDQUFDO1lBQ0YsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pCLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sYUFBYSxHQUFHLEtBQUssRUFDekIsTUFBMkIsRUFDM0IsSUFBWSxFQUNHLEVBQUU7WUFDakIsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QyxJQUFJLFlBQXdDLENBQUM7WUFDN0MsSUFBSSxhQUEwQixDQUFDO1lBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN0RCxhQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEUscUJBQXFCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDdEYsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsT0FBTztvQkFBRSxhQUFhLEVBQUUsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsS0FBSyxTQUFTO2dCQUMzRCxDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsSUFBSSxPQUFPLENBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUU7b0JBQ3RDLFlBQVksR0FBRyxVQUFVLENBQ3ZCLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FDcEIsMkNBQTJDLE9BQU8sQ0FBQyx1QkFBdUIsS0FBSyxDQUNoRixDQUFDLEVBQ0YsT0FBTyxDQUFDLHVCQUF1QixDQUNoQyxDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ1AsSUFBSSxDQUFDO2dCQUNILE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7b0JBQVMsQ0FBQztnQkFDVCxJQUFJLFlBQVk7b0JBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUM3QyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzNFLENBQUM7UUFDSCxDQUFDLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxDQUNwQixNQUEyQixFQUMzQixNQUFvQyxFQUNwQyxJQUFZLEVBQ1osRUFBRTtZQUNGLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQ3ZDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNoQixXQUFXLEdBQUcsV0FBVztpQkFDdEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ3pFLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLG1CQUFtQixHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2hGLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDeEMsQ0FBQyxDQUFDO2lCQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUM7UUFDRixNQUFNLFlBQVksR0FBRyxDQUNuQixNQUEyQixFQUMzQixNQUFnQixFQUNoQixNQUFvQyxFQUNwQyxLQUFzQixFQUN0QixFQUFFO1lBQ0YsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGNBQWMsR0FBRyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0UsSUFBSSxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUM5RCxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUMzQixhQUFhLElBQUksYUFBYSxDQUFDLFVBQVUsQ0FBQztnQkFDMUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQzdFLENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxVQUFVLEdBQUcsY0FBYyxFQUFFLENBQUM7Z0JBQzVDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQXNCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkcsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFzQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUNuQixJQUFJLFlBQVk7Z0JBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdDLElBQUksU0FBUztnQkFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkMsT0FBTyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDM0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLEtBQUssQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM1QyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUMxQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxDQUFDLE1BQXdCLEVBQUUsRUFBRTtZQUMxQyxJQUFJLE9BQU87Z0JBQUUsT0FBTztZQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsT0FBTyxFQUFFLENBQUM7WUFDVixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN6QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3BELE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7U0FDckQsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxZQUFZLENBQUMsS0FBWTtZQUNoQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRTtnQkFDM0Msa0JBQWtCLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRTtvQkFDakMsTUFBTSxNQUFNLEdBQUcsV0FBVyxFQUFFLENBQUM7b0JBQzdCLE1BQU0sQ0FBQzt3QkFDTCxRQUFRLEVBQUUsQ0FBQzt3QkFDWCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07d0JBQ3JCLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRTtxQkFDaEQsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsV0FBVyxFQUFFLENBQUMsWUFBWSxFQUFFLEVBQUU7b0JBQzVCLFVBQVUsR0FBRyxZQUFZLENBQUM7Z0JBQzVCLENBQUM7Z0JBQ0Qsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDO2FBQ3RELENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxTQUFTLFdBQVc7WUFDbEIsSUFBSSxnQkFBZ0I7Z0JBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsSUFBbUIsRUFBRSxNQUE2QjtZQUNoRixhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ25FLGFBQWEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDbkUsd0ZBQXdGO1lBQ3hGLGtFQUFrRTtZQUNsRSxJQUFJLFlBQVk7Z0JBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzdDLElBQUksU0FBUztnQkFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdkMsT0FBTyxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDM0QsTUFBTSxXQUFXLENBQUM7WUFDbEIsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2dCQUN0QixhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0IsQ0FBQztZQUNELE1BQU0sTUFBTSxHQUFHLFdBQVcsRUFBRSxDQUFDO1lBQzdCLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixLQUFLLFNBQVM7Z0JBQ25ELENBQUMsQ0FBQywyQkFBMkIsT0FBTyxDQUFDLFNBQVMsS0FBSztnQkFDakQsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGNBQWM7b0JBQ3BDLENBQUMsQ0FBQyw4Q0FBOEMsT0FBTyxDQUFDLGNBQWMsNEJBQTRCO29CQUNsRyxDQUFDLENBQUMsaUJBQWlCLEtBQUssaUJBQWlCO3dCQUN2QyxDQUFDLENBQUMsa0VBQWtFLG1CQUFtQixFQUFFLE9BQU8sSUFBSSx3QkFBd0IsRUFBRTt3QkFDaEksQ0FBQyxDQUFDLGlCQUFpQixLQUFLLE9BQU87NEJBQy9CLENBQUMsQ0FBQyxzQkFBc0I7NEJBQ3hCLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMscUNBQXFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pHLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0YsTUFBTSxDQUFDO2dCQUNMLFFBQVEsRUFBRSxpQkFBaUIsS0FBSyxTQUFTO29CQUN2QyxDQUFDLENBQUMsR0FBRztvQkFDTCxDQUFDLENBQUMsaUJBQWlCLEtBQUssT0FBTzt3QkFDN0IsQ0FBQyxDQUFDLEdBQUc7d0JBQ0gsQ0FBQyxDQUFDLGlCQUFpQixLQUFLLGNBQWM7NEJBQ3BDLENBQUMsQ0FBQyxDQUFDOzRCQUNILENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxpQkFBaUI7Z0NBQ3ZDLENBQUMsQ0FBQyxDQUFDO2dDQUNMLENBQUMsQ0FBQyxpQkFBaUIsS0FBSyxPQUFPO29DQUMvQixDQUFDLENBQUMsQ0FBQztvQ0FDSCxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7Z0JBQ25CLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtnQkFDckIsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFDL0csTUFBTSxFQUFFLE1BQU0sSUFBSSxTQUFTO2FBQzVCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxTQUFTLFlBQVksQ0FBQyxJQUFtQixFQUFFLE1BQTZCO1lBQ3RFLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxPQUFPLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzVDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNuQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFrQkYsTUFBTSxzQkFBc0IsR0FBRyxDQUM3QixZQUEyQixFQUMzQixVQUF5QixFQUNuQixFQUFFO0lBQ1IsSUFDRSxDQUFDLFVBQVU7V0FDUixVQUFVLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQyxXQUFXO1dBQ25ELFVBQVUsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUk7V0FDckMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFDaEUsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQ2IsK0NBQStDLFlBQVksQ0FBQyxXQUFXLG9FQUFvRSxDQUM1SSxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUcsQ0FDaEMsT0FBMEMsRUFDekIsRUFBRTtJQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUNoRCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBMkIsQ0FBQztJQUN2RCxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBa0MsQ0FBQztJQUM5RCxNQUFNLG9CQUFvQixHQUFhLEVBQUUsQ0FBQztJQUMxQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUNuRCxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUM1QixJQUFJLGdCQUF5QixDQUFDO0lBQzlCLElBQUksZ0JBQWdCLEdBQWtCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4RCxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBYyxFQUFRLEVBQUU7UUFDbkQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNsRSxJQUFJLEVBQUUsK0JBQStCO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUNGLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxFQUNoQyxTQUF3RCxFQUN2QyxFQUFFO1FBQ25CLE1BQU0sVUFBVSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDekMsTUFBTSxZQUFZLEdBQUcsSUFBSSxLQUFLLENBQzVCLHVDQUF1QyxPQUFPLENBQUMsMEJBQTBCLEtBQUssQ0FDL0UsQ0FBQztRQUNGLElBQUksS0FBaUMsQ0FBQztRQUN0QyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sY0FBYyxHQUFHLElBQUksT0FBTyxDQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzdELEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUN0QixVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMvQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkIsQ0FBQyxFQUFFLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksS0FBSztnQkFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUMsQ0FBQztJQUNGLE1BQU0sT0FBTyxHQUFHLEdBQWtCLEVBQUU7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQUUsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNqRCxJQUFJLGdCQUFnQixLQUFLLFNBQVM7Z0JBQUUsTUFBTSxnQkFBZ0IsQ0FBQztZQUMzRCxtQkFBbUIsR0FBRyxNQUFNLG9CQUFvQixDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FDL0QsT0FBTyxDQUFDLFFBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDM0MsZ0JBQWdCLEtBQUssS0FBSyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLElBQW1CLEVBQUU7UUFDakQsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTO1lBQUUsTUFBTSxnQkFBZ0IsQ0FBQztRQUMzRCxNQUFNLGdCQUFnQixDQUFDO1FBQ3ZCLElBQUksZ0JBQWdCLEtBQUssU0FBUztZQUFFLE1BQU0sZ0JBQWdCLENBQUM7SUFDN0QsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFvQixFQUFRLEVBQUU7UUFDbkQsS0FBSyxNQUFNLFFBQVEsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ2hELEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUN6QyxDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7SUFDRixNQUFNLFVBQVUsR0FBRyxLQUFLLEVBQUUsS0FBMEIsRUFBaUIsRUFBRTtRQUNyRSxLQUFLLE1BQU0sUUFBUSxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksS0FBaUMsQ0FBQztZQUN0QyxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNqQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxPQUFPLENBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUU7d0JBQ3RDLEtBQUssR0FBRyxVQUFVLENBQ2hCLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FDcEIsdUNBQXVDLE9BQU8sQ0FBQyx1QkFBdUIsS0FBSyxDQUM1RSxDQUFDLEVBQ0YsT0FBTyxDQUFDLHVCQUF1QixDQUNoQyxDQUFDO29CQUNKLENBQUMsQ0FBQztpQkFDSCxDQUFDLENBQUM7WUFDTCxDQUFDO29CQUFTLENBQUM7Z0JBQ1QsSUFBSSxLQUFLO29CQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQztJQUNGLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDeEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVE7WUFDL0IsQ0FBQyxDQUFDLE1BQU0sb0JBQW9CLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xGLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDdEIsbUJBQW1CLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN4QyxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsS0FBSyxNQUFNLGFBQWEsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxLQUFLLEdBQUcsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztvQkFDOUIsTUFBTSxZQUFZLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FDcEUsT0FBTyxDQUFDLGlCQUFrQixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO29CQUNuRSxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7b0JBQzVDLEtBQUssR0FBRyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ3ZCLEtBQUssQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO29CQUN2QixLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFDdEIsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUseURBQXlELENBQUM7eUJBQ3JGLE1BQU0sQ0FBQyxPQUFPLENBQUM7eUJBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNkLEtBQUssQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO29CQUN0QixLQUFLLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLENBQUM7WUFDRCxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzdELE1BQU0sa0JBQWtCLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEQsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO2dCQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDakIsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLE9BQU87WUFBRSxNQUFNLE9BQU8sRUFBRSxDQUFDO0lBQy9CLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFTCxPQUFPO1FBQ0wsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsRUFBRTtZQUMxQyxNQUFNLEtBQUssQ0FBQztZQUNaLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztZQUN6QixNQUFNLG9CQUFvQixHQUFHLGlCQUFpQixFQUFFLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQ25GLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7WUFDaEYsQ0FBQztZQUNELDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZGLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1lBQzdFLE1BQU0sV0FBVyxHQUFHLFNBQVMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQzNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM3QixNQUFNLFlBQVksR0FBa0I7Z0JBQ2xDLFdBQVc7Z0JBQ1gsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixNQUFNLEVBQUUsRUFBRTtnQkFDVixNQUFNLEVBQUUsRUFBRTtnQkFDVixTQUFTO2dCQUNULFNBQVMsRUFBRSxTQUFTO2FBQ3JCLENBQUM7WUFDRixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7Z0JBQ25DLElBQUksRUFBRSxTQUFTO2dCQUNmLEdBQUcsRUFBRSxZQUFZO2FBQ00sQ0FBQyxDQUFDO1lBQzNCLE1BQU0sVUFBVSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7WUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDdEMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDO2dCQUNILE1BQU0sT0FBTyxFQUFFLENBQUM7WUFDbEIsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0IsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDaEMsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1lBQ0QsSUFBSSxDQUFDO2dCQUNILGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzNCLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQztvQkFDSCxNQUFNLE9BQU8sRUFBRSxDQUFDO2dCQUNsQixDQUFDO2dCQUFDLE9BQU8sYUFBYSxFQUFFLENBQUM7b0JBQ3ZCLE9BQU8sQ0FBQyxXQUFXLENBQ2pCLGFBQWEsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUN0RSxFQUFFLElBQUksRUFBRSx5Q0FBeUMsRUFBRSxDQUNwRCxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDO1lBRUQsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksdUJBQXVCLEdBQUcsS0FBSyxDQUFDO1lBQ3BDLElBQUksb0JBQXlELENBQUM7WUFDOUQsSUFBSSxtQkFBOEMsQ0FBQztZQUNuRCxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBbUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ3RFLG9CQUFvQixHQUFHLE9BQU8sQ0FBQztnQkFDL0IsbUJBQW1CLEdBQUcsTUFBTSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUFLLElBQTRCLEVBQUU7Z0JBQ3JELElBQUksYUFBNEIsQ0FBQztnQkFDakMsSUFBSSxDQUFDO29CQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDO29CQUNuQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzlCLGFBQWEsR0FBRzt3QkFDZCxXQUFXO3dCQUNYLElBQUksRUFBRSxPQUFPO3dCQUNiLEtBQUssRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLE9BQU87NEJBQzlCLENBQUMsQ0FBQyxTQUFTOzRCQUNYLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLENBQUM7Z0NBQ3JCLENBQUMsQ0FBQyxVQUFVO2dDQUNaLENBQUMsQ0FBQyxRQUFRO3dCQUNkLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7d0JBQ3pCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTt3QkFDckIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRTt3QkFDM0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO3dCQUNyQixTQUFTO3dCQUNULFNBQVMsRUFBRSxVQUFVO3dCQUNyQixVQUFVO3FCQUNYLENBQUM7Z0JBQ0osQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDOUIsYUFBYSxHQUFHO3dCQUNkLFdBQVc7d0JBQ1gsSUFBSSxFQUFFLE9BQU87d0JBQ2IsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVE7d0JBQ3ZELE9BQU8sRUFBRSxhQUFhO3dCQUN0QixRQUFRLEVBQUUsSUFBSTt3QkFDZCxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLElBQUksRUFBRTt3QkFDN0MsTUFBTSxFQUFFOzRCQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTTs0QkFDL0IsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzt5QkFDdkQsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDNUIsU0FBUzt3QkFDVCxTQUFTLEVBQUUsVUFBVTt3QkFDckIsVUFBVTtxQkFDWCxDQUFDO2dCQUNKLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBQ3ZDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ2hDLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ2hDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDdkMsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO29CQUM3RCxNQUFNLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN4RCxJQUFJLGtCQUFrQjt3QkFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQzVELENBQUM7Z0JBQ0QsSUFBSSxDQUFDLHVCQUF1QjtvQkFBRSxNQUFNLE9BQU8sRUFBRSxDQUFDO2dCQUM5QyxhQUFhLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxlQUFlLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RSxPQUFPLGFBQWEsQ0FBQztZQUN2QixDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ0wsV0FBVyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDekMsTUFBTSxNQUFNLEdBQW1CLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDN0UsTUFBTSxpQkFBaUIsR0FBRyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFO2dCQUN0RSxHQUFHLEVBQUUsVUFBVTtnQkFDZixTQUFTLEVBQUUsYUFBYSxDQUFDLFNBQVM7Z0JBQ2xDLFdBQVcsRUFBRSxVQUFVLENBQUMsTUFBTTtnQkFDOUIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO2dCQUN0QyxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDaEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLFNBQVM7d0JBQUUsT0FBTztvQkFDaEQsSUFBSSxNQUFNLEtBQUssUUFBUTt3QkFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7O3dCQUNuRSxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7b0JBQ3BELEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUM3QixJQUFJLENBQUM7d0JBQ0gsTUFBTSxPQUFPLEVBQUUsQ0FBQztvQkFDbEIsQ0FBQztvQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO3dCQUNmLHVCQUF1QixHQUFHLElBQUksQ0FBQzt3QkFDL0IsZ0JBQWdCLEtBQUssS0FBSyxDQUFDO3dCQUMzQixNQUFNLEtBQUssQ0FBQztvQkFDZCxDQUFDO29CQUNELE1BQU0sVUFBVSxDQUFDO3dCQUNmLElBQUksRUFBRSxRQUFRO3dCQUNkLEdBQUcsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDO3dCQUMzQixNQUFNO3dCQUNOLEtBQUs7d0JBQ0wsUUFBUSxFQUFFLEVBQUUsY0FBYztxQkFDM0IsQ0FBQyxDQUFDO2dCQUNMLENBQUM7YUFDRixDQUFDLENBQUM7WUFDSCxLQUFLLGlCQUFpQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3ZFLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM1QixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRTtZQUN6QixNQUFNLEtBQUssQ0FBQztZQUNaLE1BQU0sZ0JBQWdCLEVBQUUsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxLQUFLO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLFdBQVcsSUFBSSxDQUFDLENBQUM7WUFDOUUsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksRUFBRSxLQUFLLElBQUksRUFBRTtZQUNmLE1BQU0sS0FBSyxDQUFDO1lBQ1osTUFBTSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sZUFBZSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxLQUFLLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFO1lBQzNCLE1BQU0sS0FBSyxDQUFDO1lBQ1osTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsS0FBSztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxXQUFXLElBQUksQ0FBQyxDQUFDO1lBQzlFLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTO2dCQUFFLE9BQU87WUFDdEMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsOEJBQThCLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUNwRyxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3RCLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEIsT0FBTyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"author": "Task Venture Capital GmbH",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"name": "@modelprofile.com/flexharness",
|
|
5
|
-
"version": "10.
|
|
5
|
+
"version": "10.19.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"description": "Managed agent sessions with tools, MCP, chat, OCR, documents and browser control through focused subpath imports.",
|
|
8
8
|
"main": "./dist_ts/index.js",
|
|
@@ -68,6 +68,14 @@
|
|
|
68
68
|
"types": "./dist_ts_chat_harness/index.d.ts",
|
|
69
69
|
"import": "./dist_ts_chat_harness/index.js"
|
|
70
70
|
},
|
|
71
|
+
"./chat/harness/server": {
|
|
72
|
+
"types": "./dist_ts_chat_harness_server/index.d.ts",
|
|
73
|
+
"import": "./dist_ts_chat_harness_server/index.js"
|
|
74
|
+
},
|
|
75
|
+
"./chat/harness/typedsocket": {
|
|
76
|
+
"types": "./dist_ts_chat_harness_typedsocket/index.d.ts",
|
|
77
|
+
"import": "./dist_ts_chat_harness_typedsocket/index.js"
|
|
78
|
+
},
|
|
71
79
|
"./stores/nosqldb": {
|
|
72
80
|
"types": "./dist_ts_stores_nosqldb/index.d.ts",
|
|
73
81
|
"import": "./dist_ts_stores_nosqldb/index.js"
|
|
@@ -79,8 +87,8 @@
|
|
|
79
87
|
},
|
|
80
88
|
"dependencies": {
|
|
81
89
|
"@cfworker/json-schema": "^4.1.1",
|
|
82
|
-
"@modelprofile.com/flexharness-agent": "10.
|
|
83
|
-
"@modelprofile.com/flexharness-models": "10.
|
|
90
|
+
"@modelprofile.com/flexharness-agent": "10.19.0",
|
|
91
|
+
"@modelprofile.com/flexharness-models": "10.19.0",
|
|
84
92
|
"@push.rocks/smartrequest": "^5.5.1",
|
|
85
93
|
"ai": "^7.0.111",
|
|
86
94
|
"zod": "^4.6.5"
|
|
@@ -101,7 +109,10 @@
|
|
|
101
109
|
"quickjs-emscripten-core": "^0.32.0",
|
|
102
110
|
"@jitl/quickjs-ng-wasmfile-release-sync": "^0.32.0",
|
|
103
111
|
"amaro": "^1.2.1",
|
|
104
|
-
"@api.global/typedopenapi": "^0.8.0"
|
|
112
|
+
"@api.global/typedopenapi": "^0.8.0",
|
|
113
|
+
"@api.global/typedrequest": "^9.1.0",
|
|
114
|
+
"@api.global/typedrequest-interfaces": "^7.1.0",
|
|
115
|
+
"@api.global/typedsocket": "^9.0.2"
|
|
105
116
|
},
|
|
106
117
|
"peerDependenciesMeta": {
|
|
107
118
|
"@modelcontextprotocol/sdk": {
|
|
@@ -151,6 +162,15 @@
|
|
|
151
162
|
},
|
|
152
163
|
"@api.global/typedopenapi": {
|
|
153
164
|
"optional": true
|
|
165
|
+
},
|
|
166
|
+
"@api.global/typedrequest": {
|
|
167
|
+
"optional": true
|
|
168
|
+
},
|
|
169
|
+
"@api.global/typedrequest-interfaces": {
|
|
170
|
+
"optional": true
|
|
171
|
+
},
|
|
172
|
+
"@api.global/typedsocket": {
|
|
173
|
+
"optional": true
|
|
154
174
|
}
|
|
155
175
|
},
|
|
156
176
|
"engines": {
|
|
@@ -190,6 +210,10 @@
|
|
|
190
210
|
"dist_ts_chat_web",
|
|
191
211
|
"ts_chat_harness",
|
|
192
212
|
"dist_ts_chat_harness",
|
|
213
|
+
"ts_chat_harness_server",
|
|
214
|
+
"dist_ts_chat_harness_server",
|
|
215
|
+
"ts_chat_harness_typedsocket",
|
|
216
|
+
"dist_ts_chat_harness_typedsocket",
|
|
193
217
|
"ts_stores_nosqldb",
|
|
194
218
|
"dist_ts_stores_nosqldb",
|
|
195
219
|
"ts_typedrequest",
|
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/errors.ts
CHANGED
|
@@ -150,6 +150,16 @@ export class FlexHarnessPermissionRejectedError extends FlexHarnessError {
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
export class FlexHarnessToolPermissionDeniedError extends FlexHarnessError {
|
|
154
|
+
public readonly permissionType: string;
|
|
155
|
+
|
|
156
|
+
constructor(permissionType: string) {
|
|
157
|
+
super('FLEX_TOOL_PERMISSION_DENIED', `The tool policy denies "${permissionType}" requests.`);
|
|
158
|
+
this.name = 'FlexHarnessToolPermissionDeniedError';
|
|
159
|
+
this.permissionType = permissionType;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
153
163
|
export class FlexHarnessPermissionStateError extends FlexHarnessError {
|
|
154
164
|
constructor(message: string) {
|
|
155
165
|
super('FLEX_PERMISSION_STATE', message);
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import { FlexHarnessToolPermissionDeniedError } from './errors.js';
|
|
3
|
+
import type { IFlexToolProviderContext } from './interfaces.js';
|
|
4
|
+
import { normalizeJsonValue } from './utils.json.js';
|
|
5
|
+
|
|
6
|
+
/** What a tool permission request of one `type` gets: granted, asked of the session's controller, or refused. */
|
|
7
|
+
export type TFlexToolPermissionDecision = 'allow' | 'ask' | 'deny';
|
|
8
|
+
|
|
9
|
+
export interface IFlexToolPermissionRequesterOptions {
|
|
10
|
+
/** The decision per tool request `type`, such as `{ write: 'allow', shell: 'ask' }`. */
|
|
11
|
+
policy?: Readonly<Record<string, TFlexToolPermissionDecision>>;
|
|
12
|
+
/** The decision for a type the policy does not name. Defaults to `ask`. */
|
|
13
|
+
defaultDecision?: TFlexToolPermissionDecision;
|
|
14
|
+
/**
|
|
15
|
+
* The key an `always` answer is remembered under for the session. Defaults to the request's type
|
|
16
|
+
* and a digest of its metadata, so an approval covers exactly the same request again. Return
|
|
17
|
+
* `undefined` to require an answer for every request.
|
|
18
|
+
*/
|
|
19
|
+
rememberKey?: (request: plugins.IToolPermissionRequest) => string | undefined;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** A tool permission handler, as `IToolExecutionContext.requestPermission` takes it. */
|
|
23
|
+
export type TFlexToolPermissionRequester = (request: plugins.IToolPermissionRequest) => Promise<void>;
|
|
24
|
+
|
|
25
|
+
const defaultRememberKey = (requestArg: plugins.IToolPermissionRequest): string => {
|
|
26
|
+
const digest = plugins.crypto
|
|
27
|
+
.createHash('sha256')
|
|
28
|
+
.update(JSON.stringify(normalizeJsonValue(requestArg.metadata ?? null)))
|
|
29
|
+
.digest('hex')
|
|
30
|
+
.slice(0, 32);
|
|
31
|
+
return `tool:${requestArg.type}:${digest}`;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Connects the permission requests of the `/tools` factories (`write`, `delete`, `shell`, ...) to a
|
|
36
|
+
* FlexHarness run: a request the policy allows passes, one it denies fails the tool call, and every
|
|
37
|
+
* other one becomes a pending FlexHarness permission the session's controller answers.
|
|
38
|
+
*/
|
|
39
|
+
export function createFlexToolPermissionRequester(
|
|
40
|
+
context: Pick<IFlexToolProviderContext<unknown>, 'requestPermission'>,
|
|
41
|
+
options: IFlexToolPermissionRequesterOptions = {},
|
|
42
|
+
): TFlexToolPermissionRequester {
|
|
43
|
+
const policy = options.policy ?? {};
|
|
44
|
+
const defaultDecision = options.defaultDecision ?? 'ask';
|
|
45
|
+
const rememberKeyOf = options.rememberKey ?? defaultRememberKey;
|
|
46
|
+
return async (requestArg) => {
|
|
47
|
+
requestArg.abortSignal?.throwIfAborted();
|
|
48
|
+
const decision = Object.hasOwn(policy, requestArg.type) ? policy[requestArg.type] : defaultDecision;
|
|
49
|
+
if (decision === 'allow') return;
|
|
50
|
+
if (decision === 'deny') throw new FlexHarnessToolPermissionDeniedError(requestArg.type);
|
|
51
|
+
const rememberKey = rememberKeyOf(requestArg);
|
|
52
|
+
await context.requestPermission({
|
|
53
|
+
kind: requestArg.type,
|
|
54
|
+
description: requestArg.title,
|
|
55
|
+
...(requestArg.toolCallId === undefined ? {} : { toolCallId: requestArg.toolCallId }),
|
|
56
|
+
...(rememberKey === undefined ? {} : { rememberKey }),
|
|
57
|
+
...(requestArg.metadata === undefined ? {} : { metadata: normalizeJsonValue(requestArg.metadata) }),
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
}
|
package/ts/index.ts
CHANGED
|
@@ -3,6 +3,12 @@ export * from './classes.stores.js';
|
|
|
3
3
|
export { FlexToolCatalog } from './classes.toolcatalog.js';
|
|
4
4
|
export * from './errors.js';
|
|
5
5
|
export * from './interfaces.js';
|
|
6
|
+
export {
|
|
7
|
+
createFlexToolPermissionRequester,
|
|
8
|
+
type IFlexToolPermissionRequesterOptions,
|
|
9
|
+
type TFlexToolPermissionDecision,
|
|
10
|
+
type TFlexToolPermissionRequester,
|
|
11
|
+
} from './functions.toolpermissions.js';
|
|
6
12
|
export { normalizeJsonValue } from './utils.json.js';
|
|
7
13
|
export {
|
|
8
14
|
assertFlexProjectManagementSnapshot,
|