@dbx-tools/shared-mastra 0.9.99 → 0.9.105
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/README.md +11 -4
- package/index.ts +3 -3
- package/lib/index.d.ts +3 -3
- package/lib/index.js +3 -3
- package/lib/src/routes.d.ts +2 -0
- package/lib/src/routes.js +3 -1
- package/lib/src/wire.d.ts +11 -1
- package/lib/src/wire.js +9 -1
- package/package.json +3 -3
- package/src/routes.ts +2 -0
- package/src/wire.ts +12 -1
package/README.md
CHANGED
|
@@ -2,11 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
Browser-safe contract for the AppKit Mastra plugin.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
selection fields, and Mastra response schemas used by
|
|
5
|
+
Share route constants, headers, embed parsing, feedback schemas, thread
|
|
6
|
+
selection fields, and response schemas between clients, tests, routes, and
|
|
8
7
|
[`@dbx-tools/appkit-mastra`](../../node/appkit-mastra).
|
|
9
8
|
|
|
9
|
+
## Quick Start
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { wire } from "@dbx-tools/shared-mastra";
|
|
13
|
+
|
|
14
|
+
const config = wire.MastraClientConfigSchema.parse(await response.json());
|
|
15
|
+
```
|
|
16
|
+
|
|
10
17
|
Key features:
|
|
11
18
|
|
|
12
19
|
- Route constants for the official AI SDK chat mount and AppKit-Mastra
|
|
@@ -21,7 +28,7 @@ Key features:
|
|
|
21
28
|
- Browser-safe types that let UI packages stay aligned with the server without
|
|
22
29
|
importing Node or Mastra runtime code.
|
|
23
30
|
|
|
24
|
-
##
|
|
31
|
+
## Client Configuration Fields
|
|
25
32
|
|
|
26
33
|
```ts
|
|
27
34
|
import { wire } from "@dbx-tools/shared-mastra";
|
package/index.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
|
|
5
5
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-mastra";
|
|
6
|
-
export const PACKAGE_VERSION = "0.9.
|
|
6
|
+
export const PACKAGE_VERSION = "0.9.105";
|
|
7
7
|
export * as feedback from "./src/feedback.ts";
|
|
8
8
|
export * as markers from "./src/markers.ts";
|
|
9
9
|
export * as override from "./src/override.ts";
|
|
@@ -18,5 +18,5 @@ export { MODEL_OVERRIDE_HEADER, MODEL_OVERRIDE_QUERY, MODEL_OVERRIDE_BODY_FIELDS
|
|
|
18
18
|
export { STALE_MASTRA_RESUME_IDS, STALE_MASTRA_RESUME_STREAM_TEXT } from "./src/resume.ts";
|
|
19
19
|
export { MASTRA_ROUTES } from "./src/routes.ts";
|
|
20
20
|
export { THREAD_ID_HEADER, THREAD_ID_QUERY } from "./src/thread.ts";
|
|
21
|
-
export { MastraClientConfigSchema, DefaultModelResponseSchema, ServingEndpointsResponseSchema, MastraSuggestionsResponseSchema, ChartTypeSchema, ChartResultSchema, ChartSchema, StatementDataSchema, StartedEventSchema, AskGenieDoneEventSchema, MastraGenieErrorEventSchema, SummaryEventSchema, GenieAgentEventSchema, GenieWriterEventSchema, GENIE_PROGRESS_PART_TYPE, GenieProgressPartDataSchema, ToolStatusProgressEventSchema, ToolProgressEventSchema, TOOL_PROGRESS_PART_TYPE, ToolProgressPartDataSchema, GenieDatasetDataSchema, GenieDatasetChartSchema, GenieDatasetSchema, GenieSummaryItemSchema, GenieAgentResultSchema } from "./src/wire.ts";
|
|
22
|
-
export type { MastraClientConfig, DefaultModelResponse, ServingEndpointsResponse, MastraSuggestionsResponse, ChartType, ChartResult, Chart, StatementData, StartedEvent, AskGenieDoneEvent, MastraGenieErrorEvent, SummaryEvent, GenieAgentEvent, GenieWriterEvent, GenieWriterEventType, GenieProgressPartData, ToolStatusProgressEvent, ToolProgressEvent, ToolProgressPartData, GenieDatasetData, GenieDatasetChart, GenieDataset, GenieSummaryItem, GenieSummaryItemType, GenieAgentResult } from "./src/wire.ts";
|
|
21
|
+
export { MastraClientConfigSchema, MastraRunAbortResponseSchema, DefaultModelResponseSchema, ServingEndpointsResponseSchema, MastraSuggestionsResponseSchema, ChartTypeSchema, ChartResultSchema, ChartSchema, StatementDataSchema, StartedEventSchema, AskGenieDoneEventSchema, MastraGenieErrorEventSchema, SummaryEventSchema, GenieAgentEventSchema, GenieWriterEventSchema, GENIE_PROGRESS_PART_TYPE, GenieProgressPartDataSchema, ToolStatusProgressEventSchema, ToolProgressEventSchema, TOOL_PROGRESS_PART_TYPE, ToolProgressPartDataSchema, GenieDatasetDataSchema, GenieDatasetChartSchema, GenieDatasetSchema, GenieSummaryItemSchema, GenieAgentResultSchema } from "./src/wire.ts";
|
|
22
|
+
export type { MastraClientConfig, MastraRunAbortResponse, DefaultModelResponse, ServingEndpointsResponse, MastraSuggestionsResponse, ChartType, ChartResult, Chart, StatementData, StartedEvent, AskGenieDoneEvent, MastraGenieErrorEvent, SummaryEvent, GenieAgentEvent, GenieWriterEvent, GenieWriterEventType, GenieProgressPartData, ToolStatusProgressEvent, ToolProgressEvent, ToolProgressPartData, GenieDatasetData, GenieDatasetChart, GenieDataset, GenieSummaryItem, GenieSummaryItemType, GenieAgentResult } from "./src/wire.ts";
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-mastra";
|
|
2
|
-
export declare const PACKAGE_VERSION = "0.9.
|
|
2
|
+
export declare const PACKAGE_VERSION = "0.9.105";
|
|
3
3
|
export * as feedback from "./src/feedback.ts";
|
|
4
4
|
export * as markers from "./src/markers.ts";
|
|
5
5
|
export * as override from "./src/override.ts";
|
|
@@ -14,5 +14,5 @@ export { MODEL_OVERRIDE_HEADER, MODEL_OVERRIDE_QUERY, MODEL_OVERRIDE_BODY_FIELDS
|
|
|
14
14
|
export { STALE_MASTRA_RESUME_IDS, STALE_MASTRA_RESUME_STREAM_TEXT } from "./src/resume.ts";
|
|
15
15
|
export { MASTRA_ROUTES } from "./src/routes.ts";
|
|
16
16
|
export { THREAD_ID_HEADER, THREAD_ID_QUERY } from "./src/thread.ts";
|
|
17
|
-
export { MastraClientConfigSchema, DefaultModelResponseSchema, ServingEndpointsResponseSchema, MastraSuggestionsResponseSchema, ChartTypeSchema, ChartResultSchema, ChartSchema, StatementDataSchema, StartedEventSchema, AskGenieDoneEventSchema, MastraGenieErrorEventSchema, SummaryEventSchema, GenieAgentEventSchema, GenieWriterEventSchema, GENIE_PROGRESS_PART_TYPE, GenieProgressPartDataSchema, ToolStatusProgressEventSchema, ToolProgressEventSchema, TOOL_PROGRESS_PART_TYPE, ToolProgressPartDataSchema, GenieDatasetDataSchema, GenieDatasetChartSchema, GenieDatasetSchema, GenieSummaryItemSchema, GenieAgentResultSchema } from "./src/wire.ts";
|
|
18
|
-
export type { MastraClientConfig, DefaultModelResponse, ServingEndpointsResponse, MastraSuggestionsResponse, ChartType, ChartResult, Chart, StatementData, StartedEvent, AskGenieDoneEvent, MastraGenieErrorEvent, SummaryEvent, GenieAgentEvent, GenieWriterEvent, GenieWriterEventType, GenieProgressPartData, ToolStatusProgressEvent, ToolProgressEvent, ToolProgressPartData, GenieDatasetData, GenieDatasetChart, GenieDataset, GenieSummaryItem, GenieSummaryItemType, GenieAgentResult } from "./src/wire.ts";
|
|
17
|
+
export { MastraClientConfigSchema, MastraRunAbortResponseSchema, DefaultModelResponseSchema, ServingEndpointsResponseSchema, MastraSuggestionsResponseSchema, ChartTypeSchema, ChartResultSchema, ChartSchema, StatementDataSchema, StartedEventSchema, AskGenieDoneEventSchema, MastraGenieErrorEventSchema, SummaryEventSchema, GenieAgentEventSchema, GenieWriterEventSchema, GENIE_PROGRESS_PART_TYPE, GenieProgressPartDataSchema, ToolStatusProgressEventSchema, ToolProgressEventSchema, TOOL_PROGRESS_PART_TYPE, ToolProgressPartDataSchema, GenieDatasetDataSchema, GenieDatasetChartSchema, GenieDatasetSchema, GenieSummaryItemSchema, GenieAgentResultSchema } from "./src/wire.ts";
|
|
18
|
+
export type { MastraClientConfig, MastraRunAbortResponse, DefaultModelResponse, ServingEndpointsResponse, MastraSuggestionsResponse, ChartType, ChartResult, Chart, StatementData, StartedEvent, AskGenieDoneEvent, MastraGenieErrorEvent, SummaryEvent, GenieAgentEvent, GenieWriterEvent, GenieWriterEventType, GenieProgressPartData, ToolStatusProgressEvent, ToolProgressEvent, ToolProgressPartData, GenieDatasetData, GenieDatasetChart, GenieDataset, GenieSummaryItem, GenieSummaryItemType, GenieAgentResult } from "./src/wire.ts";
|
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Regenerated from the exporting modules in ./src.
|
|
3
3
|
// Hand edits are overwritten on the next watch; this file is read-only.
|
|
4
4
|
export const PACKAGE_IDENTIFIER = "@dbx-tools/shared-mastra";
|
|
5
|
-
export const PACKAGE_VERSION = "0.9.
|
|
5
|
+
export const PACKAGE_VERSION = "0.9.105";
|
|
6
6
|
export * as feedback from "./src/feedback.js";
|
|
7
7
|
export * as markers from "./src/markers.js";
|
|
8
8
|
export * as override from "./src/override.js";
|
|
@@ -15,5 +15,5 @@ export { MODEL_OVERRIDE_HEADER, MODEL_OVERRIDE_QUERY, MODEL_OVERRIDE_BODY_FIELDS
|
|
|
15
15
|
export { STALE_MASTRA_RESUME_IDS, STALE_MASTRA_RESUME_STREAM_TEXT } from "./src/resume.js";
|
|
16
16
|
export { MASTRA_ROUTES } from "./src/routes.js";
|
|
17
17
|
export { THREAD_ID_HEADER, THREAD_ID_QUERY } from "./src/thread.js";
|
|
18
|
-
export { MastraClientConfigSchema, DefaultModelResponseSchema, ServingEndpointsResponseSchema, MastraSuggestionsResponseSchema, ChartTypeSchema, ChartResultSchema, ChartSchema, StatementDataSchema, StartedEventSchema, AskGenieDoneEventSchema, MastraGenieErrorEventSchema, SummaryEventSchema, GenieAgentEventSchema, GenieWriterEventSchema, GENIE_PROGRESS_PART_TYPE, GenieProgressPartDataSchema, ToolStatusProgressEventSchema, ToolProgressEventSchema, TOOL_PROGRESS_PART_TYPE, ToolProgressPartDataSchema, GenieDatasetDataSchema, GenieDatasetChartSchema, GenieDatasetSchema, GenieSummaryItemSchema, GenieAgentResultSchema } from "./src/wire.js";
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
export { MastraClientConfigSchema, MastraRunAbortResponseSchema, DefaultModelResponseSchema, ServingEndpointsResponseSchema, MastraSuggestionsResponseSchema, ChartTypeSchema, ChartResultSchema, ChartSchema, StatementDataSchema, StartedEventSchema, AskGenieDoneEventSchema, MastraGenieErrorEventSchema, SummaryEventSchema, GenieAgentEventSchema, GenieWriterEventSchema, GENIE_PROGRESS_PART_TYPE, GenieProgressPartDataSchema, ToolStatusProgressEventSchema, ToolProgressEventSchema, TOOL_PROGRESS_PART_TYPE, ToolProgressPartDataSchema, GenieDatasetDataSchema, GenieDatasetChartSchema, GenieDatasetSchema, GenieSummaryItemSchema, GenieAgentResultSchema } from "./src/wire.js";
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRywwQkFBMEIsQ0FBQztBQUM3RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxRQUFRLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssUUFBUSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxNQUFNLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxJQUFJLE1BQU0sZUFBZSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSw0QkFBNEIsRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR3BPLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDRCQUE0QixFQUFFLDBCQUEwQixFQUFFLDhCQUE4QixFQUFFLCtCQUErQixFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsMkJBQTJCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsc0JBQXNCLEVBQUUsd0JBQXdCLEVBQUUsMkJBQTJCLEVBQUUsNkJBQTZCLEVBQUUsdUJBQXVCLEVBQUUsdUJBQXVCLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1tYXN0cmFcIjtcbmV4cG9ydCBjb25zdCBQQUNLQUdFX1ZFUlNJT04gPSBcIjAuOS4xMDVcIjtcbmV4cG9ydCAqIGFzIGZlZWRiYWNrIGZyb20gXCIuL3NyYy9mZWVkYmFjay50c1wiO1xuZXhwb3J0ICogYXMgbWFya2VycyBmcm9tIFwiLi9zcmMvbWFya2Vycy50c1wiO1xuZXhwb3J0ICogYXMgb3ZlcnJpZGUgZnJvbSBcIi4vc3JjL292ZXJyaWRlLnRzXCI7XG5leHBvcnQgKiBhcyByZXN1bWUgZnJvbSBcIi4vc3JjL3Jlc3VtZS50c1wiO1xuZXhwb3J0ICogYXMgcm91dGVzIGZyb20gXCIuL3NyYy9yb3V0ZXMudHNcIjtcbmV4cG9ydCAqIGFzIHRocmVhZCBmcm9tIFwiLi9zcmMvdGhyZWFkLnRzXCI7XG5leHBvcnQgKiBhcyB3aXJlIGZyb20gXCIuL3NyYy93aXJlLnRzXCI7XG5leHBvcnQgeyBNTEZMT1dfVFJBQ0VfSURfSEVBREVSLCBERUZBVUxUX0ZFRURCQUNLX05BTUUsIERFRkFVTFRfQ09NTUVOVF9OQU1FLCBNYXN0cmFGZWVkYmFja1ZhbHVlU2NoZW1hLCBNYXN0cmFGZWVkYmFja1JlcXVlc3RTY2hlbWEsIE1hc3RyYUZlZWRiYWNrUmVzcG9uc2VTY2hlbWEsIE1hc3RyYU1sZmxvd0V4cGVyaW1lbnRSZXNwb25zZVNjaGVtYSB9IGZyb20gXCIuL3NyYy9mZWVkYmFjay50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXN0cmFGZWVkYmFja1ZhbHVlLCBNYXN0cmFGZWVkYmFja1JlcXVlc3QsIE1hc3RyYUZlZWRiYWNrUmVzcG9uc2UsIE1hc3RyYU1sZmxvd0V4cGVyaW1lbnRSZXNwb25zZSB9IGZyb20gXCIuL3NyYy9mZWVkYmFjay50c1wiO1xuZXhwb3J0IHR5cGUgeyBNYXJrZXJUeXBlLCBQYXJzZWRNYXJrZXIgfSBmcm9tIFwiLi9zcmMvbWFya2Vycy50c1wiO1xuZXhwb3J0IHsgTU9ERUxfT1ZFUlJJREVfSEVBREVSLCBNT0RFTF9PVkVSUklERV9RVUVSWSwgTU9ERUxfT1ZFUlJJREVfQk9EWV9GSUVMRFMgfSBmcm9tIFwiLi9zcmMvb3ZlcnJpZGUudHNcIjtcbmV4cG9ydCB7IFNUQUxFX01BU1RSQV9SRVNVTUVfSURTLCBTVEFMRV9NQVNUUkFfUkVTVU1FX1NUUkVBTV9URVhUIH0gZnJvbSBcIi4vc3JjL3Jlc3VtZS50c1wiO1xuZXhwb3J0IHsgTUFTVFJBX1JPVVRFUyB9IGZyb20gXCIuL3NyYy9yb3V0ZXMudHNcIjtcbmV4cG9ydCB7IFRIUkVBRF9JRF9IRUFERVIsIFRIUkVBRF9JRF9RVUVSWSB9IGZyb20gXCIuL3NyYy90aHJlYWQudHNcIjtcbmV4cG9ydCB7IE1hc3RyYUNsaWVudENvbmZpZ1NjaGVtYSwgTWFzdHJhUnVuQWJvcnRSZXNwb25zZVNjaGVtYSwgRGVmYXVsdE1vZGVsUmVzcG9uc2VTY2hlbWEsIFNlcnZpbmdFbmRwb2ludHNSZXNwb25zZVNjaGVtYSwgTWFzdHJhU3VnZ2VzdGlvbnNSZXNwb25zZVNjaGVtYSwgQ2hhcnRUeXBlU2NoZW1hLCBDaGFydFJlc3VsdFNjaGVtYSwgQ2hhcnRTY2hlbWEsIFN0YXRlbWVudERhdGFTY2hlbWEsIFN0YXJ0ZWRFdmVudFNjaGVtYSwgQXNrR2VuaWVEb25lRXZlbnRTY2hlbWEsIE1hc3RyYUdlbmllRXJyb3JFdmVudFNjaGVtYSwgU3VtbWFyeUV2ZW50U2NoZW1hLCBHZW5pZUFnZW50RXZlbnRTY2hlbWEsIEdlbmllV3JpdGVyRXZlbnRTY2hlbWEsIEdFTklFX1BST0dSRVNTX1BBUlRfVFlQRSwgR2VuaWVQcm9ncmVzc1BhcnREYXRhU2NoZW1hLCBUb29sU3RhdHVzUHJvZ3Jlc3NFdmVudFNjaGVtYSwgVG9vbFByb2dyZXNzRXZlbnRTY2hlbWEsIFRPT0xfUFJPR1JFU1NfUEFSVF9UWVBFLCBUb29sUHJvZ3Jlc3NQYXJ0RGF0YVNjaGVtYSwgR2VuaWVEYXRhc2V0RGF0YVNjaGVtYSwgR2VuaWVEYXRhc2V0Q2hhcnRTY2hlbWEsIEdlbmllRGF0YXNldFNjaGVtYSwgR2VuaWVTdW1tYXJ5SXRlbVNjaGVtYSwgR2VuaWVBZ2VudFJlc3VsdFNjaGVtYSB9IGZyb20gXCIuL3NyYy93aXJlLnRzXCI7XG5leHBvcnQgdHlwZSB7IE1hc3RyYUNsaWVudENvbmZpZywgTWFzdHJhUnVuQWJvcnRSZXNwb25zZSwgRGVmYXVsdE1vZGVsUmVzcG9uc2UsIFNlcnZpbmdFbmRwb2ludHNSZXNwb25zZSwgTWFzdHJhU3VnZ2VzdGlvbnNSZXNwb25zZSwgQ2hhcnRUeXBlLCBDaGFydFJlc3VsdCwgQ2hhcnQsIFN0YXRlbWVudERhdGEsIFN0YXJ0ZWRFdmVudCwgQXNrR2VuaWVEb25lRXZlbnQsIE1hc3RyYUdlbmllRXJyb3JFdmVudCwgU3VtbWFyeUV2ZW50LCBHZW5pZUFnZW50RXZlbnQsIEdlbmllV3JpdGVyRXZlbnQsIEdlbmllV3JpdGVyRXZlbnRUeXBlLCBHZW5pZVByb2dyZXNzUGFydERhdGEsIFRvb2xTdGF0dXNQcm9ncmVzc0V2ZW50LCBUb29sUHJvZ3Jlc3NFdmVudCwgVG9vbFByb2dyZXNzUGFydERhdGEsIEdlbmllRGF0YXNldERhdGEsIEdlbmllRGF0YXNldENoYXJ0LCBHZW5pZURhdGFzZXQsIEdlbmllU3VtbWFyeUl0ZW0sIEdlbmllU3VtbWFyeUl0ZW1UeXBlLCBHZW5pZUFnZW50UmVzdWx0IH0gZnJvbSBcIi4vc3JjL3dpcmUudHNcIjtcbiJdfQ==
|
package/lib/src/routes.d.ts
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
*/
|
|
20
20
|
export declare const MASTRA_ROUTES: {
|
|
21
21
|
readonly chat: "/chat";
|
|
22
|
+
readonly runs: "/runs";
|
|
23
|
+
readonly abort: "/abort";
|
|
22
24
|
readonly feedback: "/route/feedback";
|
|
23
25
|
readonly mlflowExperiment: "/route/mlflow-experiment";
|
|
24
26
|
readonly suggestions: "/suggestions";
|
package/lib/src/routes.js
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
*/
|
|
20
20
|
export const MASTRA_ROUTES = {
|
|
21
21
|
chat: "/chat",
|
|
22
|
+
runs: "/runs",
|
|
23
|
+
abort: "/abort",
|
|
22
24
|
feedback: "/route/feedback",
|
|
23
25
|
mlflowExperiment: "/route/mlflow-experiment",
|
|
24
26
|
suggestions: "/suggestions",
|
|
@@ -33,4 +35,4 @@ export const MASTRA_ROUTES = {
|
|
|
33
35
|
defaultModel: "/default-model",
|
|
34
36
|
embed: "/embed",
|
|
35
37
|
};
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLElBQUksRUFBRSxPQUFPO0lBQ2IsSUFBSSxFQUFFLE9BQU87SUFDYixLQUFLLEVBQUUsUUFBUTtJQUNmLFFBQVEsRUFBRSxpQkFBaUI7SUFDM0IsZ0JBQWdCLEVBQUUsMEJBQTBCO0lBQzVDLFdBQVcsRUFBRSxjQUFjO0lBQzNCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLDBFQUEwRTtJQUMxRSx1RUFBdUU7SUFDdkUsd0VBQXdFO0lBQ3hFLDRFQUE0RTtJQUM1RSxzRUFBc0U7SUFDdEUsMEVBQTBFO0lBQzFFLGlDQUFpQztJQUNqQyxZQUFZLEVBQUUsZ0JBQWdCO0lBQzlCLEtBQUssRUFBRSxRQUFRO0NBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUm91dGUgc2VnbWVudHMgdGhlIE1hc3RyYSBwbHVnaW4gbW91bnRzIHVuZGVyIGl0cyBgYmFzZVBhdGhgXG4gKiAoYC9hcGkvPHBsdWdpbi1uYW1lPmApLiBTaGFyZWQgYmV0d2VlbiB0aGUgc2VydmVyJ3Mgcm91dGVcbiAqIHJlZ2lzdHJhdGlvbiBhbmQgdGhlIGJyb3dzZXIgY2xpZW50IChgTWFzdHJhUGx1Z2luQ2xpZW50YCBpblxuICogYEBkYngtdG9vbHMvdWktbWFzdHJhYCkgc28gYSByZWxheW91dCAtIG9yIGEgcmVuYW1lIG9mIGFcbiAqIHN1Yi1wYXRoIC0gaXMgYSBvbmUtbGluZSBjaGFuZ2UgaGVyZSBhbmQgdGhlIHR3byBjYW4gbmV2ZXIgZHJpZnQuXG4gKlxuICogYGNoYXRgIGlzIHRoZSBvZmZpY2lhbCBNYXN0cmEgQUkgU0RLIFVJIHN0cmVhbSByb3V0ZSBhbmQgYWx3YXlzIGNhcnJpZXMgYW5cbiAqIGFnZW50IGlkLiBUaGUgYHN1Z2dlc3Rpb25zYCBhbmQgYGRlZmF1bHRNb2RlbGAgc2VnbWVudHMgdGFrZSBhbiBvcHRpb25hbFxuICogYC86YWdlbnRJZGAgc3VmZml4OyB0aGUgZGVmYXVsdCBhZ2VudCB1c2VzIHRoZSBiYXJlIHNlZ21lbnQuIE1lbW9yeSBoaXN0b3J5XG4gKiBhbmQgdGhyZWFkIG1hbmFnZW1lbnQgcmlkZSBNYXN0cmEncyBuYXRpdmUgbWVtb3J5IHJvdXRlcy5cbiAqXG4gKiBgZmVlZGJhY2tgIGlzIHRoZSBwbHVnaW4tb3duZWQgUE9TVCBlbmRwb2ludCB0aGUgY2hhdCBVSSBjYWxscyB0b1xuICogbG9nIGEgdGh1bWJzIC8gY29tbWVudCBhc3Nlc3NtZW50IGFnYWluc3QgYSB0dXJuJ3MgTUxmbG93IHRyYWNlIChzZWVcbiAqIGBmZWVkYmFjay50c2ApOyBpdCBpcyBub3QgYWdlbnQtc2NvcGVkIChhIHRyYWNlIGlkIGlkZW50aWZpZXMgdGhlXG4gKiB0dXJuIG9uIGl0cyBvd24pLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuZXhwb3J0IGNvbnN0IE1BU1RSQV9ST1VURVMgPSB7XG4gIGNoYXQ6IFwiL2NoYXRcIixcbiAgcnVuczogXCIvcnVuc1wiLFxuICBhYm9ydDogXCIvYWJvcnRcIixcbiAgZmVlZGJhY2s6IFwiL3JvdXRlL2ZlZWRiYWNrXCIsXG4gIG1sZmxvd0V4cGVyaW1lbnQ6IFwiL3JvdXRlL21sZmxvdy1leHBlcmltZW50XCIsXG4gIHN1Z2dlc3Rpb25zOiBcIi9zdWdnZXN0aW9uc1wiLFxuICBtb2RlbHM6IFwiL21vZGVsc1wiLFxuICAvLyBUaGUgc3RhdGljIHNlcnZpbmctZW5kcG9pbnQgYW4gYWdlbnQgZmFsbHMgYmFjayB0byB3aGVuIHRoZSBjbGllbnQgcGluc1xuICAvLyBubyBtb2RlbC4gQWdlbnQtc2NvcGVkIGxpa2UgYGhpc3RvcnlgL2B0aHJlYWRzYC9gc3VnZ2VzdGlvbnNgIHZpYSBhblxuICAvLyBvcHRpb25hbCBgLzphZ2VudElkYCBzdWZmaXg7IHRoZSBkZWZhdWx0IGFnZW50IHVzZXMgdGhlIGJhcmUgc2VnbWVudC5cbiAgLy8gUmV0dXJucyBgeyBhZ2VudElkLCBtb2RlbCwgZGlzcGxheU5hbWUgfWAgd2hlcmUgYG1vZGVsYCBhbmQgYGRpc3BsYXlOYW1lYFxuICAvLyBhcmUgbnVsbCB3aGVuIHRoZSBhZ2VudCByZXNvbHZlcyBpdHMgbW9kZWwgZHluYW1pY2FsbHkgYXQgY2FsbCB0aW1lXG4gIC8vIChub3RoaW5nIHN0YXRpYyB0byBhZHZlcnRpc2UpLiBMZXRzIHRoZSBwaWNrZXIgbGFiZWwgaXRzIGRlZmF1bHQgb3B0aW9uXG4gIC8vIHdpdGggdGhlIGh1bWFuaXplZCBtb2RlbCBuYW1lLlxuICBkZWZhdWx0TW9kZWw6IFwiL2RlZmF1bHQtbW9kZWxcIixcbiAgZW1iZWQ6IFwiL2VtYmVkXCIsXG59IGFzIGNvbnN0O1xuIl19
|
package/lib/src/wire.d.ts
CHANGED
|
@@ -61,6 +61,9 @@ import { z } from "zod";
|
|
|
61
61
|
* hides chat when the OBO token is absent should show it anyway. Defaults
|
|
62
62
|
* to `false` (the OBO / `"user"` identity mode), so an older server without
|
|
63
63
|
* the field keeps the OBO-gated behavior.
|
|
64
|
+
* - `backgroundTurns`: whether turns use Mastra evented durable execution
|
|
65
|
+
* and can be observed after the initiating HTTP stream disconnects.
|
|
66
|
+
* Defaults to `false` for compatibility with older servers.
|
|
64
67
|
*/
|
|
65
68
|
export declare const MastraClientConfigSchema: z.ZodObject<{
|
|
66
69
|
basePath: z.ZodString;
|
|
@@ -68,9 +71,16 @@ export declare const MastraClientConfigSchema: z.ZodObject<{
|
|
|
68
71
|
agents: z.ZodArray<z.ZodString>;
|
|
69
72
|
feedbackEnabled: z.ZodDefault<z.ZodBoolean>;
|
|
70
73
|
chatAlwaysAvailable: z.ZodDefault<z.ZodBoolean>;
|
|
74
|
+
backgroundTurns: z.ZodDefault<z.ZodBoolean>;
|
|
71
75
|
}, z.core.$strip>;
|
|
72
76
|
/** Browser-safe Mastra plugin descriptor used to construct route and stream clients. */
|
|
73
|
-
export type MastraClientConfig = z.
|
|
77
|
+
export type MastraClientConfig = z.input<typeof MastraClientConfigSchema>;
|
|
78
|
+
/** Response returned after requesting cancellation of one durable agent run. */
|
|
79
|
+
export declare const MastraRunAbortResponseSchema: z.ZodObject<{
|
|
80
|
+
aborted: z.ZodBoolean;
|
|
81
|
+
}, z.core.$strip>;
|
|
82
|
+
/** Result of an explicit durable run cancellation request. */
|
|
83
|
+
export type MastraRunAbortResponse = z.infer<typeof MastraRunAbortResponseSchema>;
|
|
74
84
|
/**
|
|
75
85
|
* JSON payload returned by `GET ${basePath}/default-model[?agentId=]`. The
|
|
76
86
|
* static default model the agent resolves to when the client pins no model,
|
package/lib/src/wire.js
CHANGED
|
@@ -64,6 +64,9 @@ import { z } from "zod";
|
|
|
64
64
|
* hides chat when the OBO token is absent should show it anyway. Defaults
|
|
65
65
|
* to `false` (the OBO / `"user"` identity mode), so an older server without
|
|
66
66
|
* the field keeps the OBO-gated behavior.
|
|
67
|
+
* - `backgroundTurns`: whether turns use Mastra evented durable execution
|
|
68
|
+
* and can be observed after the initiating HTTP stream disconnects.
|
|
69
|
+
* Defaults to `false` for compatibility with older servers.
|
|
67
70
|
*/
|
|
68
71
|
export const MastraClientConfigSchema = z.object({
|
|
69
72
|
basePath: z.string(),
|
|
@@ -71,6 +74,11 @@ export const MastraClientConfigSchema = z.object({
|
|
|
71
74
|
agents: z.array(z.string()),
|
|
72
75
|
feedbackEnabled: z.boolean().default(false),
|
|
73
76
|
chatAlwaysAvailable: z.boolean().default(false),
|
|
77
|
+
backgroundTurns: z.boolean().default(false),
|
|
78
|
+
});
|
|
79
|
+
/** Response returned after requesting cancellation of one durable agent run. */
|
|
80
|
+
export const MastraRunAbortResponseSchema = z.object({
|
|
81
|
+
aborted: z.boolean(),
|
|
74
82
|
});
|
|
75
83
|
/**
|
|
76
84
|
* JSON payload returned by `GET ${basePath}/default-model[?agentId=]`. The
|
|
@@ -463,4 +471,4 @@ export const GenieAgentResultSchema = z.object({
|
|
|
463
471
|
summary: z.array(GenieSummaryItemSchema),
|
|
464
472
|
error: z.string().optional(),
|
|
465
473
|
});
|
|
466
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBMkMsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qiw2RUFBNkU7QUFFN0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0MsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDeEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLGVBQWUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMzQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztDQUNoRCxDQUFDLENBQUM7QUFJSDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxPQUFPLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNuQyxDQUFDLENBQUM7QUFJSCwrRUFBK0U7QUFFL0U7Ozs7OztHQU1H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RztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDbkIsY0FBYyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDckMsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUM7SUFDeEMsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDN0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXaXJlLWZvcm1hdCBjb250cmFjdCBmb3IgYEBkYngtdG9vbHMvYXBwa2l0LW1hc3RyYWA6IHRoZVxuICogZGVwZW5kZW5jeS1mcmVlIHpvZCBzY2hlbWFzICsgaW5mZXJyZWQgdHlwZXMgZXZlcnkgY29uc3VtZXIgKHRoZVxuICogUmVhY3QgY2xpZW50LCBicm93c2VyIGJ1bmRsZXMsIHRoZSBzZXJ2ZXIgcGx1Z2luKSBzaGFyZXMuXG4gKlxuICogS2VwdCBmcmVlIG9mIGBwZ2AsIGBmYXN0ZW1iZWRgLCBhbmQgdGhlIE1hc3RyYSBydW50aW1lIHNvIHRoZVxuICogY2xpZW50IGNhbiBpbXBvcnQgdGhlc2Ugc2NoZW1hcyB3aXRob3V0IGRyYWdnaW5nIGluIHNlcnZlci1vbmx5XG4gKiBkZXBlbmRlbmNpZXMuIFRocmVlIGxheWVycyBsaXZlIGhlcmU6XG4gKlxuICogICAxLiBUaGUgZGVzY3JpcHRvciBwdWJsaXNoZWQgYnkgYE1hc3RyYVBsdWdpbi5jbGllbnRDb25maWcoKWBcbiAqICAgICAgcGx1cyB0aGUgUkVTVCBwYXlsb2FkcyBpdHMgcm91dGVzIHJldHVybiAobW9kZWxzLCBoaXN0b3J5LFxuICogICAgICBzdWdnZXN0aW9ucywgY2hhcnQgZW1iZWRzLCBzdGF0ZW1lbnQgZGF0YSkuIFRoZSBzZXJ2ZXJcbiAqICAgICAgZGVyaXZlcyBldmVyeSBwYXRoIGZyb20gdGhlIHBsdWdpbiBtb3VudCBhbmQgcHVibGlzaGVzIHRoZVxuICogICAgICByZXNvbHZlZCBwYXRocyBzbyB0aGUgY2xpZW50IGNvbXBvc2VzIFVSTHMgd2l0aG91dFxuICogICAgICBoYXJkLWNvZGluZyBgL2FwaS9tYXN0cmFgIC0gcmVuYW1lIHRoZSBwbHVnaW4gYW5kIHRoZSBjbGllbnRcbiAqICAgICAga2VlcHMgd29ya2luZy5cbiAqICAgMi4gVGhlIGBjdHgud3JpdGVyYCBldmVudCB2b2NhYnVsYXJ5OiB0aGUgd2lyZS1kZXJpdmVkXG4gKiAgICAgIHtAbGluayBHZW5pZUNoYXRFdmVudH1zIGZyb20gYEBkYngtdG9vbHMvZ2VuaWUtc2hhcmVkYCBwbHVzXG4gKiAgICAgIHRoZSBNYXN0cmEtb25seSBhZ2VudCBsaWZlY3ljbGUgZXZlbnRzLCB1bmlmaWVkIGFzXG4gKiAgICAgIHtAbGluayBHZW5pZVdyaXRlckV2ZW50fSBzbyBzdWJzY3JpYmVycyBuYXJyb3cgYm90aCBoYWx2ZXNcbiAqICAgICAgd2l0aCBhIHNpbmdsZSBgc3dpdGNoIChldmVudC50eXBlKWAuXG4gKiAgIDMuIFRoZSBHZW5pZSBhZ2VudCdzIHdvcmtmbG93IG91dHB1dCBzaGFwZXNcbiAqICAgICAgKHtAbGluayBHZW5pZUFnZW50UmVzdWx0fSBhbmQgaXRzIHN1bW1hcnkgLyBkYXRhc2V0IGl0ZW1zKS5cbiAqXG4gKiBUaGUgcm91dGUgc2VnbWVudHMgbGl2ZSBpbiB0aGUgc2libGluZyBgcm91dGVzLnRzYFxuICogKHtAbGluayBNQVNUUkFfUk9VVEVTfSkgYW5kIHRoZSBlbWJlZC1tYXJrZXIgZ3JhbW1hciBpbiBgbWFya2Vycy50c2AsXG4gKiBzbyB0aGlzIGZpbGUgc3RheXMgcHVyZWx5IGRlY2xhcmF0aXZlIChzY2hlbWFzICsgaW5mZXJyZWQgdHlwZXMpLlxuICogVGhlIGJyb3dzZXIgY2xpZW50IHRoYXQgZHJpdmVzIHRoZXNlIHJvdXRlcyAoYE1hc3RyYVBsdWdpbkNsaWVudGApXG4gKiBzaGlwcyBmcm9tIGBAZGJ4LXRvb2xzL3VpLW1hc3RyYWAuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGdlbmllTW9kZWwsIHR5cGUgR2VuaWVDaGF0RXZlbnQsIHR5cGUgTWVzc2FnZVN0YXR1cyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5pZVwiO1xuaW1wb3J0IHsgbW9kZWwgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtbW9kZWxcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gY2xpZW50IGNvbmZpZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogSlNPTi1zYWZlIGRlc2NyaXB0b3IgcHVibGlzaGVkIGJ5IHRoZSBNYXN0cmEgcGx1Z2luJ3NcbiAqIGBjbGllbnRDb25maWcoKWAuXG4gKlxuICogT25seSB0aGUgaXJyZWR1Y2libGUgZGF0YSBsaXZlcyBoZXJlOiBgYmFzZVBhdGhgICh0aGUgb25lIHBhdGggdGhlXG4gKiBjbGllbnQgY2FuJ3Qgb3RoZXJ3aXNlIGtub3csIHNpbmNlIGl0IGVuY29kZXMgdGhlIHBsdWdpbidzIG1vdW50XG4gKiBuYW1lKSBwbHVzIHRoZSBydW50aW1lIGFnZW50IHJvc3Rlci4gRXZlcnkgY29uY3JldGUgZW5kcG9pbnQgVVJMIGlzXG4gKiBkZXJpdmVkIGZyb20gYGJhc2VQYXRoYCBieSB0aGUgYnJvd3NlciBjbGllbnRcbiAqIChgTWFzdHJhUGx1Z2luQ2xpZW50YCkgdXNpbmcgdGhlIHNoYXJlZCB7QGxpbmsgTUFTVFJBX1JPVVRFU31cbiAqIHNlZ21lbnRzLCBzbyB0aGVyZSdzIG5vdGhpbmcgdG8gcHVibGlzaCBwZXItcm91dGUuXG4gKlxuICogRmllbGRzOlxuICogICAtIGBiYXNlUGF0aGA6IHBsdWdpbiBtb3VudCBwYXRoLiBBbHdheXMgYC9hcGkvPHBsdWdpbk5hbWU+YC4gRmVlZFxuICogICAgIGl0IHRvIGBuZXcgTWFzdHJhUGx1Z2luQ2xpZW50KGNvbmZpZylgIChmcm9tXG4gKiAgICAgYEBkYngtdG9vbHMvdWktbWFzdHJhYCkgdG8gZ2V0IGEgdHlwZWQgY2xpZW50IG92ZXIgZXZlcnlcbiAqICAgICByb3V0ZSBwbHVzIHRoZSBzdGFuZGFyZCBhZ2VudCBzdHJlYW0uXG4gKiAgIC0gYGRlZmF1bHRBZ2VudGA6IGFnZW50IGlkIHRoZSBjbGllbnQgY29udmVyc2VzIHdpdGggd2hlbiBpdFxuICogICAgIGRvZXNuJ3QgbmFtZSBvbmUuXG4gKiAgIC0gYGFnZW50c2A6IGV2ZXJ5IHJlZ2lzdGVyZWQgYWdlbnQgaWQgaW4gcmVnaXN0cmF0aW9uIG9yZGVyLlxuICogICAtIGBmZWVkYmFja0VuYWJsZWRgOiB3aGV0aGVyIHRoZSBzZXJ2ZXIgY2FuIGxvZyB1c2VyIGZlZWRiYWNrIHRvXG4gKiAgICAgTUxmbG93IChNTGZsb3cgdHJhY2luZyBpcyBjb25maWd1cmVkKS4gRHJpdmVzIHdoZXRoZXIgdGhlIGNoYXQgVUlcbiAqICAgICBzdXJmYWNlcyB0aHVtYnMgLyBjb21tZW50IGNvbnRyb2xzLiBEZWZhdWx0cyB0byBgZmFsc2VgIHNvIGFcbiAqICAgICBjb25maWcgcHVibGlzaGVkIGJ5IGFuIG9sZGVyIHNlcnZlciAod2l0aG91dCB0aGUgZmllbGQpIHBhcnNlc1xuICogICAgIGNsZWFubHkgdG8gXCJvZmZcIi5cbiAqICAgLSBgY2hhdEFsd2F5c0F2YWlsYWJsZWA6IHdoZXRoZXIgdGhlIGFnZW50cycgRGF0YWJyaWNrcyBjYWxscyBydW4gYXMgdGhlXG4gKiAgICAgYXBwIHNlcnZpY2UgcHJpbmNpcGFsIHJhdGhlciB0aGFuIG9uLWJlaGFsZi1vZiB0aGUgc2lnbmVkLWluIHVzZXIuIFdoZW5cbiAqICAgICBgdHJ1ZWAgdGhlIGNoYXQgd29ya3MgZm9yIGFueSBjYWxsZXIgd2hvIGNhbiBvcGVuIHRoZSBhcHAsIHNvIGEgVUkgdGhhdFxuICogICAgIGhpZGVzIGNoYXQgd2hlbiB0aGUgT0JPIHRva2VuIGlzIGFic2VudCBzaG91bGQgc2hvdyBpdCBhbnl3YXkuIERlZmF1bHRzXG4gKiAgICAgdG8gYGZhbHNlYCAodGhlIE9CTyAvIGBcInVzZXJcImAgaWRlbnRpdHkgbW9kZSksIHNvIGFuIG9sZGVyIHNlcnZlciB3aXRob3V0XG4gKiAgICAgdGhlIGZpZWxkIGtlZXBzIHRoZSBPQk8tZ2F0ZWQgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBjb25zdCBNYXN0cmFDbGllbnRDb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGJhc2VQYXRoOiB6LnN0cmluZygpLFxuICBkZWZhdWx0QWdlbnQ6IHouc3RyaW5nKCksXG4gIGFnZW50czogei5hcnJheSh6LnN0cmluZygpKSxcbiAgZmVlZGJhY2tFbmFibGVkOiB6LmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgY2hhdEFsd2F5c0F2YWlsYWJsZTogei5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG59KTtcbi8qKiBCcm93c2VyLXNhZmUgTWFzdHJhIHBsdWdpbiBkZXNjcmlwdG9yIHVzZWQgdG8gY29uc3RydWN0IHJvdXRlIGFuZCBzdHJlYW0gY2xpZW50cy4gKi9cbmV4cG9ydCB0eXBlIE1hc3RyYUNsaWVudENvbmZpZyA9IHouaW5mZXI8dHlwZW9mIE1hc3RyYUNsaWVudENvbmZpZ1NjaGVtYT47XG5cbi8qKlxuICogSlNPTiBwYXlsb2FkIHJldHVybmVkIGJ5IGBHRVQgJHtiYXNlUGF0aH0vZGVmYXVsdC1tb2RlbFs/YWdlbnRJZD1dYC4gVGhlXG4gKiBzdGF0aWMgZGVmYXVsdCBtb2RlbCB0aGUgYWdlbnQgcmVzb2x2ZXMgdG8gd2hlbiB0aGUgY2xpZW50IHBpbnMgbm8gbW9kZWwsXG4gKiBhcyBib3RoIHRoZSByYXcgc2VydmluZy1lbmRwb2ludCBgbW9kZWxgIGlkIGFuZCBhIGBkaXNwbGF5TmFtZWAgKHRoZVxuICogaHVtYW5pemVkIGxhYmVsIHRoZSBwaWNrZXIgc2hvd3MpLiBCb3RoIGFyZSBgbnVsbGAgd2hlbiB0aGUgYWdlbnQgZGVjaWRlc1xuICogaXRzIG1vZGVsIGR5bmFtaWNhbGx5IGF0IGNhbGwgdGltZSAobm90aGluZyBzdGF0aWMgdG8gYWR2ZXJ0aXNlKS4gTGV0cyB0aGVcbiAqIHBpY2tlciBsYWJlbCBpdHMgZGVmYXVsdCBvcHRpb24gV0lUSE9VVCB3YWl0aW5nIG9uIHRoZSBgL21vZGVsc2AgY2F0YWxvZ3VlLFxuICogc28gaXQgbmV2ZXIgZmxhc2hlcyBhIHJhdyBpZCBvbiBsb2FkLiBLZXB0IG9mZiB0aGUgc3RhdGljIGJvb3RzdHJhcFxuICogYGNsaWVudENvbmZpZ2Agb24gcHVycG9zZTogaXQgaXMgcGVyLWFnZW50IGFuZCBjYW4gYmUgZHluYW1pYywgc28gaXQgaXNcbiAqIGZldGNoZWQgbGlrZSBgL21vZGVsc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0TW9kZWxSZXNwb25zZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgYWdlbnRJZDogei5zdHJpbmcoKSxcbiAgbW9kZWw6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbn0pO1xuLyoqIFJlc3BvbnNlIGlkZW50aWZ5aW5nIHRoZSBtb2RlbCBjdXJyZW50bHkgc2VsZWN0ZWQgYXMgdGhlIHBsdWdpbiBkZWZhdWx0LiAqL1xuZXhwb3J0IHR5cGUgRGVmYXVsdE1vZGVsUmVzcG9uc2UgPSB6LmluZmVyPHR5cGVvZiBEZWZhdWx0TW9kZWxSZXNwb25zZVNjaGVtYT47XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gbW9kZWwgY2F0YWxvZ3VlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBKU09OIHBheWxvYWQgcmV0dXJuZWQgYnkgYEdFVCAke2Jhc2VQYXRofS9tb2RlbHNgLiBXcmFwcyB0aGUgc2hhcmVkXG4gKiB7QGxpbmsgbW9kZWwuU2VydmluZ0VuZHBvaW50U3VtbWFyeVNjaGVtYX0gKHJlLWV4cG9ydGVkIGZyb21cbiAqIGBAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbGApIHNvIHRoZSBjYXRhbG9ndWVcbiAqIGRlc2NyaXB0b3IgaGFzIGEgc2luZ2xlIGRlZmluaXRpb24gdGhlIGNsaWVudCwgc2VydmVyLCBhbmQgdGhlXG4gKiBzdGFuZGFsb25lIGBAZGJ4LXRvb2xzL21vZGVsYCB0b29sa2l0IGFsbCBhZ3JlZSBvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNlcnZpbmdFbmRwb2ludHNSZXNwb25zZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgZW5kcG9pbnRzOiB6LmFycmF5KG1vZGVsLlNlcnZpbmdFbmRwb2ludFN1bW1hcnlTY2hlbWEpLFxufSk7XG4vKiogQXZhaWxhYmxlIERhdGFicmlja3Mgc2VydmluZyBlbmRwb2ludHMgcmV0dXJuZWQgYnkgdGhlIE1hc3RyYSBtb2RlbCByb3V0ZS4gKi9cbmV4cG9ydCB0eXBlIFNlcnZpbmdFbmRwb2ludHNSZXNwb25zZSA9IHouaW5mZXI8dHlwZW9mIFNlcnZpbmdFbmRwb2ludHNSZXNwb25zZVNjaGVtYT47XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBzdWdnZXN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBKU09OIHBheWxvYWQgcmV0dXJuZWQgYnkgYEdFVCAke2Jhc2VQYXRofS9zdWdnZXN0aW9uc2AuXG4gKlxuICogQ2FycmllcyB0aGUgY3VyYXRlZCBzdGFydGVyIHF1ZXN0aW9ucyBmb3IgYW4gYWdlbnQncyBHZW5pZSBzcGFjZSAtXG4gKiB0aGUgYHNhbXBsZV9xdWVzdGlvbnNgIGFuIGF1dGhvciBjb25maWd1cmVkIG9uIHRoZSBzcGFjZSwgc3VyZmFjZWRcbiAqIGFzIG9uZS10YXAgcHJvbXB0cyBvbiB0aGUgY2hhdCdzIGVtcHR5IHN0YXRlLiBgcXVlc3Rpb25zYCBpcyBlbXB0eVxuICogd2hlbiB0aGUgYWdlbnQgaGFzIG5vIEdlbmllIHNwYWNlIChvciB0aGUgc3BhY2UgZGVmaW5lcyBub25lKSwgc29cbiAqIHRoZSBjbGllbnQgcmVuZGVycyBub3RoaW5nIGluIHRoYXQgY2FzZSByYXRoZXIgdGhhbiBmYWxsaW5nIGJhY2sgdG9cbiAqIGJ1aWx0LWluIGV4YW1wbGUgcHJvbXB0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1hc3RyYVN1Z2dlc3Rpb25zUmVzcG9uc2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHF1ZXN0aW9uczogei5hcnJheSh6LnN0cmluZygpKSxcbn0pO1xuLyoqIEZvbGxvdy11cCBwcm9tcHRzIHN1Z2dlc3RlZCBmb3IgdGhlIGN1cnJlbnQgYWdlbnQgYW5kIHRocmVhZCBjb250ZXh0LiAqL1xuZXhwb3J0IHR5cGUgTWFzdHJhU3VnZ2VzdGlvbnNSZXNwb25zZSA9IHouaW5mZXI8dHlwZW9mIE1hc3RyYVN1Z2dlc3Rpb25zUmVzcG9uc2VTY2hlbWE+O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gY2hhcnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEFsbG93ZWQgY2hhcnQgdHlwZXMgdGhlIHBsYW5uZXIgY2FuIHBpY2suIERlZmluZWQgYXMgYVxuICogZGlzY3JpbWluYXRlZCBsaXRlcmFsIHVuaW9uIHNvIGVhY2ggdmFyaWFudCBjYXJyaWVzIGl0cyBvd25cbiAqIGAuZGVzY3JpYmUoKWAgY2xhdXNlIC0gdGhlIHNlcnZlci1zaWRlIHBsYW5uZXIncyBwcm9tcHRcbiAqIGZvcm1hdHRlciB3YWxrcyBgLm9wdGlvbnNgIHRvIGlubGluZSB0aGUgZGVzY3JpcHRpb25zIGludG8gdGhlXG4gKiBtb2RlbCBpbnN0cnVjdGlvbnMsIGtlZXBpbmcgdGhlIHByb21wdCBpbiBsb2NrLXN0ZXAgd2l0aCB0aGVcbiAqIHNjaGVtYSBieSBjb25zdHJ1Y3Rpb24uIFRoZSBydW50aW1lIHR5cGUgaXMgdGhlIHBsYWluIHN0cmluZ1xuICogdW5pb24gKGBcImJhclwiIHwgXCJsaW5lXCIgfCAuLi5gKSwgc28gY29uc3VtZXJzIHRoYXQganVzdCBuZWVkIGFcbiAqIGRpc2NyaW1pbmF0b3IgdmFsdWUgYmVoYXZlIHRoZSBzYW1lIGFzIGlmIGl0IHdlcmUgYVxuICogYHouZW51bShbLi4uXSlgLlxuICovXG5leHBvcnQgY29uc3QgQ2hhcnRUeXBlU2NoZW1hID0gelxuICAudW5pb24oW1xuICAgIHpcbiAgICAgIC5saXRlcmFsKFwiYmFyXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwiY29tcGFyaW5nIGEgbnVtZXJpYyB2YWx1ZSBhY3Jvc3MgYSBzbWFsbC9tZWRpdW0gc2V0IG9mIGRpc2NyZXRlIGNhdGVnb3JpZXMgKHRvcC1OLCByYW5raW5nLCBncm91cC1ieSlcIixcbiAgICAgICksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJob3Jpem9udGFsQmFyXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwic2FtZSBhcyBiYXIgYnV0IGNhdGVnb3JpZXMgb24gdGhlIHktYXhpcyAtIHByZWZlciB3aGVuIGNhdGVnb3J5IGxhYmVscyBhcmUgbG9uZyBvciB0aGVyZSBhcmUgbWFueSBjYXRlZ29yaWVzXCIsXG4gICAgICApLFxuICAgIHpcbiAgICAgIC5saXRlcmFsKFwibGluZVwiKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIm9yZGVyZWQtYXhpcyB0cmVuZCAodGltZSBzZXJpZXMsIHNlcXVlbmNlLCByYW5rKSB3aGVyZSB0aGUgeC1heGlzIGhhcyBuYXR1cmFsIG9yZGVyXCIsXG4gICAgICApLFxuICAgIHoubGl0ZXJhbChcImFyZWFcIikuZGVzY3JpYmUoXCJzdGFja2VkLXRyZW5kIGVtcGhhc2lzIC0gY3VtdWxhdGl2ZSBvciBjb21wb3NpdGlvbiBvdmVyIHRpbWVcIiksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJjb21ib1wiKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIm1peGVkIGJhciArIGxpbmUgKG9yIGFyZWEpIHNlcmllcyBvbiBzaGFyZWQgY2F0ZWdvcmllcyAtIGUuZy4gdm9sdW1lIGJhcnMgd2l0aCBhIHJhdGUvdHJlbmQgbGluZTsgc2V0IGVhY2ggc2VyaWVzJyBgdHlwZWBcIixcbiAgICAgICksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJ3YXRlcmZhbGxcIilcbiAgICAgIC5kZXNjcmliZShcbiAgICAgICAgXCJicmlkZ2UgLyBydW5uaW5nLXRvdGFsIG9mIHNpZ25lZCBzdGVwIHZhbHVlcyAoc3RhcnQgLT4gZGVsdGFzIC0+IGVuZCkgYWNyb3NzIG9yZGVyZWQgY2F0ZWdvcmllc1wiLFxuICAgICAgKSxcbiAgICB6XG4gICAgICAubGl0ZXJhbChcInNjYXR0ZXJcIilcbiAgICAgIC5kZXNjcmliZShcInR3by1udW1lcmljLWF4aXMgY29ycmVsYXRpb25zIGJldHdlZW4gZmllbGRzIChlLmcuIHByaWNlIHZzLiBxdWFudGl0eSlcIiksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJoZWF0bWFwXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwibWF0cml4IGludGVuc2l0eSBhY3Jvc3MgdHdvIGNhdGVnb3J5IGF4ZXMgLSB4IGxhYmVscyBpbiBgY2F0ZWdvcmllc2AsIG9uZSBzZXJpZXMgcGVyIG1hdHJpeCByb3cgaG9sZGluZyB0aGF0IHJvdydzIHZhbHVlc1wiLFxuICAgICAgKSxcbiAgICB6XG4gICAgICAubGl0ZXJhbChcInJhZGFyXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwibXVsdGktZGltZW5zaW9uIGNvbXBhcmlzb24gYWNyb3NzIGEgZml4ZWQgc2V0IG9mIGF4ZXMgKG9uZSBpbmRpY2F0b3IgcGVyIGNhdGVnb3J5LCBvbmUgb3IgbW9yZSBzZXJpZXMgb2YgdmFsdWVzKVwiLFxuICAgICAgKSxcbiAgICB6LmxpdGVyYWwoXCJwaWVcIikuZGVzY3JpYmUoXCJwYXJ0cy1vZi1hLXdob2xlIHdoZW4gMi03IGNhdGVnb3JpZXMgc3VtIHRvIGEgbWVhbmluZ2Z1bCB0b3RhbFwiKSxcbiAgICB6XG4gICAgICAubGl0ZXJhbChcImZ1bm5lbFwiKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIm9yZGVyZWQgc3RhZ2VzIHRoYXQgc2hyaW5rIChjb252ZXJzaW9uLCBwaXBlbGluZSwgYXR0cml0aW9uKSAtIGB7bmFtZSwgdmFsdWV9YCBzbGljZXNcIixcbiAgICAgICksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJ0cmVlbWFwXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwicGFydHMtb2YtYS13aG9sZSBhcyBuZXN0ZWQgcmVjdGFuZ2xlcyB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gfjcgY2F0ZWdvcmllcyBvciBhIGZsYXQgaGllcmFyY2h5IG9mIGB7bmFtZSwgdmFsdWV9YCBzbGljZXNcIixcbiAgICAgICksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJjdXN0b21cIilcbiAgICAgIC5kZXNjcmliZShcbiAgICAgICAgXCJlc2NhcGUgaGF0Y2ggZm9yIGEgY2hhcnQgbm9uZSBvZiB0aGUgYWJvdmUgY2FuIGV4cHJlc3MgKHNhbmtleSwgYm94cGxvdCwgY2FuZGxlc3RpY2ssIHN1bmJ1cnN0LCBnYXVnZSwgbmV0d29yayBncmFwaCwgY2FsZW5kYXIsIHBhcmFsbGVsLCAuLi4pIC0gaGFuZC13cml0ZSB0aGUgY29tcGxldGUgRWNoYXJ0cyBvcHRpb24gaW5zdGVhZCBvZiBhIHBsYW5cIixcbiAgICAgICksXG4gIF0pXG4gIC5kZXNjcmliZShcIlRoZSBjaGFydCBzaGFwZSB0aGF0IGJlc3QgbWF0Y2hlcyB0aGUgZGF0YSBhbmQgaW50ZW50LlwiKTtcbi8qKiBTdXBwb3J0ZWQgY2hhcnQgZmFtaWx5IHNlbGVjdGVkIGJ5IHRoZSBzZXJ2ZXItc2lkZSBjaGFydCBwbGFubmVyLiAqL1xuZXhwb3J0IHR5cGUgQ2hhcnRUeXBlID0gei5pbmZlcjx0eXBlb2YgQ2hhcnRUeXBlU2NoZW1hPjtcblxuLyoqXG4gKiBSZXNvbHZlZCBjaGFydCBwbGFuIGEgc2V0dGxlZCBjaGFydCBlbnRyeSBjYXJyaWVzIG9uIGl0c1xuICogYHJlc3VsdGAgZmllbGQuIGBvcHRpb25gIGlzIHRoZSBmdWxsIEVjaGFydHMgc3BlYzsgcGFzc1xuICogc3RyYWlnaHQgaW50byBgPFJlYWN0RUNoYXJ0cyBvcHRpb249ey4uLn0+YC5cbiAqL1xuZXhwb3J0IGNvbnN0IENoYXJ0UmVzdWx0U2NoZW1hID0gei5vYmplY3Qoe1xuICBjaGFydFR5cGU6IENoYXJ0VHlwZVNjaGVtYSxcbiAgb3B0aW9uOiB6XG4gICAgLnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSlcbiAgICAuZGVzY3JpYmUoXG4gICAgICBcIkZ1bGx5LXJlc29sdmVkIEVjaGFydHMgYEVDaGFydHNPcHRpb25gIEpTT04gZm9yIHRoaXMgY2hhcnQgLSBkcm9wIGRpcmVjdGx5IGludG8gYW4gRWNoYXJ0cyBpbnN0YW5jZSAob3IgYDxSZWFjdEVDaGFydHMgb3B0aW9uPXsuLi59IC8+YCkgd2l0aG91dCBmdXJ0aGVyIHByb2Nlc3NpbmcuIEluY2x1ZGVzIHRpdGxlIC8gdG9vbHRpcCAvIGxlZ2VuZCAvIGdyaWQgLyBheGlzIC8gc2VyaWVzIGRlZmF1bHRzIGFscmVhZHkgbWVyZ2VkIGluLlwiLFxuICAgICksXG59KTtcbi8qKiBSZW5kZXItcmVhZHkgY2hhcnQgcGxhbiBzdG9yZWQgYmVoaW5kIGEgY2hhcnQgZW1iZWQgaWRlbnRpZmllci4gKi9cbmV4cG9ydCB0eXBlIENoYXJ0UmVzdWx0ID0gei5pbmZlcjx0eXBlb2YgQ2hhcnRSZXN1bHRTY2hlbWE+O1xuXG4vKipcbiAqIFdpcmUtZm9ybWF0IEFORCBzZXJ2ZXItc2lkZSBjYWNoZSBzaGFwZSBmb3IgYSBjaGFydCBlbnRyeS5cbiAqIFRocmVlIGxpZmVjeWNsZSBzdGF0ZXMgaW5mZXJyZWQgZnJvbSB0aGUgdHdvIG9wdGlvbmFsIGZpZWxkc1xuICogKG5vIGRpc2NyaW1pbmF0b3IgbmVlZGVkKTpcbiAqXG4gKiAgIC0gYHJlc3VsdGAgc2V0ICAgICAgICAgICAgICAgICAgICAtPiBjaGFydCBpcyByZWFkeSB0byByZW5kZXJcbiAqICAgLSBgZXJyb3JgIHNldCAgICAgICAgICAgICAgICAgICAgIC0+IHBsYW5uZXIgLyBkYXRhIGZldGNoIGZhaWxlZFxuICogICAtIGJvdGggYHJlc3VsdGAgYW5kIGBlcnJvcmAgdW5zZXQgLT4gc3RpbGwgcHJvY2Vzc2luZ1xuICpcbiAqIGBvcHRpb25gIGlzIHR5cGVkIGFzIGEgZ2VuZXJpYyByZWNvcmQgc28gdGhpcyBwYWNrYWdlIHN0YXlzXG4gKiBkZXBlbmRlbmN5LWZyZWUgb2YgYGVjaGFydHNgLiBUaGUgc2VydmVyIChgY2hhcnQudHNgKSBpbXBvcnRzXG4gKiB0aGlzIHNjaGVtYSBkaXJlY3RseTsgdGhlIGRlbW8gY2xpZW50IHBvbGxzIHRoZVxuICogYC9lbWJlZC9jaGFydC86aWRgIHJvdXRlIGFuZCBwYXJzZXMgcmVzcG9uc2VzIGFnYWluc3QgaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBDaGFydFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY2hhcnRJZDogelxuICAgIC5zdHJpbmcoKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiT3BhcXVlIGlkIG1pbnRlZCBieSB0aGUgY2hhcnQgc3Vic3lzdGVtLiBFbWJlZCB2ZXJiYXRpbSBhcyBgW2NoYXJ0OjxjaGFydElkPl1gIGluIGFnZW50IHByb3NlOyB0aGUgaG9zdCBVSSByZXNvbHZlcyBpdCBhZ2FpbnN0IHRoaXMgY2FjaGUgZW50cnkuXCIsXG4gICAgKSxcbiAgZXJyb3I6IHpcbiAgICAuc3RyaW5nKClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiRXJyb3IgbWVzc2FnZSB3aGVuIHRoZSBjaGFydCBmYWlsZWQgKGRhdGEgZmV0Y2ggZXJyb3IsIHBsYW5uZXIgZXJyb3IsIGVtcHR5IGRhdGFzZXQpLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgcmVzdWx0YDsgYWJzZW50IG9uIHN1Y2Nlc3MgYW5kIHdoaWxlIHByb2Nlc3NpbmcuXCIsXG4gICAgKSxcbiAgcmVzdWx0OiBDaGFydFJlc3VsdFNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFxuICAgIFwiUmVzb2x2ZWQgY2hhcnQgcGxhbi4gQWJzZW50IHdoaWxlIHByb2Nlc3NpbmcgYW5kIHdoZW4gdGhlIHJ1biBlcnJvcmVkLlwiLFxuICApLFxufSk7XG4vKiogUG9sbGFibGUgY2hhcnQtY2FjaGUgZW50cnkgcmVwcmVzZW50aW5nIHBlbmRpbmcsIHN1Y2Nlc3NmdWwsIG9yIGZhaWxlZCBwbGFubmluZy4gKi9cbmV4cG9ydCB0eXBlIENoYXJ0ID0gei5pbmZlcjx0eXBlb2YgQ2hhcnRTY2hlbWE+O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHN0YXRlbWVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFdpcmUtZm9ybWF0IHBheWxvYWQgcmV0dXJuZWQgYnkgYEdFVCAke2Jhc2VQYXRofS9lbWJlZC9kYXRhLzppZGAuXG4gKlxuICogTWlycm9ycyB0aGUgYWdlbnQtc2lkZSBgZ2V0X3N0YXRlbWVudGAgdG9vbCdzIG91dHB1dCBzbyB0aGVcbiAqIGhvc3QgVUkgYW5kIHRoZSBMTE0gc2VlIHRoZSBleGFjdCBzYW1lIHNoYXBlIGZvciB0aGUgc2FtZVxuICogc3RhdGVtZW50OyB0aGUgcm91dGUgaXMgd2hhdCByZXNvbHZlcyBgW2RhdGE6PHN0YXRlbWVudF9pZD5dYFxuICogbWFya2VycyB0aGUgYWdlbnQgZW1iZWRzIGluIHByb3NlLlxuICpcbiAqIEZpZWxkczpcbiAqICAgLSBgY29sdW1uc2A6IGNvbHVtbiBuYW1lcyBpbiBkZWNsYXJhdGlvbiBvcmRlci5cbiAqICAgLSBgcm93c2A6IHJvdyByZWNvcmRzIGtleWVkIGJ5IGNvbHVtbiBuYW1lLiBDZWxsIHZhbHVlcyBhcmVcbiAqICAgICBlaXRoZXIgY29lcmNlZCBudW1iZXJzIG9yIHRoZSBvcmlnaW5hbCBzdHJpbmdzIChHZW5pZSAvXG4gKiAgICAgU3RhdGVtZW50IEV4ZWN1dGlvbiByZXR1cm5zIGV2ZXJ5IGNlbGwgYXMgYHN0cmluZyB8IG51bGxgO1xuICogICAgIG51bWVyaWMtbG9va2luZyBjZWxscyBhcmUgY29lcmNlZCBzZXJ2ZXItc2lkZSBzbyB0aGUgVUlcbiAqICAgICBjYW4gZm9ybWF0IHdpdGggYHRhYnVsYXItbnVtc2Agd2l0aG91dCByZS1wYXJzaW5nKS5cbiAqICAgLSBgcm93Q291bnRgOiB0b3RhbCByb3cgY291bnQgdXBzdHJlYW0gKGluZGVwZW5kZW50IG9mIHRoZVxuICogICAgIGBsaW1pdGAgY2FwKS4gQ29tcGFyZSBhZ2FpbnN0IGByb3dzLmxlbmd0aGAgdG8gZGV0ZWN0XG4gKiAgICAgdHJ1bmNhdGlvbiAtIGB0cnVuY2F0ZWRgIGlzIHRoZSBwcmVjb21wdXRlZCBmbGFnLlxuICogICAtIGB0cnVuY2F0ZWRgOiBgdHJ1ZWAgd2hlbiB0aGUgc2VydmVyIGNsaXBwZWQgcm93cyB0byBob25vclxuICogICAgIHRoZSByb3V0ZSdzIHJvdyBjYXA7IHRoZSBVSSBzaG91bGQgc3VyZmFjZSBhIFwic2hvd2luZyBOIG9mXG4gKiAgICAgTSByb3dzXCIgYWZmb3JkYW5jZSBpbiB0aGF0IGNhc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBTdGF0ZW1lbnREYXRhU2NoZW1hID0gei5vYmplY3Qoe1xuICBjb2x1bW5zOiB6LmFycmF5KHouc3RyaW5nKCkpLFxuICByb3dzOiB6LmFycmF5KHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKSksXG4gIHJvd0NvdW50OiB6Lm51bWJlcigpLFxuICB0cnVuY2F0ZWQ6IHouYm9vbGVhbigpLFxufSk7XG4vKiogVGFidWxhciBzdGF0ZW1lbnQgcGF5bG9hZCByZXNvbHZlZCBmcm9tIGEgYFtkYXRhOjxzdGF0ZW1lbnRfaWQ+XWAgZW1iZWQgbWFya2VyLiAqL1xuZXhwb3J0IHR5cGUgU3RhdGVtZW50RGF0YSA9IHouaW5mZXI8dHlwZW9mIFN0YXRlbWVudERhdGFTY2hlbWE+O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tIG1hc3RyYS1vbmx5IGdlbmllLWFnZW50IGV2ZW50cyAtLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogTWFzdHJhLW9ubHkgbGlmZWN5Y2xlIGV2ZW50OiB0aGUgR2VuaWUgdG9vbCBpbnZvY2F0aW9uIHN0YXJ0ZWQuXG4gKiBFbWl0dGVkIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGNhbGxpbmcgYWdlbnQgaW52b2tlcyB0aGUgR2VuaWVcbiAqIHRvb2wsIGJlZm9yZSBhbnkgaW5uZXIgYWdlbnQgLyB3aXJlIGFjdGl2aXR5LCBzbyB0aGUgVUkgY2FuXG4gKiBwb3AgYSBcIlRoaW5raW5nLi4uXCIgcGlsbCB0aGUgaW5zdGFudCB0aGUgbW9kZWwgZGVjaWRlcyB0b1xuICogZGVsZWdhdGUuIGBjb252ZXJzYXRpb25JZGAgLyBgbWVzc2FnZUlkYCBhcmUgYWJzZW50IG9uIHRoaXNcbiAqIGZpcnN0IGVtaXQgKG5vIEdlbmllIHJvdW5kLXRyaXAgeWV0KS4gRmllbGQgbmFtZXMgYXJlXG4gKiBjYW1lbENhc2UgKHZzIHRoZSBzbmFrZV9jYXNlIHdpcmUgZXZlbnRzKSB0byBtaXJyb3IgdGhlXG4gKiBHZW5pZSBhZ2VudCdzIG93biBpbnRlcm5hbCBkYXRhIHBsdW1iaW5nLlxuICovXG5leHBvcnQgY29uc3QgU3RhcnRlZEV2ZW50U2NoZW1hID0gei5vYmplY3Qoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJzdGFydGVkXCIpLFxuICBzcGFjZUlkOiB6LnN0cmluZygpLFxuICBjb252ZXJzYXRpb25JZDogelxuICAgIC5zdHJpbmcoKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKFwiRXhpc3RpbmcgR2VuaWUgY29udmVyc2F0aW9uIGlkIGZvciBhIGZvbGxvdy11cCB0dXJuLiBBYnNlbnQgb24gdGhlIGZpcnN0IHR1cm4uXCIpLFxuICBtZXNzYWdlSWQ6IHpcbiAgICAuc3RyaW5nKClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZShcIkdlbmllIG1lc3NhZ2UgaWQgb25jZSB0aGUgZmlyc3Qgd2lyZSBtZXNzYWdlIGV2ZW50IGhhcyBhcnJpdmVkLlwiKSxcbiAgY29udGVudDogei5zdHJpbmcoKS5kZXNjcmliZShcIlF1ZXN0aW9uIHRoZSBHZW5pZSBhZ2VudCBzZW50IHRvIEdlbmllLlwiKSxcbn0pO1xuLyoqIEltbWVkaWF0ZSBsaWZlY3ljbGUgZXZlbnQgZW1pdHRlZCB3aGVuIGFuIGBhc2tfZ2VuaWVgIGludm9jYXRpb24gYmVnaW5zLiAqL1xuZXhwb3J0IHR5cGUgU3RhcnRlZEV2ZW50ID0gei5pbmZlcjx0eXBlb2YgU3RhcnRlZEV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBNYXN0cmEtb25seSBsaWZlY3ljbGUgZXZlbnQ6IG9uZSBgYXNrX2dlbmllYCBpbnZvY2F0aW9uXG4gKiBmaW5pc2hlZC4gQ2FycmllcyB0aGUgaHlkcmF0ZWQgYHN0YXRlbWVudElkc2AgKHJvd3MgYXJlIGZldGNoZWRcbiAqIHZpYSBgZ2V0U3RhdGVtZW50YCBzZXBhcmF0ZWx5KSBhbmQgR2VuaWUncyBmaW5hbCBwcm9zZSBhbnN3ZXJcbiAqIHNvIHRoZSBVSSBjYW4gbW92ZSBmcm9tIFwidGhpbmtpbmdcIiB0byBcImFuc3dlcmVkXCIgd2l0aG91dFxuICogd2FpdGluZyBmb3IgdGhlIEdlbmllIGFnZW50J3Mgd2hvbGUgcmVhc29uaW5nIGxvb3AgdG8gZW5kLlxuICovXG5leHBvcnQgY29uc3QgQXNrR2VuaWVEb25lRXZlbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcImFza19nZW5pZV9kb25lXCIpLFxuICBzcGFjZUlkOiB6LnN0cmluZygpLFxuICBjb252ZXJzYXRpb25JZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBtZXNzYWdlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYW5zd2VyOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJHZW5pZSdzIG5hdHVyYWwtbGFuZ3VhZ2UgYW5zd2VyIGZvciB0aGUgdHVybi5cIiksXG4gIHN0YXRlbWVudElkczogelxuICAgIC5hcnJheSh6LnN0cmluZygpKVxuICAgIC5kZXNjcmliZShcIlN0YXRlbWVudCBpZHMgZm9yIG5vbi1lbXB0eSByZXN1bHQgc2V0cyBwcm9kdWNlZCBieSB0aGlzIHR1cm4uXCIpLFxuICBzdGF0dXM6IHpcbiAgICAuY3VzdG9tPE1lc3NhZ2VTdGF0dXM+KCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKVxuICAgIC5kZXNjcmliZShcIlRlcm1pbmFsIEdlbmllIHdpcmUgc3RhdHVzIG1pcnJvcmVkIGZyb20gdGhlIHNvdXJjZSByZXN1bHQgZXZlbnQuXCIpLFxufSk7XG4vKiogQ29tcGxldGlvbiBldmVudCBmb3Igb25lIGBhc2tfZ2VuaWVgIGludm9jYXRpb24sIGluY2x1ZGluZyBpdHMgdGVybWluYWwgc3RhdHVzLiAqL1xuZXhwb3J0IHR5cGUgQXNrR2VuaWVEb25lRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBBc2tHZW5pZURvbmVFdmVudFNjaGVtYT47XG5cbi8qKlxuICogTWFzdHJhLW9ubHkgZXJyb3IgZXZlbnQ6IHRlcm1pbmFsIEdlbmllIGFnZW50IC8gdHJhbnNwb3J0XG4gKiBlcnJvci4gR2VuaWUncyBvd24gYEZBSUxFRGAgLyBgQ0FOQ0VMTEVEYCBjb21lIHRocm91Z2ggdGhlXG4gKiB3aXJlJ3MgYHJlc3VsdGAgZXZlbnQgLSB0aGlzIHZhcmlhbnQgaXMgZm9yIGZhaWx1cmVzIHRoZSB3aXJlXG4gKiBjYW4ndCByZXByZXNlbnQgKG5ldHdvcmssIEdlbmllIGFnZW50IGNyYXNoLCBwbGFubmVyIGVycm9yLFxuICogZXRjLikgcGx1cyBhIFVJLWZyaWVuZGx5IG1pcnJvciBvZiBgcmVzdWx0YCB3aGVuIHRoZSBzdGF0dXMgaXNcbiAqIG5vbi1gQ09NUExFVEVEYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1hc3RyYUdlbmllRXJyb3JFdmVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5saXRlcmFsKFwiZXJyb3JcIiksXG4gIHNwYWNlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgY29udmVyc2F0aW9uSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbWVzc2FnZUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGVycm9yOiB6LnN0cmluZygpLFxufSk7XG4vKiogTWFzdHJhLXNpZGUgZmFpbHVyZSBldmVudCBmb3IgZXJyb3JzIG91dHNpZGUgR2VuaWUncyBub3JtYWwgdGVybWluYWwgcmVzdWx0LiAqL1xuZXhwb3J0IHR5cGUgTWFzdHJhR2VuaWVFcnJvckV2ZW50ID0gei5pbmZlcjx0eXBlb2YgTWFzdHJhR2VuaWVFcnJvckV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBNYXN0cmEtb25seSBsaWZlY3ljbGUgZXZlbnQ6IHRoZSBpbm5lciBHZW5pZSBhZ2VudCdzXG4gKiBzdHJ1Y3R1cmVkLW91dHB1dCBjb2VyY2lvbiBoYXMgbGFuZGVkLiBGaXJlcyBvbmNlIHBlciBHZW5pZVxuICogdG9vbCBpbnZvY2F0aW9uLCBBRlRFUiBgYWdlbnQuZ2VuZXJhdGUoLi4uKWAgY29tcGxldGVzIChpLmUuXG4gKiB0aGUgaW5uZXIgbG9vcCArIE1hc3RyYSdzIHN0cnVjdHVyaW5nIHBhc3MgaGF2ZSBib3RoXG4gKiBmaW5pc2hlZCkgYW5kIEJFRk9SRSB0aGUgd3JhcHBlciBoeWRyYXRlcyBlYWNoIGBkYXRhYCBpdGVtXG4gKiB3aXRoIGEgY2hhcnQuIFNpZ25hbHMgdG8gdGhlIGhvc3QgVUkgdGhhdCB0aGUgYWdlbnQgaGFzXG4gKiBzdG9wcGVkIHJlYXNvbmluZyBhbmQgaXMgbW92aW5nIGludG8gY2hhcnQgZ2VuZXJhdGlvbi5cbiAqXG4gKiBUaGUgc3RydWN0dXJpbmcgcGFzcyBpdHNlbGYgaXMgb3BhcXVlIChpdCBydW5zIGluc2lkZVxuICogTWFzdHJhJ3MgYGFnZW50LmdlbmVyYXRlKC4uLilgIHRvZ2V0aGVyIHdpdGggdGhlIHRvb2wgbG9vcClcbiAqIHNvIHRoaXMgaXMgdGhlIGVhcmxpZXN0IGhvb2sgd2UgY2FuIG9mZmVyOyB3ZSBjYW4ndCBmaXJlIGFcbiAqIFwic3VtbWFyeSBzdGFydGVkXCIgZXZlbnQgdGhlIHdheSB3ZSBmaXJlIGBzdGFydGVkYC5cbiAqL1xuZXhwb3J0IGNvbnN0IFN1bW1hcnlFdmVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5saXRlcmFsKFwic3VtbWFyeVwiKSxcbiAgc3BhY2VJZDogei5zdHJpbmcoKSxcbiAgaXRlbXM6IHoubnVtYmVyKCkuaW50KCkubm9ubmVnYXRpdmUoKS5kZXNjcmliZShcIlRvdGFsIGl0ZW1zIGluIHRoZSBhZ2VudCdzIHN0cnVjdHVyZWQgc3VtbWFyeS5cIiksXG4gIHRleHRJdGVtczogei5udW1iZXIoKS5pbnQoKS5ub25uZWdhdGl2ZSgpLmRlc2NyaWJlKFwiVGV4dCBhbmQgcHJvc2UgaXRlbXMgaW4gdGhlIHN1bW1hcnkuXCIpLFxuICBkYXRhSXRlbXM6IHpcbiAgICAubnVtYmVyKClcbiAgICAuaW50KClcbiAgICAubm9ubmVnYXRpdmUoKVxuICAgIC5kZXNjcmliZShcIkRhdGEgaXRlbXMgdGhlIHdyYXBwZXIgd2lsbCBoeWRyYXRlIGludG8gY2hhcnRzLlwiKSxcbn0pO1xuLyoqIExpZmVjeWNsZSBldmVudCBlbWl0dGVkIGJlZm9yZSBzdW1tYXJ5IGRhdGEgaXRlbXMgYXJlIGh5ZHJhdGVkIGludG8gY2hhcnRzLiAqL1xuZXhwb3J0IHR5cGUgU3VtbWFyeUV2ZW50ID0gei5pbmZlcjx0eXBlb2YgU3VtbWFyeUV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBNYXN0cmEtb25seSBldmVudCB1bmlvbi4gRWFjaCB2YXJpYW50IHVzZXMgdGhlIHNhbWUgZmxhdFxuICogYHt0eXBlLCAuLi5maWVsZHN9YCBzaGFwZSBhcyB7QGxpbmsgR2VuaWVDaGF0RXZlbnR9IHNvXG4gKiBzdWJzY3JpYmVycyB1bmlvbiBib3RoIHdpdGggYSBzaW5nbGUgYHN3aXRjaCAoZXZlbnQudHlwZSlgLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVBZ2VudEV2ZW50U2NoZW1hID0gei5kaXNjcmltaW5hdGVkVW5pb24oXCJ0eXBlXCIsIFtcbiAgU3RhcnRlZEV2ZW50U2NoZW1hLFxuICBBc2tHZW5pZURvbmVFdmVudFNjaGVtYSxcbiAgTWFzdHJhR2VuaWVFcnJvckV2ZW50U2NoZW1hLFxuICBTdW1tYXJ5RXZlbnRTY2hlbWEsXG5dKTtcbi8qKiBNYXN0cmEtb3duZWQgbGlmZWN5Y2xlIGV2ZW50cyBsYXllcmVkIG9uIHRvcCBvZiBHZW5pZSdzIHdpcmUgZXZlbnQgc3RyZWFtLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVBZ2VudEV2ZW50ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVBZ2VudEV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBUaGUgdW5pZmllZCB3cml0ZXItZXZlbnQgdm9jYWJ1bGFyeSBzdWJzY3JpYmVycyBzZWUgb25cbiAqIGBjdHgud3JpdGVyYDogdGhlIHdpcmUtZGVyaXZlZCB7QGxpbmsgR2VuaWVDaGF0RXZlbnR9IHVuaW9uXG4gKiAqKnBsdXMqKiBNYXN0cmEtb25seSBldmVudHMgZnJvbSB7QGxpbmsgR2VuaWVBZ2VudEV2ZW50fS4gRWFjaFxuICogdmFyaWFudCBpcyBhIGZsYXQgYHt0eXBlLCAuLi5maWVsZHN9YCBvYmplY3Q7IGNvbnN1bWVycyBuYXJyb3dcbiAqIG9uIGB0eXBlYCBhbmQgcmVhZCBmaWVsZHMgaW5saW5lIC0gdGhlcmUgaXMgbm8gcGF5bG9hZCB3cmFwcGVyXG4gKiBhbmQgbm8gd3JpdGVyLWJvdW5kYXJ5IHRyYW5zbGF0b3IuXG4gKlxuICogQ29tcG9zZWQgdmlhIGB6LnVuaW9uYCAobm90IGB6LmRpc2NyaW1pbmF0ZWRVbmlvbmApIGJlY2F1c2VcbiAqIGJvdGggaGFsdmVzIGFyZSB0aGVtc2VsdmVzIGRpc2NyaW1pbmF0ZWQgdW5pb25zIG9uIHRoZSBzYW1lXG4gKiBgdHlwZWAga2V5LlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVXcml0ZXJFdmVudFNjaGVtYSA9IHoudW5pb24oW1xuICBnZW5pZU1vZGVsLkdlbmllQ2hhdEV2ZW50U2NoZW1hLFxuICBHZW5pZUFnZW50RXZlbnRTY2hlbWEsXG5dKTtcbi8qKiBDb21wbGV0ZSBldmVudCB2b2NhYnVsYXJ5IHdyaXR0ZW4gYnkgdGhlIE1hc3RyYSBHZW5pZSBpbnRlZ3JhdGlvbi4gKi9cbmV4cG9ydCB0eXBlIEdlbmllV3JpdGVyRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZVdyaXRlckV2ZW50U2NoZW1hPjtcblxuLyoqIERpc2NyaW1pbmF0b3IgdHlwZSBmb3Ige0BsaW5rIEdlbmllV3JpdGVyRXZlbnR9LiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVXcml0ZXJFdmVudFR5cGUgPSBHZW5pZVdyaXRlckV2ZW50W1widHlwZVwiXTtcblxuLyoqIE5hdGl2ZSBBSSBTREsgY3VzdG9tIGRhdGEtcGFydCB0eXBlIGNhcnJ5aW5nIG9uZSBHZW5pZSBwcm9ncmVzcyBldmVudC4gKi9cbmV4cG9ydCBjb25zdCBHRU5JRV9QUk9HUkVTU19QQVJUX1RZUEUgPSBcImRhdGEtZ2VuaWUtcHJvZ3Jlc3NcIiBhcyBjb25zdDtcblxuLyoqXG4gKiBEYXRhIGF0dGFjaGVkIHRvIHtAbGluayBHRU5JRV9QUk9HUkVTU19QQVJUX1RZUEV9LiBgdG9vbENhbGxJZGAgYXNzb2NpYXRlc1xuICogcHJvZ3Jlc3Mgd2l0aCB0aGUgbmF0aXZlIHRvb2wgcGFydCB0aGF0IG93bnMgdGhlIHJlcXVlc3QgYW5kIHJlc3VsdC5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllUHJvZ3Jlc3NQYXJ0RGF0YVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdG9vbENhbGxJZDogei5zdHJpbmcoKSxcbiAgZXZlbnQ6IEdlbmllV3JpdGVyRXZlbnRTY2hlbWEsXG59KTtcbi8qKiBWYWxpZGF0ZWQgcGF5bG9hZCBjYXJyaWVkIGJ5IGEgbmF0aXZlIEdlbmllIHByb2dyZXNzIGRhdGEgcGFydC4gKi9cbmV4cG9ydCB0eXBlIEdlbmllUHJvZ3Jlc3NQYXJ0RGF0YSA9IHouaW5mZXI8dHlwZW9mIEdlbmllUHJvZ3Jlc3NQYXJ0RGF0YVNjaGVtYT47XG5cbi8qKiBHZW5lcmljIHByb2dyZXNzIHN0YXR1cyBlbWl0dGVkIGJ5IG5vbi1HZW5pZSBhZ2VudCB0b29scy4gKi9cbmV4cG9ydCBjb25zdCBUb29sU3RhdHVzUHJvZ3Jlc3NFdmVudFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwidG9vbF9zdGF0dXNcIikuZGVzY3JpYmUoXCJHZW5lcmljIHRvb2wgcHJvZ3Jlc3MgZGlzY3JpbWluYXRvci5cIiksXG4gICAgc3RhdHVzOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiTWFjaGluZS1yZWFkYWJsZSB0b29sIHN0YXR1cy5cIiksXG4gICAgbWVzc2FnZTogei5zdHJpbmcoKS5kZXNjcmliZShcIkh1bWFuLXJlYWRhYmxlIHByb2dyZXNzIGxhYmVsLlwiKSxcbiAgICB1cmw6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlJlbGF0ZWQgVVJMIHdoZW4gdGhlIHRvb2wgaXMgcmVhZGluZyBhIHBhZ2UuXCIpLFxuICAgIGdyb3VwSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIklkZW50aWZpZXIgZ3JvdXBpbmcgb25lIHNlYXJjaCB3aXRoIGl0cyByZXN1bHQuXCIpLFxuICAgIGRldGFpbDogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiT3B0aW9uYWwgc2Vjb25kYXJ5IHJlc3VsdCBkZXRhaWwuXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJHZW5lcmljIHN0YXR1cyB1cGRhdGUgZm9yIG9uZSBydW5uaW5nIGFnZW50IHRvb2wuXCIpO1xuXG4vKiogR2VuZXJpYyBwcm9ncmVzcyBzdGF0dXMgZW1pdHRlZCBieSBub24tR2VuaWUgYWdlbnQgdG9vbHMuICovXG5leHBvcnQgdHlwZSBUb29sU3RhdHVzUHJvZ3Jlc3NFdmVudCA9IHouaW5mZXI8dHlwZW9mIFRvb2xTdGF0dXNQcm9ncmVzc0V2ZW50U2NoZW1hPjtcblxuLyoqIENvbXBsZXRlIHByb2dyZXNzIHZvY2FidWxhcnkgcmVuZGVyZWQgYnkgdGhlIGNvbW1vbiB0b29sLXNlc3Npb24gcGlsbC4gKi9cbmV4cG9ydCBjb25zdCBUb29sUHJvZ3Jlc3NFdmVudFNjaGVtYSA9IHoudW5pb24oW1xuICBHZW5pZVdyaXRlckV2ZW50U2NoZW1hLFxuICBUb29sU3RhdHVzUHJvZ3Jlc3NFdmVudFNjaGVtYSxcbl0pO1xuXG4vKiogQ29tcGxldGUgcHJvZ3Jlc3MgZXZlbnQgcmVuZGVyZWQgYnkgdGhlIGNvbW1vbiB0b29sLXNlc3Npb24gcGlsbC4gKi9cbmV4cG9ydCB0eXBlIFRvb2xQcm9ncmVzc0V2ZW50ID0gei5pbmZlcjx0eXBlb2YgVG9vbFByb2dyZXNzRXZlbnRTY2hlbWE+O1xuXG4vKiogTmF0aXZlIEFJIFNESyBjdXN0b20gZGF0YS1wYXJ0IHR5cGUgY2FycnlpbmcgZ2VuZXJpYyB0b29sIHByb2dyZXNzLiAqL1xuZXhwb3J0IGNvbnN0IFRPT0xfUFJPR1JFU1NfUEFSVF9UWVBFID0gXCJkYXRhLXRvb2wtcHJvZ3Jlc3NcIiBhcyBjb25zdDtcblxuLyoqIERhdGEgYXR0YWNoZWQgdG8ge0BsaW5rIFRPT0xfUFJPR1JFU1NfUEFSVF9UWVBFfS4gKi9cbmV4cG9ydCBjb25zdCBUb29sUHJvZ3Jlc3NQYXJ0RGF0YVNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgdG9vbENhbGxJZDogei5zdHJpbmcoKS5kZXNjcmliZShcIk5hdGl2ZSB0b29sLWNhbGwgaWQgcmVjZWl2aW5nIHRoaXMgcHJvZ3Jlc3MgZXZlbnQuXCIpLFxuICAgIGV2ZW50OiBUb29sUHJvZ3Jlc3NFdmVudFNjaGVtYS5kZXNjcmliZShcIlByb2dyZXNzIGV2ZW50IGVtaXR0ZWQgYnkgdGhlIHJ1bm5pbmcgdG9vbC5cIiksXG4gIH0pXG4gIC5kZXNjcmliZShcIkdlbmVyaWMgdG9vbCBwcm9ncmVzcyBhdHRhY2hlZCB0byBvbmUgbmF0aXZlIHRvb2wgY2FsbC5cIik7XG5cbi8qKiBWYWxpZGF0ZWQgcGF5bG9hZCBjYXJyaWVkIGJ5IGEgbmF0aXZlIGdlbmVyaWMgdG9vbCBwcm9ncmVzcyBkYXRhIHBhcnQuICovXG5leHBvcnQgdHlwZSBUb29sUHJvZ3Jlc3NQYXJ0RGF0YSA9IHouaW5mZXI8dHlwZW9mIFRvb2xQcm9ncmVzc1BhcnREYXRhU2NoZW1hPjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBzdW1tYXJ5ICsgZGF0YXNldCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBUYWJ1bGFyIHBheWxvYWQgZW1iZWRkZWQgaW4gZXZlcnkge0BsaW5rIEdlbmllU3VtbWFyeUl0ZW19XG4gKiBgdmlzdWFsaXplYCBkYXRhc2V0LiBBbHdheXMgcHJlc2VudDogaHlkcmF0ZWQgYnkgdGhlIHdvcmtmbG93J3NcbiAqIGFnZW50IHN0ZXAgYmVmb3JlIHRoZSBmaW5hbGl6ZSBzdGVwIHJ1bnMsIHNvIGNvbnN1bWVycyBjYW4gcmVuZGVyXG4gKiBhIHRhYmxlIGZhbGxiYWNrIHJlZ2FyZGxlc3Mgb2YgY2hhcnQtcGxhbm5lciBvdXRjb21lLlxuICpcbiAqIEZpZWxkczpcbiAqICAgLSBgY29sdW1uc2A6IGNvbHVtbiBuYW1lcyBpbiBkaXNwbGF5IG9yZGVyLlxuICogICAtIGByb3dzYDogdGFidWxhciByb3dzIGtleWVkIGJ5IGNvbHVtbiBuYW1lLlxuICogICAtIGByb3dDb3VudGA6IHRvdGFsIHJvdyBjb3VudCBHZW5pZSByZXBvcnRlZCAobWF5IGV4Y2VlZFxuICogICAgIGByb3dzLmxlbmd0aGAgd2hlbiB0aGUgc3RhdGVtZW50IHdhcyB0cnVuY2F0ZWQpLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVEYXRhc2V0RGF0YVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29sdW1uczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgcm93czogei5hcnJheSh6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkpLFxuICByb3dDb3VudDogei5udW1iZXIoKSxcbn0pO1xuLyoqIEh5ZHJhdGVkIHRhYnVsYXIgZGF0YSB0aGF0IGFsd2F5cyBiYWNrcyBhIEdlbmllIHZpc3VhbGl6YXRpb24gaXRlbS4gKi9cbmV4cG9ydCB0eXBlIEdlbmllRGF0YXNldERhdGEgPSB6LmluZmVyPHR5cGVvZiBHZW5pZURhdGFzZXREYXRhU2NoZW1hPjtcblxuLyoqXG4gKiBTbGltIGNoYXJ0IHJlZmVyZW5jZSBhdHRhY2hlZCB0byBhIHZpc3VhbGl6ZSBkYXRhc2V0LiBPbmx5XG4gKiBwcmVzZW50IHdoZW4gcGxhbm5pbmcgc3VjY2VlZGVkLlxuICpcbiAqIGBvcHRpb25gIGlzIGludGVudGlvbmFsbHkgTk9UIGluY2x1ZGVkLiBUaGUgcmVzb2x2ZWQgRWNoYXJ0c1xuICogc3BlYyBsaXZlcyBvZmYtYmFuZCBpbiB0aGUgY2hhcnQgY2FjaGU6IHRoZSBob3N0IFVJIGZldGNoZXMgaXRcbiAqIGJ5IGBjaGFydElkYCBmcm9tIHRoZSBwbHVnaW4ncyBlbWJlZCByb3V0ZSAoZGVyaXZlZCBmcm9tXG4gKiBgYmFzZVBhdGhgICsge0BsaW5rIE1BU1RSQV9ST1VURVN9LmVtYmVkLCBpLmUuIGAvZW1iZWQvY2hhcnQvOmlkYDtcbiAqIHNlZSB7QGxpbmsgQ2hhcnR9KS4gRW1iZWRkaW5nIHRoZSBmdWxsIHNwZWMgaW5saW5lIHdvdWxkXG4gKiBpbmZsYXRlIGV2ZXJ5IGRhdGFzZXQgYnkgc2V2ZXJhbCBLQiBwZXIgY2hhcnQgYW5kIHJvdW5kLXRyaXBcbiAqIHRocm91Z2ggdGhlIExMTSBjb250ZXh0IGZvciB6ZXJvIGJlbmVmaXQgKHRoZSBtb2RlbCBvbmx5IG5lZWRzXG4gKiB0aGUgYGNoYXJ0SWRgIHRvIHBsYWNlIGEgYFtjaGFydDo8Y2hhcnRJZD5dYCBtYXJrZXIgaW4gaXRzXG4gKiByZXBseSkuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZURhdGFzZXRDaGFydFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY2hhcnRJZDogei5zdHJpbmcoKSxcbiAgY2hhcnRUeXBlOiBDaGFydFR5cGVTY2hlbWEsXG59KTtcbi8qKiBMaWdodHdlaWdodCByZWZlcmVuY2UgdG8gYSBjaGFydCBwbGFuIHN0b3JlZCBpbiB0aGUgTWFzdHJhIGNoYXJ0IGNhY2hlLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVEYXRhc2V0Q2hhcnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZURhdGFzZXRDaGFydFNjaGVtYT47XG5cbi8qKlxuICogRGF0YXNldCBidW5kbGUgYXR0YWNoZWQgdG8gYSB7QGxpbmsgR2VuaWVTdW1tYXJ5SXRlbX0gYHZpc3VhbGl6ZWBcbiAqIGl0ZW0uIGBkYXRhYCBpcyBhbHdheXMgcG9wdWxhdGVkOyBgY2hhcnRgIGlzIGJlc3QtZWZmb3J0IGFuZFxuICogYWJzZW50IHdoZW4gdGhlIHdvcmtmbG93J3MgY2hhcnQtcGxhbm5lciBmYWlsZWQgKHRpbWVvdXQsXG4gKiBtYWxmb3JtZWQgcGxhbiwgYWJvcnQpIHNvIHRoZSBob3N0IFVJIGNhbiBzdGlsbCByZW5kZXIgdGhlXG4gKiB1bmRlcmx5aW5nIHRhYmxlLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVEYXRhc2V0U2NoZW1hID0gei5vYmplY3Qoe1xuICBkYXRhOiBHZW5pZURhdGFzZXREYXRhU2NoZW1hLFxuICBjaGFydDogR2VuaWVEYXRhc2V0Q2hhcnRTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuLyoqIFZpc3VhbGl6YXRpb24gZGF0YXNldCB3aXRoIHJlcXVpcmVkIHRhYmxlIGRhdGEgYW5kIGFuIG9wdGlvbmFsIHBsYW5uZWQgY2hhcnQuICovXG5leHBvcnQgdHlwZSBHZW5pZURhdGFzZXQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZURhdGFzZXRTY2hlbWE+O1xuXG4vKipcbiAqIE9uZSBpdGVtIGluc2lkZSB0aGUgR2VuaWUgd29ya2Zsb3cncyBmaW5hbCBzdW1tYXJ5LiBUaGVcbiAqIHdvcmtmbG93IHByb2R1Y2VzIGEgbWl4ZWQgc2VxdWVuY2Ugb2Y6XG4gKlxuICogICAtIGBzdHJpbmdgOiBhIG1hcmtkb3duIHBhcmFncmFwaCAoaW50ZXJwcmV0YXRpb24sIGNhbGxvdXRzLFxuICogICAgIHRyYW5zaXRpb25zIGJldHdlZW4gZGF0YSBibG9ja3MpLlxuICogICAtIGB2aXN1YWxpemVgOiBhIHJlcXVlc3QgZnJvbSB0aGUgYWdlbnQgc3RlcCB0byB2aXN1YWxpemUgYVxuICogICAgIHNwZWNpZmljIEdlbmllIHN0YXRlbWVudCBhdCB0aGlzIHBvc2l0aW9uIGluIHRoZSBwcm9zZS5cbiAqICAgICBUaGUgZmluYWxpemUgc3RlcCBoeWRyYXRlcyBgZGF0YXNldC5kYXRhYCAocm93cyBmcm9tIHRoZVxuICogICAgIG1hdGNoaW5nIGBzdGF0ZW1lbnRJZGApIGFuZCBhdHRhY2hlcyBgZGF0YXNldC5jaGFydGAgYWZ0ZXJcbiAqICAgICBydW5uaW5nIHRoZSBjaGFydC1wbGFubmVyLiBUaGUgYWdlbnQgTkVWRVIgcGlja3MgdGhlIGNoYXJ0XG4gKiAgICAgdHlwZSAtIGl0IG9ubHkgbWFya3Mgd2hlcmUgYSB2aXN1YWxpemF0aW9uIGJlbG9uZ3MuXG4gKlxuICogVGhlIGhvc3QgVUkgd2Fsa3MgdGhlIGFycmF5IGluIGRpc3BsYXkgb3JkZXIgdG8gY29tcG9zZSB0aGVcbiAqIGZpbmFsIGFzc2lzdGFudCBtZXNzYWdlLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVTdW1tYXJ5SXRlbVNjaGVtYSA9IHouZGlzY3JpbWluYXRlZFVuaW9uKFwidHlwZVwiLCBbXG4gIHoub2JqZWN0KHtcbiAgICB0eXBlOiB6LmxpdGVyYWwoXCJzdHJpbmdcIiksXG4gICAgdGV4dDogei5zdHJpbmcoKSxcbiAgfSksXG4gIHoub2JqZWN0KHtcbiAgICB0eXBlOiB6LmxpdGVyYWwoXCJ2aXN1YWxpemVcIiksXG4gICAgc3RhdGVtZW50SWQ6IHouc3RyaW5nKCksXG4gICAgdGl0bGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGRhdGFzZXQ6IEdlbmllRGF0YXNldFNjaGVtYSxcbiAgfSksXG5dKTtcbi8qKiBPcmRlcmVkIHByb3NlIG9yIHZpc3VhbGl6YXRpb24gaXRlbSBpbiB0aGUgR2VuaWUgYWdlbnQncyBmaW5hbCBzdW1tYXJ5LiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVTdW1tYXJ5SXRlbSA9IHouaW5mZXI8dHlwZW9mIEdlbmllU3VtbWFyeUl0ZW1TY2hlbWE+O1xuXG4vKiogRGlzY3JpbWluYXRvciB0eXBlIGZvciB7QGxpbmsgR2VuaWVTdW1tYXJ5SXRlbX0uICovXG5leHBvcnQgdHlwZSBHZW5pZVN1bW1hcnlJdGVtVHlwZSA9IEdlbmllU3VtbWFyeUl0ZW1bXCJ0eXBlXCJdO1xuXG4vKipcbiAqIFRoZSBHZW5pZSBhZ2VudCdzIGZpbmFsIG91dHB1dCBzaGFwZSAtIHdoYXQgdGhlIGNhbGxpbmcgYWdlbnQnc1xuICogR2VuaWUgdG9vbCByZXR1cm5zIHRvIHRoZSBjYWxsaW5nIExMTS4gVGhlIGBzdW1tYXJ5YCBhcnJheSBpc1xuICogdGhlIHVzZXItZmFjaW5nIHJlbmRlcmFibGU7IGBjb252ZXJzYXRpb25JZGAgbGV0cyB0aGUgY2FsbGluZ1xuICogYWdlbnQgKG9yIHRoZSBVSSkgZm9sbG93IHVwIGluIHRoZSBzYW1lIEdlbmllIHRocmVhZCBvbiB0aGVcbiAqIG5leHQgdHVybi5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQWdlbnRSZXN1bHRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHNwYWNlSWQ6IHouc3RyaW5nKCksXG4gIGNvbnZlcnNhdGlvbklkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHN1bW1hcnk6IHouYXJyYXkoR2VuaWVTdW1tYXJ5SXRlbVNjaGVtYSksXG4gIGVycm9yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbi8qKiBGaW5hbCByZW5kZXJhYmxlIG91dHB1dCByZXR1cm5lZCBieSB0aGUgR2VuaWUgYWdlbnQgdG9vbCB0byBpdHMgY2FsbGVyLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVBZ2VudFJlc3VsdCA9IHouaW5mZXI8dHlwZW9mIEdlbmllQWdlbnRSZXN1bHRTY2hlbWE+O1xuIl19
|
|
474
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBMkMsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qiw2RUFBNkU7QUFFN0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0MsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDcEIsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7SUFDeEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNCLGVBQWUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMzQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMvQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Q0FDNUMsQ0FBQyxDQUFDO0FBSUgsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbkQsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUU7Q0FDckIsQ0FBQyxDQUFDO0FBSUg7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUM7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QyxDQUFDLE1BQU0sRUFBRTtRQUN2QixLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtRQUM1QixXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtRQUNsQyxPQUFPLEVBQUUsa0JBQWtCO0tBQzVCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFPSDs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzdDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ25CLGNBQWMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3JDLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDO0lBQ3hDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzdCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV2lyZS1mb3JtYXQgY29udHJhY3QgZm9yIGBAZGJ4LXRvb2xzL2FwcGtpdC1tYXN0cmFgOiB0aGVcbiAqIGRlcGVuZGVuY3ktZnJlZSB6b2Qgc2NoZW1hcyArIGluZmVycmVkIHR5cGVzIGV2ZXJ5IGNvbnN1bWVyICh0aGVcbiAqIFJlYWN0IGNsaWVudCwgYnJvd3NlciBidW5kbGVzLCB0aGUgc2VydmVyIHBsdWdpbikgc2hhcmVzLlxuICpcbiAqIEtlcHQgZnJlZSBvZiBgcGdgLCBgZmFzdGVtYmVkYCwgYW5kIHRoZSBNYXN0cmEgcnVudGltZSBzbyB0aGVcbiAqIGNsaWVudCBjYW4gaW1wb3J0IHRoZXNlIHNjaGVtYXMgd2l0aG91dCBkcmFnZ2luZyBpbiBzZXJ2ZXItb25seVxuICogZGVwZW5kZW5jaWVzLiBUaHJlZSBsYXllcnMgbGl2ZSBoZXJlOlxuICpcbiAqICAgMS4gVGhlIGRlc2NyaXB0b3IgcHVibGlzaGVkIGJ5IGBNYXN0cmFQbHVnaW4uY2xpZW50Q29uZmlnKClgXG4gKiAgICAgIHBsdXMgdGhlIFJFU1QgcGF5bG9hZHMgaXRzIHJvdXRlcyByZXR1cm4gKG1vZGVscywgaGlzdG9yeSxcbiAqICAgICAgc3VnZ2VzdGlvbnMsIGNoYXJ0IGVtYmVkcywgc3RhdGVtZW50IGRhdGEpLiBUaGUgc2VydmVyXG4gKiAgICAgIGRlcml2ZXMgZXZlcnkgcGF0aCBmcm9tIHRoZSBwbHVnaW4gbW91bnQgYW5kIHB1Ymxpc2hlcyB0aGVcbiAqICAgICAgcmVzb2x2ZWQgcGF0aHMgc28gdGhlIGNsaWVudCBjb21wb3NlcyBVUkxzIHdpdGhvdXRcbiAqICAgICAgaGFyZC1jb2RpbmcgYC9hcGkvbWFzdHJhYCAtIHJlbmFtZSB0aGUgcGx1Z2luIGFuZCB0aGUgY2xpZW50XG4gKiAgICAgIGtlZXBzIHdvcmtpbmcuXG4gKiAgIDIuIFRoZSBgY3R4LndyaXRlcmAgZXZlbnQgdm9jYWJ1bGFyeTogdGhlIHdpcmUtZGVyaXZlZFxuICogICAgICB7QGxpbmsgR2VuaWVDaGF0RXZlbnR9cyBmcm9tIGBAZGJ4LXRvb2xzL2dlbmllLXNoYXJlZGAgcGx1c1xuICogICAgICB0aGUgTWFzdHJhLW9ubHkgYWdlbnQgbGlmZWN5Y2xlIGV2ZW50cywgdW5pZmllZCBhc1xuICogICAgICB7QGxpbmsgR2VuaWVXcml0ZXJFdmVudH0gc28gc3Vic2NyaWJlcnMgbmFycm93IGJvdGggaGFsdmVzXG4gKiAgICAgIHdpdGggYSBzaW5nbGUgYHN3aXRjaCAoZXZlbnQudHlwZSlgLlxuICogICAzLiBUaGUgR2VuaWUgYWdlbnQncyB3b3JrZmxvdyBvdXRwdXQgc2hhcGVzXG4gKiAgICAgICh7QGxpbmsgR2VuaWVBZ2VudFJlc3VsdH0gYW5kIGl0cyBzdW1tYXJ5IC8gZGF0YXNldCBpdGVtcykuXG4gKlxuICogVGhlIHJvdXRlIHNlZ21lbnRzIGxpdmUgaW4gdGhlIHNpYmxpbmcgYHJvdXRlcy50c2BcbiAqICh7QGxpbmsgTUFTVFJBX1JPVVRFU30pIGFuZCB0aGUgZW1iZWQtbWFya2VyIGdyYW1tYXIgaW4gYG1hcmtlcnMudHNgLFxuICogc28gdGhpcyBmaWxlIHN0YXlzIHB1cmVseSBkZWNsYXJhdGl2ZSAoc2NoZW1hcyArIGluZmVycmVkIHR5cGVzKS5cbiAqIFRoZSBicm93c2VyIGNsaWVudCB0aGF0IGRyaXZlcyB0aGVzZSByb3V0ZXMgKGBNYXN0cmFQbHVnaW5DbGllbnRgKVxuICogc2hpcHMgZnJvbSBgQGRieC10b29scy91aS1tYXN0cmFgLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBnZW5pZU1vZGVsLCB0eXBlIEdlbmllQ2hhdEV2ZW50LCB0eXBlIE1lc3NhZ2VTdGF0dXMgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuaWVcIjtcbmltcG9ydCB7IG1vZGVsIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLW1vZGVsXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGNsaWVudCBjb25maWcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEpTT04tc2FmZSBkZXNjcmlwdG9yIHB1Ymxpc2hlZCBieSB0aGUgTWFzdHJhIHBsdWdpbidzXG4gKiBgY2xpZW50Q29uZmlnKClgLlxuICpcbiAqIE9ubHkgdGhlIGlycmVkdWNpYmxlIGRhdGEgbGl2ZXMgaGVyZTogYGJhc2VQYXRoYCAodGhlIG9uZSBwYXRoIHRoZVxuICogY2xpZW50IGNhbid0IG90aGVyd2lzZSBrbm93LCBzaW5jZSBpdCBlbmNvZGVzIHRoZSBwbHVnaW4ncyBtb3VudFxuICogbmFtZSkgcGx1cyB0aGUgcnVudGltZSBhZ2VudCByb3N0ZXIuIEV2ZXJ5IGNvbmNyZXRlIGVuZHBvaW50IFVSTCBpc1xuICogZGVyaXZlZCBmcm9tIGBiYXNlUGF0aGAgYnkgdGhlIGJyb3dzZXIgY2xpZW50XG4gKiAoYE1hc3RyYVBsdWdpbkNsaWVudGApIHVzaW5nIHRoZSBzaGFyZWQge0BsaW5rIE1BU1RSQV9ST1VURVN9XG4gKiBzZWdtZW50cywgc28gdGhlcmUncyBub3RoaW5nIHRvIHB1Ymxpc2ggcGVyLXJvdXRlLlxuICpcbiAqIEZpZWxkczpcbiAqICAgLSBgYmFzZVBhdGhgOiBwbHVnaW4gbW91bnQgcGF0aC4gQWx3YXlzIGAvYXBpLzxwbHVnaW5OYW1lPmAuIEZlZWRcbiAqICAgICBpdCB0byBgbmV3IE1hc3RyYVBsdWdpbkNsaWVudChjb25maWcpYCAoZnJvbVxuICogICAgIGBAZGJ4LXRvb2xzL3VpLW1hc3RyYWApIHRvIGdldCBhIHR5cGVkIGNsaWVudCBvdmVyIGV2ZXJ5XG4gKiAgICAgcm91dGUgcGx1cyB0aGUgc3RhbmRhcmQgYWdlbnQgc3RyZWFtLlxuICogICAtIGBkZWZhdWx0QWdlbnRgOiBhZ2VudCBpZCB0aGUgY2xpZW50IGNvbnZlcnNlcyB3aXRoIHdoZW4gaXRcbiAqICAgICBkb2Vzbid0IG5hbWUgb25lLlxuICogICAtIGBhZ2VudHNgOiBldmVyeSByZWdpc3RlcmVkIGFnZW50IGlkIGluIHJlZ2lzdHJhdGlvbiBvcmRlci5cbiAqICAgLSBgZmVlZGJhY2tFbmFibGVkYDogd2hldGhlciB0aGUgc2VydmVyIGNhbiBsb2cgdXNlciBmZWVkYmFjayB0b1xuICogICAgIE1MZmxvdyAoTUxmbG93IHRyYWNpbmcgaXMgY29uZmlndXJlZCkuIERyaXZlcyB3aGV0aGVyIHRoZSBjaGF0IFVJXG4gKiAgICAgc3VyZmFjZXMgdGh1bWJzIC8gY29tbWVudCBjb250cm9scy4gRGVmYXVsdHMgdG8gYGZhbHNlYCBzbyBhXG4gKiAgICAgY29uZmlnIHB1Ymxpc2hlZCBieSBhbiBvbGRlciBzZXJ2ZXIgKHdpdGhvdXQgdGhlIGZpZWxkKSBwYXJzZXNcbiAqICAgICBjbGVhbmx5IHRvIFwib2ZmXCIuXG4gKiAgIC0gYGNoYXRBbHdheXNBdmFpbGFibGVgOiB3aGV0aGVyIHRoZSBhZ2VudHMnIERhdGFicmlja3MgY2FsbHMgcnVuIGFzIHRoZVxuICogICAgIGFwcCBzZXJ2aWNlIHByaW5jaXBhbCByYXRoZXIgdGhhbiBvbi1iZWhhbGYtb2YgdGhlIHNpZ25lZC1pbiB1c2VyLiBXaGVuXG4gKiAgICAgYHRydWVgIHRoZSBjaGF0IHdvcmtzIGZvciBhbnkgY2FsbGVyIHdobyBjYW4gb3BlbiB0aGUgYXBwLCBzbyBhIFVJIHRoYXRcbiAqICAgICBoaWRlcyBjaGF0IHdoZW4gdGhlIE9CTyB0b2tlbiBpcyBhYnNlbnQgc2hvdWxkIHNob3cgaXQgYW55d2F5LiBEZWZhdWx0c1xuICogICAgIHRvIGBmYWxzZWAgKHRoZSBPQk8gLyBgXCJ1c2VyXCJgIGlkZW50aXR5IG1vZGUpLCBzbyBhbiBvbGRlciBzZXJ2ZXIgd2l0aG91dFxuICogICAgIHRoZSBmaWVsZCBrZWVwcyB0aGUgT0JPLWdhdGVkIGJlaGF2aW9yLlxuICogICAtIGBiYWNrZ3JvdW5kVHVybnNgOiB3aGV0aGVyIHR1cm5zIHVzZSBNYXN0cmEgZXZlbnRlZCBkdXJhYmxlIGV4ZWN1dGlvblxuICogICAgIGFuZCBjYW4gYmUgb2JzZXJ2ZWQgYWZ0ZXIgdGhlIGluaXRpYXRpbmcgSFRUUCBzdHJlYW0gZGlzY29ubmVjdHMuXG4gKiAgICAgRGVmYXVsdHMgdG8gYGZhbHNlYCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHNlcnZlcnMuXG4gKi9cbmV4cG9ydCBjb25zdCBNYXN0cmFDbGllbnRDb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGJhc2VQYXRoOiB6LnN0cmluZygpLFxuICBkZWZhdWx0QWdlbnQ6IHouc3RyaW5nKCksXG4gIGFnZW50czogei5hcnJheSh6LnN0cmluZygpKSxcbiAgZmVlZGJhY2tFbmFibGVkOiB6LmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgY2hhdEFsd2F5c0F2YWlsYWJsZTogei5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gIGJhY2tncm91bmRUdXJuczogei5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG59KTtcbi8qKiBCcm93c2VyLXNhZmUgTWFzdHJhIHBsdWdpbiBkZXNjcmlwdG9yIHVzZWQgdG8gY29uc3RydWN0IHJvdXRlIGFuZCBzdHJlYW0gY2xpZW50cy4gKi9cbmV4cG9ydCB0eXBlIE1hc3RyYUNsaWVudENvbmZpZyA9IHouaW5wdXQ8dHlwZW9mIE1hc3RyYUNsaWVudENvbmZpZ1NjaGVtYT47XG5cbi8qKiBSZXNwb25zZSByZXR1cm5lZCBhZnRlciByZXF1ZXN0aW5nIGNhbmNlbGxhdGlvbiBvZiBvbmUgZHVyYWJsZSBhZ2VudCBydW4uICovXG5leHBvcnQgY29uc3QgTWFzdHJhUnVuQWJvcnRSZXNwb25zZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgYWJvcnRlZDogei5ib29sZWFuKCksXG59KTtcbi8qKiBSZXN1bHQgb2YgYW4gZXhwbGljaXQgZHVyYWJsZSBydW4gY2FuY2VsbGF0aW9uIHJlcXVlc3QuICovXG5leHBvcnQgdHlwZSBNYXN0cmFSdW5BYm9ydFJlc3BvbnNlID0gei5pbmZlcjx0eXBlb2YgTWFzdHJhUnVuQWJvcnRSZXNwb25zZVNjaGVtYT47XG5cbi8qKlxuICogSlNPTiBwYXlsb2FkIHJldHVybmVkIGJ5IGBHRVQgJHtiYXNlUGF0aH0vZGVmYXVsdC1tb2RlbFs/YWdlbnRJZD1dYC4gVGhlXG4gKiBzdGF0aWMgZGVmYXVsdCBtb2RlbCB0aGUgYWdlbnQgcmVzb2x2ZXMgdG8gd2hlbiB0aGUgY2xpZW50IHBpbnMgbm8gbW9kZWwsXG4gKiBhcyBib3RoIHRoZSByYXcgc2VydmluZy1lbmRwb2ludCBgbW9kZWxgIGlkIGFuZCBhIGBkaXNwbGF5TmFtZWAgKHRoZVxuICogaHVtYW5pemVkIGxhYmVsIHRoZSBwaWNrZXIgc2hvd3MpLiBCb3RoIGFyZSBgbnVsbGAgd2hlbiB0aGUgYWdlbnQgZGVjaWRlc1xuICogaXRzIG1vZGVsIGR5bmFtaWNhbGx5IGF0IGNhbGwgdGltZSAobm90aGluZyBzdGF0aWMgdG8gYWR2ZXJ0aXNlKS4gTGV0cyB0aGVcbiAqIHBpY2tlciBsYWJlbCBpdHMgZGVmYXVsdCBvcHRpb24gV0lUSE9VVCB3YWl0aW5nIG9uIHRoZSBgL21vZGVsc2AgY2F0YWxvZ3VlLFxuICogc28gaXQgbmV2ZXIgZmxhc2hlcyBhIHJhdyBpZCBvbiBsb2FkLiBLZXB0IG9mZiB0aGUgc3RhdGljIGJvb3RzdHJhcFxuICogYGNsaWVudENvbmZpZ2Agb24gcHVycG9zZTogaXQgaXMgcGVyLWFnZW50IGFuZCBjYW4gYmUgZHluYW1pYywgc28gaXQgaXNcbiAqIGZldGNoZWQgbGlrZSBgL21vZGVsc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0TW9kZWxSZXNwb25zZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgYWdlbnRJZDogei5zdHJpbmcoKSxcbiAgbW9kZWw6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgZGlzcGxheU5hbWU6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbn0pO1xuLyoqIFJlc3BvbnNlIGlkZW50aWZ5aW5nIHRoZSBtb2RlbCBjdXJyZW50bHkgc2VsZWN0ZWQgYXMgdGhlIHBsdWdpbiBkZWZhdWx0LiAqL1xuZXhwb3J0IHR5cGUgRGVmYXVsdE1vZGVsUmVzcG9uc2UgPSB6LmluZmVyPHR5cGVvZiBEZWZhdWx0TW9kZWxSZXNwb25zZVNjaGVtYT47XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gbW9kZWwgY2F0YWxvZ3VlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBKU09OIHBheWxvYWQgcmV0dXJuZWQgYnkgYEdFVCAke2Jhc2VQYXRofS9tb2RlbHNgLiBXcmFwcyB0aGUgc2hhcmVkXG4gKiB7QGxpbmsgbW9kZWwuU2VydmluZ0VuZHBvaW50U3VtbWFyeVNjaGVtYX0gKHJlLWV4cG9ydGVkIGZyb21cbiAqIGBAZGJ4LXRvb2xzL3NoYXJlZC1tb2RlbGApIHNvIHRoZSBjYXRhbG9ndWVcbiAqIGRlc2NyaXB0b3IgaGFzIGEgc2luZ2xlIGRlZmluaXRpb24gdGhlIGNsaWVudCwgc2VydmVyLCBhbmQgdGhlXG4gKiBzdGFuZGFsb25lIGBAZGJ4LXRvb2xzL21vZGVsYCB0b29sa2l0IGFsbCBhZ3JlZSBvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNlcnZpbmdFbmRwb2ludHNSZXNwb25zZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgZW5kcG9pbnRzOiB6LmFycmF5KG1vZGVsLlNlcnZpbmdFbmRwb2ludFN1bW1hcnlTY2hlbWEpLFxufSk7XG4vKiogQXZhaWxhYmxlIERhdGFicmlja3Mgc2VydmluZyBlbmRwb2ludHMgcmV0dXJuZWQgYnkgdGhlIE1hc3RyYSBtb2RlbCByb3V0ZS4gKi9cbmV4cG9ydCB0eXBlIFNlcnZpbmdFbmRwb2ludHNSZXNwb25zZSA9IHouaW5mZXI8dHlwZW9mIFNlcnZpbmdFbmRwb2ludHNSZXNwb25zZVNjaGVtYT47XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBzdWdnZXN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBKU09OIHBheWxvYWQgcmV0dXJuZWQgYnkgYEdFVCAke2Jhc2VQYXRofS9zdWdnZXN0aW9uc2AuXG4gKlxuICogQ2FycmllcyB0aGUgY3VyYXRlZCBzdGFydGVyIHF1ZXN0aW9ucyBmb3IgYW4gYWdlbnQncyBHZW5pZSBzcGFjZSAtXG4gKiB0aGUgYHNhbXBsZV9xdWVzdGlvbnNgIGFuIGF1dGhvciBjb25maWd1cmVkIG9uIHRoZSBzcGFjZSwgc3VyZmFjZWRcbiAqIGFzIG9uZS10YXAgcHJvbXB0cyBvbiB0aGUgY2hhdCdzIGVtcHR5IHN0YXRlLiBgcXVlc3Rpb25zYCBpcyBlbXB0eVxuICogd2hlbiB0aGUgYWdlbnQgaGFzIG5vIEdlbmllIHNwYWNlIChvciB0aGUgc3BhY2UgZGVmaW5lcyBub25lKSwgc29cbiAqIHRoZSBjbGllbnQgcmVuZGVycyBub3RoaW5nIGluIHRoYXQgY2FzZSByYXRoZXIgdGhhbiBmYWxsaW5nIGJhY2sgdG9cbiAqIGJ1aWx0LWluIGV4YW1wbGUgcHJvbXB0cy5cbiAqL1xuZXhwb3J0IGNvbnN0IE1hc3RyYVN1Z2dlc3Rpb25zUmVzcG9uc2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHF1ZXN0aW9uczogei5hcnJheSh6LnN0cmluZygpKSxcbn0pO1xuLyoqIEZvbGxvdy11cCBwcm9tcHRzIHN1Z2dlc3RlZCBmb3IgdGhlIGN1cnJlbnQgYWdlbnQgYW5kIHRocmVhZCBjb250ZXh0LiAqL1xuZXhwb3J0IHR5cGUgTWFzdHJhU3VnZ2VzdGlvbnNSZXNwb25zZSA9IHouaW5mZXI8dHlwZW9mIE1hc3RyYVN1Z2dlc3Rpb25zUmVzcG9uc2VTY2hlbWE+O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gY2hhcnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEFsbG93ZWQgY2hhcnQgdHlwZXMgdGhlIHBsYW5uZXIgY2FuIHBpY2suIERlZmluZWQgYXMgYVxuICogZGlzY3JpbWluYXRlZCBsaXRlcmFsIHVuaW9uIHNvIGVhY2ggdmFyaWFudCBjYXJyaWVzIGl0cyBvd25cbiAqIGAuZGVzY3JpYmUoKWAgY2xhdXNlIC0gdGhlIHNlcnZlci1zaWRlIHBsYW5uZXIncyBwcm9tcHRcbiAqIGZvcm1hdHRlciB3YWxrcyBgLm9wdGlvbnNgIHRvIGlubGluZSB0aGUgZGVzY3JpcHRpb25zIGludG8gdGhlXG4gKiBtb2RlbCBpbnN0cnVjdGlvbnMsIGtlZXBpbmcgdGhlIHByb21wdCBpbiBsb2NrLXN0ZXAgd2l0aCB0aGVcbiAqIHNjaGVtYSBieSBjb25zdHJ1Y3Rpb24uIFRoZSBydW50aW1lIHR5cGUgaXMgdGhlIHBsYWluIHN0cmluZ1xuICogdW5pb24gKGBcImJhclwiIHwgXCJsaW5lXCIgfCAuLi5gKSwgc28gY29uc3VtZXJzIHRoYXQganVzdCBuZWVkIGFcbiAqIGRpc2NyaW1pbmF0b3IgdmFsdWUgYmVoYXZlIHRoZSBzYW1lIGFzIGlmIGl0IHdlcmUgYVxuICogYHouZW51bShbLi4uXSlgLlxuICovXG5leHBvcnQgY29uc3QgQ2hhcnRUeXBlU2NoZW1hID0gelxuICAudW5pb24oW1xuICAgIHpcbiAgICAgIC5saXRlcmFsKFwiYmFyXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwiY29tcGFyaW5nIGEgbnVtZXJpYyB2YWx1ZSBhY3Jvc3MgYSBzbWFsbC9tZWRpdW0gc2V0IG9mIGRpc2NyZXRlIGNhdGVnb3JpZXMgKHRvcC1OLCByYW5raW5nLCBncm91cC1ieSlcIixcbiAgICAgICksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJob3Jpem9udGFsQmFyXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwic2FtZSBhcyBiYXIgYnV0IGNhdGVnb3JpZXMgb24gdGhlIHktYXhpcyAtIHByZWZlciB3aGVuIGNhdGVnb3J5IGxhYmVscyBhcmUgbG9uZyBvciB0aGVyZSBhcmUgbWFueSBjYXRlZ29yaWVzXCIsXG4gICAgICApLFxuICAgIHpcbiAgICAgIC5saXRlcmFsKFwibGluZVwiKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIm9yZGVyZWQtYXhpcyB0cmVuZCAodGltZSBzZXJpZXMsIHNlcXVlbmNlLCByYW5rKSB3aGVyZSB0aGUgeC1heGlzIGhhcyBuYXR1cmFsIG9yZGVyXCIsXG4gICAgICApLFxuICAgIHoubGl0ZXJhbChcImFyZWFcIikuZGVzY3JpYmUoXCJzdGFja2VkLXRyZW5kIGVtcGhhc2lzIC0gY3VtdWxhdGl2ZSBvciBjb21wb3NpdGlvbiBvdmVyIHRpbWVcIiksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJjb21ib1wiKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIm1peGVkIGJhciArIGxpbmUgKG9yIGFyZWEpIHNlcmllcyBvbiBzaGFyZWQgY2F0ZWdvcmllcyAtIGUuZy4gdm9sdW1lIGJhcnMgd2l0aCBhIHJhdGUvdHJlbmQgbGluZTsgc2V0IGVhY2ggc2VyaWVzJyBgdHlwZWBcIixcbiAgICAgICksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJ3YXRlcmZhbGxcIilcbiAgICAgIC5kZXNjcmliZShcbiAgICAgICAgXCJicmlkZ2UgLyBydW5uaW5nLXRvdGFsIG9mIHNpZ25lZCBzdGVwIHZhbHVlcyAoc3RhcnQgLT4gZGVsdGFzIC0+IGVuZCkgYWNyb3NzIG9yZGVyZWQgY2F0ZWdvcmllc1wiLFxuICAgICAgKSxcbiAgICB6XG4gICAgICAubGl0ZXJhbChcInNjYXR0ZXJcIilcbiAgICAgIC5kZXNjcmliZShcInR3by1udW1lcmljLWF4aXMgY29ycmVsYXRpb25zIGJldHdlZW4gZmllbGRzIChlLmcuIHByaWNlIHZzLiBxdWFudGl0eSlcIiksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJoZWF0bWFwXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwibWF0cml4IGludGVuc2l0eSBhY3Jvc3MgdHdvIGNhdGVnb3J5IGF4ZXMgLSB4IGxhYmVscyBpbiBgY2F0ZWdvcmllc2AsIG9uZSBzZXJpZXMgcGVyIG1hdHJpeCByb3cgaG9sZGluZyB0aGF0IHJvdydzIHZhbHVlc1wiLFxuICAgICAgKSxcbiAgICB6XG4gICAgICAubGl0ZXJhbChcInJhZGFyXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwibXVsdGktZGltZW5zaW9uIGNvbXBhcmlzb24gYWNyb3NzIGEgZml4ZWQgc2V0IG9mIGF4ZXMgKG9uZSBpbmRpY2F0b3IgcGVyIGNhdGVnb3J5LCBvbmUgb3IgbW9yZSBzZXJpZXMgb2YgdmFsdWVzKVwiLFxuICAgICAgKSxcbiAgICB6LmxpdGVyYWwoXCJwaWVcIikuZGVzY3JpYmUoXCJwYXJ0cy1vZi1hLXdob2xlIHdoZW4gMi03IGNhdGVnb3JpZXMgc3VtIHRvIGEgbWVhbmluZ2Z1bCB0b3RhbFwiKSxcbiAgICB6XG4gICAgICAubGl0ZXJhbChcImZ1bm5lbFwiKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICBcIm9yZGVyZWQgc3RhZ2VzIHRoYXQgc2hyaW5rIChjb252ZXJzaW9uLCBwaXBlbGluZSwgYXR0cml0aW9uKSAtIGB7bmFtZSwgdmFsdWV9YCBzbGljZXNcIixcbiAgICAgICksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJ0cmVlbWFwXCIpXG4gICAgICAuZGVzY3JpYmUoXG4gICAgICAgIFwicGFydHMtb2YtYS13aG9sZSBhcyBuZXN0ZWQgcmVjdGFuZ2xlcyB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gfjcgY2F0ZWdvcmllcyBvciBhIGZsYXQgaGllcmFyY2h5IG9mIGB7bmFtZSwgdmFsdWV9YCBzbGljZXNcIixcbiAgICAgICksXG4gICAgelxuICAgICAgLmxpdGVyYWwoXCJjdXN0b21cIilcbiAgICAgIC5kZXNjcmliZShcbiAgICAgICAgXCJlc2NhcGUgaGF0Y2ggZm9yIGEgY2hhcnQgbm9uZSBvZiB0aGUgYWJvdmUgY2FuIGV4cHJlc3MgKHNhbmtleSwgYm94cGxvdCwgY2FuZGxlc3RpY2ssIHN1bmJ1cnN0LCBnYXVnZSwgbmV0d29yayBncmFwaCwgY2FsZW5kYXIsIHBhcmFsbGVsLCAuLi4pIC0gaGFuZC13cml0ZSB0aGUgY29tcGxldGUgRWNoYXJ0cyBvcHRpb24gaW5zdGVhZCBvZiBhIHBsYW5cIixcbiAgICAgICksXG4gIF0pXG4gIC5kZXNjcmliZShcIlRoZSBjaGFydCBzaGFwZSB0aGF0IGJlc3QgbWF0Y2hlcyB0aGUgZGF0YSBhbmQgaW50ZW50LlwiKTtcbi8qKiBTdXBwb3J0ZWQgY2hhcnQgZmFtaWx5IHNlbGVjdGVkIGJ5IHRoZSBzZXJ2ZXItc2lkZSBjaGFydCBwbGFubmVyLiAqL1xuZXhwb3J0IHR5cGUgQ2hhcnRUeXBlID0gei5pbmZlcjx0eXBlb2YgQ2hhcnRUeXBlU2NoZW1hPjtcblxuLyoqXG4gKiBSZXNvbHZlZCBjaGFydCBwbGFuIGEgc2V0dGxlZCBjaGFydCBlbnRyeSBjYXJyaWVzIG9uIGl0c1xuICogYHJlc3VsdGAgZmllbGQuIGBvcHRpb25gIGlzIHRoZSBmdWxsIEVjaGFydHMgc3BlYzsgcGFzc1xuICogc3RyYWlnaHQgaW50byBgPFJlYWN0RUNoYXJ0cyBvcHRpb249ey4uLn0+YC5cbiAqL1xuZXhwb3J0IGNvbnN0IENoYXJ0UmVzdWx0U2NoZW1hID0gei5vYmplY3Qoe1xuICBjaGFydFR5cGU6IENoYXJ0VHlwZVNjaGVtYSxcbiAgb3B0aW9uOiB6XG4gICAgLnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSlcbiAgICAuZGVzY3JpYmUoXG4gICAgICBcIkZ1bGx5LXJlc29sdmVkIEVjaGFydHMgYEVDaGFydHNPcHRpb25gIEpTT04gZm9yIHRoaXMgY2hhcnQgLSBkcm9wIGRpcmVjdGx5IGludG8gYW4gRWNoYXJ0cyBpbnN0YW5jZSAob3IgYDxSZWFjdEVDaGFydHMgb3B0aW9uPXsuLi59IC8+YCkgd2l0aG91dCBmdXJ0aGVyIHByb2Nlc3NpbmcuIEluY2x1ZGVzIHRpdGxlIC8gdG9vbHRpcCAvIGxlZ2VuZCAvIGdyaWQgLyBheGlzIC8gc2VyaWVzIGRlZmF1bHRzIGFscmVhZHkgbWVyZ2VkIGluLlwiLFxuICAgICksXG59KTtcbi8qKiBSZW5kZXItcmVhZHkgY2hhcnQgcGxhbiBzdG9yZWQgYmVoaW5kIGEgY2hhcnQgZW1iZWQgaWRlbnRpZmllci4gKi9cbmV4cG9ydCB0eXBlIENoYXJ0UmVzdWx0ID0gei5pbmZlcjx0eXBlb2YgQ2hhcnRSZXN1bHRTY2hlbWE+O1xuXG4vKipcbiAqIFdpcmUtZm9ybWF0IEFORCBzZXJ2ZXItc2lkZSBjYWNoZSBzaGFwZSBmb3IgYSBjaGFydCBlbnRyeS5cbiAqIFRocmVlIGxpZmVjeWNsZSBzdGF0ZXMgaW5mZXJyZWQgZnJvbSB0aGUgdHdvIG9wdGlvbmFsIGZpZWxkc1xuICogKG5vIGRpc2NyaW1pbmF0b3IgbmVlZGVkKTpcbiAqXG4gKiAgIC0gYHJlc3VsdGAgc2V0ICAgICAgICAgICAgICAgICAgICAtPiBjaGFydCBpcyByZWFkeSB0byByZW5kZXJcbiAqICAgLSBgZXJyb3JgIHNldCAgICAgICAgICAgICAgICAgICAgIC0+IHBsYW5uZXIgLyBkYXRhIGZldGNoIGZhaWxlZFxuICogICAtIGJvdGggYHJlc3VsdGAgYW5kIGBlcnJvcmAgdW5zZXQgLT4gc3RpbGwgcHJvY2Vzc2luZ1xuICpcbiAqIGBvcHRpb25gIGlzIHR5cGVkIGFzIGEgZ2VuZXJpYyByZWNvcmQgc28gdGhpcyBwYWNrYWdlIHN0YXlzXG4gKiBkZXBlbmRlbmN5LWZyZWUgb2YgYGVjaGFydHNgLiBUaGUgc2VydmVyIChgY2hhcnQudHNgKSBpbXBvcnRzXG4gKiB0aGlzIHNjaGVtYSBkaXJlY3RseTsgdGhlIGRlbW8gY2xpZW50IHBvbGxzIHRoZVxuICogYC9lbWJlZC9jaGFydC86aWRgIHJvdXRlIGFuZCBwYXJzZXMgcmVzcG9uc2VzIGFnYWluc3QgaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBDaGFydFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY2hhcnRJZDogelxuICAgIC5zdHJpbmcoKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiT3BhcXVlIGlkIG1pbnRlZCBieSB0aGUgY2hhcnQgc3Vic3lzdGVtLiBFbWJlZCB2ZXJiYXRpbSBhcyBgW2NoYXJ0OjxjaGFydElkPl1gIGluIGFnZW50IHByb3NlOyB0aGUgaG9zdCBVSSByZXNvbHZlcyBpdCBhZ2FpbnN0IHRoaXMgY2FjaGUgZW50cnkuXCIsXG4gICAgKSxcbiAgZXJyb3I6IHpcbiAgICAuc3RyaW5nKClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZShcbiAgICAgIFwiRXJyb3IgbWVzc2FnZSB3aGVuIHRoZSBjaGFydCBmYWlsZWQgKGRhdGEgZmV0Y2ggZXJyb3IsIHBsYW5uZXIgZXJyb3IsIGVtcHR5IGRhdGFzZXQpLiBNdXR1YWxseSBleGNsdXNpdmUgd2l0aCBgcmVzdWx0YDsgYWJzZW50IG9uIHN1Y2Nlc3MgYW5kIHdoaWxlIHByb2Nlc3NpbmcuXCIsXG4gICAgKSxcbiAgcmVzdWx0OiBDaGFydFJlc3VsdFNjaGVtYS5vcHRpb25hbCgpLmRlc2NyaWJlKFxuICAgIFwiUmVzb2x2ZWQgY2hhcnQgcGxhbi4gQWJzZW50IHdoaWxlIHByb2Nlc3NpbmcgYW5kIHdoZW4gdGhlIHJ1biBlcnJvcmVkLlwiLFxuICApLFxufSk7XG4vKiogUG9sbGFibGUgY2hhcnQtY2FjaGUgZW50cnkgcmVwcmVzZW50aW5nIHBlbmRpbmcsIHN1Y2Nlc3NmdWwsIG9yIGZhaWxlZCBwbGFubmluZy4gKi9cbmV4cG9ydCB0eXBlIENoYXJ0ID0gei5pbmZlcjx0eXBlb2YgQ2hhcnRTY2hlbWE+O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHN0YXRlbWVudHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFdpcmUtZm9ybWF0IHBheWxvYWQgcmV0dXJuZWQgYnkgYEdFVCAke2Jhc2VQYXRofS9lbWJlZC9kYXRhLzppZGAuXG4gKlxuICogTWlycm9ycyB0aGUgYWdlbnQtc2lkZSBgZ2V0X3N0YXRlbWVudGAgdG9vbCdzIG91dHB1dCBzbyB0aGVcbiAqIGhvc3QgVUkgYW5kIHRoZSBMTE0gc2VlIHRoZSBleGFjdCBzYW1lIHNoYXBlIGZvciB0aGUgc2FtZVxuICogc3RhdGVtZW50OyB0aGUgcm91dGUgaXMgd2hhdCByZXNvbHZlcyBgW2RhdGE6PHN0YXRlbWVudF9pZD5dYFxuICogbWFya2VycyB0aGUgYWdlbnQgZW1iZWRzIGluIHByb3NlLlxuICpcbiAqIEZpZWxkczpcbiAqICAgLSBgY29sdW1uc2A6IGNvbHVtbiBuYW1lcyBpbiBkZWNsYXJhdGlvbiBvcmRlci5cbiAqICAgLSBgcm93c2A6IHJvdyByZWNvcmRzIGtleWVkIGJ5IGNvbHVtbiBuYW1lLiBDZWxsIHZhbHVlcyBhcmVcbiAqICAgICBlaXRoZXIgY29lcmNlZCBudW1iZXJzIG9yIHRoZSBvcmlnaW5hbCBzdHJpbmdzIChHZW5pZSAvXG4gKiAgICAgU3RhdGVtZW50IEV4ZWN1dGlvbiByZXR1cm5zIGV2ZXJ5IGNlbGwgYXMgYHN0cmluZyB8IG51bGxgO1xuICogICAgIG51bWVyaWMtbG9va2luZyBjZWxscyBhcmUgY29lcmNlZCBzZXJ2ZXItc2lkZSBzbyB0aGUgVUlcbiAqICAgICBjYW4gZm9ybWF0IHdpdGggYHRhYnVsYXItbnVtc2Agd2l0aG91dCByZS1wYXJzaW5nKS5cbiAqICAgLSBgcm93Q291bnRgOiB0b3RhbCByb3cgY291bnQgdXBzdHJlYW0gKGluZGVwZW5kZW50IG9mIHRoZVxuICogICAgIGBsaW1pdGAgY2FwKS4gQ29tcGFyZSBhZ2FpbnN0IGByb3dzLmxlbmd0aGAgdG8gZGV0ZWN0XG4gKiAgICAgdHJ1bmNhdGlvbiAtIGB0cnVuY2F0ZWRgIGlzIHRoZSBwcmVjb21wdXRlZCBmbGFnLlxuICogICAtIGB0cnVuY2F0ZWRgOiBgdHJ1ZWAgd2hlbiB0aGUgc2VydmVyIGNsaXBwZWQgcm93cyB0byBob25vclxuICogICAgIHRoZSByb3V0ZSdzIHJvdyBjYXA7IHRoZSBVSSBzaG91bGQgc3VyZmFjZSBhIFwic2hvd2luZyBOIG9mXG4gKiAgICAgTSByb3dzXCIgYWZmb3JkYW5jZSBpbiB0aGF0IGNhc2UuXG4gKi9cbmV4cG9ydCBjb25zdCBTdGF0ZW1lbnREYXRhU2NoZW1hID0gei5vYmplY3Qoe1xuICBjb2x1bW5zOiB6LmFycmF5KHouc3RyaW5nKCkpLFxuICByb3dzOiB6LmFycmF5KHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKSksXG4gIHJvd0NvdW50OiB6Lm51bWJlcigpLFxuICB0cnVuY2F0ZWQ6IHouYm9vbGVhbigpLFxufSk7XG4vKiogVGFidWxhciBzdGF0ZW1lbnQgcGF5bG9hZCByZXNvbHZlZCBmcm9tIGEgYFtkYXRhOjxzdGF0ZW1lbnRfaWQ+XWAgZW1iZWQgbWFya2VyLiAqL1xuZXhwb3J0IHR5cGUgU3RhdGVtZW50RGF0YSA9IHouaW5mZXI8dHlwZW9mIFN0YXRlbWVudERhdGFTY2hlbWE+O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tIG1hc3RyYS1vbmx5IGdlbmllLWFnZW50IGV2ZW50cyAtLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogTWFzdHJhLW9ubHkgbGlmZWN5Y2xlIGV2ZW50OiB0aGUgR2VuaWUgdG9vbCBpbnZvY2F0aW9uIHN0YXJ0ZWQuXG4gKiBFbWl0dGVkIGltbWVkaWF0ZWx5IHdoZW4gdGhlIGNhbGxpbmcgYWdlbnQgaW52b2tlcyB0aGUgR2VuaWVcbiAqIHRvb2wsIGJlZm9yZSBhbnkgaW5uZXIgYWdlbnQgLyB3aXJlIGFjdGl2aXR5LCBzbyB0aGUgVUkgY2FuXG4gKiBwb3AgYSBcIlRoaW5raW5nLi4uXCIgcGlsbCB0aGUgaW5zdGFudCB0aGUgbW9kZWwgZGVjaWRlcyB0b1xuICogZGVsZWdhdGUuIGBjb252ZXJzYXRpb25JZGAgLyBgbWVzc2FnZUlkYCBhcmUgYWJzZW50IG9uIHRoaXNcbiAqIGZpcnN0IGVtaXQgKG5vIEdlbmllIHJvdW5kLXRyaXAgeWV0KS4gRmllbGQgbmFtZXMgYXJlXG4gKiBjYW1lbENhc2UgKHZzIHRoZSBzbmFrZV9jYXNlIHdpcmUgZXZlbnRzKSB0byBtaXJyb3IgdGhlXG4gKiBHZW5pZSBhZ2VudCdzIG93biBpbnRlcm5hbCBkYXRhIHBsdW1iaW5nLlxuICovXG5leHBvcnQgY29uc3QgU3RhcnRlZEV2ZW50U2NoZW1hID0gei5vYmplY3Qoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJzdGFydGVkXCIpLFxuICBzcGFjZUlkOiB6LnN0cmluZygpLFxuICBjb252ZXJzYXRpb25JZDogelxuICAgIC5zdHJpbmcoKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKFwiRXhpc3RpbmcgR2VuaWUgY29udmVyc2F0aW9uIGlkIGZvciBhIGZvbGxvdy11cCB0dXJuLiBBYnNlbnQgb24gdGhlIGZpcnN0IHR1cm4uXCIpLFxuICBtZXNzYWdlSWQ6IHpcbiAgICAuc3RyaW5nKClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZShcIkdlbmllIG1lc3NhZ2UgaWQgb25jZSB0aGUgZmlyc3Qgd2lyZSBtZXNzYWdlIGV2ZW50IGhhcyBhcnJpdmVkLlwiKSxcbiAgY29udGVudDogei5zdHJpbmcoKS5kZXNjcmliZShcIlF1ZXN0aW9uIHRoZSBHZW5pZSBhZ2VudCBzZW50IHRvIEdlbmllLlwiKSxcbn0pO1xuLyoqIEltbWVkaWF0ZSBsaWZlY3ljbGUgZXZlbnQgZW1pdHRlZCB3aGVuIGFuIGBhc2tfZ2VuaWVgIGludm9jYXRpb24gYmVnaW5zLiAqL1xuZXhwb3J0IHR5cGUgU3RhcnRlZEV2ZW50ID0gei5pbmZlcjx0eXBlb2YgU3RhcnRlZEV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBNYXN0cmEtb25seSBsaWZlY3ljbGUgZXZlbnQ6IG9uZSBgYXNrX2dlbmllYCBpbnZvY2F0aW9uXG4gKiBmaW5pc2hlZC4gQ2FycmllcyB0aGUgaHlkcmF0ZWQgYHN0YXRlbWVudElkc2AgKHJvd3MgYXJlIGZldGNoZWRcbiAqIHZpYSBgZ2V0U3RhdGVtZW50YCBzZXBhcmF0ZWx5KSBhbmQgR2VuaWUncyBmaW5hbCBwcm9zZSBhbnN3ZXJcbiAqIHNvIHRoZSBVSSBjYW4gbW92ZSBmcm9tIFwidGhpbmtpbmdcIiB0byBcImFuc3dlcmVkXCIgd2l0aG91dFxuICogd2FpdGluZyBmb3IgdGhlIEdlbmllIGFnZW50J3Mgd2hvbGUgcmVhc29uaW5nIGxvb3AgdG8gZW5kLlxuICovXG5leHBvcnQgY29uc3QgQXNrR2VuaWVEb25lRXZlbnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcImFza19nZW5pZV9kb25lXCIpLFxuICBzcGFjZUlkOiB6LnN0cmluZygpLFxuICBjb252ZXJzYXRpb25JZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBtZXNzYWdlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYW5zd2VyOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJHZW5pZSdzIG5hdHVyYWwtbGFuZ3VhZ2UgYW5zd2VyIGZvciB0aGUgdHVybi5cIiksXG4gIHN0YXRlbWVudElkczogelxuICAgIC5hcnJheSh6LnN0cmluZygpKVxuICAgIC5kZXNjcmliZShcIlN0YXRlbWVudCBpZHMgZm9yIG5vbi1lbXB0eSByZXN1bHQgc2V0cyBwcm9kdWNlZCBieSB0aGlzIHR1cm4uXCIpLFxuICBzdGF0dXM6IHpcbiAgICAuY3VzdG9tPE1lc3NhZ2VTdGF0dXM+KCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKVxuICAgIC5kZXNjcmliZShcIlRlcm1pbmFsIEdlbmllIHdpcmUgc3RhdHVzIG1pcnJvcmVkIGZyb20gdGhlIHNvdXJjZSByZXN1bHQgZXZlbnQuXCIpLFxufSk7XG4vKiogQ29tcGxldGlvbiBldmVudCBmb3Igb25lIGBhc2tfZ2VuaWVgIGludm9jYXRpb24sIGluY2x1ZGluZyBpdHMgdGVybWluYWwgc3RhdHVzLiAqL1xuZXhwb3J0IHR5cGUgQXNrR2VuaWVEb25lRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBBc2tHZW5pZURvbmVFdmVudFNjaGVtYT47XG5cbi8qKlxuICogTWFzdHJhLW9ubHkgZXJyb3IgZXZlbnQ6IHRlcm1pbmFsIEdlbmllIGFnZW50IC8gdHJhbnNwb3J0XG4gKiBlcnJvci4gR2VuaWUncyBvd24gYEZBSUxFRGAgLyBgQ0FOQ0VMTEVEYCBjb21lIHRocm91Z2ggdGhlXG4gKiB3aXJlJ3MgYHJlc3VsdGAgZXZlbnQgLSB0aGlzIHZhcmlhbnQgaXMgZm9yIGZhaWx1cmVzIHRoZSB3aXJlXG4gKiBjYW4ndCByZXByZXNlbnQgKG5ldHdvcmssIEdlbmllIGFnZW50IGNyYXNoLCBwbGFubmVyIGVycm9yLFxuICogZXRjLikgcGx1cyBhIFVJLWZyaWVuZGx5IG1pcnJvciBvZiBgcmVzdWx0YCB3aGVuIHRoZSBzdGF0dXMgaXNcbiAqIG5vbi1gQ09NUExFVEVEYC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1hc3RyYUdlbmllRXJyb3JFdmVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5saXRlcmFsKFwiZXJyb3JcIiksXG4gIHNwYWNlSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgY29udmVyc2F0aW9uSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbWVzc2FnZUlkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGVycm9yOiB6LnN0cmluZygpLFxufSk7XG4vKiogTWFzdHJhLXNpZGUgZmFpbHVyZSBldmVudCBmb3IgZXJyb3JzIG91dHNpZGUgR2VuaWUncyBub3JtYWwgdGVybWluYWwgcmVzdWx0LiAqL1xuZXhwb3J0IHR5cGUgTWFzdHJhR2VuaWVFcnJvckV2ZW50ID0gei5pbmZlcjx0eXBlb2YgTWFzdHJhR2VuaWVFcnJvckV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBNYXN0cmEtb25seSBsaWZlY3ljbGUgZXZlbnQ6IHRoZSBpbm5lciBHZW5pZSBhZ2VudCdzXG4gKiBzdHJ1Y3R1cmVkLW91dHB1dCBjb2VyY2lvbiBoYXMgbGFuZGVkLiBGaXJlcyBvbmNlIHBlciBHZW5pZVxuICogdG9vbCBpbnZvY2F0aW9uLCBBRlRFUiBgYWdlbnQuZ2VuZXJhdGUoLi4uKWAgY29tcGxldGVzIChpLmUuXG4gKiB0aGUgaW5uZXIgbG9vcCArIE1hc3RyYSdzIHN0cnVjdHVyaW5nIHBhc3MgaGF2ZSBib3RoXG4gKiBmaW5pc2hlZCkgYW5kIEJFRk9SRSB0aGUgd3JhcHBlciBoeWRyYXRlcyBlYWNoIGBkYXRhYCBpdGVtXG4gKiB3aXRoIGEgY2hhcnQuIFNpZ25hbHMgdG8gdGhlIGhvc3QgVUkgdGhhdCB0aGUgYWdlbnQgaGFzXG4gKiBzdG9wcGVkIHJlYXNvbmluZyBhbmQgaXMgbW92aW5nIGludG8gY2hhcnQgZ2VuZXJhdGlvbi5cbiAqXG4gKiBUaGUgc3RydWN0dXJpbmcgcGFzcyBpdHNlbGYgaXMgb3BhcXVlIChpdCBydW5zIGluc2lkZVxuICogTWFzdHJhJ3MgYGFnZW50LmdlbmVyYXRlKC4uLilgIHRvZ2V0aGVyIHdpdGggdGhlIHRvb2wgbG9vcClcbiAqIHNvIHRoaXMgaXMgdGhlIGVhcmxpZXN0IGhvb2sgd2UgY2FuIG9mZmVyOyB3ZSBjYW4ndCBmaXJlIGFcbiAqIFwic3VtbWFyeSBzdGFydGVkXCIgZXZlbnQgdGhlIHdheSB3ZSBmaXJlIGBzdGFydGVkYC5cbiAqL1xuZXhwb3J0IGNvbnN0IFN1bW1hcnlFdmVudFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdHlwZTogei5saXRlcmFsKFwic3VtbWFyeVwiKSxcbiAgc3BhY2VJZDogei5zdHJpbmcoKSxcbiAgaXRlbXM6IHoubnVtYmVyKCkuaW50KCkubm9ubmVnYXRpdmUoKS5kZXNjcmliZShcIlRvdGFsIGl0ZW1zIGluIHRoZSBhZ2VudCdzIHN0cnVjdHVyZWQgc3VtbWFyeS5cIiksXG4gIHRleHRJdGVtczogei5udW1iZXIoKS5pbnQoKS5ub25uZWdhdGl2ZSgpLmRlc2NyaWJlKFwiVGV4dCBhbmQgcHJvc2UgaXRlbXMgaW4gdGhlIHN1bW1hcnkuXCIpLFxuICBkYXRhSXRlbXM6IHpcbiAgICAubnVtYmVyKClcbiAgICAuaW50KClcbiAgICAubm9ubmVnYXRpdmUoKVxuICAgIC5kZXNjcmliZShcIkRhdGEgaXRlbXMgdGhlIHdyYXBwZXIgd2lsbCBoeWRyYXRlIGludG8gY2hhcnRzLlwiKSxcbn0pO1xuLyoqIExpZmVjeWNsZSBldmVudCBlbWl0dGVkIGJlZm9yZSBzdW1tYXJ5IGRhdGEgaXRlbXMgYXJlIGh5ZHJhdGVkIGludG8gY2hhcnRzLiAqL1xuZXhwb3J0IHR5cGUgU3VtbWFyeUV2ZW50ID0gei5pbmZlcjx0eXBlb2YgU3VtbWFyeUV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBNYXN0cmEtb25seSBldmVudCB1bmlvbi4gRWFjaCB2YXJpYW50IHVzZXMgdGhlIHNhbWUgZmxhdFxuICogYHt0eXBlLCAuLi5maWVsZHN9YCBzaGFwZSBhcyB7QGxpbmsgR2VuaWVDaGF0RXZlbnR9IHNvXG4gKiBzdWJzY3JpYmVycyB1bmlvbiBib3RoIHdpdGggYSBzaW5nbGUgYHN3aXRjaCAoZXZlbnQudHlwZSlgLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVBZ2VudEV2ZW50U2NoZW1hID0gei5kaXNjcmltaW5hdGVkVW5pb24oXCJ0eXBlXCIsIFtcbiAgU3RhcnRlZEV2ZW50U2NoZW1hLFxuICBBc2tHZW5pZURvbmVFdmVudFNjaGVtYSxcbiAgTWFzdHJhR2VuaWVFcnJvckV2ZW50U2NoZW1hLFxuICBTdW1tYXJ5RXZlbnRTY2hlbWEsXG5dKTtcbi8qKiBNYXN0cmEtb3duZWQgbGlmZWN5Y2xlIGV2ZW50cyBsYXllcmVkIG9uIHRvcCBvZiBHZW5pZSdzIHdpcmUgZXZlbnQgc3RyZWFtLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVBZ2VudEV2ZW50ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVBZ2VudEV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBUaGUgdW5pZmllZCB3cml0ZXItZXZlbnQgdm9jYWJ1bGFyeSBzdWJzY3JpYmVycyBzZWUgb25cbiAqIGBjdHgud3JpdGVyYDogdGhlIHdpcmUtZGVyaXZlZCB7QGxpbmsgR2VuaWVDaGF0RXZlbnR9IHVuaW9uXG4gKiAqKnBsdXMqKiBNYXN0cmEtb25seSBldmVudHMgZnJvbSB7QGxpbmsgR2VuaWVBZ2VudEV2ZW50fS4gRWFjaFxuICogdmFyaWFudCBpcyBhIGZsYXQgYHt0eXBlLCAuLi5maWVsZHN9YCBvYmplY3Q7IGNvbnN1bWVycyBuYXJyb3dcbiAqIG9uIGB0eXBlYCBhbmQgcmVhZCBmaWVsZHMgaW5saW5lIC0gdGhlcmUgaXMgbm8gcGF5bG9hZCB3cmFwcGVyXG4gKiBhbmQgbm8gd3JpdGVyLWJvdW5kYXJ5IHRyYW5zbGF0b3IuXG4gKlxuICogQ29tcG9zZWQgdmlhIGB6LnVuaW9uYCAobm90IGB6LmRpc2NyaW1pbmF0ZWRVbmlvbmApIGJlY2F1c2VcbiAqIGJvdGggaGFsdmVzIGFyZSB0aGVtc2VsdmVzIGRpc2NyaW1pbmF0ZWQgdW5pb25zIG9uIHRoZSBzYW1lXG4gKiBgdHlwZWAga2V5LlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVXcml0ZXJFdmVudFNjaGVtYSA9IHoudW5pb24oW1xuICBnZW5pZU1vZGVsLkdlbmllQ2hhdEV2ZW50U2NoZW1hLFxuICBHZW5pZUFnZW50RXZlbnRTY2hlbWEsXG5dKTtcbi8qKiBDb21wbGV0ZSBldmVudCB2b2NhYnVsYXJ5IHdyaXR0ZW4gYnkgdGhlIE1hc3RyYSBHZW5pZSBpbnRlZ3JhdGlvbi4gKi9cbmV4cG9ydCB0eXBlIEdlbmllV3JpdGVyRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZVdyaXRlckV2ZW50U2NoZW1hPjtcblxuLyoqIERpc2NyaW1pbmF0b3IgdHlwZSBmb3Ige0BsaW5rIEdlbmllV3JpdGVyRXZlbnR9LiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVXcml0ZXJFdmVudFR5cGUgPSBHZW5pZVdyaXRlckV2ZW50W1widHlwZVwiXTtcblxuLyoqIE5hdGl2ZSBBSSBTREsgY3VzdG9tIGRhdGEtcGFydCB0eXBlIGNhcnJ5aW5nIG9uZSBHZW5pZSBwcm9ncmVzcyBldmVudC4gKi9cbmV4cG9ydCBjb25zdCBHRU5JRV9QUk9HUkVTU19QQVJUX1RZUEUgPSBcImRhdGEtZ2VuaWUtcHJvZ3Jlc3NcIiBhcyBjb25zdDtcblxuLyoqXG4gKiBEYXRhIGF0dGFjaGVkIHRvIHtAbGluayBHRU5JRV9QUk9HUkVTU19QQVJUX1RZUEV9LiBgdG9vbENhbGxJZGAgYXNzb2NpYXRlc1xuICogcHJvZ3Jlc3Mgd2l0aCB0aGUgbmF0aXZlIHRvb2wgcGFydCB0aGF0IG93bnMgdGhlIHJlcXVlc3QgYW5kIHJlc3VsdC5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllUHJvZ3Jlc3NQYXJ0RGF0YVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdG9vbENhbGxJZDogei5zdHJpbmcoKSxcbiAgZXZlbnQ6IEdlbmllV3JpdGVyRXZlbnRTY2hlbWEsXG59KTtcbi8qKiBWYWxpZGF0ZWQgcGF5bG9hZCBjYXJyaWVkIGJ5IGEgbmF0aXZlIEdlbmllIHByb2dyZXNzIGRhdGEgcGFydC4gKi9cbmV4cG9ydCB0eXBlIEdlbmllUHJvZ3Jlc3NQYXJ0RGF0YSA9IHouaW5mZXI8dHlwZW9mIEdlbmllUHJvZ3Jlc3NQYXJ0RGF0YVNjaGVtYT47XG5cbi8qKiBHZW5lcmljIHByb2dyZXNzIHN0YXR1cyBlbWl0dGVkIGJ5IG5vbi1HZW5pZSBhZ2VudCB0b29scy4gKi9cbmV4cG9ydCBjb25zdCBUb29sU3RhdHVzUHJvZ3Jlc3NFdmVudFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwidG9vbF9zdGF0dXNcIikuZGVzY3JpYmUoXCJHZW5lcmljIHRvb2wgcHJvZ3Jlc3MgZGlzY3JpbWluYXRvci5cIiksXG4gICAgc3RhdHVzOiB6LnN0cmluZygpLmRlc2NyaWJlKFwiTWFjaGluZS1yZWFkYWJsZSB0b29sIHN0YXR1cy5cIiksXG4gICAgbWVzc2FnZTogei5zdHJpbmcoKS5kZXNjcmliZShcIkh1bWFuLXJlYWRhYmxlIHByb2dyZXNzIGxhYmVsLlwiKSxcbiAgICB1cmw6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIlJlbGF0ZWQgVVJMIHdoZW4gdGhlIHRvb2wgaXMgcmVhZGluZyBhIHBhZ2UuXCIpLFxuICAgIGdyb3VwSWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIklkZW50aWZpZXIgZ3JvdXBpbmcgb25lIHNlYXJjaCB3aXRoIGl0cyByZXN1bHQuXCIpLFxuICAgIGRldGFpbDogei5zdHJpbmcoKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiT3B0aW9uYWwgc2Vjb25kYXJ5IHJlc3VsdCBkZXRhaWwuXCIpLFxuICB9KVxuICAuZGVzY3JpYmUoXCJHZW5lcmljIHN0YXR1cyB1cGRhdGUgZm9yIG9uZSBydW5uaW5nIGFnZW50IHRvb2wuXCIpO1xuXG4vKiogR2VuZXJpYyBwcm9ncmVzcyBzdGF0dXMgZW1pdHRlZCBieSBub24tR2VuaWUgYWdlbnQgdG9vbHMuICovXG5leHBvcnQgdHlwZSBUb29sU3RhdHVzUHJvZ3Jlc3NFdmVudCA9IHouaW5mZXI8dHlwZW9mIFRvb2xTdGF0dXNQcm9ncmVzc0V2ZW50U2NoZW1hPjtcblxuLyoqIENvbXBsZXRlIHByb2dyZXNzIHZvY2FidWxhcnkgcmVuZGVyZWQgYnkgdGhlIGNvbW1vbiB0b29sLXNlc3Npb24gcGlsbC4gKi9cbmV4cG9ydCBjb25zdCBUb29sUHJvZ3Jlc3NFdmVudFNjaGVtYSA9IHoudW5pb24oW1xuICBHZW5pZVdyaXRlckV2ZW50U2NoZW1hLFxuICBUb29sU3RhdHVzUHJvZ3Jlc3NFdmVudFNjaGVtYSxcbl0pO1xuXG4vKiogQ29tcGxldGUgcHJvZ3Jlc3MgZXZlbnQgcmVuZGVyZWQgYnkgdGhlIGNvbW1vbiB0b29sLXNlc3Npb24gcGlsbC4gKi9cbmV4cG9ydCB0eXBlIFRvb2xQcm9ncmVzc0V2ZW50ID0gei5pbmZlcjx0eXBlb2YgVG9vbFByb2dyZXNzRXZlbnRTY2hlbWE+O1xuXG4vKiogTmF0aXZlIEFJIFNESyBjdXN0b20gZGF0YS1wYXJ0IHR5cGUgY2FycnlpbmcgZ2VuZXJpYyB0b29sIHByb2dyZXNzLiAqL1xuZXhwb3J0IGNvbnN0IFRPT0xfUFJPR1JFU1NfUEFSVF9UWVBFID0gXCJkYXRhLXRvb2wtcHJvZ3Jlc3NcIiBhcyBjb25zdDtcblxuLyoqIERhdGEgYXR0YWNoZWQgdG8ge0BsaW5rIFRPT0xfUFJPR1JFU1NfUEFSVF9UWVBFfS4gKi9cbmV4cG9ydCBjb25zdCBUb29sUHJvZ3Jlc3NQYXJ0RGF0YVNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgdG9vbENhbGxJZDogei5zdHJpbmcoKS5kZXNjcmliZShcIk5hdGl2ZSB0b29sLWNhbGwgaWQgcmVjZWl2aW5nIHRoaXMgcHJvZ3Jlc3MgZXZlbnQuXCIpLFxuICAgIGV2ZW50OiBUb29sUHJvZ3Jlc3NFdmVudFNjaGVtYS5kZXNjcmliZShcIlByb2dyZXNzIGV2ZW50IGVtaXR0ZWQgYnkgdGhlIHJ1bm5pbmcgdG9vbC5cIiksXG4gIH0pXG4gIC5kZXNjcmliZShcIkdlbmVyaWMgdG9vbCBwcm9ncmVzcyBhdHRhY2hlZCB0byBvbmUgbmF0aXZlIHRvb2wgY2FsbC5cIik7XG5cbi8qKiBWYWxpZGF0ZWQgcGF5bG9hZCBjYXJyaWVkIGJ5IGEgbmF0aXZlIGdlbmVyaWMgdG9vbCBwcm9ncmVzcyBkYXRhIHBhcnQuICovXG5leHBvcnQgdHlwZSBUb29sUHJvZ3Jlc3NQYXJ0RGF0YSA9IHouaW5mZXI8dHlwZW9mIFRvb2xQcm9ncmVzc1BhcnREYXRhU2NoZW1hPjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBzdW1tYXJ5ICsgZGF0YXNldCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBUYWJ1bGFyIHBheWxvYWQgZW1iZWRkZWQgaW4gZXZlcnkge0BsaW5rIEdlbmllU3VtbWFyeUl0ZW19XG4gKiBgdmlzdWFsaXplYCBkYXRhc2V0LiBBbHdheXMgcHJlc2VudDogaHlkcmF0ZWQgYnkgdGhlIHdvcmtmbG93J3NcbiAqIGFnZW50IHN0ZXAgYmVmb3JlIHRoZSBmaW5hbGl6ZSBzdGVwIHJ1bnMsIHNvIGNvbnN1bWVycyBjYW4gcmVuZGVyXG4gKiBhIHRhYmxlIGZhbGxiYWNrIHJlZ2FyZGxlc3Mgb2YgY2hhcnQtcGxhbm5lciBvdXRjb21lLlxuICpcbiAqIEZpZWxkczpcbiAqICAgLSBgY29sdW1uc2A6IGNvbHVtbiBuYW1lcyBpbiBkaXNwbGF5IG9yZGVyLlxuICogICAtIGByb3dzYDogdGFidWxhciByb3dzIGtleWVkIGJ5IGNvbHVtbiBuYW1lLlxuICogICAtIGByb3dDb3VudGA6IHRvdGFsIHJvdyBjb3VudCBHZW5pZSByZXBvcnRlZCAobWF5IGV4Y2VlZFxuICogICAgIGByb3dzLmxlbmd0aGAgd2hlbiB0aGUgc3RhdGVtZW50IHdhcyB0cnVuY2F0ZWQpLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVEYXRhc2V0RGF0YVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY29sdW1uczogei5hcnJheSh6LnN0cmluZygpKSxcbiAgcm93czogei5hcnJheSh6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkpLFxuICByb3dDb3VudDogei5udW1iZXIoKSxcbn0pO1xuLyoqIEh5ZHJhdGVkIHRhYnVsYXIgZGF0YSB0aGF0IGFsd2F5cyBiYWNrcyBhIEdlbmllIHZpc3VhbGl6YXRpb24gaXRlbS4gKi9cbmV4cG9ydCB0eXBlIEdlbmllRGF0YXNldERhdGEgPSB6LmluZmVyPHR5cGVvZiBHZW5pZURhdGFzZXREYXRhU2NoZW1hPjtcblxuLyoqXG4gKiBTbGltIGNoYXJ0IHJlZmVyZW5jZSBhdHRhY2hlZCB0byBhIHZpc3VhbGl6ZSBkYXRhc2V0LiBPbmx5XG4gKiBwcmVzZW50IHdoZW4gcGxhbm5pbmcgc3VjY2VlZGVkLlxuICpcbiAqIGBvcHRpb25gIGlzIGludGVudGlvbmFsbHkgTk9UIGluY2x1ZGVkLiBUaGUgcmVzb2x2ZWQgRWNoYXJ0c1xuICogc3BlYyBsaXZlcyBvZmYtYmFuZCBpbiB0aGUgY2hhcnQgY2FjaGU6IHRoZSBob3N0IFVJIGZldGNoZXMgaXRcbiAqIGJ5IGBjaGFydElkYCBmcm9tIHRoZSBwbHVnaW4ncyBlbWJlZCByb3V0ZSAoZGVyaXZlZCBmcm9tXG4gKiBgYmFzZVBhdGhgICsge0BsaW5rIE1BU1RSQV9ST1VURVN9LmVtYmVkLCBpLmUuIGAvZW1iZWQvY2hhcnQvOmlkYDtcbiAqIHNlZSB7QGxpbmsgQ2hhcnR9KS4gRW1iZWRkaW5nIHRoZSBmdWxsIHNwZWMgaW5saW5lIHdvdWxkXG4gKiBpbmZsYXRlIGV2ZXJ5IGRhdGFzZXQgYnkgc2V2ZXJhbCBLQiBwZXIgY2hhcnQgYW5kIHJvdW5kLXRyaXBcbiAqIHRocm91Z2ggdGhlIExMTSBjb250ZXh0IGZvciB6ZXJvIGJlbmVmaXQgKHRoZSBtb2RlbCBvbmx5IG5lZWRzXG4gKiB0aGUgYGNoYXJ0SWRgIHRvIHBsYWNlIGEgYFtjaGFydDo8Y2hhcnRJZD5dYCBtYXJrZXIgaW4gaXRzXG4gKiByZXBseSkuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZURhdGFzZXRDaGFydFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgY2hhcnRJZDogei5zdHJpbmcoKSxcbiAgY2hhcnRUeXBlOiBDaGFydFR5cGVTY2hlbWEsXG59KTtcbi8qKiBMaWdodHdlaWdodCByZWZlcmVuY2UgdG8gYSBjaGFydCBwbGFuIHN0b3JlZCBpbiB0aGUgTWFzdHJhIGNoYXJ0IGNhY2hlLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVEYXRhc2V0Q2hhcnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZURhdGFzZXRDaGFydFNjaGVtYT47XG5cbi8qKlxuICogRGF0YXNldCBidW5kbGUgYXR0YWNoZWQgdG8gYSB7QGxpbmsgR2VuaWVTdW1tYXJ5SXRlbX0gYHZpc3VhbGl6ZWBcbiAqIGl0ZW0uIGBkYXRhYCBpcyBhbHdheXMgcG9wdWxhdGVkOyBgY2hhcnRgIGlzIGJlc3QtZWZmb3J0IGFuZFxuICogYWJzZW50IHdoZW4gdGhlIHdvcmtmbG93J3MgY2hhcnQtcGxhbm5lciBmYWlsZWQgKHRpbWVvdXQsXG4gKiBtYWxmb3JtZWQgcGxhbiwgYWJvcnQpIHNvIHRoZSBob3N0IFVJIGNhbiBzdGlsbCByZW5kZXIgdGhlXG4gKiB1bmRlcmx5aW5nIHRhYmxlLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVEYXRhc2V0U2NoZW1hID0gei5vYmplY3Qoe1xuICBkYXRhOiBHZW5pZURhdGFzZXREYXRhU2NoZW1hLFxuICBjaGFydDogR2VuaWVEYXRhc2V0Q2hhcnRTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuLyoqIFZpc3VhbGl6YXRpb24gZGF0YXNldCB3aXRoIHJlcXVpcmVkIHRhYmxlIGRhdGEgYW5kIGFuIG9wdGlvbmFsIHBsYW5uZWQgY2hhcnQuICovXG5leHBvcnQgdHlwZSBHZW5pZURhdGFzZXQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZURhdGFzZXRTY2hlbWE+O1xuXG4vKipcbiAqIE9uZSBpdGVtIGluc2lkZSB0aGUgR2VuaWUgd29ya2Zsb3cncyBmaW5hbCBzdW1tYXJ5LiBUaGVcbiAqIHdvcmtmbG93IHByb2R1Y2VzIGEgbWl4ZWQgc2VxdWVuY2Ugb2Y6XG4gKlxuICogICAtIGBzdHJpbmdgOiBhIG1hcmtkb3duIHBhcmFncmFwaCAoaW50ZXJwcmV0YXRpb24sIGNhbGxvdXRzLFxuICogICAgIHRyYW5zaXRpb25zIGJldHdlZW4gZGF0YSBibG9ja3MpLlxuICogICAtIGB2aXN1YWxpemVgOiBhIHJlcXVlc3QgZnJvbSB0aGUgYWdlbnQgc3RlcCB0byB2aXN1YWxpemUgYVxuICogICAgIHNwZWNpZmljIEdlbmllIHN0YXRlbWVudCBhdCB0aGlzIHBvc2l0aW9uIGluIHRoZSBwcm9zZS5cbiAqICAgICBUaGUgZmluYWxpemUgc3RlcCBoeWRyYXRlcyBgZGF0YXNldC5kYXRhYCAocm93cyBmcm9tIHRoZVxuICogICAgIG1hdGNoaW5nIGBzdGF0ZW1lbnRJZGApIGFuZCBhdHRhY2hlcyBgZGF0YXNldC5jaGFydGAgYWZ0ZXJcbiAqICAgICBydW5uaW5nIHRoZSBjaGFydC1wbGFubmVyLiBUaGUgYWdlbnQgTkVWRVIgcGlja3MgdGhlIGNoYXJ0XG4gKiAgICAgdHlwZSAtIGl0IG9ubHkgbWFya3Mgd2hlcmUgYSB2aXN1YWxpemF0aW9uIGJlbG9uZ3MuXG4gKlxuICogVGhlIGhvc3QgVUkgd2Fsa3MgdGhlIGFycmF5IGluIGRpc3BsYXkgb3JkZXIgdG8gY29tcG9zZSB0aGVcbiAqIGZpbmFsIGFzc2lzdGFudCBtZXNzYWdlLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVTdW1tYXJ5SXRlbVNjaGVtYSA9IHouZGlzY3JpbWluYXRlZFVuaW9uKFwidHlwZVwiLCBbXG4gIHoub2JqZWN0KHtcbiAgICB0eXBlOiB6LmxpdGVyYWwoXCJzdHJpbmdcIiksXG4gICAgdGV4dDogei5zdHJpbmcoKSxcbiAgfSksXG4gIHoub2JqZWN0KHtcbiAgICB0eXBlOiB6LmxpdGVyYWwoXCJ2aXN1YWxpemVcIiksXG4gICAgc3RhdGVtZW50SWQ6IHouc3RyaW5nKCksXG4gICAgdGl0bGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgIGRhdGFzZXQ6IEdlbmllRGF0YXNldFNjaGVtYSxcbiAgfSksXG5dKTtcbi8qKiBPcmRlcmVkIHByb3NlIG9yIHZpc3VhbGl6YXRpb24gaXRlbSBpbiB0aGUgR2VuaWUgYWdlbnQncyBmaW5hbCBzdW1tYXJ5LiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVTdW1tYXJ5SXRlbSA9IHouaW5mZXI8dHlwZW9mIEdlbmllU3VtbWFyeUl0ZW1TY2hlbWE+O1xuXG4vKiogRGlzY3JpbWluYXRvciB0eXBlIGZvciB7QGxpbmsgR2VuaWVTdW1tYXJ5SXRlbX0uICovXG5leHBvcnQgdHlwZSBHZW5pZVN1bW1hcnlJdGVtVHlwZSA9IEdlbmllU3VtbWFyeUl0ZW1bXCJ0eXBlXCJdO1xuXG4vKipcbiAqIFRoZSBHZW5pZSBhZ2VudCdzIGZpbmFsIG91dHB1dCBzaGFwZSAtIHdoYXQgdGhlIGNhbGxpbmcgYWdlbnQnc1xuICogR2VuaWUgdG9vbCByZXR1cm5zIHRvIHRoZSBjYWxsaW5nIExMTS4gVGhlIGBzdW1tYXJ5YCBhcnJheSBpc1xuICogdGhlIHVzZXItZmFjaW5nIHJlbmRlcmFibGU7IGBjb252ZXJzYXRpb25JZGAgbGV0cyB0aGUgY2FsbGluZ1xuICogYWdlbnQgKG9yIHRoZSBVSSkgZm9sbG93IHVwIGluIHRoZSBzYW1lIEdlbmllIHRocmVhZCBvbiB0aGVcbiAqIG5leHQgdHVybi5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQWdlbnRSZXN1bHRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHNwYWNlSWQ6IHouc3RyaW5nKCksXG4gIGNvbnZlcnNhdGlvbklkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHN1bW1hcnk6IHouYXJyYXkoR2VuaWVTdW1tYXJ5SXRlbVNjaGVtYSksXG4gIGVycm9yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbi8qKiBGaW5hbCByZW5kZXJhYmxlIG91dHB1dCByZXR1cm5lZCBieSB0aGUgR2VuaWUgYWdlbnQgdG9vbCB0byBpdHMgY2FsbGVyLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVBZ2VudFJlc3VsdCA9IHouaW5mZXI8dHlwZW9mIEdlbmllQWdlbnRSZXN1bHRTY2hlbWE+O1xuIl19
|
package/package.json
CHANGED
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"typescript": "^5.9.3"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@dbx-tools/shared-genie": "^0.9.
|
|
26
|
-
"@dbx-tools/shared-model": "^0.9.
|
|
25
|
+
"@dbx-tools/shared-genie": "^0.9.105",
|
|
26
|
+
"@dbx-tools/shared-model": "^0.9.105",
|
|
27
27
|
"zod": "4.3.6"
|
|
28
28
|
},
|
|
29
29
|
"main": "./lib/index.js",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"./package.json": "./package.json"
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
|
-
"version": "0.9.
|
|
71
|
+
"version": "0.9.105",
|
|
72
72
|
"types": "./lib/index.d.ts",
|
|
73
73
|
"dbxToolsConfig": {
|
|
74
74
|
"tags": [
|
package/src/routes.ts
CHANGED
package/src/wire.ts
CHANGED
|
@@ -67,6 +67,9 @@ import { z } from "zod";
|
|
|
67
67
|
* hides chat when the OBO token is absent should show it anyway. Defaults
|
|
68
68
|
* to `false` (the OBO / `"user"` identity mode), so an older server without
|
|
69
69
|
* the field keeps the OBO-gated behavior.
|
|
70
|
+
* - `backgroundTurns`: whether turns use Mastra evented durable execution
|
|
71
|
+
* and can be observed after the initiating HTTP stream disconnects.
|
|
72
|
+
* Defaults to `false` for compatibility with older servers.
|
|
70
73
|
*/
|
|
71
74
|
export const MastraClientConfigSchema = z.object({
|
|
72
75
|
basePath: z.string(),
|
|
@@ -74,9 +77,17 @@ export const MastraClientConfigSchema = z.object({
|
|
|
74
77
|
agents: z.array(z.string()),
|
|
75
78
|
feedbackEnabled: z.boolean().default(false),
|
|
76
79
|
chatAlwaysAvailable: z.boolean().default(false),
|
|
80
|
+
backgroundTurns: z.boolean().default(false),
|
|
77
81
|
});
|
|
78
82
|
/** Browser-safe Mastra plugin descriptor used to construct route and stream clients. */
|
|
79
|
-
export type MastraClientConfig = z.
|
|
83
|
+
export type MastraClientConfig = z.input<typeof MastraClientConfigSchema>;
|
|
84
|
+
|
|
85
|
+
/** Response returned after requesting cancellation of one durable agent run. */
|
|
86
|
+
export const MastraRunAbortResponseSchema = z.object({
|
|
87
|
+
aborted: z.boolean(),
|
|
88
|
+
});
|
|
89
|
+
/** Result of an explicit durable run cancellation request. */
|
|
90
|
+
export type MastraRunAbortResponse = z.infer<typeof MastraRunAbortResponseSchema>;
|
|
80
91
|
|
|
81
92
|
/**
|
|
82
93
|
* JSON payload returned by `GET ${basePath}/default-model[?agentId=]`. The
|