@dbx-tools/shared-genie 0.9.133 → 0.9.136

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/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-genie";
6
- export const PACKAGE_VERSION = "0.9.133";
6
+ export const PACKAGE_VERSION = "0.9.136";
7
7
  export * as agentMode from "./src/agent-mode.ts";
8
8
  export * as dashboards from "./src/dashboards.ts";
9
9
  export * as event from "./src/event.ts";
@@ -13,5 +13,5 @@ export type { GenieAgentConversationItems, GenieAgentOutputItem, GenieAgentRespo
13
13
  export { authorizationDetailsGrantRuleSchema, cronScheduleSchema, lifecycleStateSchema, dashboardViewSchema, deleteScheduleRequestSchema, deleteSubscriptionRequestSchema, genieSuggestedQuestionsAttachmentSchema, genieConversationSchema, genieConversationSummarySchema, genieCreateConversationMessageRequestSchema, genieDeleteConversationMessageRequestSchema, genieDeleteConversationRequestSchema, genieExecuteMessageAttachmentQueryRequestSchema, genieExecuteMessageQueryRequestSchema, genieFeedbackRatingSchema, genieGetConversationMessageRequestSchema, genieGetMessageAttachmentQueryResultRequestSchema, genieGetMessageQueryResultRequestSchema, genieGetMessageQueryResultResponseSchema, genieGetQueryResultByAttachmentRequestSchema, genieGetSpaceRequestSchema, genieListConversationMessagesRequestSchema, genieListConversationsRequestSchema, genieListConversationsResponseSchema, genieListSpacesRequestSchema, genieSpaceSchema, genieFeedbackSchema, resultSchema, messageStatusSchema, queryAttachmentParameterSchema, genieResultMetadataSchema, genieSendMessageFeedbackRequestSchema, genieStartConversationMessageRequestSchema, genieTrashSpaceRequestSchema, getDashboardRequestSchema, getPublishedDashboardRequestSchema, getPublishedDashboardTokenInfoRequestSchema, authorizationDetailsSchema, getScheduleRequestSchema, getSubscriptionRequestSchema, listDashboardsRequestSchema, dashboardSchema, listSchedulesRequestSchema, listSubscriptionsRequestSchema, messageErrorTypeSchema, migrateDashboardRequestSchema, publishRequestSchema, publishedDashboardSchema, schedulePauseStatusSchema, subscriptionSubscriberDestinationSchema, subscriptionSubscriberUserSchema, subscriberSchema, textAttachmentPurposeSchema, trashDashboardRequestSchema, unpublishDashboardRequestSchema, updateDashboardRequestSchema, scheduleSchema, createDashboardRequestSchema, createScheduleRequestSchema, subscriptionSchema, genieQueryAttachmentSchema, textAttachmentSchema, genieListSpacesResponseSchema, genieAttachmentSchema, messageErrorSchema, genieMessageSchema, getPublishedDashboardTokenInfoResponseSchema, listDashboardsResponseSchema, listSchedulesResponseSchema, listSubscriptionsResponseSchema, updateScheduleRequestSchema, createSubscriptionRequestSchema, genieListConversationMessagesResponseSchema, genieStartConversationResponseSchema } from "./src/dashboards.ts";
14
14
  export type { AuthorizationDetailsGrantRule, CronSchedule, LifecycleState, DashboardView, DeleteScheduleRequest, DeleteSubscriptionRequest, GenieSuggestedQuestionsAttachment, GenieConversation, GenieConversationSummary, GenieCreateConversationMessageRequest, GenieDeleteConversationMessageRequest, GenieDeleteConversationRequest, GenieExecuteMessageAttachmentQueryRequest, GenieExecuteMessageQueryRequest, GenieFeedbackRating, GenieGetConversationMessageRequest, GenieGetMessageAttachmentQueryResultRequest, GenieGetMessageQueryResultRequest, GenieGetMessageQueryResultResponse, GenieGetQueryResultByAttachmentRequest, GenieGetSpaceRequest, GenieListConversationMessagesRequest, GenieListConversationsRequest, GenieListConversationsResponse, GenieListSpacesRequest, GenieFeedback, Result, QueryAttachmentParameter, GenieResultMetadata, GenieSendMessageFeedbackRequest, GenieStartConversationMessageRequest, GenieTrashSpaceRequest, GetDashboardRequest, GetPublishedDashboardRequest, GetPublishedDashboardTokenInfoRequest, AuthorizationDetails, GetScheduleRequest, GetSubscriptionRequest, ListDashboardsRequest, Dashboard, ListSchedulesRequest, ListSubscriptionsRequest, MessageErrorType, MigrateDashboardRequest, PublishRequest, PublishedDashboard, SchedulePauseStatus, SubscriptionSubscriberDestination, SubscriptionSubscriberUser, Subscriber, TextAttachmentPurpose, TrashDashboardRequest, UnpublishDashboardRequest, UpdateDashboardRequest, Schedule, CreateDashboardRequest, CreateScheduleRequest, Subscription, TextAttachment, GenieListSpacesResponse, MessageError, GetPublishedDashboardTokenInfoResponse, ListDashboardsResponse, ListSchedulesResponse, ListSubscriptionsResponse, UpdateScheduleRequest, CreateSubscriptionRequest, GenieListConversationMessagesResponse, GenieStartConversationResponse } from "./src/dashboards.ts";
15
15
  export { detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions } from "./src/event.ts";
16
- export { MessageStatusSchema, GenieThoughtTypeSchema, GenieThoughtSchema, ATTACHMENT_TYPES, KnownAttachmentTypeSchema, AttachmentTypeSchema, GenieQueryAttachmentSchema, GenieTextAttachmentPurposeSchema, GenieTextAttachmentSchema, GenieVizAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, TerminalStatusSchema, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.ts";
17
- export type { MessageStatus, GenieThoughtType, GenieThought, KnownAttachmentType, AttachmentType, GenieQueryAttachment, GenieTextAttachmentPurpose, GenieTextAttachment, GenieVizAttachment, GenieAttachment, GenieMessage, GenieResponse, GenieSpace, TerminalStatus, GenieChatLocation, QuestionEvent, MessageEvent, StatusEvent, AttachmentEvent, ThinkingEvent, TextEvent, QueryEvent, StatementEvent, RowsEvent, SuggestedQuestionsEvent, ResultEvent, GenieChatEvent, GenieChatEventType, GenieChatEventFields } from "./src/genie-model.ts";
16
+ export { MessageStatusSchema, GenieThoughtTypeSchema, GenieThoughtSchema, ATTACHMENT_TYPES, KnownAttachmentTypeSchema, AttachmentTypeSchema, GenieQueryAttachmentSchema, GenieTextAttachmentPurposeSchema, GenieTextAttachmentSchema, GenieVizAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, CreateGenieSpaceRequestSchema, GenieMessageFeedbackRequestSchema, TERMINAL_STATUSES, TerminalStatusSchema, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.ts";
17
+ export type { MessageStatus, GenieThoughtType, GenieThought, KnownAttachmentType, AttachmentType, GenieQueryAttachment, GenieTextAttachmentPurpose, GenieTextAttachment, GenieVizAttachment, GenieAttachment, GenieMessage, GenieResponse, GenieSpace, CreateGenieSpaceRequest, GenieMessageFeedbackRequest, TerminalStatus, GenieChatLocation, QuestionEvent, MessageEvent, StatusEvent, AttachmentEvent, ThinkingEvent, TextEvent, QueryEvent, StatementEvent, RowsEvent, SuggestedQuestionsEvent, ResultEvent, GenieChatEvent, GenieChatEventType, GenieChatEventFields } from "./src/genie-model.ts";
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const PACKAGE_IDENTIFIER = "@dbx-tools/shared-genie";
2
- export declare const PACKAGE_VERSION = "0.9.133";
2
+ export declare const PACKAGE_VERSION = "0.9.136";
3
3
  export * as agentMode from "./src/agent-mode.ts";
4
4
  export * as dashboards from "./src/dashboards.ts";
5
5
  export * as event from "./src/event.ts";
@@ -9,5 +9,5 @@ export type { GenieAgentConversationItems, GenieAgentOutputItem, GenieAgentRespo
9
9
  export { authorizationDetailsGrantRuleSchema, cronScheduleSchema, lifecycleStateSchema, dashboardViewSchema, deleteScheduleRequestSchema, deleteSubscriptionRequestSchema, genieSuggestedQuestionsAttachmentSchema, genieConversationSchema, genieConversationSummarySchema, genieCreateConversationMessageRequestSchema, genieDeleteConversationMessageRequestSchema, genieDeleteConversationRequestSchema, genieExecuteMessageAttachmentQueryRequestSchema, genieExecuteMessageQueryRequestSchema, genieFeedbackRatingSchema, genieGetConversationMessageRequestSchema, genieGetMessageAttachmentQueryResultRequestSchema, genieGetMessageQueryResultRequestSchema, genieGetMessageQueryResultResponseSchema, genieGetQueryResultByAttachmentRequestSchema, genieGetSpaceRequestSchema, genieListConversationMessagesRequestSchema, genieListConversationsRequestSchema, genieListConversationsResponseSchema, genieListSpacesRequestSchema, genieSpaceSchema, genieFeedbackSchema, resultSchema, messageStatusSchema, queryAttachmentParameterSchema, genieResultMetadataSchema, genieSendMessageFeedbackRequestSchema, genieStartConversationMessageRequestSchema, genieTrashSpaceRequestSchema, getDashboardRequestSchema, getPublishedDashboardRequestSchema, getPublishedDashboardTokenInfoRequestSchema, authorizationDetailsSchema, getScheduleRequestSchema, getSubscriptionRequestSchema, listDashboardsRequestSchema, dashboardSchema, listSchedulesRequestSchema, listSubscriptionsRequestSchema, messageErrorTypeSchema, migrateDashboardRequestSchema, publishRequestSchema, publishedDashboardSchema, schedulePauseStatusSchema, subscriptionSubscriberDestinationSchema, subscriptionSubscriberUserSchema, subscriberSchema, textAttachmentPurposeSchema, trashDashboardRequestSchema, unpublishDashboardRequestSchema, updateDashboardRequestSchema, scheduleSchema, createDashboardRequestSchema, createScheduleRequestSchema, subscriptionSchema, genieQueryAttachmentSchema, textAttachmentSchema, genieListSpacesResponseSchema, genieAttachmentSchema, messageErrorSchema, genieMessageSchema, getPublishedDashboardTokenInfoResponseSchema, listDashboardsResponseSchema, listSchedulesResponseSchema, listSubscriptionsResponseSchema, updateScheduleRequestSchema, createSubscriptionRequestSchema, genieListConversationMessagesResponseSchema, genieStartConversationResponseSchema } from "./src/dashboards.ts";
10
10
  export type { AuthorizationDetailsGrantRule, CronSchedule, LifecycleState, DashboardView, DeleteScheduleRequest, DeleteSubscriptionRequest, GenieSuggestedQuestionsAttachment, GenieConversation, GenieConversationSummary, GenieCreateConversationMessageRequest, GenieDeleteConversationMessageRequest, GenieDeleteConversationRequest, GenieExecuteMessageAttachmentQueryRequest, GenieExecuteMessageQueryRequest, GenieFeedbackRating, GenieGetConversationMessageRequest, GenieGetMessageAttachmentQueryResultRequest, GenieGetMessageQueryResultRequest, GenieGetMessageQueryResultResponse, GenieGetQueryResultByAttachmentRequest, GenieGetSpaceRequest, GenieListConversationMessagesRequest, GenieListConversationsRequest, GenieListConversationsResponse, GenieListSpacesRequest, GenieFeedback, Result, QueryAttachmentParameter, GenieResultMetadata, GenieSendMessageFeedbackRequest, GenieStartConversationMessageRequest, GenieTrashSpaceRequest, GetDashboardRequest, GetPublishedDashboardRequest, GetPublishedDashboardTokenInfoRequest, AuthorizationDetails, GetScheduleRequest, GetSubscriptionRequest, ListDashboardsRequest, Dashboard, ListSchedulesRequest, ListSubscriptionsRequest, MessageErrorType, MigrateDashboardRequest, PublishRequest, PublishedDashboard, SchedulePauseStatus, SubscriptionSubscriberDestination, SubscriptionSubscriberUser, Subscriber, TextAttachmentPurpose, TrashDashboardRequest, UnpublishDashboardRequest, UpdateDashboardRequest, Schedule, CreateDashboardRequest, CreateScheduleRequest, Subscription, TextAttachment, GenieListSpacesResponse, MessageError, GetPublishedDashboardTokenInfoResponse, ListDashboardsResponse, ListSchedulesResponse, ListSubscriptionsResponse, UpdateScheduleRequest, CreateSubscriptionRequest, GenieListConversationMessagesResponse, GenieStartConversationResponse } from "./src/dashboards.ts";
11
11
  export { detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions } from "./src/event.ts";
12
- export { MessageStatusSchema, GenieThoughtTypeSchema, GenieThoughtSchema, ATTACHMENT_TYPES, KnownAttachmentTypeSchema, AttachmentTypeSchema, GenieQueryAttachmentSchema, GenieTextAttachmentPurposeSchema, GenieTextAttachmentSchema, GenieVizAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, TerminalStatusSchema, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.ts";
13
- export type { MessageStatus, GenieThoughtType, GenieThought, KnownAttachmentType, AttachmentType, GenieQueryAttachment, GenieTextAttachmentPurpose, GenieTextAttachment, GenieVizAttachment, GenieAttachment, GenieMessage, GenieResponse, GenieSpace, TerminalStatus, GenieChatLocation, QuestionEvent, MessageEvent, StatusEvent, AttachmentEvent, ThinkingEvent, TextEvent, QueryEvent, StatementEvent, RowsEvent, SuggestedQuestionsEvent, ResultEvent, GenieChatEvent, GenieChatEventType, GenieChatEventFields } from "./src/genie-model.ts";
12
+ export { MessageStatusSchema, GenieThoughtTypeSchema, GenieThoughtSchema, ATTACHMENT_TYPES, KnownAttachmentTypeSchema, AttachmentTypeSchema, GenieQueryAttachmentSchema, GenieTextAttachmentPurposeSchema, GenieTextAttachmentSchema, GenieVizAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, CreateGenieSpaceRequestSchema, GenieMessageFeedbackRequestSchema, TERMINAL_STATUSES, TerminalStatusSchema, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.ts";
13
+ export type { MessageStatus, GenieThoughtType, GenieThought, KnownAttachmentType, AttachmentType, GenieQueryAttachment, GenieTextAttachmentPurpose, GenieTextAttachment, GenieVizAttachment, GenieAttachment, GenieMessage, GenieResponse, GenieSpace, CreateGenieSpaceRequest, GenieMessageFeedbackRequest, TerminalStatus, GenieChatLocation, QuestionEvent, MessageEvent, StatusEvent, AttachmentEvent, ThinkingEvent, TextEvent, QueryEvent, StatementEvent, RowsEvent, SuggestedQuestionsEvent, ResultEvent, GenieChatEvent, GenieChatEventType, GenieChatEventFields } from "./src/genie-model.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-genie";
5
- export const PACKAGE_VERSION = "0.9.133";
5
+ export const PACKAGE_VERSION = "0.9.136";
6
6
  export * as agentMode from "./src/agent-mode.js";
7
7
  export * as dashboards from "./src/dashboards.js";
8
8
  export * as event from "./src/event.js";
@@ -10,5 +10,5 @@ export * as genieModel from "./src/genie-model.js";
10
10
  export { GenieAgentContentSchema, GenieAgentOutputItemSchema, GenieAgentConversationItemsSchema, GenieAgentResponseSchema, GenieAgentModeEventSchema, GenieAgentModeProjection } from "./src/agent-mode.js";
11
11
  export { authorizationDetailsGrantRuleSchema, cronScheduleSchema, lifecycleStateSchema, dashboardViewSchema, deleteScheduleRequestSchema, deleteSubscriptionRequestSchema, genieSuggestedQuestionsAttachmentSchema, genieConversationSchema, genieConversationSummarySchema, genieCreateConversationMessageRequestSchema, genieDeleteConversationMessageRequestSchema, genieDeleteConversationRequestSchema, genieExecuteMessageAttachmentQueryRequestSchema, genieExecuteMessageQueryRequestSchema, genieFeedbackRatingSchema, genieGetConversationMessageRequestSchema, genieGetMessageAttachmentQueryResultRequestSchema, genieGetMessageQueryResultRequestSchema, genieGetMessageQueryResultResponseSchema, genieGetQueryResultByAttachmentRequestSchema, genieGetSpaceRequestSchema, genieListConversationMessagesRequestSchema, genieListConversationsRequestSchema, genieListConversationsResponseSchema, genieListSpacesRequestSchema, genieSpaceSchema, genieFeedbackSchema, resultSchema, messageStatusSchema, queryAttachmentParameterSchema, genieResultMetadataSchema, genieSendMessageFeedbackRequestSchema, genieStartConversationMessageRequestSchema, genieTrashSpaceRequestSchema, getDashboardRequestSchema, getPublishedDashboardRequestSchema, getPublishedDashboardTokenInfoRequestSchema, authorizationDetailsSchema, getScheduleRequestSchema, getSubscriptionRequestSchema, listDashboardsRequestSchema, dashboardSchema, listSchedulesRequestSchema, listSubscriptionsRequestSchema, messageErrorTypeSchema, migrateDashboardRequestSchema, publishRequestSchema, publishedDashboardSchema, schedulePauseStatusSchema, subscriptionSubscriberDestinationSchema, subscriptionSubscriberUserSchema, subscriberSchema, textAttachmentPurposeSchema, trashDashboardRequestSchema, unpublishDashboardRequestSchema, updateDashboardRequestSchema, scheduleSchema, createDashboardRequestSchema, createScheduleRequestSchema, subscriptionSchema, genieQueryAttachmentSchema, textAttachmentSchema, genieListSpacesResponseSchema, genieAttachmentSchema, messageErrorSchema, genieMessageSchema, getPublishedDashboardTokenInfoResponseSchema, listDashboardsResponseSchema, listSchedulesResponseSchema, listSubscriptionsResponseSchema, updateScheduleRequestSchema, createSubscriptionRequestSchema, genieListConversationMessagesResponseSchema, genieStartConversationResponseSchema } from "./src/dashboards.js";
12
12
  export { detectStatus, detectAttachmentAdded, detectThinking, detectText, detectQuery, detectStatement, detectRows, detectSuggestedQuestions } from "./src/event.js";
13
- export { MessageStatusSchema, GenieThoughtTypeSchema, GenieThoughtSchema, ATTACHMENT_TYPES, KnownAttachmentTypeSchema, AttachmentTypeSchema, GenieQueryAttachmentSchema, GenieTextAttachmentPurposeSchema, GenieTextAttachmentSchema, GenieVizAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, TERMINAL_STATUSES, TerminalStatusSchema, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.js";
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLGlDQUFpQyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNU0sT0FBTyxFQUFFLG1DQUFtQyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLHVDQUF1QyxFQUFFLHVCQUF1QixFQUFFLDhCQUE4QixFQUFFLDJDQUEyQyxFQUFFLDJDQUEyQyxFQUFFLG9DQUFvQyxFQUFFLCtDQUErQyxFQUFFLHFDQUFxQyxFQUFFLHlCQUF5QixFQUFFLHdDQUF3QyxFQUFFLGlEQUFpRCxFQUFFLHVDQUF1QyxFQUFFLHdDQUF3QyxFQUFFLDRDQUE0QyxFQUFFLDBCQUEwQixFQUFFLDBDQUEwQyxFQUFFLG1DQUFtQyxFQUFFLG9DQUFvQyxFQUFFLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSx5QkFBeUIsRUFBRSxxQ0FBcUMsRUFBRSwwQ0FBMEMsRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUIsRUFBRSxrQ0FBa0MsRUFBRSwyQ0FBMkMsRUFBRSwwQkFBMEIsRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsOEJBQThCLEVBQUUsc0JBQXNCLEVBQUUsNkJBQTZCLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsdUNBQXVDLEVBQUUsZ0NBQWdDLEVBQUUsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUUsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsNEJBQTRCLEVBQUUsY0FBYyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLGtCQUFrQixFQUFFLDBCQUEwQixFQUFFLG9CQUFvQixFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLDRDQUE0QyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLDJDQUEyQyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN3lFLE9BQU8sRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JLLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSxnQ0FBZ0MsRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLDZCQUE2QixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5pZVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEzM1wiO1xuZXhwb3J0ICogYXMgYWdlbnRNb2RlIGZyb20gXCIuL3NyYy9hZ2VudC1tb2RlLnRzXCI7XG5leHBvcnQgKiBhcyBkYXNoYm9hcmRzIGZyb20gXCIuL3NyYy9kYXNoYm9hcmRzLnRzXCI7XG5leHBvcnQgKiBhcyBldmVudCBmcm9tIFwiLi9zcmMvZXZlbnQudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllTW9kZWwgZnJvbSBcIi4vc3JjL2dlbmllLW1vZGVsLnRzXCI7XG5leHBvcnQgeyBHZW5pZUFnZW50Q29udGVudFNjaGVtYSwgR2VuaWVBZ2VudE91dHB1dEl0ZW1TY2hlbWEsIEdlbmllQWdlbnRDb252ZXJzYXRpb25JdGVtc1NjaGVtYSwgR2VuaWVBZ2VudFJlc3BvbnNlU2NoZW1hLCBHZW5pZUFnZW50TW9kZUV2ZW50U2NoZW1hLCBHZW5pZUFnZW50TW9kZVByb2plY3Rpb24gfSBmcm9tIFwiLi9zcmMvYWdlbnQtbW9kZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZUFnZW50Q29udmVyc2F0aW9uSXRlbXMsIEdlbmllQWdlbnRPdXRwdXRJdGVtLCBHZW5pZUFnZW50UmVzcG9uc2UsIEdlbmllQWdlbnRNb2RlRXZlbnQgfSBmcm9tIFwiLi9zcmMvYWdlbnQtbW9kZS50c1wiO1xuZXhwb3J0IHsgYXV0aG9yaXphdGlvbkRldGFpbHNHcmFudFJ1bGVTY2hlbWEsIGNyb25TY2hlZHVsZVNjaGVtYSwgbGlmZWN5Y2xlU3RhdGVTY2hlbWEsIGRhc2hib2FyZFZpZXdTY2hlbWEsIGRlbGV0ZVNjaGVkdWxlUmVxdWVzdFNjaGVtYSwgZGVsZXRlU3Vic2NyaXB0aW9uUmVxdWVzdFNjaGVtYSwgZ2VuaWVTdWdnZXN0ZWRRdWVzdGlvbnNBdHRhY2htZW50U2NoZW1hLCBnZW5pZUNvbnZlcnNhdGlvblNjaGVtYSwgZ2VuaWVDb252ZXJzYXRpb25TdW1tYXJ5U2NoZW1hLCBnZW5pZUNyZWF0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZURlbGV0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZURlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RTY2hlbWEsIGdlbmllRXhlY3V0ZU1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXF1ZXN0U2NoZW1hLCBnZW5pZUV4ZWN1dGVNZXNzYWdlUXVlcnlSZXF1ZXN0U2NoZW1hLCBnZW5pZUZlZWRiYWNrUmF0aW5nU2NoZW1hLCBnZW5pZUdldENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldE1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXN1bHRSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldE1lc3NhZ2VRdWVyeVJlc3VsdFJlcXVlc3RTY2hlbWEsIGdlbmllR2V0TWVzc2FnZVF1ZXJ5UmVzdWx0UmVzcG9uc2VTY2hlbWEsIGdlbmllR2V0UXVlcnlSZXN1bHRCeUF0dGFjaG1lbnRSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldFNwYWNlUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXF1ZXN0U2NoZW1hLCBnZW5pZUxpc3RDb252ZXJzYXRpb25zUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlU2NoZW1hLCBnZW5pZUxpc3RTcGFjZXNSZXF1ZXN0U2NoZW1hLCBnZW5pZVNwYWNlU2NoZW1hLCBnZW5pZUZlZWRiYWNrU2NoZW1hLCByZXN1bHRTY2hlbWEsIG1lc3NhZ2VTdGF0dXNTY2hlbWEsIHF1ZXJ5QXR0YWNobWVudFBhcmFtZXRlclNjaGVtYSwgZ2VuaWVSZXN1bHRNZXRhZGF0YVNjaGVtYSwgZ2VuaWVTZW5kTWVzc2FnZUZlZWRiYWNrUmVxdWVzdFNjaGVtYSwgZ2VuaWVTdGFydENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZVRyYXNoU3BhY2VSZXF1ZXN0U2NoZW1hLCBnZXREYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBnZXRQdWJsaXNoZWREYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBnZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXF1ZXN0U2NoZW1hLCBhdXRob3JpemF0aW9uRGV0YWlsc1NjaGVtYSwgZ2V0U2NoZWR1bGVSZXF1ZXN0U2NoZW1hLCBnZXRTdWJzY3JpcHRpb25SZXF1ZXN0U2NoZW1hLCBsaXN0RGFzaGJvYXJkc1JlcXVlc3RTY2hlbWEsIGRhc2hib2FyZFNjaGVtYSwgbGlzdFNjaGVkdWxlc1JlcXVlc3RTY2hlbWEsIGxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdFNjaGVtYSwgbWVzc2FnZUVycm9yVHlwZVNjaGVtYSwgbWlncmF0ZURhc2hib2FyZFJlcXVlc3RTY2hlbWEsIHB1Ymxpc2hSZXF1ZXN0U2NoZW1hLCBwdWJsaXNoZWREYXNoYm9hcmRTY2hlbWEsIHNjaGVkdWxlUGF1c2VTdGF0dXNTY2hlbWEsIHN1YnNjcmlwdGlvblN1YnNjcmliZXJEZXN0aW5hdGlvblNjaGVtYSwgc3Vic2NyaXB0aW9uU3Vic2NyaWJlclVzZXJTY2hlbWEsIHN1YnNjcmliZXJTY2hlbWEsIHRleHRBdHRhY2htZW50UHVycG9zZVNjaGVtYSwgdHJhc2hEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCB1bnB1Ymxpc2hEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCB1cGRhdGVEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBzY2hlZHVsZVNjaGVtYSwgY3JlYXRlRGFzaGJvYXJkUmVxdWVzdFNjaGVtYSwgY3JlYXRlU2NoZWR1bGVSZXF1ZXN0U2NoZW1hLCBzdWJzY3JpcHRpb25TY2hlbWEsIGdlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLCB0ZXh0QXR0YWNobWVudFNjaGVtYSwgZ2VuaWVMaXN0U3BhY2VzUmVzcG9uc2VTY2hlbWEsIGdlbmllQXR0YWNobWVudFNjaGVtYSwgbWVzc2FnZUVycm9yU2NoZW1hLCBnZW5pZU1lc3NhZ2VTY2hlbWEsIGdldFB1Ymxpc2hlZERhc2hib2FyZFRva2VuSW5mb1Jlc3BvbnNlU2NoZW1hLCBsaXN0RGFzaGJvYXJkc1Jlc3BvbnNlU2NoZW1hLCBsaXN0U2NoZWR1bGVzUmVzcG9uc2VTY2hlbWEsIGxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2VTY2hlbWEsIHVwZGF0ZVNjaGVkdWxlUmVxdWVzdFNjaGVtYSwgY3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXNwb25zZVNjaGVtYSwgZ2VuaWVTdGFydENvbnZlcnNhdGlvblJlc3BvbnNlU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2Rhc2hib2FyZHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aG9yaXphdGlvbkRldGFpbHNHcmFudFJ1bGUsIENyb25TY2hlZHVsZSwgTGlmZWN5Y2xlU3RhdGUsIERhc2hib2FyZFZpZXcsIERlbGV0ZVNjaGVkdWxlUmVxdWVzdCwgRGVsZXRlU3Vic2NyaXB0aW9uUmVxdWVzdCwgR2VuaWVTdWdnZXN0ZWRRdWVzdGlvbnNBdHRhY2htZW50LCBHZW5pZUNvbnZlcnNhdGlvbiwgR2VuaWVDb252ZXJzYXRpb25TdW1tYXJ5LCBHZW5pZUNyZWF0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZURlbGV0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZURlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3QsIEdlbmllRXhlY3V0ZU1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXF1ZXN0LCBHZW5pZUV4ZWN1dGVNZXNzYWdlUXVlcnlSZXF1ZXN0LCBHZW5pZUZlZWRiYWNrUmF0aW5nLCBHZW5pZUdldENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZUdldE1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXN1bHRSZXF1ZXN0LCBHZW5pZUdldE1lc3NhZ2VRdWVyeVJlc3VsdFJlcXVlc3QsIEdlbmllR2V0TWVzc2FnZVF1ZXJ5UmVzdWx0UmVzcG9uc2UsIEdlbmllR2V0UXVlcnlSZXN1bHRCeUF0dGFjaG1lbnRSZXF1ZXN0LCBHZW5pZUdldFNwYWNlUmVxdWVzdCwgR2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXF1ZXN0LCBHZW5pZUxpc3RDb252ZXJzYXRpb25zUmVxdWVzdCwgR2VuaWVMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlLCBHZW5pZUxpc3RTcGFjZXNSZXF1ZXN0LCBHZW5pZUZlZWRiYWNrLCBSZXN1bHQsIFF1ZXJ5QXR0YWNobWVudFBhcmFtZXRlciwgR2VuaWVSZXN1bHRNZXRhZGF0YSwgR2VuaWVTZW5kTWVzc2FnZUZlZWRiYWNrUmVxdWVzdCwgR2VuaWVTdGFydENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZVRyYXNoU3BhY2VSZXF1ZXN0LCBHZXREYXNoYm9hcmRSZXF1ZXN0LCBHZXRQdWJsaXNoZWREYXNoYm9hcmRSZXF1ZXN0LCBHZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXF1ZXN0LCBBdXRob3JpemF0aW9uRGV0YWlscywgR2V0U2NoZWR1bGVSZXF1ZXN0LCBHZXRTdWJzY3JpcHRpb25SZXF1ZXN0LCBMaXN0RGFzaGJvYXJkc1JlcXVlc3QsIERhc2hib2FyZCwgTGlzdFNjaGVkdWxlc1JlcXVlc3QsIExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdCwgTWVzc2FnZUVycm9yVHlwZSwgTWlncmF0ZURhc2hib2FyZFJlcXVlc3QsIFB1Ymxpc2hSZXF1ZXN0LCBQdWJsaXNoZWREYXNoYm9hcmQsIFNjaGVkdWxlUGF1c2VTdGF0dXMsIFN1YnNjcmlwdGlvblN1YnNjcmliZXJEZXN0aW5hdGlvbiwgU3Vic2NyaXB0aW9uU3Vic2NyaWJlclVzZXIsIFN1YnNjcmliZXIsIFRleHRBdHRhY2htZW50UHVycG9zZSwgVHJhc2hEYXNoYm9hcmRSZXF1ZXN0LCBVbnB1Ymxpc2hEYXNoYm9hcmRSZXF1ZXN0LCBVcGRhdGVEYXNoYm9hcmRSZXF1ZXN0LCBTY2hlZHVsZSwgQ3JlYXRlRGFzaGJvYXJkUmVxdWVzdCwgQ3JlYXRlU2NoZWR1bGVSZXF1ZXN0LCBTdWJzY3JpcHRpb24sIFRleHRBdHRhY2htZW50LCBHZW5pZUxpc3RTcGFjZXNSZXNwb25zZSwgTWVzc2FnZUVycm9yLCBHZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXNwb25zZSwgTGlzdERhc2hib2FyZHNSZXNwb25zZSwgTGlzdFNjaGVkdWxlc1Jlc3BvbnNlLCBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlLCBVcGRhdGVTY2hlZHVsZVJlcXVlc3QsIENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3QsIEdlbmllTGlzdENvbnZlcnNhdGlvbk1lc3NhZ2VzUmVzcG9uc2UsIEdlbmllU3RhcnRDb252ZXJzYXRpb25SZXNwb25zZSB9IGZyb20gXCIuL3NyYy9kYXNoYm9hcmRzLnRzXCI7XG5leHBvcnQgeyBkZXRlY3RTdGF0dXMsIGRldGVjdEF0dGFjaG1lbnRBZGRlZCwgZGV0ZWN0VGhpbmtpbmcsIGRldGVjdFRleHQsIGRldGVjdFF1ZXJ5LCBkZXRlY3RTdGF0ZW1lbnQsIGRldGVjdFJvd3MsIGRldGVjdFN1Z2dlc3RlZFF1ZXN0aW9ucyB9IGZyb20gXCIuL3NyYy9ldmVudC50c1wiO1xuZXhwb3J0IHsgTWVzc2FnZVN0YXR1c1NjaGVtYSwgR2VuaWVUaG91Z2h0VHlwZVNjaGVtYSwgR2VuaWVUaG91Z2h0U2NoZW1hLCBBVFRBQ0hNRU5UX1RZUEVTLCBLbm93bkF0dGFjaG1lbnRUeXBlU2NoZW1hLCBBdHRhY2htZW50VHlwZVNjaGVtYSwgR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWEsIEdlbmllVGV4dEF0dGFjaG1lbnRQdXJwb3NlU2NoZW1hLCBHZW5pZVRleHRBdHRhY2htZW50U2NoZW1hLCBHZW5pZVZpekF0dGFjaG1lbnRTY2hlbWEsIEdlbmllQXR0YWNobWVudFNjaGVtYSwgR2VuaWVNZXNzYWdlU2NoZW1hLCBHZW5pZVJlc3BvbnNlU2NoZW1hLCBHZW5pZVNwYWNlU2NoZW1hLCBURVJNSU5BTF9TVEFUVVNFUywgVGVybWluYWxTdGF0dXNTY2hlbWEsIEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLCBRdWVzdGlvbkV2ZW50U2NoZW1hLCBNZXNzYWdlRXZlbnRTY2hlbWEsIFN0YXR1c0V2ZW50U2NoZW1hLCBBdHRhY2htZW50RXZlbnRTY2hlbWEsIFRoaW5raW5nRXZlbnRTY2hlbWEsIFRleHRFdmVudFNjaGVtYSwgUXVlcnlFdmVudFNjaGVtYSwgU3RhdGVtZW50RXZlbnRTY2hlbWEsIFJvd3NFdmVudFNjaGVtYSwgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWEsIFJlc3VsdEV2ZW50U2NoZW1hLCBHZW5pZUNoYXRFdmVudFNjaGVtYSB9IGZyb20gXCIuL3NyYy9nZW5pZS1tb2RlbC50c1wiO1xuZXhwb3J0IHR5cGUgeyBNZXNzYWdlU3RhdHVzLCBHZW5pZVRob3VnaHRUeXBlLCBHZW5pZVRob3VnaHQsIEtub3duQXR0YWNobWVudFR5cGUsIEF0dGFjaG1lbnRUeXBlLCBHZW5pZVF1ZXJ5QXR0YWNobWVudCwgR2VuaWVUZXh0QXR0YWNobWVudFB1cnBvc2UsIEdlbmllVGV4dEF0dGFjaG1lbnQsIEdlbmllVml6QXR0YWNobWVudCwgR2VuaWVBdHRhY2htZW50LCBHZW5pZU1lc3NhZ2UsIEdlbmllUmVzcG9uc2UsIEdlbmllU3BhY2UsIFRlcm1pbmFsU3RhdHVzLCBHZW5pZUNoYXRMb2NhdGlvbiwgUXVlc3Rpb25FdmVudCwgTWVzc2FnZUV2ZW50LCBTdGF0dXNFdmVudCwgQXR0YWNobWVudEV2ZW50LCBUaGlua2luZ0V2ZW50LCBUZXh0RXZlbnQsIFF1ZXJ5RXZlbnQsIFN0YXRlbWVudEV2ZW50LCBSb3dzRXZlbnQsIFN1Z2dlc3RlZFF1ZXN0aW9uc0V2ZW50LCBSZXN1bHRFdmVudCwgR2VuaWVDaGF0RXZlbnQsIEdlbmllQ2hhdEV2ZW50VHlwZSwgR2VuaWVDaGF0RXZlbnRGaWVsZHMgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtbW9kZWwudHNcIjtcbiJdfQ==
13
+ export { MessageStatusSchema, GenieThoughtTypeSchema, GenieThoughtSchema, ATTACHMENT_TYPES, KnownAttachmentTypeSchema, AttachmentTypeSchema, GenieQueryAttachmentSchema, GenieTextAttachmentPurposeSchema, GenieTextAttachmentSchema, GenieVizAttachmentSchema, GenieAttachmentSchema, GenieMessageSchema, GenieResponseSchema, GenieSpaceSchema, CreateGenieSpaceRequestSchema, GenieMessageFeedbackRequestSchema, TERMINAL_STATUSES, TerminalStatusSchema, GenieChatLocationSchema, QuestionEventSchema, MessageEventSchema, StatusEventSchema, AttachmentEventSchema, ThinkingEventSchema, TextEventSchema, QueryEventSchema, StatementEventSchema, RowsEventSchema, SuggestedQuestionsEventSchema, ResultEventSchema, GenieChatEventSchema } from "./src/genie-model.js";
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7QUFDM0MsbURBQW1EO0FBQ25ELHdFQUF3RTtBQUV4RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxLQUFLLFVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLGlDQUFpQyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNU0sT0FBTyxFQUFFLG1DQUFtQyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLHVDQUF1QyxFQUFFLHVCQUF1QixFQUFFLDhCQUE4QixFQUFFLDJDQUEyQyxFQUFFLDJDQUEyQyxFQUFFLG9DQUFvQyxFQUFFLCtDQUErQyxFQUFFLHFDQUFxQyxFQUFFLHlCQUF5QixFQUFFLHdDQUF3QyxFQUFFLGlEQUFpRCxFQUFFLHVDQUF1QyxFQUFFLHdDQUF3QyxFQUFFLDRDQUE0QyxFQUFFLDBCQUEwQixFQUFFLDBDQUEwQyxFQUFFLG1DQUFtQyxFQUFFLG9DQUFvQyxFQUFFLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSw4QkFBOEIsRUFBRSx5QkFBeUIsRUFBRSxxQ0FBcUMsRUFBRSwwQ0FBMEMsRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUIsRUFBRSxrQ0FBa0MsRUFBRSwyQ0FBMkMsRUFBRSwwQkFBMEIsRUFBRSx3QkFBd0IsRUFBRSw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsOEJBQThCLEVBQUUsc0JBQXNCLEVBQUUsNkJBQTZCLEVBQUUsb0JBQW9CLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsdUNBQXVDLEVBQUUsZ0NBQWdDLEVBQUUsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUUsMkJBQTJCLEVBQUUsK0JBQStCLEVBQUUsNEJBQTRCLEVBQUUsY0FBYyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLGtCQUFrQixFQUFFLDBCQUEwQixFQUFFLG9CQUFvQixFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLDRDQUE0QyxFQUFFLDRCQUE0QixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLDJCQUEyQixFQUFFLCtCQUErQixFQUFFLDJDQUEyQyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN3lFLE9BQU8sRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JLLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSwwQkFBMEIsRUFBRSxnQ0FBZ0MsRUFBRSx5QkFBeUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSw2QkFBNkIsRUFBRSxpQ0FBaUMsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLDZCQUE2QixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBHRU5FUkFURUQgYnkgcHJvamVuIHdhdGNoIC0gRE8gTk9UIEVESVQuXG4vLyBSZWdlbmVyYXRlZCBmcm9tIHRoZSBleHBvcnRpbmcgbW9kdWxlcyBpbiAuL3NyYy5cbi8vIEhhbmQgZWRpdHMgYXJlIG92ZXJ3cml0dGVuIG9uIHRoZSBuZXh0IHdhdGNoOyB0aGlzIGZpbGUgaXMgcmVhZC1vbmx5LlxuXG5leHBvcnQgY29uc3QgUEFDS0FHRV9JREVOVElGSUVSID0gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5pZVwiO1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0VfVkVSU0lPTiA9IFwiMC45LjEzNlwiO1xuZXhwb3J0ICogYXMgYWdlbnRNb2RlIGZyb20gXCIuL3NyYy9hZ2VudC1tb2RlLnRzXCI7XG5leHBvcnQgKiBhcyBkYXNoYm9hcmRzIGZyb20gXCIuL3NyYy9kYXNoYm9hcmRzLnRzXCI7XG5leHBvcnQgKiBhcyBldmVudCBmcm9tIFwiLi9zcmMvZXZlbnQudHNcIjtcbmV4cG9ydCAqIGFzIGdlbmllTW9kZWwgZnJvbSBcIi4vc3JjL2dlbmllLW1vZGVsLnRzXCI7XG5leHBvcnQgeyBHZW5pZUFnZW50Q29udGVudFNjaGVtYSwgR2VuaWVBZ2VudE91dHB1dEl0ZW1TY2hlbWEsIEdlbmllQWdlbnRDb252ZXJzYXRpb25JdGVtc1NjaGVtYSwgR2VuaWVBZ2VudFJlc3BvbnNlU2NoZW1hLCBHZW5pZUFnZW50TW9kZUV2ZW50U2NoZW1hLCBHZW5pZUFnZW50TW9kZVByb2plY3Rpb24gfSBmcm9tIFwiLi9zcmMvYWdlbnQtbW9kZS50c1wiO1xuZXhwb3J0IHR5cGUgeyBHZW5pZUFnZW50Q29udmVyc2F0aW9uSXRlbXMsIEdlbmllQWdlbnRPdXRwdXRJdGVtLCBHZW5pZUFnZW50UmVzcG9uc2UsIEdlbmllQWdlbnRNb2RlRXZlbnQgfSBmcm9tIFwiLi9zcmMvYWdlbnQtbW9kZS50c1wiO1xuZXhwb3J0IHsgYXV0aG9yaXphdGlvbkRldGFpbHNHcmFudFJ1bGVTY2hlbWEsIGNyb25TY2hlZHVsZVNjaGVtYSwgbGlmZWN5Y2xlU3RhdGVTY2hlbWEsIGRhc2hib2FyZFZpZXdTY2hlbWEsIGRlbGV0ZVNjaGVkdWxlUmVxdWVzdFNjaGVtYSwgZGVsZXRlU3Vic2NyaXB0aW9uUmVxdWVzdFNjaGVtYSwgZ2VuaWVTdWdnZXN0ZWRRdWVzdGlvbnNBdHRhY2htZW50U2NoZW1hLCBnZW5pZUNvbnZlcnNhdGlvblNjaGVtYSwgZ2VuaWVDb252ZXJzYXRpb25TdW1tYXJ5U2NoZW1hLCBnZW5pZUNyZWF0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZURlbGV0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZURlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3RTY2hlbWEsIGdlbmllRXhlY3V0ZU1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXF1ZXN0U2NoZW1hLCBnZW5pZUV4ZWN1dGVNZXNzYWdlUXVlcnlSZXF1ZXN0U2NoZW1hLCBnZW5pZUZlZWRiYWNrUmF0aW5nU2NoZW1hLCBnZW5pZUdldENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldE1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXN1bHRSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldE1lc3NhZ2VRdWVyeVJlc3VsdFJlcXVlc3RTY2hlbWEsIGdlbmllR2V0TWVzc2FnZVF1ZXJ5UmVzdWx0UmVzcG9uc2VTY2hlbWEsIGdlbmllR2V0UXVlcnlSZXN1bHRCeUF0dGFjaG1lbnRSZXF1ZXN0U2NoZW1hLCBnZW5pZUdldFNwYWNlUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXF1ZXN0U2NoZW1hLCBnZW5pZUxpc3RDb252ZXJzYXRpb25zUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlU2NoZW1hLCBnZW5pZUxpc3RTcGFjZXNSZXF1ZXN0U2NoZW1hLCBnZW5pZVNwYWNlU2NoZW1hLCBnZW5pZUZlZWRiYWNrU2NoZW1hLCByZXN1bHRTY2hlbWEsIG1lc3NhZ2VTdGF0dXNTY2hlbWEsIHF1ZXJ5QXR0YWNobWVudFBhcmFtZXRlclNjaGVtYSwgZ2VuaWVSZXN1bHRNZXRhZGF0YVNjaGVtYSwgZ2VuaWVTZW5kTWVzc2FnZUZlZWRiYWNrUmVxdWVzdFNjaGVtYSwgZ2VuaWVTdGFydENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0U2NoZW1hLCBnZW5pZVRyYXNoU3BhY2VSZXF1ZXN0U2NoZW1hLCBnZXREYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBnZXRQdWJsaXNoZWREYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBnZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXF1ZXN0U2NoZW1hLCBhdXRob3JpemF0aW9uRGV0YWlsc1NjaGVtYSwgZ2V0U2NoZWR1bGVSZXF1ZXN0U2NoZW1hLCBnZXRTdWJzY3JpcHRpb25SZXF1ZXN0U2NoZW1hLCBsaXN0RGFzaGJvYXJkc1JlcXVlc3RTY2hlbWEsIGRhc2hib2FyZFNjaGVtYSwgbGlzdFNjaGVkdWxlc1JlcXVlc3RTY2hlbWEsIGxpc3RTdWJzY3JpcHRpb25zUmVxdWVzdFNjaGVtYSwgbWVzc2FnZUVycm9yVHlwZVNjaGVtYSwgbWlncmF0ZURhc2hib2FyZFJlcXVlc3RTY2hlbWEsIHB1Ymxpc2hSZXF1ZXN0U2NoZW1hLCBwdWJsaXNoZWREYXNoYm9hcmRTY2hlbWEsIHNjaGVkdWxlUGF1c2VTdGF0dXNTY2hlbWEsIHN1YnNjcmlwdGlvblN1YnNjcmliZXJEZXN0aW5hdGlvblNjaGVtYSwgc3Vic2NyaXB0aW9uU3Vic2NyaWJlclVzZXJTY2hlbWEsIHN1YnNjcmliZXJTY2hlbWEsIHRleHRBdHRhY2htZW50UHVycG9zZVNjaGVtYSwgdHJhc2hEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCB1bnB1Ymxpc2hEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCB1cGRhdGVEYXNoYm9hcmRSZXF1ZXN0U2NoZW1hLCBzY2hlZHVsZVNjaGVtYSwgY3JlYXRlRGFzaGJvYXJkUmVxdWVzdFNjaGVtYSwgY3JlYXRlU2NoZWR1bGVSZXF1ZXN0U2NoZW1hLCBzdWJzY3JpcHRpb25TY2hlbWEsIGdlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLCB0ZXh0QXR0YWNobWVudFNjaGVtYSwgZ2VuaWVMaXN0U3BhY2VzUmVzcG9uc2VTY2hlbWEsIGdlbmllQXR0YWNobWVudFNjaGVtYSwgbWVzc2FnZUVycm9yU2NoZW1hLCBnZW5pZU1lc3NhZ2VTY2hlbWEsIGdldFB1Ymxpc2hlZERhc2hib2FyZFRva2VuSW5mb1Jlc3BvbnNlU2NoZW1hLCBsaXN0RGFzaGJvYXJkc1Jlc3BvbnNlU2NoZW1hLCBsaXN0U2NoZWR1bGVzUmVzcG9uc2VTY2hlbWEsIGxpc3RTdWJzY3JpcHRpb25zUmVzcG9uc2VTY2hlbWEsIHVwZGF0ZVNjaGVkdWxlUmVxdWVzdFNjaGVtYSwgY3JlYXRlU3Vic2NyaXB0aW9uUmVxdWVzdFNjaGVtYSwgZ2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXNwb25zZVNjaGVtYSwgZ2VuaWVTdGFydENvbnZlcnNhdGlvblJlc3BvbnNlU2NoZW1hIH0gZnJvbSBcIi4vc3JjL2Rhc2hib2FyZHMudHNcIjtcbmV4cG9ydCB0eXBlIHsgQXV0aG9yaXphdGlvbkRldGFpbHNHcmFudFJ1bGUsIENyb25TY2hlZHVsZSwgTGlmZWN5Y2xlU3RhdGUsIERhc2hib2FyZFZpZXcsIERlbGV0ZVNjaGVkdWxlUmVxdWVzdCwgRGVsZXRlU3Vic2NyaXB0aW9uUmVxdWVzdCwgR2VuaWVTdWdnZXN0ZWRRdWVzdGlvbnNBdHRhY2htZW50LCBHZW5pZUNvbnZlcnNhdGlvbiwgR2VuaWVDb252ZXJzYXRpb25TdW1tYXJ5LCBHZW5pZUNyZWF0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZURlbGV0ZUNvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZURlbGV0ZUNvbnZlcnNhdGlvblJlcXVlc3QsIEdlbmllRXhlY3V0ZU1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXF1ZXN0LCBHZW5pZUV4ZWN1dGVNZXNzYWdlUXVlcnlSZXF1ZXN0LCBHZW5pZUZlZWRiYWNrUmF0aW5nLCBHZW5pZUdldENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZUdldE1lc3NhZ2VBdHRhY2htZW50UXVlcnlSZXN1bHRSZXF1ZXN0LCBHZW5pZUdldE1lc3NhZ2VRdWVyeVJlc3VsdFJlcXVlc3QsIEdlbmllR2V0TWVzc2FnZVF1ZXJ5UmVzdWx0UmVzcG9uc2UsIEdlbmllR2V0UXVlcnlSZXN1bHRCeUF0dGFjaG1lbnRSZXF1ZXN0LCBHZW5pZUdldFNwYWNlUmVxdWVzdCwgR2VuaWVMaXN0Q29udmVyc2F0aW9uTWVzc2FnZXNSZXF1ZXN0LCBHZW5pZUxpc3RDb252ZXJzYXRpb25zUmVxdWVzdCwgR2VuaWVMaXN0Q29udmVyc2F0aW9uc1Jlc3BvbnNlLCBHZW5pZUxpc3RTcGFjZXNSZXF1ZXN0LCBHZW5pZUZlZWRiYWNrLCBSZXN1bHQsIFF1ZXJ5QXR0YWNobWVudFBhcmFtZXRlciwgR2VuaWVSZXN1bHRNZXRhZGF0YSwgR2VuaWVTZW5kTWVzc2FnZUZlZWRiYWNrUmVxdWVzdCwgR2VuaWVTdGFydENvbnZlcnNhdGlvbk1lc3NhZ2VSZXF1ZXN0LCBHZW5pZVRyYXNoU3BhY2VSZXF1ZXN0LCBHZXREYXNoYm9hcmRSZXF1ZXN0LCBHZXRQdWJsaXNoZWREYXNoYm9hcmRSZXF1ZXN0LCBHZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXF1ZXN0LCBBdXRob3JpemF0aW9uRGV0YWlscywgR2V0U2NoZWR1bGVSZXF1ZXN0LCBHZXRTdWJzY3JpcHRpb25SZXF1ZXN0LCBMaXN0RGFzaGJvYXJkc1JlcXVlc3QsIERhc2hib2FyZCwgTGlzdFNjaGVkdWxlc1JlcXVlc3QsIExpc3RTdWJzY3JpcHRpb25zUmVxdWVzdCwgTWVzc2FnZUVycm9yVHlwZSwgTWlncmF0ZURhc2hib2FyZFJlcXVlc3QsIFB1Ymxpc2hSZXF1ZXN0LCBQdWJsaXNoZWREYXNoYm9hcmQsIFNjaGVkdWxlUGF1c2VTdGF0dXMsIFN1YnNjcmlwdGlvblN1YnNjcmliZXJEZXN0aW5hdGlvbiwgU3Vic2NyaXB0aW9uU3Vic2NyaWJlclVzZXIsIFN1YnNjcmliZXIsIFRleHRBdHRhY2htZW50UHVycG9zZSwgVHJhc2hEYXNoYm9hcmRSZXF1ZXN0LCBVbnB1Ymxpc2hEYXNoYm9hcmRSZXF1ZXN0LCBVcGRhdGVEYXNoYm9hcmRSZXF1ZXN0LCBTY2hlZHVsZSwgQ3JlYXRlRGFzaGJvYXJkUmVxdWVzdCwgQ3JlYXRlU2NoZWR1bGVSZXF1ZXN0LCBTdWJzY3JpcHRpb24sIFRleHRBdHRhY2htZW50LCBHZW5pZUxpc3RTcGFjZXNSZXNwb25zZSwgTWVzc2FnZUVycm9yLCBHZXRQdWJsaXNoZWREYXNoYm9hcmRUb2tlbkluZm9SZXNwb25zZSwgTGlzdERhc2hib2FyZHNSZXNwb25zZSwgTGlzdFNjaGVkdWxlc1Jlc3BvbnNlLCBMaXN0U3Vic2NyaXB0aW9uc1Jlc3BvbnNlLCBVcGRhdGVTY2hlZHVsZVJlcXVlc3QsIENyZWF0ZVN1YnNjcmlwdGlvblJlcXVlc3QsIEdlbmllTGlzdENvbnZlcnNhdGlvbk1lc3NhZ2VzUmVzcG9uc2UsIEdlbmllU3RhcnRDb252ZXJzYXRpb25SZXNwb25zZSB9IGZyb20gXCIuL3NyYy9kYXNoYm9hcmRzLnRzXCI7XG5leHBvcnQgeyBkZXRlY3RTdGF0dXMsIGRldGVjdEF0dGFjaG1lbnRBZGRlZCwgZGV0ZWN0VGhpbmtpbmcsIGRldGVjdFRleHQsIGRldGVjdFF1ZXJ5LCBkZXRlY3RTdGF0ZW1lbnQsIGRldGVjdFJvd3MsIGRldGVjdFN1Z2dlc3RlZFF1ZXN0aW9ucyB9IGZyb20gXCIuL3NyYy9ldmVudC50c1wiO1xuZXhwb3J0IHsgTWVzc2FnZVN0YXR1c1NjaGVtYSwgR2VuaWVUaG91Z2h0VHlwZVNjaGVtYSwgR2VuaWVUaG91Z2h0U2NoZW1hLCBBVFRBQ0hNRU5UX1RZUEVTLCBLbm93bkF0dGFjaG1lbnRUeXBlU2NoZW1hLCBBdHRhY2htZW50VHlwZVNjaGVtYSwgR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWEsIEdlbmllVGV4dEF0dGFjaG1lbnRQdXJwb3NlU2NoZW1hLCBHZW5pZVRleHRBdHRhY2htZW50U2NoZW1hLCBHZW5pZVZpekF0dGFjaG1lbnRTY2hlbWEsIEdlbmllQXR0YWNobWVudFNjaGVtYSwgR2VuaWVNZXNzYWdlU2NoZW1hLCBHZW5pZVJlc3BvbnNlU2NoZW1hLCBHZW5pZVNwYWNlU2NoZW1hLCBDcmVhdGVHZW5pZVNwYWNlUmVxdWVzdFNjaGVtYSwgR2VuaWVNZXNzYWdlRmVlZGJhY2tSZXF1ZXN0U2NoZW1hLCBURVJNSU5BTF9TVEFUVVNFUywgVGVybWluYWxTdGF0dXNTY2hlbWEsIEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLCBRdWVzdGlvbkV2ZW50U2NoZW1hLCBNZXNzYWdlRXZlbnRTY2hlbWEsIFN0YXR1c0V2ZW50U2NoZW1hLCBBdHRhY2htZW50RXZlbnRTY2hlbWEsIFRoaW5raW5nRXZlbnRTY2hlbWEsIFRleHRFdmVudFNjaGVtYSwgUXVlcnlFdmVudFNjaGVtYSwgU3RhdGVtZW50RXZlbnRTY2hlbWEsIFJvd3NFdmVudFNjaGVtYSwgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWEsIFJlc3VsdEV2ZW50U2NoZW1hLCBHZW5pZUNoYXRFdmVudFNjaGVtYSB9IGZyb20gXCIuL3NyYy9nZW5pZS1tb2RlbC50c1wiO1xuZXhwb3J0IHR5cGUgeyBNZXNzYWdlU3RhdHVzLCBHZW5pZVRob3VnaHRUeXBlLCBHZW5pZVRob3VnaHQsIEtub3duQXR0YWNobWVudFR5cGUsIEF0dGFjaG1lbnRUeXBlLCBHZW5pZVF1ZXJ5QXR0YWNobWVudCwgR2VuaWVUZXh0QXR0YWNobWVudFB1cnBvc2UsIEdlbmllVGV4dEF0dGFjaG1lbnQsIEdlbmllVml6QXR0YWNobWVudCwgR2VuaWVBdHRhY2htZW50LCBHZW5pZU1lc3NhZ2UsIEdlbmllUmVzcG9uc2UsIEdlbmllU3BhY2UsIENyZWF0ZUdlbmllU3BhY2VSZXF1ZXN0LCBHZW5pZU1lc3NhZ2VGZWVkYmFja1JlcXVlc3QsIFRlcm1pbmFsU3RhdHVzLCBHZW5pZUNoYXRMb2NhdGlvbiwgUXVlc3Rpb25FdmVudCwgTWVzc2FnZUV2ZW50LCBTdGF0dXNFdmVudCwgQXR0YWNobWVudEV2ZW50LCBUaGlua2luZ0V2ZW50LCBUZXh0RXZlbnQsIFF1ZXJ5RXZlbnQsIFN0YXRlbWVudEV2ZW50LCBSb3dzRXZlbnQsIFN1Z2dlc3RlZFF1ZXN0aW9uc0V2ZW50LCBSZXN1bHRFdmVudCwgR2VuaWVDaGF0RXZlbnQsIEdlbmllQ2hhdEV2ZW50VHlwZSwgR2VuaWVDaGF0RXZlbnRGaWVsZHMgfSBmcm9tIFwiLi9zcmMvZ2VuaWUtbW9kZWwudHNcIjtcbiJdfQ==
@@ -509,6 +509,30 @@ export declare const GenieSpaceSchema: z.ZodObject<{
509
509
  }, z.core.$strip>;
510
510
  /** Genie space metadata with the identifiers required by chat consumers. */
511
511
  export type GenieSpace = z.infer<typeof GenieSpaceSchema>;
512
+ /** Request accepted by the GA Genie space create endpoint. */
513
+ export declare const CreateGenieSpaceRequestSchema: z.ZodObject<{
514
+ warehouse_id: z.ZodString;
515
+ serialized_space: z.ZodString;
516
+ title: z.ZodOptional<z.ZodString>;
517
+ description: z.ZodOptional<z.ZodString>;
518
+ parent_path: z.ZodOptional<z.ZodString>;
519
+ }, z.core.$strict>;
520
+ /** GA Genie space creation request. */
521
+ export type CreateGenieSpaceRequest = z.infer<typeof CreateGenieSpaceRequestSchema>;
522
+ /** Feedback request accepted by Genie chat-mode and agent-mode messages. */
523
+ export declare const GenieMessageFeedbackRequestSchema: z.ZodObject<{
524
+ space_id: z.ZodString;
525
+ conversation_id: z.ZodString;
526
+ message_id: z.ZodString;
527
+ rating: z.ZodEnum<{
528
+ NEGATIVE: "NEGATIVE";
529
+ NONE: "NONE";
530
+ POSITIVE: "POSITIVE";
531
+ }>;
532
+ comment: z.ZodOptional<z.ZodString>;
533
+ }, z.core.$strict>;
534
+ /** Feedback attached to one Genie conversation message. */
535
+ export type GenieMessageFeedbackRequest = z.infer<typeof GenieMessageFeedbackRequestSchema>;
512
536
  /**
513
537
  * Terminal Genie message statuses. The polling loop in the chat
514
538
  * driver stops as soon as the latest message has one of these
@@ -230,6 +230,28 @@ export const GenieSpaceSchema = SDKGenieSpaceSchema.extend({
230
230
  .optional()
231
231
  .describe("The contents of the Genie Space in serialized string form. This field is excluded in List Genie spaces responses. This field provides the structure of the JSON string that represents the space's layout and components."),
232
232
  });
233
+ /** Request accepted by the GA Genie space create endpoint. */
234
+ export const CreateGenieSpaceRequestSchema = z
235
+ .object({
236
+ warehouse_id: z.string().trim().min(1).describe("Associated SQL warehouse ID."),
237
+ serialized_space: z.string().trim().min(1).describe("Serialized Genie space definition."),
238
+ title: z.string().trim().min(1).optional().describe("Genie space title."),
239
+ description: z.string().trim().min(1).optional().describe("Genie space description."),
240
+ parent_path: z.string().trim().min(1).optional().describe("Parent workspace folder."),
241
+ })
242
+ .strict()
243
+ .describe("GA Genie space creation request.");
244
+ /** Feedback request accepted by Genie chat-mode and agent-mode messages. */
245
+ export const GenieMessageFeedbackRequestSchema = z
246
+ .object({
247
+ space_id: z.string().trim().min(1).describe("Genie space ID."),
248
+ conversation_id: z.string().trim().min(1).describe("Genie conversation ID."),
249
+ message_id: z.string().trim().min(1).describe("Genie message ID."),
250
+ rating: z.enum(["POSITIVE", "NEGATIVE", "NONE"]).describe("Genie feedback rating."),
251
+ comment: z.string().trim().max(5_000).optional().describe("Optional Genie feedback comment."),
252
+ })
253
+ .strict()
254
+ .describe("Feedback attached to one Genie conversation message.");
233
255
  /* ------------------------ terminal helpers ------------------------- */
234
256
  /**
235
257
  * Terminal Genie message statuses. The polling loop in the chat
@@ -519,4 +541,4 @@ export const GenieChatEventSchema = z.discriminatedUnion("type", [
519
541
  SuggestedQuestionsEventSchema,
520
542
  ResultEventSchema,
521
543
  ]);
522
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuaWUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuaWUtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NHO0FBRUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxLQUFLLFVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxrRkFBa0Y7QUFDbEYsaUZBQWlGO0FBQ2pGLDZEQUE2RDtBQUM3RCxNQUFNLEVBQ0oscUJBQXFCLEVBQUUsd0JBQXdCLEVBQy9DLGtCQUFrQixFQUFFLHFCQUFxQixFQUN6QywwQkFBMEIsRUFBRSw2QkFBNkIsRUFDekQsZ0JBQWdCLEVBQUUsbUJBQW1CLEdBQ3RDLEdBQUcsVUFBVSxDQUFDO0FBVWYsd0ZBQXdGO0FBQ3hGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQztBQUVsRSx5RUFBeUU7QUFFekU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUM7S0FDcEMsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7QUFJaEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxZQUFZLEVBQUUsc0JBQXNCLENBQUMsUUFBUSxDQUFDLDhDQUE4QyxDQUFDO0lBQzdGLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLDBDQUEwQyxDQUFDO0NBQ3pFLENBQUMsQ0FBQztBQUlILDZFQUE2RTtBQUU3RTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sQ0FBQyxNQUFN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QUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQztJQUN0QyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Q0FDL0IsQ0FBQyxDQUFDO0FBSUg7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJLENBQUM7SUFDNUQsYUFBYSxFQUFFLElBQUk7Q0FDcEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNSLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUN6QixNQUFNLEVBQUUsb0JBQW9CO0lBQzVCLE9BQU8sRUFBRSxrQkFBa0I7Q0FDNUIsQ0FBQyxDQUFDO0FBSUg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUU7SUFDL0QsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIscUJBQXFCO0lBQ3JCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQixlQUFlO0lBQ2YsNkJBQTZCO0lBQzdCLGlCQUFpQjtDQUNsQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFdpcmUtZm9ybWF0IHpvZCBzY2hlbWFzICsgdHlwZXMgYW5kIGhpZ2gtbGV2ZWwgZXZlbnQgdm9jYWJ1bGFyeVxuICogZm9yIHRoZSBHZW5pZSBjaGF0IGRyaXZlci5cbiAqXG4gKiBUd28gcmVsYXRlZCBsYXllcnMgbGl2ZSBoZXJlOlxuICpcbiAqICAgMS4gR2VuaWUgd2lyZSBzaGFwZXMgZGVyaXZlZCBmcm9tIHRoaXMgcGFja2FnZSdzIG93biBnZW5lcmF0ZWRcbiAqICAgICAgYGRhc2hib2FyZHNgIHNjaGVtYXMgKHJlZ2VuZXJhdGVkIGZyb20gdGhlIHVwc3RyZWFtXG4gKiAgICAgIGBAZGF0YWJyaWNrcy9zZGstZXhwZXJpbWVudGFsYCBgYXBpcy9kYXNoYm9hcmRzL21vZGVsLmQudHNgXG4gKiAgICAgIGJ5IHRoZSBlbmdpbmUncyBjb2RlZ2VuIG9uIHN5bnRoKS4gV2UgZXh0ZW5kIHRoZSBTREsgc2NoZW1hcyB3aGVyZSBHZW5pZVxuICogICAgICBzaGlwcyBmaWVsZHMgb24gdGhlIHdpcmUgdGhhdCB0aGUgU0RLIGRvZXNuJ3QgY3VycmVudGx5IHR5cGU6XG4gKlxuICogICAgICAgIC0gYEdlbmllTWVzc2FnZS5hdXRvX3JlZ2VuZXJhdGVfY291bnQ6IG51bWJlcmAgKHN0YW1wZWRcbiAqICAgICAgICAgIG9uIGV2ZXJ5IHdpcmUgbWVzc2FnZSwgb21pdHRlZCBmcm9tIHRoZSBTREsgc2hhcGUpLlxuICogICAgICAgIC0gYEdlbmllUXVlcnlBdHRhY2htZW50LnRob3VnaHRzOiBHZW5pZVRob3VnaHRbXWAgKHRoZVxuICogICAgICAgICAgc3RyZWFtZWQgcmVhc29uaW5nIHBheWxvYWQgd2l0aCBgREVTQ1JJUFRJT05gLFxuICogICAgICAgICAgYERBVEFfU09VUkNJTkdgLCBgU1RFUFNgLCBhbmQgYFVOREVSU1RBTkRJTkdgIHRob3VnaHRcbiAqICAgICAgICAgIGtpbmRzKS5cbiAqICAgICAgICAtIGBHZW5pZUF0dGFjaG1lbnQuYXR0YWNobWVudF90eXBlOiBBdHRhY2htZW50VHlwZWBcbiAqICAgICAgICAgIChhbiBvcHRpb25hbCBkaXNjcmltaW5hdG9yIGxpdGVyYWwgc28gY2FsbGVycyBjYW5cbiAqICAgICAgICAgIGBzd2l0Y2ggKGF0dC5hdHRhY2htZW50X3R5cGUpYCBpbnN0ZWFkIG9mIHByb2JpbmdcbiAqICAgICAgICAgIHdoaWNoIHN1Yi1rZXkgaXMgcG9wdWxhdGVkOyBjb21wdXRlIGl0IHdpdGhcbiAqICAgICAgICAgIHtAbGluayBkZXRlY3RBdHRhY2htZW50VHlwZX0pLlxuICpcbiAqICAgMi4gRXZlbnQgdm9jYWJ1bGFyeSBmb3IgdGhlIGhpZ2gtbGV2ZWwgYGdlbmllRXZlbnRDaGF0YFxuICogICAgICBkcml2ZXIuIEVhY2ggZXZlbnQgaXMgYSBmbGF0IGB6Lm9iamVjdGAgd2l0aCBhIGB0eXBlYFxuICogICAgICBsaXRlcmFsIGRpc2NyaW1pbmF0b3IgYW5kIHNuYWtlX2Nhc2UgcGF5bG9hZCBmaWVsZHMgaG9pc3RlZFxuICogICAgICB0byB0aGUgdG9wIGxldmVsIChubyBgcGF5bG9hZGAgd3JhcHBlcikuIEV2ZW50cyB0aGF0IHNoYXJlXG4gKiAgICAgIHRoZSBhdHRhY2htZW50LXNjb3BlZCBsb2NhdGlvbiB1c2VcbiAqICAgICAge0BsaW5rIEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hfSBhcyBhIGJhc2U7IGV2ZW50cyB0aGF0XG4gKiAgICAgIGRvbid0IGNhcnJ5IGFuIGBhdHRhY2htZW50X2lkYCAoc3RhdHVzLCByZXN1bHQpIG9taXQgaXQuXG4gKiAgICAgIHtAbGluayBHZW5pZUNoYXRFdmVudFNjaGVtYX0gYnVuZGxlcyB0aGUgdmFyaWFudHMgaW50byBvbmVcbiAqICAgICAgZGlzY3JpbWluYXRlZCB1bmlvbi5cbiAqXG4gKiBQdXJlIHR5cGVzOiBubyBydW50aW1lIGltcG9ydHMgYmV5b25kIHpvZCArIHRoZSBnZW5lcmF0ZWRcbiAqIGBkYXNoYm9hcmRzYCBzY2hlbWFzLCBubyBOb2RlLW9ubHkgY29kZSwgc2FmZSBmb3IgYnJvd3NlciBidW5kbGVzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBzdHJpbmdVdGlscyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0ICogYXMgZGFzaGJvYXJkcyBmcm9tIFwiLi9kYXNoYm9hcmRzLnRzXCI7XG5cbi8vIFRoZSBnZW5lcmF0ZWQgU0RLIHNjaGVtYXMgbGl2ZSBpbiB0aGUgc2libGluZyBgLi9kYXNoYm9hcmRzLnRzYCwgd3JpdHRlbiBieSB0aGVcbi8vIGVuZ2luZSdzIGNvZGVnZW4gZnJvbSB0aGUgdXBzdHJlYW0gYC5kLnRzYC4gQWxpYXMgdGhlIGhhbmRmdWwgR2VuaWUgZXh0ZW5kcyBzb1xuLy8gdGhlIHdpZGVuZWQgc2NoZW1hcyBiZWxvdyByZWFkIGFnYWluc3Qgc2hvcnQsIGxvY2FsIG5hbWVzLlxuY29uc3Qge1xuICBnZW5pZUF0dGFjaG1lbnRTY2hlbWE6IFNES0dlbmllQXR0YWNobWVudFNjaGVtYSxcbiAgZ2VuaWVNZXNzYWdlU2NoZW1hOiBTREtHZW5pZU1lc3NhZ2VTY2hlbWEsXG4gIGdlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hOiBTREtHZW5pZVF1ZXJ5QXR0YWNobWVudFNjaGVtYSxcbiAgZ2VuaWVTcGFjZVNjaGVtYTogU0RLR2VuaWVTcGFjZVNjaGVtYSxcbn0gPSBkYXNoYm9hcmRzO1xuXG4vKipcbiAqIFRoZSBTREsncyBgTWVzc2FnZVN0YXR1c2AgdHlwZSwgcmUtZXhwb3J0ZWQgc28gY29uc3VtZXJzIG9mIHRoZVxuICogR2VuaWUgY29udHJhY3QgZ2V0IHRoZSBmdWxsIHdpcmUgdm9jYWJ1bGFyeSBmcm9tIGEgc2luZ2xlIGltcG9ydFxuICogcGF0aCAtIG1pcnJvcnMgdGhlIHJlLWV4cG9ydHMgb2YgdGhlIG90aGVyIFNESy1kZXJpdmVkIHNjaGVtYXNcbiAqIGJlbG93LlxuICovXG5leHBvcnQgdHlwZSBNZXNzYWdlU3RhdHVzID0gZGFzaGJvYXJkcy5NZXNzYWdlU3RhdHVzO1xuXG4vKiogUnVudGltZSB2YWxpZGF0b3IgZm9yIGEgcmF3IEdlbmllIG1lc3NhZ2Ugc3RhdHVzIGZyb20gdGhlIGdlbmVyYXRlZCBTREsgY29udHJhY3QuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZVN0YXR1c1NjaGVtYSA9IGRhc2hib2FyZHMubWVzc2FnZVN0YXR1c1NjaGVtYTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gdGhvdWdodHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEdlbmllJ3MgcGVyLXF1ZXJ5IFwidGhvdWdodHNcIiBzdXJmYWNlLiBUaGVzZSBhcHBlYXIgb24gdGhlXG4gKiBgL21lc3NhZ2VzL3tpZH1gIHdpcmUgdW5kZXIgYGF0dGFjaG1lbnRzW2ldLnF1ZXJ5LnRob3VnaHRzW11gIGJ1dFxuICogYXJlIG5vdCB0eXBlZCBvbiB0aGUgU0RLJ3MgYEdlbmllUXVlcnlBdHRhY2htZW50YCBhdCB2MC4xNy5cbiAqXG4gKiBLbm93biB0aG91Z2h0IHR5cGVzIG9ic2VydmVkIGluIHByb2R1Y3Rpb24gcG9sbHM6XG4gKlxuICogICAtIGBUSE9VR0hUX1RZUEVfREVTQ1JJUFRJT05gOiBhIG9uZS1wYXJhZ3JhcGggcmVzdGF0ZW1lbnQgb2ZcbiAqICAgICB3aGF0IHRoZSB1c2VyIGFza2VkLiBUaGUgZmluYWwgYHF1ZXJ5LmRlc2NyaXB0aW9uYCBmaWVsZCBvblxuICogICAgIHRoZSBhdHRhY2htZW50IGNhcnJpZXMgdGhlIHNhbWUgdGV4dC5cbiAqICAgLSBgVEhPVUdIVF9UWVBFX0RBVEFfU09VUkNJTkdgOiBtYXJrZG93biBidWxsZXRzIG9mIHRoZVxuICogICAgIGZ1bGx5LXF1YWxpZmllZCBgY2F0YWxvZy5zY2hlbWEudGFibGVgIHNvdXJjZXMgR2VuaWUgY2hvc2UuXG4gKiAgIC0gYFRIT1VHSFRfVFlQRV9TVEVQU2A6IHRoZSBoaWdoLWxldmVsIHBsYW4gR2VuaWUgd3JvdGUgYmVmb3JlXG4gKiAgICAgcnVubmluZyBTUUwgKG9uZSBidWxsZXQgcGVyIHN0ZXApLlxuICogICAtIGBUSE9VR0hUX1RZUEVfVU5ERVJTVEFORElOR2A6IGFtYmlndWl0eSAvIGludGVycHJldGF0aW9uXG4gKiAgICAgbm90ZXMgKGUuZy4gXCIncmV2ZW51ZScgY291bGQgYmUgaW50ZXJwcmV0ZWQgYXMgZ3Jvc3MsXG4gKiAgICAgbmV0LCBvciByZWNvZ25pemVkIHJldmVudWUuLi5cIikuXG4gKlxuICogT3BlbiBhdCB0aGUgdHlwZSBsZXZlbCAoYHwgKHN0cmluZyAmIHt9KWApIHNvIGEgbmV3IHNlcnZlci1zaWRlXG4gKiB0aG91Z2h0IHR5cGUgZG9lc24ndCBicmVhayBjb21waWxhdGlvbjsgdGhlIGZvdXIga25vd24gdHlwZXNcbiAqIHN0aWxsIG5hcnJvdyBjb3JyZWN0bHkgdW5kZXIgYHN3aXRjaGAuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVRob3VnaHRUeXBlU2NoZW1hID0gelxuICAuc3RyaW5nKClcbiAgLmRlc2NyaWJlKFwiRm9yd2FyZC1jb21wYXRpYmxlIEdlbmllIHJlYXNvbmluZyB0aG91Z2h0IHR5cGUuXCIpO1xuXG5leHBvcnQgdHlwZSBHZW5pZVRob3VnaHRUeXBlID0gei5pbmZlcjx0eXBlb2YgR2VuaWVUaG91Z2h0VHlwZVNjaGVtYT47XG5cbi8qKlxuICogT25lIHJlYXNvbmluZyBzdGVwIG9uIGEgcXVlcnkgYXR0YWNobWVudC4gU2VlXG4gKiB7QGxpbmsgR2VuaWVUaG91Z2h0VHlwZX0gZm9yIHRoZSBrbm93biBgdGhvdWdodF90eXBlYCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVRob3VnaHRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHRob3VnaHRfdHlwZTogR2VuaWVUaG91Z2h0VHlwZVNjaGVtYS5kZXNjcmliZShcIktpbmQgb2YgcmVhc29uaW5nIHJlcHJlc2VudGVkIGJ5IHRoaXMgZW50cnkuXCIpLFxuICBjb250ZW50OiB6LnN0cmluZygpLmRlc2NyaWJlKFwiUmVhc29uaW5nIHRleHQgZW1pdHRlZCBmb3IgdGhpcyB0aG91Z2h0LlwiKSxcbn0pO1xuLyoqIE9uZSB0eXBlZCByZWFzb25pbmcgZW50cnkgYXR0YWNoZWQgdG8gYSBHZW5pZSBxdWVyeS4gKi9cbmV4cG9ydCB0eXBlIEdlbmllVGhvdWdodCA9IHouaW5mZXI8dHlwZW9mIEdlbmllVGhvdWdodFNjaGVtYT47XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGF0dGFjaG1lbnQgZGlzY3JpbWluYXRvciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogRGlzY3JpbWluYXRvciBmb3Igd2hhdCdzIGluc2lkZSBhIGBHZW5pZUF0dGFjaG1lbnRgLiBHZW5pZSBvbmx5XG4gKiBldmVyIHBvcHVsYXRlcyBvbmUgb2YgYHF1ZXJ5YCAvIGB0ZXh0YCAvIGBzdWdnZXN0ZWRfcXVlc3Rpb25zYFxuICogcGVyIGF0dGFjaG1lbnQuIE9wZW4gdmlhIGAoc3RyaW5nICYge30pYCBzbyBhIG5ldyBzZXJ2ZXItc2lkZVxuICogdHlwZSBkb2Vzbid0IGJyZWFrIGNvbXBpbGF0aW9uOyB0aGUgdGhyZWUga25vd24gdHlwZXMgc3RpbGxcbiAqIG5hcnJvdyBjb3JyZWN0bHkgdW5kZXIgYHN3aXRjaGAuXG4gKlxuICogTGlmdGVkIGludG8gdGhlIHNjaGVtYSBhcyB0aGUgb3B0aW9uYWxcbiAqIHtAbGluayBHZW5pZUF0dGFjaG1lbnRTY2hlbWF9LmBhdHRhY2htZW50X3R5cGVgIGZpZWxkIChjb21wdXRlXG4gKiBpdCB3aXRoIHtAbGluayBkZXRlY3RBdHRhY2htZW50VHlwZX0pIHNvIGNvbnN1bWVycyBjYW4gYnJhbmNoXG4gKiBvbiBhIGxpdGVyYWwgaW5zdGVhZCBvZiBwcm9iaW5nIHdoaWNoIHN1Yi1vYmplY3Qga2V5IGlzXG4gKiBwcmVzZW50LiBBbHNvIHN1cmZhY2VkIG9uIHtAbGluayBBdHRhY2htZW50RXZlbnR9J3MgcGF5bG9hZCBhc1xuICogYGF0dGFjaG1lbnRfdHlwZWAgKHZzIGEgYmFyZSBgdHlwZWApIHRvIGtlZXAgdGhlIGZpZWxkIGNsZWFyIG9mXG4gKiB0aGUgZXZlbnQtdW5pb24gZGlzY3JpbWluYXRvciBrZXkuXG4gKi9cbmV4cG9ydCBjb25zdCBBVFRBQ0hNRU5UX1RZUEVTID0gW1xuICBcInF1ZXJ5XCIsXG4gIFwidGV4dFwiLFxuICBcInN1Z2dlc3RlZF9xdWVzdGlvbnNcIixcbiAgXCJ2aXpcIixcbl0gYXMgY29uc3Qgc2F0aXNmaWVzIHJlYWRvbmx5IHN0cmluZ1tdO1xuXG5leHBvcnQgY29uc3QgS25vd25BdHRhY2htZW50VHlwZVNjaGVtYSA9IHpcbiAgLmVudW0oQVRUQUNITUVOVF9UWVBFUylcbiAgLmRlc2NyaWJlKFwiQXR0YWNobWVudCBkaXNjcmltaW5hdG9yIHZhbHVlcyB1bmRlcnN0b29kIGJ5IHRoaXMgcGFja2FnZSB2ZXJzaW9uLlwiKTtcblxuZXhwb3J0IHR5cGUgS25vd25BdHRhY2htZW50VHlwZSA9IHouaW5mZXI8dHlwZW9mIEtub3duQXR0YWNobWVudFR5cGVTY2hlbWE+O1xuXG5leHBvcnQgY29uc3QgQXR0YWNobWVudFR5cGVTY2hlbWEgPSB6XG4gIC5zdHJpbmcoKVxuICAuZGVzY3JpYmUoXCJGb3J3YXJkLWNvbXBhdGlibGUgR2VuaWUgYXR0YWNobWVudCBkaXNjcmltaW5hdG9yLlwiKTtcblxuZXhwb3J0IHR5cGUgQXR0YWNobWVudFR5cGUgPSB6LmluZmVyPHR5cGVvZiBBdHRhY2htZW50VHlwZVNjaGVtYT47XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0gd2lkZW5lZCB3aXJlIHNjaGVtYXMgKyB0eXBlcyAtLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBgR2VuaWVRdWVyeUF0dGFjaG1lbnRgIHdpZGVuZWQgd2l0aCB0aGUgYHRob3VnaHRzW11gIGZpZWxkIHRoZVxuICogR2VuaWUgd2lyZSBleHBvc2VzIGJ1dCB0aGUgU0RLIGRvZXNuJ3QgY3VycmVudGx5IHR5cGUuIEV2ZXJ5XG4gKiBvdGhlciBmaWVsZCAoYGRlc2NyaXB0aW9uYCwgYHF1ZXJ5YCwgYHN0YXRlbWVudF9pZGAsXG4gKiBgcXVlcnlfcmVzdWx0X21ldGFkYXRhYCwgYHRpdGxlYCwgYHBhcmFtZXRlcnNgLFxuICogYGxhc3RfdXBkYXRlZF90aW1lc3RhbXBgLCBgaWRgKSBmbG93cyB0aHJvdWdoIHZlcmJhdGltIGZyb21cbiAqIHRoZSBTREsgc2NoZW1hLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWEgPSBTREtHZW5pZVF1ZXJ5QXR0YWNobWVudFNjaGVtYS5leHRlbmQoe1xuICB0aG91Z2h0czogei5hcnJheShHZW5pZVRob3VnaHRTY2hlbWEpLm9wdGlvbmFsKCksXG59KTtcbi8qKiBRdWVyeSBhdHRhY2htZW50IHdpZGVuZWQgd2l0aCBHZW5pZSdzIHN0cmVhbWVkIHJlYXNvbmluZyB0aG91Z2h0cy4gKi9cbmV4cG9ydCB0eXBlIEdlbmllUXVlcnlBdHRhY2htZW50ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWE+O1xuXG4vKipcbiAqIFB1cnBvc2UgYXR0YWNoZWQgdG8gYSBHZW5pZSB0ZXh0IHJlc3BvbnNlLlxuICpcbiAqIFRoZSBnZW5lcmF0ZWQgRGF0YWJyaWNrcyBTREsgc2NoZW1hIGN1cnJlbnRseSBrbm93cyBvbmx5XG4gKiBgRk9MTE9XX1VQX1FVRVNUSU9OYCwgd2hpbGUgdGhlIGxpdmUgR2VuaWUgQVBJIGFsc28gZW1pdHNcbiAqIGBURVhUX0FUVEFDSE1FTlRfUFVSUE9TRV9BTlNXRVJgIGZvciB0aGUgcHJpbWFyeSBhbnN3ZXIgdGV4dC4gS2VlcCB0aGVcbiAqIGtub3duIHZhbHVlcyBkaXNjb3ZlcmFibGUgYW5kIGFjY2VwdCBmdXR1cmUgc3RyaW5nIHZhbHVlcyBzbyBhbiBhZGRpdGl2ZVxuICogc2VydmVyLXNpZGUgZW51bSBjaGFuZ2UgY2Fubm90IGludmFsaWRhdGUgYW4gb3RoZXJ3aXNlIGNvbXBsZXRlIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVRleHRBdHRhY2htZW50UHVycG9zZVNjaGVtYSA9IHpcbiAgLnN0cmluZygpXG4gIC5kZXNjcmliZShcIkZvcndhcmQtY29tcGF0aWJsZSBzZW1hbnRpYyBwdXJwb3NlIGZvciBhIEdlbmllIHRleHQgYXR0YWNobWVudC5cIik7XG5cbmV4cG9ydCB0eXBlIEdlbmllVGV4dEF0dGFjaG1lbnRQdXJwb3NlID0gei5pbmZlcjx0eXBlb2YgR2VuaWVUZXh0QXR0YWNobWVudFB1cnBvc2VTY2hlbWE+O1xuXG4vKipcbiAqIFRleHQgYXR0YWNobWVudCB3aWRlbmVkIGZvciBmb3J3YXJkLWNvbXBhdGlibGUgcHVycG9zZSB2YWx1ZXMgYW5kIG9wdGlvbmFsXG4gKiBBZ2VudCBNb2RlIHRhYmxlIG1ldGFkYXRhLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVUZXh0QXR0YWNobWVudFNjaGVtYSA9IGRhc2hib2FyZHMudGV4dEF0dGFjaG1lbnRTY2hlbWEuZXh0ZW5kKHtcbiAgcHVycG9zZTogR2VuaWVUZXh0QXR0YWNobWVudFB1cnBvc2VTY2hlbWEub3B0aW9uYWwoKSxcbiAgbWV0YWRhdGE6IHoudW5rbm93bigpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJBZ2VudCBNb2RlIG1ldGFkYXRhIGF0dGFjaGVkIHRvIHRoaXMgdGV4dCByZXNwb25zZS5cIiksXG59KTtcbi8qKiBOYXJyYXRpdmUgdGV4dCBhdHRhY2htZW50LCBpbmNsdWRpbmcgaXRzIG9wdGlvbmFsIHNlbWFudGljIHB1cnBvc2UuICovXG5leHBvcnQgdHlwZSBHZW5pZVRleHRBdHRhY2htZW50ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVUZXh0QXR0YWNobWVudFNjaGVtYT47XG5cbi8qKlxuICogVmlzdWFsaXphdGlvbiBHZW5pZSByZXF1ZXN0ZWQgZm9yIG9uZSBvZiBpdHMgcXVlcnkgcmVzdWx0cy4gR2VuaWUgc3RvcmVzIG9ubHlcbiAqIHRoZSB0aXRsZSBhbmQgdGhlIHF1ZXJ5IGF0dGFjaG1lbnQgaXQgY2hhcnRzOyB0aGUgY2xpZW50IGRyYXdzIHRoZSBjaGFydCBmcm9tXG4gKiB0aGF0IHF1ZXJ5J3Mgc3RhdGVtZW50IHJvd3MuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVZpekF0dGFjaG1lbnRTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHRpdGxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJEaXNwbGF5IHRpdGxlIEdlbmllIGNob3NlIGZvciB0aGUgY2hhcnQuXCIpLFxuICAgIHF1ZXJ5X2F0dGFjaG1lbnRfaWQ6IHpcbiAgICAgIC5zdHJpbmcoKVxuICAgICAgLm9wdGlvbmFsKClcbiAgICAgIC5kZXNjcmliZShcImBhdHRhY2htZW50X2lkYCBvZiB0aGUgcXVlcnkgYXR0YWNobWVudCB3aG9zZSByb3dzIHRoZSBjaGFydCBwbG90cy5cIiksXG4gIH0pXG4gIC5kZXNjcmliZShcIkdlbmllIHZpc3VhbGl6YXRpb24gcmVxdWVzdCBvdmVyIG9uZSBxdWVyeSBhdHRhY2htZW50LlwiKTtcbi8qKiBHZW5pZSB2aXN1YWxpemF0aW9uIHJlcXVlc3Qgb3ZlciBvbmUgcXVlcnkgYXR0YWNobWVudC4gKi9cbmV4cG9ydCB0eXBlIEdlbmllVml6QXR0YWNobWVudCA9IHouaW5mZXI8dHlwZW9mIEdlbmllVml6QXR0YWNobWVudFNjaGVtYT47XG5cbi8qKlxuICogYEdlbmllQXR0YWNobWVudGAgd2l0aDpcbiAqXG4gKiAgIC0gYHF1ZXJ5YCByZS10eXBlZCB0byB0aGUgdGhvdWdodHMtYXdhcmVcbiAqICAgICB7QGxpbmsgR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWF9LlxuICogICAtIGBhdHRhY2htZW50X3R5cGVgIGRpc2NyaW1pbmF0b3IgbGl0ZXJhbFxuICogICAgICh7QGxpbmsgQXR0YWNobWVudFR5cGV9KSBzbyBjb25zdW1lcnMgY2FuIGBzd2l0Y2hcbiAqICAgICAoYXR0LmF0dGFjaG1lbnRfdHlwZSlgIHRvIG5hcnJvdyB3aGljaCBzdWItb2JqZWN0IGlzXG4gKiAgICAgcG9wdWxhdGVkLiBPcHRpb25hbCBvbiB0aGUgd2lyZSAoR2VuaWUgZG9lc24ndCBzZW5kIGl0KTtcbiAqICAgICBjYWxsZXJzIGNvbXB1dGUgaXQgd2l0aCB7QGxpbmsgZGV0ZWN0QXR0YWNobWVudFR5cGV9IHdoZW5cbiAqICAgICB0aGV5IHdhbnQgdGhlIGxpdGVyYWwgdXAtZnJvbnQuXG4gKlxuICogYHRleHRgIGlzIHJlLXR5cGVkIHRvIHRoZSBmb3J3YXJkLWNvbXBhdGlibGVcbiAqIHtAbGluayBHZW5pZVRleHRBdHRhY2htZW50U2NoZW1hfS4gYGF0dGFjaG1lbnRfaWRgIGFuZFxuICogYHN1Z2dlc3RlZF9xdWVzdGlvbnNgIHBhc3MgdGhyb3VnaCB1bmNoYW5nZWQuIGBhdHRhY2htZW50X2lkYCBpcyBnZW51aW5lbHlcbiAqIG9wdGlvbmFsIG9uIHRoZSB3aXJlOlxuICogdGhlIGZpcnN0IHRleHQgYXR0YWNobWVudCBHZW5pZSBlbWl0cyBwZXIgdHVybiAodGhlIFwibWFpblxuICogYW5zd2VyIHRleHRcIikgYXJyaXZlcyB3aXRoIG5vIGlkLCBvbmx5IHRoZSBmb2xsb3ctdXAgdGV4dFxuICogYXR0YWNobWVudCBnZXRzIG9uZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQXR0YWNobWVudFNjaGVtYSA9IFNES0dlbmllQXR0YWNobWVudFNjaGVtYS5leHRlbmQoe1xuICBxdWVyeTogR2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWEub3B0aW9uYWwoKSxcbiAgdGV4dDogR2VuaWVUZXh0QXR0YWNobWVudFNjaGVtYS5vcHRpb25hbCgpLFxuICB2aXo6IEdlbmllVml6QXR0YWNobWVudFNjaGVtYS5vcHRpb25hbCgpLFxuICBhdHRhY2htZW50X3R5cGU6IEF0dGFjaG1lbnRUeXBlU2NoZW1hLm9wdGlvbmFsKCksXG59KTtcbi8qKiBHZW5pZSBtZXNzYWdlIGF0dGFjaG1lbnQgd2l0aCBhbiBvcHRpb25hbCBjb21wdXRlZCBkaXNjcmltaW5hdG9yLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVBdHRhY2htZW50ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVBdHRhY2htZW50U2NoZW1hPjtcblxuLyoqXG4gKiBgR2VuaWVNZXNzYWdlYCB3aWRlbmVkIHdpdGg6XG4gKlxuICogICAtIGBhdXRvX3JlZ2VuZXJhdGVfY291bnRgOiBudW1iZXIgc3RhbXBlZCBvbiBldmVyeSB3aXJlXG4gKiAgICAgbWVzc2FnZSB0aGF0IHRoZSBTREsgdHlwZSBvbWl0cyBhdCB2MC4xNy5cbiAqICAgLSBgYXR0YWNobWVudHNgOiByZS10eXBlZCB0byB0aGUgbG9jYWxcbiAqICAgICB7QGxpbmsgR2VuaWVBdHRhY2htZW50U2NoZW1hfSBzb1xuICogICAgIGBhdHRhY2htZW50LnF1ZXJ5Py50aG91Z2h0c2AgKGFuZCB0aGVcbiAqICAgICBgYXR0YWNobWVudF90eXBlYCBkaXNjcmltaW5hdG9yKSBpcyByZWFjaGFibGUgd2l0aG91dCBhXG4gKiAgICAgY2FzdC5cbiAqXG4gKiBFdmVyeSBvdGhlciBmaWVsZCAoYGlkYCwgYHNwYWNlX2lkYCwgYGNvbnZlcnNhdGlvbl9pZGAsXG4gKiBgdXNlcl9pZGAsIGBjcmVhdGVkX3RpbWVzdGFtcGAsIGBsYXN0X3VwZGF0ZWRfdGltZXN0YW1wYCxcbiAqIGBzdGF0dXNgLCBgY29udGVudGAsIGBtZXNzYWdlX2lkYCwgYHF1ZXJ5X3Jlc3VsdGAsIGBlcnJvcmAsXG4gKiBgZmVlZGJhY2tgKSBwYXNzZXMgdGhyb3VnaCBmcm9tIHRoZSBTREsgc2NoZW1hLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVNZXNzYWdlU2NoZW1hID0gU0RLR2VuaWVNZXNzYWdlU2NoZW1hLmV4dGVuZCh7XG4gIGF0dGFjaG1lbnRzOiB6LmFycmF5KEdlbmllQXR0YWNobWVudFNjaGVtYSkub3B0aW9uYWwoKSxcbiAgYXV0b19yZWdlbmVyYXRlX2NvdW50OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG59KTtcbi8qKiBHZW5pZSBtZXNzYWdlIHNuYXBzaG90IHdpZGVuZWQgd2l0aCB0eXBlZCBhdHRhY2htZW50cyBhbmQgcmVnZW5lcmF0aW9uIGNvdW50LiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVNZXNzYWdlID0gei5pbmZlcjx0eXBlb2YgR2VuaWVNZXNzYWdlU2NoZW1hPjtcblxuLyoqXG4gKiBEb21haW4gcHJvamVjdGlvbiBvZiB7QGxpbmsgR2VuaWVNZXNzYWdlU2NoZW1hfSB0aGF0IGRyb3BzIGV2ZXJ5XG4gKiB0dXJuLWxldmVsIGZpZWxkIChgaWRgLCBgc3RhdHVzYCwgYGNyZWF0ZWRfdGltZXN0YW1wYCxcbiAqIGBxdWVyeV9yZXN1bHRgLCAuLi4pIGFuZCB5aWVsZHMganVzdCB0aGUgcmVzcG9uc2UgcGF5bG9hZCBhcyBhXG4gKiBmbGF0IGBHZW5pZUF0dGFjaG1lbnRbXWAuIFBhcnNlcyB0aGUgc2FtZSB3aXJlIHNoYXBlIGFzXG4gKiB7QGxpbmsgR2VuaWVNZXNzYWdlU2NoZW1hfTsgbWlzc2luZyBgYXR0YWNobWVudHNgIGRlZmF1bHRzIHRvXG4gKiBgW11gIHNvIHRoZSBvdXRwdXQgaXMgYWx3YXlzIGFuIGFycmF5LlxuICpcbiAqIFVzZSB3aGVuIGNvbnN1bWVycyBvbmx5IGNhcmUgYWJvdXQgdGhlIG1vZGVsJ3MgcmVzcG9uc2VcbiAqIGF0dGFjaG1lbnRzIGFuZCBub3QgdGhlIHN1cnJvdW5kaW5nIG1lc3NhZ2UgZW52ZWxvcGUuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVJlc3BvbnNlU2NoZW1hID0gR2VuaWVNZXNzYWdlU2NoZW1hLnRyYW5zZm9ybSgobSkgPT4gbS5hdHRhY2htZW50cyA/PyBbXSk7XG4vKiogTm9ybWFsaXplZCBhdHRhY2htZW50IGFycmF5IGV4dHJhY3RlZCBmcm9tIGEgR2VuaWUgbWVzc2FnZSByZXNwb25zZS4gKi9cbmV4cG9ydCB0eXBlIEdlbmllUmVzcG9uc2UgPSB6LmluZmVyPHR5cGVvZiBHZW5pZVJlc3BvbnNlU2NoZW1hPjtcblxuLyoqXG4gKiBgR2VuaWVTcGFjZWAgd2lkZW5lZCB3aXRoIGFuIG9wdGlvbmFsIGBzZXJpYWxpemVkX3NwYWNlYCBmaWVsZFxuICogY2FycnlpbmcgYSBKU09OLXN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3BhY2UncyBmdWxsXG4gKiBkZWZpbml0aW9uIChjYXRhbG9ncywgc2NoZW1hcywgdGFibGVzLCBzYW1wbGUgcXVlc3Rpb25zLCBwcm9tcHRzLFxuICogZXRjLikgYXMgZXhwb3J0ZWQgYnkgdGhlIHdvcmtzcGFjZSBleHBvcnQgZW5kcG9pbnQuXG4gKlxuICogVGhlIGJhc2UgU0RLIHNoYXBlIChgZGVzY3JpcHRpb25gLCBgc3BhY2VfaWRgLCBgdGl0bGVgLFxuICogYHdhcmVob3VzZV9pZGApIGNvdmVycyB0aGUgZGlyZWN0b3J5LWxpc3Rpbmcgc3VyZmFjZSAtIGVub3VnaCB0b1xuICogcm91dGUgYSBjaGF0LiBgc2VyaWFsaXplZF9zcGFjZWAgaXMgb3B0LWluIHNvIGNhbGxlcnMgdGhhdCBuZWVkXG4gKiB0aGUgZnVsbCBzcGFjZSBzY2hlbWEgKGUuZy4gdG8gc2VlZCBhIHN5c3RlbSBwcm9tcHQgb3IgdG8gc2hpcFxuICogdGhlIGRlZmluaXRpb24gdG8gYW4gYWdlbnQpIGNhbiBhdHRhY2ggaXQgd2l0aG91dCBhIHNlY29uZCB0eXBlLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVTcGFjZVNjaGVtYSA9IFNES0dlbmllU3BhY2VTY2hlbWEuZXh0ZW5kKHtcbiAgc2VyaWFsaXplZF9zcGFjZTogelxuICAgIC5zdHJpbmcoKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKFxuICAgICAgXCJUaGUgY29udGVudHMgb2YgdGhlIEdlbmllIFNwYWNlIGluIHNlcmlhbGl6ZWQgc3RyaW5nIGZvcm0uIFRoaXMgZmllbGQgaXMgZXhjbHVkZWQgaW4gTGlzdCBHZW5pZSBzcGFjZXMgcmVzcG9uc2VzLiBUaGlzIGZpZWxkIHByb3ZpZGVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIEpTT04gc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGUgc3BhY2UncyBsYXlvdXQgYW5kIGNvbXBvbmVudHMuXCIsXG4gICAgKSxcbn0pO1xuLyoqIEdlbmllIHNwYWNlIG1ldGFkYXRhIHdpdGggdGhlIGlkZW50aWZpZXJzIHJlcXVpcmVkIGJ5IGNoYXQgY29uc3VtZXJzLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVTcGFjZSA9IHouaW5mZXI8dHlwZW9mIEdlbmllU3BhY2VTY2hlbWE+O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gdGVybWluYWwgaGVscGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogVGVybWluYWwgR2VuaWUgbWVzc2FnZSBzdGF0dXNlcy4gVGhlIHBvbGxpbmcgbG9vcCBpbiB0aGUgY2hhdFxuICogZHJpdmVyIHN0b3BzIGFzIHNvb24gYXMgdGhlIGxhdGVzdCBtZXNzYWdlIGhhcyBvbmUgb2YgdGhlc2VcbiAqIHN0YXR1c2VzLlxuICovXG5leHBvcnQgY29uc3QgVEVSTUlOQUxfU1RBVFVTRVMgPSBbXCJDT01QTEVURURcIiwgXCJGQUlMRURcIiwgXCJDQU5DRUxMRURcIl0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBUZXJtaW5hbFN0YXR1c1NjaGVtYSA9IHpcbiAgLmVudW0oVEVSTUlOQUxfU1RBVFVTRVMpXG4gIC5kZXNjcmliZShcIk1lc3NhZ2Ugc3RhdHVzIHRoYXQgZW5kcyBhIEdlbmllIHR1cm4gYW5kIHByb2R1Y2VzIGEgZmluYWwgcmVzdWx0IGV2ZW50LlwiKTtcblxuZXhwb3J0IHR5cGUgVGVybWluYWxTdGF0dXMgPSB6LmluZmVyPHR5cGVvZiBUZXJtaW5hbFN0YXR1c1NjaGVtYT47XG5cbi8qKiBOYXJyb3cgYE1lc3NhZ2VTdGF0dXMgfCB1bmRlZmluZWRgIHRvIGEge0BsaW5rIFRlcm1pbmFsU3RhdHVzfS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Rlcm1pbmFsU3RhdHVzKHM6IE1lc3NhZ2VTdGF0dXMgfCB1bmRlZmluZWQpOiBzIGlzIFRlcm1pbmFsU3RhdHVzIHtcbiAgcmV0dXJuIHMgIT09IHVuZGVmaW5lZCAmJiAoVEVSTUlOQUxfU1RBVFVTRVMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHMpO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSByYXcgR2VuaWUgd2lyZSBzdGF0dXMgKGBGRVRDSElOR19NRVRBREFUQWAsXG4gKiBgQVNLSU5HX0FJYCwgYEVYRUNVVElOR19RVUVSWWAsIC4uLikgaW50byBhIHNob3J0LCBzZW50ZW5jZS1jYXNlZFxuICogbGFiZWwgc2FmZSB0byBkcm9wIGludG8gYSBVSSBwaWxsLiBLbm93biBzdGF0ZXMgZ2V0IGEgY3VyYXRlZFxuICogbGFiZWw7IHVua25vd24gc3RhdGVzIGZhbGwgYmFjayB0byBgc3RyaW5nVXRpbHMudG9rZW5pemVXaXRoT3B0aW9uc2BcbiAqIHNvIG5ldyBzdGF0ZXMgc3RpbGwgcmVuZGVyIGNsZWFubHkgd2l0aG91dCBjb2RlIGNoYW5nZXMuXG4gKlxuICogUHVyZSAobm8gTm9kZS1vbmx5IGRlcHMpLCBzYWZlIGZvciBicm93c2VyIGJ1bmRsZXMuIEJvdGggdGhlXG4gKiBHZW5pZSBhZ2VudCAoc2VydmVyKSBhbmQgYW55IFVJIHRoYXQgc3Vic2NyaWJlcyB0byBzdGF0dXMgZXZlbnRzXG4gKiBjYWxsIHRoaXMgc28gbGFiZWxzIHN0YXkgaW4gbG9jay1zdGVwIGFjcm9zcyB0aGUgd2lyZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGh1bWFuaXplU3RhdHVzKHN0YXR1czogTWVzc2FnZVN0YXR1cyk6IHN0cmluZyB7XG4gIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgY2FzZSBcIkZFVENISU5HX01FVEFEQVRBXCI6XG4gICAgICByZXR1cm4gXCJGZXRjaGluZyBtZXRhZGF0YVwiO1xuICAgIGNhc2UgXCJBU0tJTkdfQUlcIjpcbiAgICAgIHJldHVybiBcIkFza2luZyBHZW5pZVwiO1xuICAgIGNhc2UgXCJFWEVDVVRJTkdfUVVFUllcIjpcbiAgICAgIHJldHVybiBcIlJ1bm5pbmcgU1FMIHF1ZXJ5XCI7XG4gICAgY2FzZSBcIkZJTFRFUklOR19DT05URVhUXCI6XG4gICAgICByZXR1cm4gXCJGaWx0ZXJpbmcgY29udGV4dFwiO1xuICAgIGNhc2UgXCJQRU5ESU5HX1dBUkVIT1VTRVwiOlxuICAgICAgcmV0dXJuIFwiV2FpdGluZyBmb3Igd2FyZWhvdXNlXCI7XG4gICAgY2FzZSBcIkNPTVBMRVRFRFwiOlxuICAgICAgcmV0dXJuIFwiQ29tcGxldGVkXCI7XG4gICAgY2FzZSBcIkZBSUxFRFwiOlxuICAgICAgcmV0dXJuIFwiRmFpbGVkXCI7XG4gICAgY2FzZSBcIkNBTkNFTExFRFwiOlxuICAgICAgcmV0dXJuIFwiQ2FuY2VsbGVkXCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLnN0cmluZ1V0aWxzLnRva2VuaXplV2l0aE9wdGlvbnMoeyBjYXBpdGFsaXplOiB0cnVlLCBsb3dlckNhc2U6IHRydWUgfSwgc3RhdHVzKSxcbiAgICAgIF0uam9pbihcIiBcIik7XG4gIH1cbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gYXR0YWNobWVudCB0eXBlIGhlbHBlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogSW5zcGVjdCBhIHtAbGluayBHZW5pZUF0dGFjaG1lbnR9IGFuZCByZXR1cm4gdGhlXG4gKiB7QGxpbmsgQXR0YWNobWVudFR5cGV9IG9mIHBheWxvYWQgaXQgY2Fycmllcy4gUmV0dXJucyB0aGUgZmlyc3RcbiAqIGtub3duIHN1Yi1vYmplY3QgdGhhdCdzIHByZXNlbnQ7IGlmIG5vbmUgb2YgdGhlIGtub3duIG9uZXMgYXJlXG4gKiBwb3B1bGF0ZWQsIGZhbGxzIGJhY2sgdG8gdGhlIGZpcnN0IG5vbi1ib29ra2VlcGluZyBrZXlcbiAqIChmb3J3YXJkLWNvbXBhdCBmb3IgdHlwZXMgd2UgZG9uJ3QgbW9kZWwgeWV0KSwgZWxzZSBgXCJ1bmtub3duXCJgLlxuICpcbiAqIEhvbm9ycyBhIHByZS1zZXQgYGF0dGFjaG1lbnRfdHlwZWAgaWYgb25lIGlzIGFscmVhZHkgb24gdGhlXG4gKiB2YWx1ZSwgc28gdGhpcyBpcyBpZGVtcG90ZW50IGFjcm9zcyByZS1kZXRlY3Rpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0QXR0YWNobWVudFR5cGUoYXR0OiBHZW5pZUF0dGFjaG1lbnQpOiBBdHRhY2htZW50VHlwZSB7XG4gIGlmIChhdHQuYXR0YWNobWVudF90eXBlKSByZXR1cm4gYXR0LmF0dGFjaG1lbnRfdHlwZTtcbiAgaWYgKGF0dC5xdWVyeSkgcmV0dXJuIFwicXVlcnlcIjtcbiAgaWYgKGF0dC50ZXh0KSByZXR1cm4gXCJ0ZXh0XCI7XG4gIGlmIChhdHQuc3VnZ2VzdGVkX3F1ZXN0aW9ucykgcmV0dXJuIFwic3VnZ2VzdGVkX3F1ZXN0aW9uc1wiO1xuICBpZiAoYXR0LnZpeikgcmV0dXJuIFwidml6XCI7XG4gIGZvciAoY29uc3QgayBvZiBPYmplY3Qua2V5cyhhdHQpKSB7XG4gICAgaWYgKGsgIT09IFwiYXR0YWNobWVudF9pZFwiICYmIGsgIT09IFwiYXR0YWNobWVudF90eXBlXCIpIHJldHVybiBrO1xuICB9XG4gIHJldHVybiBcInVua25vd25cIjtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBHZW5pZUNoYXQgZXZlbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFdoZXJlIG9uIHRoZSB3aXJlIGFuIGV2ZW50IHdhcyBvYnNlcnZlZC4gU3ByZWFkIGludG8gZXZlcnlcbiAqIGF0dGFjaG1lbnQtc2NvcGVkIGV2ZW50IHBheWxvYWQgc28gc3Vic2NyaWJlcnMgY2FuIHJvdXRlLCBsb2csXG4gKiBvciBjb3JyZWxhdGUgd2l0aG91dCByZS13YWxraW5nIHRoZSBtZXNzYWdlLlxuICpcbiAqIEZpZWxkczpcbiAqICAgLSBgc3BhY2VfaWRgOiB0aGUgR2VuaWUgc3BhY2UgdGhlIGNvbnZlcnNhdGlvbiBsaXZlcyBpbi5cbiAqICAgLSBgY29udmVyc2F0aW9uX2lkYDogY29udmVyc2F0aW9uIGlkIG9uY2UgR2VuaWUgaGFzIGFzc2lnbmVkIG9uZS5cbiAqICAgLSBgbWVzc2FnZV9pZGA6IEdlbmllIG1lc3NhZ2UgaWQgZm9yIHRoZSBhY3RpdmUgdHVybi5cbiAqICAgLSBgYXR0YWNobWVudF9pZGA6IGF0dGFjaG1lbnQgdGhlIGV2ZW50IGNhbWUgZnJvbS4gT3B0aW9uYWxcbiAqICAgICBiZWNhdXNlIEdlbmllIHNvbWV0aW1lcyBlbWl0cyBhbiBhbm9ueW1vdXMgbWFpbi1hbnN3ZXJcbiAqICAgICBhdHRhY2htZW50IHdpdGhvdXQgYW4gaWQ7IHRob3NlIHN0aWxsIGdldCBldmVudHMsIGp1c3Qgd2l0aFxuICogICAgIGBhdHRhY2htZW50X2lkYCB1bmRlZmluZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgc3BhY2VfaWQ6IHouc3RyaW5nKCksXG4gIGNvbnZlcnNhdGlvbl9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBtZXNzYWdlX2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGF0dGFjaG1lbnRfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuLyoqIENvbnZlcnNhdGlvbiwgbWVzc2FnZSwgYW5kIGF0dGFjaG1lbnQgY29vcmRpbmF0ZXMgc2hhcmVkIGJ5IGF0dGFjaG1lbnQgZXZlbnRzLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVDaGF0TG9jYXRpb24gPSB6LmluZmVyPHR5cGVvZiBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYT47XG5cbi8qKlxuICogTGlmZWN5Y2xlIGV2ZW50OiB0aGUgcXVlc3Rpb24gdGhpcyB0dXJuIGlzIGFza2luZyBHZW5pZS4gRmlyZXNcbiAqIG9uY2UgcGVyIGBnZW5pZUV2ZW50Q2hhdGAgY2FsbCwgdGhlIGZpcnN0IHRpbWUgdGhlIHVuZGVybHlpbmdcbiAqIGBnZW5pZUNoYXRgIGxvb3AgeWllbGRzIGEgYEdlbmllTWVzc2FnZWAuIENhcnJpZXMgdGhlIHByb21wdFxuICogdGV4dCBHZW5pZSBlY2hvZWQgYmFjayBvbiBgbWVzc2FnZS5jb250ZW50YCBhbmQgdGhlIGFzc2lnbmVkXG4gKiBgbWVzc2FnZV9pZGAgc28gc3Vic2NyaWJlcnMgY2FuIGdyb3VwIGV2ZXJ5IHN1YnNlcXVlbnQgZXZlbnRcbiAqIGZvciB0aGlzIHR1cm4gdW5kZXIgb25lIHN0YWJsZSBrZXkuIGBjb252ZXJzYXRpb25faWRgIGlzXG4gKiBwb3B1bGF0ZWQgZm9yIGJvdGggb3BlbmluZyBhbmQgZm9sbG93LXVwIHR1cm5zIChHZW5pZSBhc3NpZ25zXG4gKiBpdCBvbiBgc3RhcnRDb252ZXJzYXRpb25gKS5cbiAqXG4gKiBEZWZlcnJlZCAoaW5zdGVhZCBvZiBmaXJlZCBzeW5jaHJvbm91c2x5IG9uIGVudHJ5KSBzbyB0aGVcbiAqIGBtZXNzYWdlX2lkYCBpcyBhdmFpbGFibGUgd2hlbiB0aGUgZXZlbnQgbGFuZHMgLSB0aGF0IG9uZSByb3VuZFxuICogdHJpcCBjb3N0cyB+MjAwbXMgYnV0IGxldHMgVUlzIHJlbmRlciBxdWVzdGlvbiAvIHRoaW5raW5nIC9cbiAqIHF1ZXJ5IC8gdGV4dCBhcyBhIHNpbmdsZSBncm91cGVkIGJsb2NrIHBlciBHZW5pZSBjYWxsIGluc3RlYWRcbiAqIG9mIGEgZmxhdCBzdHJlYW0uXG4gKlxuICogYGF0dGFjaG1lbnRfaWRgIGlzIGludGVudGlvbmFsbHkgYWJzZW50IC0gcXVlc3Rpb25zIGFyZSB0dXJuXG4gKiBzY29wZWQsIG5vdCBhdHRhY2htZW50IHNjb3BlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IFF1ZXN0aW9uRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5vbWl0KHtcbiAgYXR0YWNobWVudF9pZDogdHJ1ZSxcbn0pLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInF1ZXN0aW9uXCIpLFxuICBjb250ZW50OiB6LnN0cmluZygpLFxufSk7XG4vKiogSW5pdGlhbCBldmVudCBjYXJyeWluZyB0aGUgdXNlcidzIHF1ZXN0aW9uIGFmdGVyIEdlbmllIGFzc2lnbnMgYSBtZXNzYWdlIGlkLiAqL1xuZXhwb3J0IHR5cGUgUXVlc3Rpb25FdmVudCA9IHouaW5mZXI8dHlwZW9mIFF1ZXN0aW9uRXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIExpZmVjeWNsZSBldmVudDogcmF3IGBHZW5pZU1lc3NhZ2VgIHNuYXBzaG90IGZvciB0aGUgYWN0aXZlXG4gKiB0dXJuLiBGaXJlcyBvbmNlIHBlciBwb2xsIHlpZWxkLiBUaGUgZnVsbCBtZXNzYWdlIHNoYXBlXG4gKiAoaW5jbHVkaW5nIHRoZSB3aWRlbmVkIHRob3VnaHQgLyByZWdlbiAvIGF0dGFjaG1lbnQtdHlwZVxuICogZmllbGRzKSBpcyBleHBvc2VkIGlubGluZSBhcyBgbWVzc2FnZWA7IGNvbnN1bWVycyBuYXJyb3cgb25cbiAqIGBldmVudC50eXBlID09PSBcIm1lc3NhZ2VcImAgYW5kIHJlYWNoIGZvciBgZXZlbnQubWVzc2FnZWAuXG4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5vbWl0KHtcbiAgYXR0YWNobWVudF9pZDogdHJ1ZSxcbn0pLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcIm1lc3NhZ2VcIiksXG4gIG1lc3NhZ2U6IEdlbmllTWVzc2FnZVNjaGVtYSxcbn0pO1xuLyoqIFJhdyBHZW5pZSBtZXNzYWdlIHNuYXBzaG90IGVtaXR0ZWQgb24gZXZlcnkgcG9sbCBpdGVyYXRpb24uICovXG5leHBvcnQgdHlwZSBNZXNzYWdlRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBNZXNzYWdlRXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIFRvcC1sZXZlbCBgbWVzc2FnZS5zdGF0dXNgIHRyYW5zaXRpb25lZC4gRmlyZXMgZm9yIGV2ZXJ5XG4gKiBkaXN0aW5jdCBzdGF0dXMgc2VlbiBvbiB0aGUgd2lyZSAoZS5nLiBgU1VCTUlUVEVEYCAtPlxuICogYEZJTFRFUklOR19DT05URVhUYCAtPiBgQVNLSU5HX0FJYCAtPiBgUEVORElOR19XQVJFSE9VU0VgIC0+XG4gKiBgQVNLSU5HX0FJYCAtPiBgQ09NUExFVEVEYCkuXG4gKi9cbmV4cG9ydCBjb25zdCBTdGF0dXNFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLm9taXQoe1xuICBhdHRhY2htZW50X2lkOiB0cnVlLFxufSkuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwic3RhdHVzXCIpLFxuICBzdGF0dXM6IE1lc3NhZ2VTdGF0dXNTY2hlbWEsXG4gIHByZXZpb3VzX3N0YXR1czogTWVzc2FnZVN0YXR1c1NjaGVtYS5vcHRpb25hbCgpLFxufSk7XG4vKiogTWVzc2FnZS1zdGF0dXMgdHJhbnNpdGlvbiwgaW5jbHVkaW5nIHRoZSBwcmV2aW91cyBzdGF0dXMgd2hlbiBhdmFpbGFibGUuICovXG5leHBvcnQgdHlwZSBTdGF0dXNFdmVudCA9IHouaW5mZXI8dHlwZW9mIFN0YXR1c0V2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBBIG5ldyBhdHRhY2htZW50IHNsb3QgYXBwZWFyZWQgaW4gYG1lc3NhZ2UuYXR0YWNobWVudHNbXWAuXG4gKiBGaXJlcyBleGFjdGx5IG9uY2UgcGVyIGF0dGFjaG1lbnQgKG1hdGNoZWQgYnkgYGF0dGFjaG1lbnRfaWRgLFxuICogcG9zaXRpb25hbGx5IGZvciBhbm9ueW1vdXMgYXR0YWNobWVudHMpIHRoZSBmaXJzdCB0aW1lIHdlIHNlZVxuICogaXQuIFRoZSBzbG90J3MgcGF5bG9hZCBraW5kIGxhbmRzIGluIGBhdHRhY2htZW50X3R5cGVgIHNvIHRoZVxuICogb3V0ZXIgYHR5cGVgIGRpc2NyaW1pbmF0b3Igc3RheXMgdW5hbWJpZ3VvdXMuXG4gKi9cbmV4cG9ydCBjb25zdCBBdHRhY2htZW50RXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJhdHRhY2htZW50XCIpLFxuICBpbmRleDogei5udW1iZXIoKSxcbiAgYXR0YWNobWVudF90eXBlOiBBdHRhY2htZW50VHlwZVNjaGVtYSxcbn0pO1xuLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIG5ldyB0eXBlZCBhdHRhY2htZW50IGFwcGVhcnMgb24gdGhlIG1lc3NhZ2UuICovXG5leHBvcnQgdHlwZSBBdHRhY2htZW50RXZlbnQgPSB6LmluZmVyPHR5cGVvZiBBdHRhY2htZW50RXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIEEgbmV3IHJlYXNvbmluZyBzdGVwIGFwcGVhcmVkIG9uIGEgcXVlcnkgYXR0YWNobWVudFxuICogKGBhdHRhY2htZW50c1tpXS5xdWVyeS50aG91Z2h0c1tpXWApLiBEZWR1cGxpY2F0ZWQgcGVyXG4gKiBgKHRob3VnaHRfdHlwZSwgY29udGVudClgIHR1cGxlIHdpdGhpbiBhbiBhdHRhY2htZW50IHNvXG4gKiBzdWJzY3JpYmVycyBkb24ndCBzZWUgdGhlIHNhbWUgdGhvdWdodCBtdWx0aXBsZSB0aW1lcyAtIEdlbmllXG4gKiBzb21ldGltZXMgbXV0YXRlcyBleGlzdGluZyB0aG91Z2h0IHNsb3RzIGluIHBsYWNlLCBzbyB0aGUgZGlmZlxuICogaXMgdmFsdWUtYmFzZWQgcmF0aGVyIHRoYW4gcG9zaXRpb25hbC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRoaW5raW5nRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJ0aGlua2luZ1wiKSxcbiAgdGV4dDogei5zdHJpbmcoKSxcbiAgdGhvdWdodF90eXBlOiBHZW5pZVRob3VnaHRUeXBlU2NoZW1hLFxufSk7XG4vKiogSW5jcmVtZW50YWwgR2VuaWUgcmVhc29uaW5nIGV2ZW50IGRlcml2ZWQgZnJvbSBxdWVyeSB0aG91Z2h0cy4gKi9cbmV4cG9ydCB0eXBlIFRoaW5raW5nRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBUaGlua2luZ0V2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBBIHRleHQtYXR0YWNobWVudCBgY29udGVudGAgZmllbGQgYXBwZWFyZWQgb3IgY2hhbmdlZFxuICogKGBhdHRhY2htZW50c1tpXS50ZXh0LmNvbnRlbnRgKS4gRmlyZXMgd2hlbmV2ZXIgdGhlIHNuYXBzaG90XG4gKiB2YWx1ZSBkaWZmZXJzIGZyb20gdGhlIHByZXZpb3VzIG9uZSBmb3IgdGhlIHNhbWUgYXR0YWNobWVudC5cbiAqL1xuZXhwb3J0IGNvbnN0IFRleHRFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInRleHRcIiksXG4gIHRleHQ6IHouc3RyaW5nKCksXG59KTtcbi8qKiBOYXJyYXRpdmUgYW5zd2VyIGZyYWdtZW50IGVtaXR0ZWQgZnJvbSBhIEdlbmllIHRleHQgYXR0YWNobWVudC4gKi9cbmV4cG9ydCB0eXBlIFRleHRFdmVudCA9IHouaW5mZXI8dHlwZW9mIFRleHRFdmVudFNjaGVtYT47XG5cbi8qKlxuICogU1FMIHdhcyBmaW5hbGl6ZWQgb24gYSBxdWVyeSBhdHRhY2htZW50XG4gKiAoYGF0dGFjaG1lbnRzW2ldLnF1ZXJ5LnF1ZXJ5YCkuIEZpcmVzIG9uY2Ugd2hlbiB0aGUgU1FMIHN0cmluZ1xuICogdHJhbnNpdGlvbnMgZnJvbSB1bmRlZmluZWQgdG8gZGVmaW5lZCwgYW5kIGFnYWluIGlmIEdlbmllIGV2ZXJcbiAqIHJld3JpdGVzIGl0LiBgdGl0bGVgIGFuZCBgZGVzY3JpcHRpb25gIGFyZSBkZW5vcm1hbGlzZWQgb2ZmIHRoZVxuICogYXR0YWNobWVudCdzIGBxdWVyeS50aXRsZWAgLyBgcXVlcnkuZGVzY3JpcHRpb25gIHNvIGNvbnN1bWVyc1xuICogY2FuIGxhYmVsIHRoZSBTUUwgcGlsbCB3aXRob3V0IHJlLXdhbGtpbmcgdGhlIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBjb25zdCBRdWVyeUV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwicXVlcnlcIiksXG4gIHNxbDogei5zdHJpbmcoKSxcbiAgdGl0bGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgZGVzY3JpcHRpb246IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuLyoqIEZpbmFsaXplZCBvciByZXdyaXR0ZW4gU1FMIGVtaXR0ZWQgZm9yIGEgR2VuaWUgcXVlcnkgYXR0YWNobWVudC4gKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5RXZlbnQgPSB6LmluZmVyPHR5cGVvZiBRdWVyeUV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBTUUwgd2FzIHN1Ym1pdHRlZCB0byBhIFNRTCB3YXJlaG91c2UgYW5kIGEgc3RhdGVtZW50IGlkIHdhc1xuICogYXNzaWduZWQgKGBhdHRhY2htZW50c1tpXS5xdWVyeS5zdGF0ZW1lbnRfaWRgKS4gRmlyZXMgd2hlbiB0aGVcbiAqIHN0YXRlbWVudCBpZCB0cmFuc2l0aW9ucyBmcm9tIHVuZGVmaW5lZCB0byBkZWZpbmVkIC0gdGhpcyBpcyB0aGVcbiAqIHBvaW50IGF0IHdoaWNoIGBjbGllbnQuc3RhdGVtZW50RXhlY3V0aW9uLmdldFN0YXRlbWVudCh7IHN0YXRlbWVudF9pZCB9KWBcbiAqIGJlY29tZXMgYSB2YWxpZCBjYWxsLlxuICovXG5leHBvcnQgY29uc3QgU3RhdGVtZW50RXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJzdGF0ZW1lbnRcIiksXG4gIHN0YXRlbWVudF9pZDogei5zdHJpbmcoKSxcbn0pO1xuLyoqIEV2ZW50IGluZGljYXRpbmcgdGhhdCBhIHF1ZXJ5IHJlY2VpdmVkIGFuIGV4ZWN1dGFibGUgc3RhdGVtZW50IGlkLiAqL1xuZXhwb3J0IHR5cGUgU3RhdGVtZW50RXZlbnQgPSB6LmluZmVyPHR5cGVvZiBTdGF0ZW1lbnRFdmVudFNjaGVtYT47XG5cbi8qKlxuICogUm93IGNvdW50IGZvciBhIHF1ZXJ5IGF0dGFjaG1lbnQncyByZXN1bHQgY2hhbmdlZFxuICogKGBhdHRhY2htZW50c1tpXS5xdWVyeS5xdWVyeV9yZXN1bHRfbWV0YWRhdGEucm93X2NvdW50YCkuIEZpcmVzXG4gKiBvbiBldmVyeSBjaGFuZ2UsIGluY2x1ZGluZyB0aGUgaW5pdGlhbCBgdW5kZWZpbmVkIC0+IDBgIGFuZCB0aGVcbiAqIGxhdGVyIGAwIC0+IE5gIG9uY2UgdGhlIHdhcmVob3VzZSBmaW5pc2hlcyBleGVjdXRpb24uXG4gKi9cbmV4cG9ydCBjb25zdCBSb3dzRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJyb3dzXCIpLFxuICByb3dfY291bnQ6IHoubnVtYmVyKCksXG4gIHByZXZpb3VzX3Jvd19jb3VudDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBzdGF0ZW1lbnRfaWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuLyoqIFJvdy1jb3VudCB0cmFuc2l0aW9uIGZvciBhIEdlbmllIHF1ZXJ5IHJlc3VsdC4gKi9cbmV4cG9ydCB0eXBlIFJvd3NFdmVudCA9IHouaW5mZXI8dHlwZW9mIFJvd3NFdmVudFNjaGVtYT47XG5cbi8qKlxuICogR2VuaWUgcHJvZHVjZWQgYSBmb2xsb3ctdXAgc3VnZ2VzdGVkLXF1ZXN0aW9ucyBsaXN0XG4gKiAoYGF0dGFjaG1lbnRzW2ldLnN1Z2dlc3RlZF9xdWVzdGlvbnMucXVlc3Rpb25zW11gKS4gRmlyZXMgb25jZVxuICogd2hlbiB0aGUgbGlzdCBhcHBlYXJzLCBhbmQgYWdhaW4gaWYgR2VuaWUgcmV3cml0ZXMgaXQuXG4gKi9cbmV4cG9ydCBjb25zdCBTdWdnZXN0ZWRRdWVzdGlvbnNFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInN1Z2dlc3RlZF9xdWVzdGlvbnNcIiksXG4gIHF1ZXN0aW9uczogei5hcnJheSh6LnN0cmluZygpKSxcbn0pO1xuLyoqIEZvbGxvdy11cCBxdWVzdGlvbiBsaXN0IGVtaXR0ZWQgd2hlbiBHZW5pZSBhZGRzIG9yIHJld3JpdGVzIHN1Z2dlc3Rpb25zLiAqL1xuZXhwb3J0IHR5cGUgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBTdWdnZXN0ZWRRdWVzdGlvbnNFdmVudFNjaGVtYT47XG5cbi8qKlxuICogVGhlIGFjdGl2ZSB0dXJuIHJlYWNoZWQgYSB0ZXJtaW5hbCBzdGF0dXMuIEFsd2F5cyBmaXJlcyBvbmNlXG4gKiBwZXIgdHVybiAoaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHRlcm1pbmFsIGBtZXNzYWdlYCBldmVudCkuXG4gKiBDYXJyaWVzIHRoZSBmaW5hbCBgR2VuaWVNZXNzYWdlYCBzbmFwc2hvdCBpbmxpbmUgc28gc3Vic2NyaWJlcnNcbiAqIGRvbid0IG5lZWQgdG8ga2VlcCB0aGVpciBvd24gY29weSBvZiB0aGUgbGFzdCBtZXNzYWdlLlxuICovXG5leHBvcnQgY29uc3QgUmVzdWx0RXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5vbWl0KHtcbiAgYXR0YWNobWVudF9pZDogdHJ1ZSxcbn0pLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInJlc3VsdFwiKSxcbiAgc3RhdHVzOiBUZXJtaW5hbFN0YXR1c1NjaGVtYSxcbiAgbWVzc2FnZTogR2VuaWVNZXNzYWdlU2NoZW1hLFxufSk7XG4vKiogRmluYWwgZXZlbnQgZm9yIGEgR2VuaWUgdHVybiwgY2FycnlpbmcgaXRzIHRlcm1pbmFsIHN0YXR1cyBhbmQgbWVzc2FnZSBzbmFwc2hvdC4gKi9cbmV4cG9ydCB0eXBlIFJlc3VsdEV2ZW50ID0gei5pbmZlcjx0eXBlb2YgUmVzdWx0RXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIERpc2NyaW1pbmF0ZWQgdW5pb24geWllbGRlZCBieSBgZ2VuaWVFdmVudENoYXRgLiBFYWNoIHZhcmlhbnRcbiAqIGlzIGEgc2luZ2xlIGZsYXQgb2JqZWN0IHdpdGggYHR5cGVgIGFzIHRoZSBkaXNjcmltaW5hdG9yIGFuZFxuICogdGhlIHBheWxvYWQgZmllbGRzIGhvaXN0ZWQgZGlyZWN0bHkgdG8gdGhlIHRvcCBsZXZlbCAtIG5vXG4gKiBgcGF5bG9hZGAgd3JhcHBlci4gQ29uc3VtZXJzIG5hcnJvdyBvbiBgdHlwZWAgYW5kIHJlYWQgZmllbGRzXG4gKiBpbmxpbmU6XG4gKlxuICogQGV4YW1wbGVcbiAqIGZvciBhd2FpdCAoY29uc3QgZXZlbnQgb2YgZ2VuaWVFdmVudENoYXQoc3BhY2VJZCwgXCJUb3Agc3RvcmVzP1wiKSkge1xuICogICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAqICAgICBjYXNlIFwidGhpbmtpbmdcIjpcbiAqICAgICAgIGNvbnNvbGUubG9nKGV2ZW50LnRob3VnaHRfdHlwZSwgZXZlbnQudGV4dCk7XG4gKiAgICAgICBicmVhaztcbiAqICAgICBjYXNlIFwicmVzdWx0XCI6XG4gKiAgICAgICBjb25zb2xlLmxvZyhcImRvbmU6XCIsIGV2ZW50LnN0YXR1cyk7XG4gKiAgICAgICBicmVhaztcbiAqICAgfVxuICogfVxuICpcbiAqIFN0cmVhbSBvcmRlciBwZXIgdHVybjpcbiAqXG4gKiAgIDEuIGBxdWVzdGlvbmAsIGVtaXR0ZWQgd2l0aCB0aGUgZmlyc3QgYG1lc3NhZ2VgIHlpZWxkIChkZWZlcnJlZCBzb1xuICogICAgICB0aGUgYXNzaWduZWQgYG1lc3NhZ2VfaWRgIGlzIGF2YWlsYWJsZSksIGNhcnJ5aW5nIHRoZSBwcm9tcHRcbiAqICAgICAgdGhpcyB0dXJuIHNlbnQgdG8gR2VuaWUuXG4gKiAgIDIuIGBtZXNzYWdlYCBmb3IgZXZlcnkgcG9sbCB5aWVsZCAocmF3IGBHZW5pZU1lc3NhZ2VgIG9uXG4gKiAgICAgIGBldmVudC5tZXNzYWdlYCkuXG4gKiAgIDMuIEFueSBkZXJpdmVkIGV2ZW50cyB0aGUgc25hcHNob3QgZGlmZiBwcm9kdWNlZCAoYHN0YXR1c2AsXG4gKiAgICAgIGBhdHRhY2htZW50YCwgYHRoaW5raW5nYCwgYHRleHRgLCBgcXVlcnlgLCBgc3RhdGVtZW50YCxcbiAqICAgICAgYHJvd3NgLCBgc3VnZ2VzdGVkX3F1ZXN0aW9uc2ApIGluIHRoYXQgZml4ZWQgb3JkZXIuXG4gKiAgIDQuIE9uIHRoZSB0ZXJtaW5hbCBzbmFwc2hvdCwgYSBmaW5hbCBgcmVzdWx0YCBldmVudC5cbiAqXG4gKiBFcnJvcnMgcHJvcGFnYXRlIHZpYSB0aGUgZ2VuZXJhdG9yIHRocm93aW5nIChgdHJ5YC9gY2F0Y2hgIHRoZVxuICogYGZvciBhd2FpdGApLCBub3QgdmlhIGFuIGBlcnJvcmAgdmFyaWFudCBvbiB0aGlzIHVuaW9uLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVDaGF0RXZlbnRTY2hlbWEgPSB6LmRpc2NyaW1pbmF0ZWRVbmlvbihcInR5cGVcIiwgW1xuICBRdWVzdGlvbkV2ZW50U2NoZW1hLFxuICBNZXNzYWdlRXZlbnRTY2hlbWEsXG4gIFN0YXR1c0V2ZW50U2NoZW1hLFxuICBBdHRhY2htZW50RXZlbnRTY2hlbWEsXG4gIFRoaW5raW5nRXZlbnRTY2hlbWEsXG4gIFRleHRFdmVudFNjaGVtYSxcbiAgUXVlcnlFdmVudFNjaGVtYSxcbiAgU3RhdGVtZW50RXZlbnRTY2hlbWEsXG4gIFJvd3NFdmVudFNjaGVtYSxcbiAgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWEsXG4gIFJlc3VsdEV2ZW50U2NoZW1hLFxuXSk7XG4vKiogT3JkZXJlZCBldmVudCB1bmlvbiB5aWVsZGVkIGJ5IGBnZW5pZUV2ZW50Q2hhdGA7IGZhaWx1cmVzIGFyZSB0aHJvd24sIG5vdCBlbWl0dGVkLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVDaGF0RXZlbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZUNoYXRFdmVudFNjaGVtYT47XG5cbi8qKiBEaXNjcmltaW5hdG9yIHR5cGUgZm9yIHtAbGluayBHZW5pZUNoYXRFdmVudH0uICovXG5leHBvcnQgdHlwZSBHZW5pZUNoYXRFdmVudFR5cGUgPSBHZW5pZUNoYXRFdmVudFtcInR5cGVcIl07XG5cbi8qKlxuICogRmllbGQgc2V0IGZvciBhIGdpdmVuIHtAbGluayBHZW5pZUNoYXRFdmVudFR5cGV9IC0gdGhlIHZhcmlhbnRcbiAqIHdpdGggdGhlIGB0eXBlYCBkaXNjcmltaW5hdG9yIHN0cmlwcGVkLiBVc2VkIGJ5IGRldGVjdG9ycyBpblxuICogYGV2ZW50LnRzYCBzbyBlYWNoIGRldGVjdG9yIHJldHVybnMganVzdCB0aGUgcGF5bG9hZCBmaWVsZHMgYW5kXG4gKiB0aGUgb3JjaGVzdHJhdG9yIHN0YW1wcyBgdHlwZWAgYXQgeWllbGQgdGltZS5cbiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVDaGF0RXZlbnRGaWVsZHM8VCBleHRlbmRzIEdlbmllQ2hhdEV2ZW50VHlwZT4gPSBPbWl0PFxuICBFeHRyYWN0PEdlbmllQ2hhdEV2ZW50LCB7IHR5cGU6IFQgfT4sXG4gIFwidHlwZVwiXG4+O1xuIl19
544
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuaWUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuaWUtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NHO0FBRUgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFDeEIsT0FBTyxLQUFLLFVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxrRkFBa0Y7QUFDbEYsaUZBQWlGO0FBQ2pGLDZEQUE2RDtBQUM3RCxNQUFNLEVBQ0oscUJBQXFCLEVBQUUsd0JBQXdCLEVBQy9DLGtCQUFrQixFQUFFLHFCQUFxQixFQUN6QywwQkFBMEIsRUFBRSw2QkFBNkIsRUFDekQsZ0JBQWdCLEVBQUUsbUJBQW1CLEdBQ3RDLEdBQUcsVUFBVSxDQUFDO0FBVWYsd0ZBQXdGO0FBQ3hGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQztBQUVsRSx5RUFBeUU7QUFFekU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUM7S0FDcEMsTUFBTSxFQUFFO0tBQ1IsUUFBUSxDQUFDLGtEQUFrRCxDQUFDLENBQUM7QUFJaEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxZQUFZLEVBQUUsc0JBQXNCLENBQUMsUUFBUSxDQUFDLDhDQUE4QyxDQUFDO0lBQzdGLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLDBDQUEwQyxDQUFDO0NBQ3pFLENBQUMsQ0FBQztBQUlILDZFQUE2RTtBQUU3RTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sQ0FBQyxNQUFN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a0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLGVBQWU7SUFDZiw2QkFBNkI7SUFDN0IsaUJBQWlCO0NBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV2lyZS1mb3JtYXQgem9kIHNjaGVtYXMgKyB0eXBlcyBhbmQgaGlnaC1sZXZlbCBldmVudCB2b2NhYnVsYXJ5XG4gKiBmb3IgdGhlIEdlbmllIGNoYXQgZHJpdmVyLlxuICpcbiAqIFR3byByZWxhdGVkIGxheWVycyBsaXZlIGhlcmU6XG4gKlxuICogICAxLiBHZW5pZSB3aXJlIHNoYXBlcyBkZXJpdmVkIGZyb20gdGhpcyBwYWNrYWdlJ3Mgb3duIGdlbmVyYXRlZFxuICogICAgICBgZGFzaGJvYXJkc2Agc2NoZW1hcyAocmVnZW5lcmF0ZWQgZnJvbSB0aGUgdXBzdHJlYW1cbiAqICAgICAgYEBkYXRhYnJpY2tzL3Nkay1leHBlcmltZW50YWxgIGBhcGlzL2Rhc2hib2FyZHMvbW9kZWwuZC50c2BcbiAqICAgICAgYnkgdGhlIGVuZ2luZSdzIGNvZGVnZW4gb24gc3ludGgpLiBXZSBleHRlbmQgdGhlIFNESyBzY2hlbWFzIHdoZXJlIEdlbmllXG4gKiAgICAgIHNoaXBzIGZpZWxkcyBvbiB0aGUgd2lyZSB0aGF0IHRoZSBTREsgZG9lc24ndCBjdXJyZW50bHkgdHlwZTpcbiAqXG4gKiAgICAgICAgLSBgR2VuaWVNZXNzYWdlLmF1dG9fcmVnZW5lcmF0ZV9jb3VudDogbnVtYmVyYCAoc3RhbXBlZFxuICogICAgICAgICAgb24gZXZlcnkgd2lyZSBtZXNzYWdlLCBvbWl0dGVkIGZyb20gdGhlIFNESyBzaGFwZSkuXG4gKiAgICAgICAgLSBgR2VuaWVRdWVyeUF0dGFjaG1lbnQudGhvdWdodHM6IEdlbmllVGhvdWdodFtdYCAodGhlXG4gKiAgICAgICAgICBzdHJlYW1lZCByZWFzb25pbmcgcGF5bG9hZCB3aXRoIGBERVNDUklQVElPTmAsXG4gKiAgICAgICAgICBgREFUQV9TT1VSQ0lOR2AsIGBTVEVQU2AsIGFuZCBgVU5ERVJTVEFORElOR2AgdGhvdWdodFxuICogICAgICAgICAga2luZHMpLlxuICogICAgICAgIC0gYEdlbmllQXR0YWNobWVudC5hdHRhY2htZW50X3R5cGU6IEF0dGFjaG1lbnRUeXBlYFxuICogICAgICAgICAgKGFuIG9wdGlvbmFsIGRpc2NyaW1pbmF0b3IgbGl0ZXJhbCBzbyBjYWxsZXJzIGNhblxuICogICAgICAgICAgYHN3aXRjaCAoYXR0LmF0dGFjaG1lbnRfdHlwZSlgIGluc3RlYWQgb2YgcHJvYmluZ1xuICogICAgICAgICAgd2hpY2ggc3ViLWtleSBpcyBwb3B1bGF0ZWQ7IGNvbXB1dGUgaXQgd2l0aFxuICogICAgICAgICAge0BsaW5rIGRldGVjdEF0dGFjaG1lbnRUeXBlfSkuXG4gKlxuICogICAyLiBFdmVudCB2b2NhYnVsYXJ5IGZvciB0aGUgaGlnaC1sZXZlbCBgZ2VuaWVFdmVudENoYXRgXG4gKiAgICAgIGRyaXZlci4gRWFjaCBldmVudCBpcyBhIGZsYXQgYHoub2JqZWN0YCB3aXRoIGEgYHR5cGVgXG4gKiAgICAgIGxpdGVyYWwgZGlzY3JpbWluYXRvciBhbmQgc25ha2VfY2FzZSBwYXlsb2FkIGZpZWxkcyBob2lzdGVkXG4gKiAgICAgIHRvIHRoZSB0b3AgbGV2ZWwgKG5vIGBwYXlsb2FkYCB3cmFwcGVyKS4gRXZlbnRzIHRoYXQgc2hhcmVcbiAqICAgICAgdGhlIGF0dGFjaG1lbnQtc2NvcGVkIGxvY2F0aW9uIHVzZVxuICogICAgICB7QGxpbmsgR2VuaWVDaGF0TG9jYXRpb25TY2hlbWF9IGFzIGEgYmFzZTsgZXZlbnRzIHRoYXRcbiAqICAgICAgZG9uJ3QgY2FycnkgYW4gYGF0dGFjaG1lbnRfaWRgIChzdGF0dXMsIHJlc3VsdCkgb21pdCBpdC5cbiAqICAgICAge0BsaW5rIEdlbmllQ2hhdEV2ZW50U2NoZW1hfSBidW5kbGVzIHRoZSB2YXJpYW50cyBpbnRvIG9uZVxuICogICAgICBkaXNjcmltaW5hdGVkIHVuaW9uLlxuICpcbiAqIFB1cmUgdHlwZXM6IG5vIHJ1bnRpbWUgaW1wb3J0cyBiZXlvbmQgem9kICsgdGhlIGdlbmVyYXRlZFxuICogYGRhc2hib2FyZHNgIHNjaGVtYXMsIG5vIE5vZGUtb25seSBjb2RlLCBzYWZlIGZvciBicm93c2VyIGJ1bmRsZXMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgKiBhcyBkYXNoYm9hcmRzIGZyb20gXCIuL2Rhc2hib2FyZHMudHNcIjtcblxuLy8gVGhlIGdlbmVyYXRlZCBTREsgc2NoZW1hcyBsaXZlIGluIHRoZSBzaWJsaW5nIGAuL2Rhc2hib2FyZHMudHNgLCB3cml0dGVuIGJ5IHRoZVxuLy8gZW5naW5lJ3MgY29kZWdlbiBmcm9tIHRoZSB1cHN0cmVhbSBgLmQudHNgLiBBbGlhcyB0aGUgaGFuZGZ1bCBHZW5pZSBleHRlbmRzIHNvXG4vLyB0aGUgd2lkZW5lZCBzY2hlbWFzIGJlbG93IHJlYWQgYWdhaW5zdCBzaG9ydCwgbG9jYWwgbmFtZXMuXG5jb25zdCB7XG4gIGdlbmllQXR0YWNobWVudFNjaGVtYTogU0RLR2VuaWVBdHRhY2htZW50U2NoZW1hLFxuICBnZW5pZU1lc3NhZ2VTY2hlbWE6IFNES0dlbmllTWVzc2FnZVNjaGVtYSxcbiAgZ2VuaWVRdWVyeUF0dGFjaG1lbnRTY2hlbWE6IFNES0dlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLFxuICBnZW5pZVNwYWNlU2NoZW1hOiBTREtHZW5pZVNwYWNlU2NoZW1hLFxufSA9IGRhc2hib2FyZHM7XG5cbi8qKlxuICogVGhlIFNESydzIGBNZXNzYWdlU3RhdHVzYCB0eXBlLCByZS1leHBvcnRlZCBzbyBjb25zdW1lcnMgb2YgdGhlXG4gKiBHZW5pZSBjb250cmFjdCBnZXQgdGhlIGZ1bGwgd2lyZSB2b2NhYnVsYXJ5IGZyb20gYSBzaW5nbGUgaW1wb3J0XG4gKiBwYXRoIC0gbWlycm9ycyB0aGUgcmUtZXhwb3J0cyBvZiB0aGUgb3RoZXIgU0RLLWRlcml2ZWQgc2NoZW1hc1xuICogYmVsb3cuXG4gKi9cbmV4cG9ydCB0eXBlIE1lc3NhZ2VTdGF0dXMgPSBkYXNoYm9hcmRzLk1lc3NhZ2VTdGF0dXM7XG5cbi8qKiBSdW50aW1lIHZhbGlkYXRvciBmb3IgYSByYXcgR2VuaWUgbWVzc2FnZSBzdGF0dXMgZnJvbSB0aGUgZ2VuZXJhdGVkIFNESyBjb250cmFjdC4gKi9cbmV4cG9ydCBjb25zdCBNZXNzYWdlU3RhdHVzU2NoZW1hID0gZGFzaGJvYXJkcy5tZXNzYWdlU3RhdHVzU2NoZW1hO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB0aG91Z2h0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogR2VuaWUncyBwZXItcXVlcnkgXCJ0aG91Z2h0c1wiIHN1cmZhY2UuIFRoZXNlIGFwcGVhciBvbiB0aGVcbiAqIGAvbWVzc2FnZXMve2lkfWAgd2lyZSB1bmRlciBgYXR0YWNobWVudHNbaV0ucXVlcnkudGhvdWdodHNbXWAgYnV0XG4gKiBhcmUgbm90IHR5cGVkIG9uIHRoZSBTREsncyBgR2VuaWVRdWVyeUF0dGFjaG1lbnRgIGF0IHYwLjE3LlxuICpcbiAqIEtub3duIHRob3VnaHQgdHlwZXMgb2JzZXJ2ZWQgaW4gcHJvZHVjdGlvbiBwb2xsczpcbiAqXG4gKiAgIC0gYFRIT1VHSFRfVFlQRV9ERVNDUklQVElPTmA6IGEgb25lLXBhcmFncmFwaCByZXN0YXRlbWVudCBvZlxuICogICAgIHdoYXQgdGhlIHVzZXIgYXNrZWQuIFRoZSBmaW5hbCBgcXVlcnkuZGVzY3JpcHRpb25gIGZpZWxkIG9uXG4gKiAgICAgdGhlIGF0dGFjaG1lbnQgY2FycmllcyB0aGUgc2FtZSB0ZXh0LlxuICogICAtIGBUSE9VR0hUX1RZUEVfREFUQV9TT1VSQ0lOR2A6IG1hcmtkb3duIGJ1bGxldHMgb2YgdGhlXG4gKiAgICAgZnVsbHktcXVhbGlmaWVkIGBjYXRhbG9nLnNjaGVtYS50YWJsZWAgc291cmNlcyBHZW5pZSBjaG9zZS5cbiAqICAgLSBgVEhPVUdIVF9UWVBFX1NURVBTYDogdGhlIGhpZ2gtbGV2ZWwgcGxhbiBHZW5pZSB3cm90ZSBiZWZvcmVcbiAqICAgICBydW5uaW5nIFNRTCAob25lIGJ1bGxldCBwZXIgc3RlcCkuXG4gKiAgIC0gYFRIT1VHSFRfVFlQRV9VTkRFUlNUQU5ESU5HYDogYW1iaWd1aXR5IC8gaW50ZXJwcmV0YXRpb25cbiAqICAgICBub3RlcyAoZS5nLiBcIidyZXZlbnVlJyBjb3VsZCBiZSBpbnRlcnByZXRlZCBhcyBncm9zcyxcbiAqICAgICBuZXQsIG9yIHJlY29nbml6ZWQgcmV2ZW51ZS4uLlwiKS5cbiAqXG4gKiBPcGVuIGF0IHRoZSB0eXBlIGxldmVsIChgfCAoc3RyaW5nICYge30pYCkgc28gYSBuZXcgc2VydmVyLXNpZGVcbiAqIHRob3VnaHQgdHlwZSBkb2Vzbid0IGJyZWFrIGNvbXBpbGF0aW9uOyB0aGUgZm91ciBrbm93biB0eXBlc1xuICogc3RpbGwgbmFycm93IGNvcnJlY3RseSB1bmRlciBgc3dpdGNoYC5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllVGhvdWdodFR5cGVTY2hlbWEgPSB6XG4gIC5zdHJpbmcoKVxuICAuZGVzY3JpYmUoXCJGb3J3YXJkLWNvbXBhdGlibGUgR2VuaWUgcmVhc29uaW5nIHRob3VnaHQgdHlwZS5cIik7XG5cbmV4cG9ydCB0eXBlIEdlbmllVGhvdWdodFR5cGUgPSB6LmluZmVyPHR5cGVvZiBHZW5pZVRob3VnaHRUeXBlU2NoZW1hPjtcblxuLyoqXG4gKiBPbmUgcmVhc29uaW5nIHN0ZXAgb24gYSBxdWVyeSBhdHRhY2htZW50LiBTZWVcbiAqIHtAbGluayBHZW5pZVRob3VnaHRUeXBlfSBmb3IgdGhlIGtub3duIGB0aG91Z2h0X3R5cGVgIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllVGhvdWdodFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgdGhvdWdodF90eXBlOiBHZW5pZVRob3VnaHRUeXBlU2NoZW1hLmRlc2NyaWJlKFwiS2luZCBvZiByZWFzb25pbmcgcmVwcmVzZW50ZWQgYnkgdGhpcyBlbnRyeS5cIiksXG4gIGNvbnRlbnQ6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJSZWFzb25pbmcgdGV4dCBlbWl0dGVkIGZvciB0aGlzIHRob3VnaHQuXCIpLFxufSk7XG4vKiogT25lIHR5cGVkIHJlYXNvbmluZyBlbnRyeSBhdHRhY2hlZCB0byBhIEdlbmllIHF1ZXJ5LiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVUaG91Z2h0ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVUaG91Z2h0U2NoZW1hPjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gYXR0YWNobWVudCBkaXNjcmltaW5hdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBEaXNjcmltaW5hdG9yIGZvciB3aGF0J3MgaW5zaWRlIGEgYEdlbmllQXR0YWNobWVudGAuIEdlbmllIG9ubHlcbiAqIGV2ZXIgcG9wdWxhdGVzIG9uZSBvZiBgcXVlcnlgIC8gYHRleHRgIC8gYHN1Z2dlc3RlZF9xdWVzdGlvbnNgXG4gKiBwZXIgYXR0YWNobWVudC4gT3BlbiB2aWEgYChzdHJpbmcgJiB7fSlgIHNvIGEgbmV3IHNlcnZlci1zaWRlXG4gKiB0eXBlIGRvZXNuJ3QgYnJlYWsgY29tcGlsYXRpb247IHRoZSB0aHJlZSBrbm93biB0eXBlcyBzdGlsbFxuICogbmFycm93IGNvcnJlY3RseSB1bmRlciBgc3dpdGNoYC5cbiAqXG4gKiBMaWZ0ZWQgaW50byB0aGUgc2NoZW1hIGFzIHRoZSBvcHRpb25hbFxuICoge0BsaW5rIEdlbmllQXR0YWNobWVudFNjaGVtYX0uYGF0dGFjaG1lbnRfdHlwZWAgZmllbGQgKGNvbXB1dGVcbiAqIGl0IHdpdGgge0BsaW5rIGRldGVjdEF0dGFjaG1lbnRUeXBlfSkgc28gY29uc3VtZXJzIGNhbiBicmFuY2hcbiAqIG9uIGEgbGl0ZXJhbCBpbnN0ZWFkIG9mIHByb2Jpbmcgd2hpY2ggc3ViLW9iamVjdCBrZXkgaXNcbiAqIHByZXNlbnQuIEFsc28gc3VyZmFjZWQgb24ge0BsaW5rIEF0dGFjaG1lbnRFdmVudH0ncyBwYXlsb2FkIGFzXG4gKiBgYXR0YWNobWVudF90eXBlYCAodnMgYSBiYXJlIGB0eXBlYCkgdG8ga2VlcCB0aGUgZmllbGQgY2xlYXIgb2ZcbiAqIHRoZSBldmVudC11bmlvbiBkaXNjcmltaW5hdG9yIGtleS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFUVEFDSE1FTlRfVFlQRVMgPSBbXG4gIFwicXVlcnlcIixcbiAgXCJ0ZXh0XCIsXG4gIFwic3VnZ2VzdGVkX3F1ZXN0aW9uc1wiLFxuICBcInZpelwiLFxuXSBhcyBjb25zdCBzYXRpc2ZpZXMgcmVhZG9ubHkgc3RyaW5nW107XG5cbmV4cG9ydCBjb25zdCBLbm93bkF0dGFjaG1lbnRUeXBlU2NoZW1hID0gelxuICAuZW51bShBVFRBQ0hNRU5UX1RZUEVTKVxuICAuZGVzY3JpYmUoXCJBdHRhY2htZW50IGRpc2NyaW1pbmF0b3IgdmFsdWVzIHVuZGVyc3Rvb2QgYnkgdGhpcyBwYWNrYWdlIHZlcnNpb24uXCIpO1xuXG5leHBvcnQgdHlwZSBLbm93bkF0dGFjaG1lbnRUeXBlID0gei5pbmZlcjx0eXBlb2YgS25vd25BdHRhY2htZW50VHlwZVNjaGVtYT47XG5cbmV4cG9ydCBjb25zdCBBdHRhY2htZW50VHlwZVNjaGVtYSA9IHpcbiAgLnN0cmluZygpXG4gIC5kZXNjcmliZShcIkZvcndhcmQtY29tcGF0aWJsZSBHZW5pZSBhdHRhY2htZW50IGRpc2NyaW1pbmF0b3IuXCIpO1xuXG5leHBvcnQgdHlwZSBBdHRhY2htZW50VHlwZSA9IHouaW5mZXI8dHlwZW9mIEF0dGFjaG1lbnRUeXBlU2NoZW1hPjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLSB3aWRlbmVkIHdpcmUgc2NoZW1hcyArIHR5cGVzIC0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIGBHZW5pZVF1ZXJ5QXR0YWNobWVudGAgd2lkZW5lZCB3aXRoIHRoZSBgdGhvdWdodHNbXWAgZmllbGQgdGhlXG4gKiBHZW5pZSB3aXJlIGV4cG9zZXMgYnV0IHRoZSBTREsgZG9lc24ndCBjdXJyZW50bHkgdHlwZS4gRXZlcnlcbiAqIG90aGVyIGZpZWxkIChgZGVzY3JpcHRpb25gLCBgcXVlcnlgLCBgc3RhdGVtZW50X2lkYCxcbiAqIGBxdWVyeV9yZXN1bHRfbWV0YWRhdGFgLCBgdGl0bGVgLCBgcGFyYW1ldGVyc2AsXG4gKiBgbGFzdF91cGRhdGVkX3RpbWVzdGFtcGAsIGBpZGApIGZsb3dzIHRocm91Z2ggdmVyYmF0aW0gZnJvbVxuICogdGhlIFNESyBzY2hlbWEuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVF1ZXJ5QXR0YWNobWVudFNjaGVtYSA9IFNES0dlbmllUXVlcnlBdHRhY2htZW50U2NoZW1hLmV4dGVuZCh7XG4gIHRob3VnaHRzOiB6LmFycmF5KEdlbmllVGhvdWdodFNjaGVtYSkub3B0aW9uYWwoKSxcbn0pO1xuLyoqIFF1ZXJ5IGF0dGFjaG1lbnQgd2lkZW5lZCB3aXRoIEdlbmllJ3Mgc3RyZWFtZWQgcmVhc29uaW5nIHRob3VnaHRzLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVRdWVyeUF0dGFjaG1lbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZVF1ZXJ5QXR0YWNobWVudFNjaGVtYT47XG5cbi8qKlxuICogUHVycG9zZSBhdHRhY2hlZCB0byBhIEdlbmllIHRleHQgcmVzcG9uc2UuXG4gKlxuICogVGhlIGdlbmVyYXRlZCBEYXRhYnJpY2tzIFNESyBzY2hlbWEgY3VycmVudGx5IGtub3dzIG9ubHlcbiAqIGBGT0xMT1dfVVBfUVVFU1RJT05gLCB3aGlsZSB0aGUgbGl2ZSBHZW5pZSBBUEkgYWxzbyBlbWl0c1xuICogYFRFWFRfQVRUQUNITUVOVF9QVVJQT1NFX0FOU1dFUmAgZm9yIHRoZSBwcmltYXJ5IGFuc3dlciB0ZXh0LiBLZWVwIHRoZVxuICoga25vd24gdmFsdWVzIGRpc2NvdmVyYWJsZSBhbmQgYWNjZXB0IGZ1dHVyZSBzdHJpbmcgdmFsdWVzIHNvIGFuIGFkZGl0aXZlXG4gKiBzZXJ2ZXItc2lkZSBlbnVtIGNoYW5nZSBjYW5ub3QgaW52YWxpZGF0ZSBhbiBvdGhlcndpc2UgY29tcGxldGUgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllVGV4dEF0dGFjaG1lbnRQdXJwb3NlU2NoZW1hID0gelxuICAuc3RyaW5nKClcbiAgLmRlc2NyaWJlKFwiRm9yd2FyZC1jb21wYXRpYmxlIHNlbWFudGljIHB1cnBvc2UgZm9yIGEgR2VuaWUgdGV4dCBhdHRhY2htZW50LlwiKTtcblxuZXhwb3J0IHR5cGUgR2VuaWVUZXh0QXR0YWNobWVudFB1cnBvc2UgPSB6LmluZmVyPHR5cGVvZiBHZW5pZVRleHRBdHRhY2htZW50UHVycG9zZVNjaGVtYT47XG5cbi8qKlxuICogVGV4dCBhdHRhY2htZW50IHdpZGVuZWQgZm9yIGZvcndhcmQtY29tcGF0aWJsZSBwdXJwb3NlIHZhbHVlcyBhbmQgb3B0aW9uYWxcbiAqIEFnZW50IE1vZGUgdGFibGUgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVRleHRBdHRhY2htZW50U2NoZW1hID0gZGFzaGJvYXJkcy50ZXh0QXR0YWNobWVudFNjaGVtYS5leHRlbmQoe1xuICBwdXJwb3NlOiBHZW5pZVRleHRBdHRhY2htZW50UHVycG9zZVNjaGVtYS5vcHRpb25hbCgpLFxuICBtZXRhZGF0YTogei51bmtub3duKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIkFnZW50IE1vZGUgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhpcyB0ZXh0IHJlc3BvbnNlLlwiKSxcbn0pO1xuLyoqIE5hcnJhdGl2ZSB0ZXh0IGF0dGFjaG1lbnQsIGluY2x1ZGluZyBpdHMgb3B0aW9uYWwgc2VtYW50aWMgcHVycG9zZS4gKi9cbmV4cG9ydCB0eXBlIEdlbmllVGV4dEF0dGFjaG1lbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZVRleHRBdHRhY2htZW50U2NoZW1hPjtcblxuLyoqXG4gKiBWaXN1YWxpemF0aW9uIEdlbmllIHJlcXVlc3RlZCBmb3Igb25lIG9mIGl0cyBxdWVyeSByZXN1bHRzLiBHZW5pZSBzdG9yZXMgb25seVxuICogdGhlIHRpdGxlIGFuZCB0aGUgcXVlcnkgYXR0YWNobWVudCBpdCBjaGFydHM7IHRoZSBjbGllbnQgZHJhd3MgdGhlIGNoYXJ0IGZyb21cbiAqIHRoYXQgcXVlcnkncyBzdGF0ZW1lbnQgcm93cy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllVml6QXR0YWNobWVudFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgdGl0bGU6IHouc3RyaW5nKCkub3B0aW9uYWwoKS5kZXNjcmliZShcIkRpc3BsYXkgdGl0bGUgR2VuaWUgY2hvc2UgZm9yIHRoZSBjaGFydC5cIiksXG4gICAgcXVlcnlfYXR0YWNobWVudF9pZDogelxuICAgICAgLnN0cmluZygpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFwiYGF0dGFjaG1lbnRfaWRgIG9mIHRoZSBxdWVyeSBhdHRhY2htZW50IHdob3NlIHJvd3MgdGhlIGNoYXJ0IHBsb3RzLlwiKSxcbiAgfSlcbiAgLmRlc2NyaWJlKFwiR2VuaWUgdmlzdWFsaXphdGlvbiByZXF1ZXN0IG92ZXIgb25lIHF1ZXJ5IGF0dGFjaG1lbnQuXCIpO1xuLyoqIEdlbmllIHZpc3VhbGl6YXRpb24gcmVxdWVzdCBvdmVyIG9uZSBxdWVyeSBhdHRhY2htZW50LiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVWaXpBdHRhY2htZW50ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVWaXpBdHRhY2htZW50U2NoZW1hPjtcblxuLyoqXG4gKiBgR2VuaWVBdHRhY2htZW50YCB3aXRoOlxuICpcbiAqICAgLSBgcXVlcnlgIHJlLXR5cGVkIHRvIHRoZSB0aG91Z2h0cy1hd2FyZVxuICogICAgIHtAbGluayBHZW5pZVF1ZXJ5QXR0YWNobWVudFNjaGVtYX0uXG4gKiAgIC0gYGF0dGFjaG1lbnRfdHlwZWAgZGlzY3JpbWluYXRvciBsaXRlcmFsXG4gKiAgICAgKHtAbGluayBBdHRhY2htZW50VHlwZX0pIHNvIGNvbnN1bWVycyBjYW4gYHN3aXRjaFxuICogICAgIChhdHQuYXR0YWNobWVudF90eXBlKWAgdG8gbmFycm93IHdoaWNoIHN1Yi1vYmplY3QgaXNcbiAqICAgICBwb3B1bGF0ZWQuIE9wdGlvbmFsIG9uIHRoZSB3aXJlIChHZW5pZSBkb2Vzbid0IHNlbmQgaXQpO1xuICogICAgIGNhbGxlcnMgY29tcHV0ZSBpdCB3aXRoIHtAbGluayBkZXRlY3RBdHRhY2htZW50VHlwZX0gd2hlblxuICogICAgIHRoZXkgd2FudCB0aGUgbGl0ZXJhbCB1cC1mcm9udC5cbiAqXG4gKiBgdGV4dGAgaXMgcmUtdHlwZWQgdG8gdGhlIGZvcndhcmQtY29tcGF0aWJsZVxuICoge0BsaW5rIEdlbmllVGV4dEF0dGFjaG1lbnRTY2hlbWF9LiBgYXR0YWNobWVudF9pZGAgYW5kXG4gKiBgc3VnZ2VzdGVkX3F1ZXN0aW9uc2AgcGFzcyB0aHJvdWdoIHVuY2hhbmdlZC4gYGF0dGFjaG1lbnRfaWRgIGlzIGdlbnVpbmVseVxuICogb3B0aW9uYWwgb24gdGhlIHdpcmU6XG4gKiB0aGUgZmlyc3QgdGV4dCBhdHRhY2htZW50IEdlbmllIGVtaXRzIHBlciB0dXJuICh0aGUgXCJtYWluXG4gKiBhbnN3ZXIgdGV4dFwiKSBhcnJpdmVzIHdpdGggbm8gaWQsIG9ubHkgdGhlIGZvbGxvdy11cCB0ZXh0XG4gKiBhdHRhY2htZW50IGdldHMgb25lLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVBdHRhY2htZW50U2NoZW1hID0gU0RLR2VuaWVBdHRhY2htZW50U2NoZW1hLmV4dGVuZCh7XG4gIHF1ZXJ5OiBHZW5pZVF1ZXJ5QXR0YWNobWVudFNjaGVtYS5vcHRpb25hbCgpLFxuICB0ZXh0OiBHZW5pZVRleHRBdHRhY2htZW50U2NoZW1hLm9wdGlvbmFsKCksXG4gIHZpejogR2VuaWVWaXpBdHRhY2htZW50U2NoZW1hLm9wdGlvbmFsKCksXG4gIGF0dGFjaG1lbnRfdHlwZTogQXR0YWNobWVudFR5cGVTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuLyoqIEdlbmllIG1lc3NhZ2UgYXR0YWNobWVudCB3aXRoIGFuIG9wdGlvbmFsIGNvbXB1dGVkIGRpc2NyaW1pbmF0b3IuICovXG5leHBvcnQgdHlwZSBHZW5pZUF0dGFjaG1lbnQgPSB6LmluZmVyPHR5cGVvZiBHZW5pZUF0dGFjaG1lbnRTY2hlbWE+O1xuXG4vKipcbiAqIGBHZW5pZU1lc3NhZ2VgIHdpZGVuZWQgd2l0aDpcbiAqXG4gKiAgIC0gYGF1dG9fcmVnZW5lcmF0ZV9jb3VudGA6IG51bWJlciBzdGFtcGVkIG9uIGV2ZXJ5IHdpcmVcbiAqICAgICBtZXNzYWdlIHRoYXQgdGhlIFNESyB0eXBlIG9taXRzIGF0IHYwLjE3LlxuICogICAtIGBhdHRhY2htZW50c2A6IHJlLXR5cGVkIHRvIHRoZSBsb2NhbFxuICogICAgIHtAbGluayBHZW5pZUF0dGFjaG1lbnRTY2hlbWF9IHNvXG4gKiAgICAgYGF0dGFjaG1lbnQucXVlcnk/LnRob3VnaHRzYCAoYW5kIHRoZVxuICogICAgIGBhdHRhY2htZW50X3R5cGVgIGRpc2NyaW1pbmF0b3IpIGlzIHJlYWNoYWJsZSB3aXRob3V0IGFcbiAqICAgICBjYXN0LlxuICpcbiAqIEV2ZXJ5IG90aGVyIGZpZWxkIChgaWRgLCBgc3BhY2VfaWRgLCBgY29udmVyc2F0aW9uX2lkYCxcbiAqIGB1c2VyX2lkYCwgYGNyZWF0ZWRfdGltZXN0YW1wYCwgYGxhc3RfdXBkYXRlZF90aW1lc3RhbXBgLFxuICogYHN0YXR1c2AsIGBjb250ZW50YCwgYG1lc3NhZ2VfaWRgLCBgcXVlcnlfcmVzdWx0YCwgYGVycm9yYCxcbiAqIGBmZWVkYmFja2ApIHBhc3NlcyB0aHJvdWdoIGZyb20gdGhlIFNESyBzY2hlbWEuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZU1lc3NhZ2VTY2hlbWEgPSBTREtHZW5pZU1lc3NhZ2VTY2hlbWEuZXh0ZW5kKHtcbiAgYXR0YWNobWVudHM6IHouYXJyYXkoR2VuaWVBdHRhY2htZW50U2NoZW1hKS5vcHRpb25hbCgpLFxuICBhdXRvX3JlZ2VuZXJhdGVfY291bnQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbn0pO1xuLyoqIEdlbmllIG1lc3NhZ2Ugc25hcHNob3Qgd2lkZW5lZCB3aXRoIHR5cGVkIGF0dGFjaG1lbnRzIGFuZCByZWdlbmVyYXRpb24gY291bnQuICovXG5leHBvcnQgdHlwZSBHZW5pZU1lc3NhZ2UgPSB6LmluZmVyPHR5cGVvZiBHZW5pZU1lc3NhZ2VTY2hlbWE+O1xuXG4vKipcbiAqIERvbWFpbiBwcm9qZWN0aW9uIG9mIHtAbGluayBHZW5pZU1lc3NhZ2VTY2hlbWF9IHRoYXQgZHJvcHMgZXZlcnlcbiAqIHR1cm4tbGV2ZWwgZmllbGQgKGBpZGAsIGBzdGF0dXNgLCBgY3JlYXRlZF90aW1lc3RhbXBgLFxuICogYHF1ZXJ5X3Jlc3VsdGAsIC4uLikgYW5kIHlpZWxkcyBqdXN0IHRoZSByZXNwb25zZSBwYXlsb2FkIGFzIGFcbiAqIGZsYXQgYEdlbmllQXR0YWNobWVudFtdYC4gUGFyc2VzIHRoZSBzYW1lIHdpcmUgc2hhcGUgYXNcbiAqIHtAbGluayBHZW5pZU1lc3NhZ2VTY2hlbWF9OyBtaXNzaW5nIGBhdHRhY2htZW50c2AgZGVmYXVsdHMgdG9cbiAqIGBbXWAgc28gdGhlIG91dHB1dCBpcyBhbHdheXMgYW4gYXJyYXkuXG4gKlxuICogVXNlIHdoZW4gY29uc3VtZXJzIG9ubHkgY2FyZSBhYm91dCB0aGUgbW9kZWwncyByZXNwb25zZVxuICogYXR0YWNobWVudHMgYW5kIG5vdCB0aGUgc3Vycm91bmRpbmcgbWVzc2FnZSBlbnZlbG9wZS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllUmVzcG9uc2VTY2hlbWEgPSBHZW5pZU1lc3NhZ2VTY2hlbWEudHJhbnNmb3JtKChtKSA9PiBtLmF0dGFjaG1lbnRzID8/IFtdKTtcbi8qKiBOb3JtYWxpemVkIGF0dGFjaG1lbnQgYXJyYXkgZXh0cmFjdGVkIGZyb20gYSBHZW5pZSBtZXNzYWdlIHJlc3BvbnNlLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVSZXNwb25zZSA9IHouaW5mZXI8dHlwZW9mIEdlbmllUmVzcG9uc2VTY2hlbWE+O1xuXG4vKipcbiAqIGBHZW5pZVNwYWNlYCB3aWRlbmVkIHdpdGggYW4gb3B0aW9uYWwgYHNlcmlhbGl6ZWRfc3BhY2VgIGZpZWxkXG4gKiBjYXJyeWluZyBhIEpTT04tc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzcGFjZSdzIGZ1bGxcbiAqIGRlZmluaXRpb24gKGNhdGFsb2dzLCBzY2hlbWFzLCB0YWJsZXMsIHNhbXBsZSBxdWVzdGlvbnMsIHByb21wdHMsXG4gKiBldGMuKSBhcyBleHBvcnRlZCBieSB0aGUgd29ya3NwYWNlIGV4cG9ydCBlbmRwb2ludC5cbiAqXG4gKiBUaGUgYmFzZSBTREsgc2hhcGUgKGBkZXNjcmlwdGlvbmAsIGBzcGFjZV9pZGAsIGB0aXRsZWAsXG4gKiBgd2FyZWhvdXNlX2lkYCkgY292ZXJzIHRoZSBkaXJlY3RvcnktbGlzdGluZyBzdXJmYWNlIC0gZW5vdWdoIHRvXG4gKiByb3V0ZSBhIGNoYXQuIGBzZXJpYWxpemVkX3NwYWNlYCBpcyBvcHQtaW4gc28gY2FsbGVycyB0aGF0IG5lZWRcbiAqIHRoZSBmdWxsIHNwYWNlIHNjaGVtYSAoZS5nLiB0byBzZWVkIGEgc3lzdGVtIHByb21wdCBvciB0byBzaGlwXG4gKiB0aGUgZGVmaW5pdGlvbiB0byBhbiBhZ2VudCkgY2FuIGF0dGFjaCBpdCB3aXRob3V0IGEgc2Vjb25kIHR5cGUuXG4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZVNwYWNlU2NoZW1hID0gU0RLR2VuaWVTcGFjZVNjaGVtYS5leHRlbmQoe1xuICBzZXJpYWxpemVkX3NwYWNlOiB6XG4gICAgLnN0cmluZygpXG4gICAgLm9wdGlvbmFsKClcbiAgICAuZGVzY3JpYmUoXG4gICAgICBcIlRoZSBjb250ZW50cyBvZiB0aGUgR2VuaWUgU3BhY2UgaW4gc2VyaWFsaXplZCBzdHJpbmcgZm9ybS4gVGhpcyBmaWVsZCBpcyBleGNsdWRlZCBpbiBMaXN0IEdlbmllIHNwYWNlcyByZXNwb25zZXMuIFRoaXMgZmllbGQgcHJvdmlkZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgSlNPTiBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRoZSBzcGFjZSdzIGxheW91dCBhbmQgY29tcG9uZW50cy5cIixcbiAgICApLFxufSk7XG4vKiogR2VuaWUgc3BhY2UgbWV0YWRhdGEgd2l0aCB0aGUgaWRlbnRpZmllcnMgcmVxdWlyZWQgYnkgY2hhdCBjb25zdW1lcnMuICovXG5leHBvcnQgdHlwZSBHZW5pZVNwYWNlID0gei5pbmZlcjx0eXBlb2YgR2VuaWVTcGFjZVNjaGVtYT47XG5cbi8qKiBSZXF1ZXN0IGFjY2VwdGVkIGJ5IHRoZSBHQSBHZW5pZSBzcGFjZSBjcmVhdGUgZW5kcG9pbnQuICovXG5leHBvcnQgY29uc3QgQ3JlYXRlR2VuaWVTcGFjZVJlcXVlc3RTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHdhcmVob3VzZV9pZDogei5zdHJpbmcoKS50cmltKCkubWluKDEpLmRlc2NyaWJlKFwiQXNzb2NpYXRlZCBTUUwgd2FyZWhvdXNlIElELlwiKSxcbiAgICBzZXJpYWxpemVkX3NwYWNlOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkuZGVzY3JpYmUoXCJTZXJpYWxpemVkIEdlbmllIHNwYWNlIGRlZmluaXRpb24uXCIpLFxuICAgIHRpdGxlOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkub3B0aW9uYWwoKS5kZXNjcmliZShcIkdlbmllIHNwYWNlIHRpdGxlLlwiKSxcbiAgICBkZXNjcmlwdGlvbjogei5zdHJpbmcoKS50cmltKCkubWluKDEpLm9wdGlvbmFsKCkuZGVzY3JpYmUoXCJHZW5pZSBzcGFjZSBkZXNjcmlwdGlvbi5cIiksXG4gICAgcGFyZW50X3BhdGg6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiUGFyZW50IHdvcmtzcGFjZSBmb2xkZXIuXCIpLFxuICB9KVxuICAuc3RyaWN0KClcbiAgLmRlc2NyaWJlKFwiR0EgR2VuaWUgc3BhY2UgY3JlYXRpb24gcmVxdWVzdC5cIik7XG5cbi8qKiBHQSBHZW5pZSBzcGFjZSBjcmVhdGlvbiByZXF1ZXN0LiAqL1xuZXhwb3J0IHR5cGUgQ3JlYXRlR2VuaWVTcGFjZVJlcXVlc3QgPSB6LmluZmVyPHR5cGVvZiBDcmVhdGVHZW5pZVNwYWNlUmVxdWVzdFNjaGVtYT47XG5cbi8qKiBGZWVkYmFjayByZXF1ZXN0IGFjY2VwdGVkIGJ5IEdlbmllIGNoYXQtbW9kZSBhbmQgYWdlbnQtbW9kZSBtZXNzYWdlcy4gKi9cbmV4cG9ydCBjb25zdCBHZW5pZU1lc3NhZ2VGZWVkYmFja1JlcXVlc3RTY2hlbWEgPSB6XG4gIC5vYmplY3Qoe1xuICAgIHNwYWNlX2lkOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkuZGVzY3JpYmUoXCJHZW5pZSBzcGFjZSBJRC5cIiksXG4gICAgY29udmVyc2F0aW9uX2lkOiB6LnN0cmluZygpLnRyaW0oKS5taW4oMSkuZGVzY3JpYmUoXCJHZW5pZSBjb252ZXJzYXRpb24gSUQuXCIpLFxuICAgIG1lc3NhZ2VfaWQ6IHouc3RyaW5nKCkudHJpbSgpLm1pbigxKS5kZXNjcmliZShcIkdlbmllIG1lc3NhZ2UgSUQuXCIpLFxuICAgIHJhdGluZzogei5lbnVtKFtcIlBPU0lUSVZFXCIsIFwiTkVHQVRJVkVcIiwgXCJOT05FXCJdKS5kZXNjcmliZShcIkdlbmllIGZlZWRiYWNrIHJhdGluZy5cIiksXG4gICAgY29tbWVudDogei5zdHJpbmcoKS50cmltKCkubWF4KDVfMDAwKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiT3B0aW9uYWwgR2VuaWUgZmVlZGJhY2sgY29tbWVudC5cIiksXG4gIH0pXG4gIC5zdHJpY3QoKVxuICAuZGVzY3JpYmUoXCJGZWVkYmFjayBhdHRhY2hlZCB0byBvbmUgR2VuaWUgY29udmVyc2F0aW9uIG1lc3NhZ2UuXCIpO1xuXG4vKiogRmVlZGJhY2sgYXR0YWNoZWQgdG8gb25lIEdlbmllIGNvbnZlcnNhdGlvbiBtZXNzYWdlLiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVNZXNzYWdlRmVlZGJhY2tSZXF1ZXN0ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVNZXNzYWdlRmVlZGJhY2tSZXF1ZXN0U2NoZW1hPjtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHRlcm1pbmFsIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIFRlcm1pbmFsIEdlbmllIG1lc3NhZ2Ugc3RhdHVzZXMuIFRoZSBwb2xsaW5nIGxvb3AgaW4gdGhlIGNoYXRcbiAqIGRyaXZlciBzdG9wcyBhcyBzb29uIGFzIHRoZSBsYXRlc3QgbWVzc2FnZSBoYXMgb25lIG9mIHRoZXNlXG4gKiBzdGF0dXNlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFRFUk1JTkFMX1NUQVRVU0VTID0gW1wiQ09NUExFVEVEXCIsIFwiRkFJTEVEXCIsIFwiQ0FOQ0VMTEVEXCJdIGFzIGNvbnN0O1xuXG5leHBvcnQgY29uc3QgVGVybWluYWxTdGF0dXNTY2hlbWEgPSB6XG4gIC5lbnVtKFRFUk1JTkFMX1NUQVRVU0VTKVxuICAuZGVzY3JpYmUoXCJNZXNzYWdlIHN0YXR1cyB0aGF0IGVuZHMgYSBHZW5pZSB0dXJuIGFuZCBwcm9kdWNlcyBhIGZpbmFsIHJlc3VsdCBldmVudC5cIik7XG5cbmV4cG9ydCB0eXBlIFRlcm1pbmFsU3RhdHVzID0gei5pbmZlcjx0eXBlb2YgVGVybWluYWxTdGF0dXNTY2hlbWE+O1xuXG4vKiogTmFycm93IGBNZXNzYWdlU3RhdHVzIHwgdW5kZWZpbmVkYCB0byBhIHtAbGluayBUZXJtaW5hbFN0YXR1c30uICovXG5leHBvcnQgZnVuY3Rpb24gaXNUZXJtaW5hbFN0YXR1cyhzOiBNZXNzYWdlU3RhdHVzIHwgdW5kZWZpbmVkKTogcyBpcyBUZXJtaW5hbFN0YXR1cyB7XG4gIHJldHVybiBzICE9PSB1bmRlZmluZWQgJiYgKFRFUk1JTkFMX1NUQVRVU0VTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhzKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgcmF3IEdlbmllIHdpcmUgc3RhdHVzIChgRkVUQ0hJTkdfTUVUQURBVEFgLFxuICogYEFTS0lOR19BSWAsIGBFWEVDVVRJTkdfUVVFUllgLCAuLi4pIGludG8gYSBzaG9ydCwgc2VudGVuY2UtY2FzZWRcbiAqIGxhYmVsIHNhZmUgdG8gZHJvcCBpbnRvIGEgVUkgcGlsbC4gS25vd24gc3RhdGVzIGdldCBhIGN1cmF0ZWRcbiAqIGxhYmVsOyB1bmtub3duIHN0YXRlcyBmYWxsIGJhY2sgdG8gYHN0cmluZ1V0aWxzLnRva2VuaXplV2l0aE9wdGlvbnNgXG4gKiBzbyBuZXcgc3RhdGVzIHN0aWxsIHJlbmRlciBjbGVhbmx5IHdpdGhvdXQgY29kZSBjaGFuZ2VzLlxuICpcbiAqIFB1cmUgKG5vIE5vZGUtb25seSBkZXBzKSwgc2FmZSBmb3IgYnJvd3NlciBidW5kbGVzLiBCb3RoIHRoZVxuICogR2VuaWUgYWdlbnQgKHNlcnZlcikgYW5kIGFueSBVSSB0aGF0IHN1YnNjcmliZXMgdG8gc3RhdHVzIGV2ZW50c1xuICogY2FsbCB0aGlzIHNvIGxhYmVscyBzdGF5IGluIGxvY2stc3RlcCBhY3Jvc3MgdGhlIHdpcmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBodW1hbml6ZVN0YXR1cyhzdGF0dXM6IE1lc3NhZ2VTdGF0dXMpOiBzdHJpbmcge1xuICBzd2l0Y2ggKHN0YXR1cykge1xuICAgIGNhc2UgXCJGRVRDSElOR19NRVRBREFUQVwiOlxuICAgICAgcmV0dXJuIFwiRmV0Y2hpbmcgbWV0YWRhdGFcIjtcbiAgICBjYXNlIFwiQVNLSU5HX0FJXCI6XG4gICAgICByZXR1cm4gXCJBc2tpbmcgR2VuaWVcIjtcbiAgICBjYXNlIFwiRVhFQ1VUSU5HX1FVRVJZXCI6XG4gICAgICByZXR1cm4gXCJSdW5uaW5nIFNRTCBxdWVyeVwiO1xuICAgIGNhc2UgXCJGSUxURVJJTkdfQ09OVEVYVFwiOlxuICAgICAgcmV0dXJuIFwiRmlsdGVyaW5nIGNvbnRleHRcIjtcbiAgICBjYXNlIFwiUEVORElOR19XQVJFSE9VU0VcIjpcbiAgICAgIHJldHVybiBcIldhaXRpbmcgZm9yIHdhcmVob3VzZVwiO1xuICAgIGNhc2UgXCJDT01QTEVURURcIjpcbiAgICAgIHJldHVybiBcIkNvbXBsZXRlZFwiO1xuICAgIGNhc2UgXCJGQUlMRURcIjpcbiAgICAgIHJldHVybiBcIkZhaWxlZFwiO1xuICAgIGNhc2UgXCJDQU5DRUxMRURcIjpcbiAgICAgIHJldHVybiBcIkNhbmNlbGxlZFwiO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5zdHJpbmdVdGlscy50b2tlbml6ZVdpdGhPcHRpb25zKHsgY2FwaXRhbGl6ZTogdHJ1ZSwgbG93ZXJDYXNlOiB0cnVlIH0sIHN0YXR1cyksXG4gICAgICBdLmpvaW4oXCIgXCIpO1xuICB9XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGF0dGFjaG1lbnQgdHlwZSBoZWxwZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEluc3BlY3QgYSB7QGxpbmsgR2VuaWVBdHRhY2htZW50fSBhbmQgcmV0dXJuIHRoZVxuICoge0BsaW5rIEF0dGFjaG1lbnRUeXBlfSBvZiBwYXlsb2FkIGl0IGNhcnJpZXMuIFJldHVybnMgdGhlIGZpcnN0XG4gKiBrbm93biBzdWItb2JqZWN0IHRoYXQncyBwcmVzZW50OyBpZiBub25lIG9mIHRoZSBrbm93biBvbmVzIGFyZVxuICogcG9wdWxhdGVkLCBmYWxscyBiYWNrIHRvIHRoZSBmaXJzdCBub24tYm9va2tlZXBpbmcga2V5XG4gKiAoZm9yd2FyZC1jb21wYXQgZm9yIHR5cGVzIHdlIGRvbid0IG1vZGVsIHlldCksIGVsc2UgYFwidW5rbm93blwiYC5cbiAqXG4gKiBIb25vcnMgYSBwcmUtc2V0IGBhdHRhY2htZW50X3R5cGVgIGlmIG9uZSBpcyBhbHJlYWR5IG9uIHRoZVxuICogdmFsdWUsIHNvIHRoaXMgaXMgaWRlbXBvdGVudCBhY3Jvc3MgcmUtZGV0ZWN0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdEF0dGFjaG1lbnRUeXBlKGF0dDogR2VuaWVBdHRhY2htZW50KTogQXR0YWNobWVudFR5cGUge1xuICBpZiAoYXR0LmF0dGFjaG1lbnRfdHlwZSkgcmV0dXJuIGF0dC5hdHRhY2htZW50X3R5cGU7XG4gIGlmIChhdHQucXVlcnkpIHJldHVybiBcInF1ZXJ5XCI7XG4gIGlmIChhdHQudGV4dCkgcmV0dXJuIFwidGV4dFwiO1xuICBpZiAoYXR0LnN1Z2dlc3RlZF9xdWVzdGlvbnMpIHJldHVybiBcInN1Z2dlc3RlZF9xdWVzdGlvbnNcIjtcbiAgaWYgKGF0dC52aXopIHJldHVybiBcInZpelwiO1xuICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXMoYXR0KSkge1xuICAgIGlmIChrICE9PSBcImF0dGFjaG1lbnRfaWRcIiAmJiBrICE9PSBcImF0dGFjaG1lbnRfdHlwZVwiKSByZXR1cm4gaztcbiAgfVxuICByZXR1cm4gXCJ1bmtub3duXCI7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gR2VuaWVDaGF0IGV2ZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLyoqXG4gKiBXaGVyZSBvbiB0aGUgd2lyZSBhbiBldmVudCB3YXMgb2JzZXJ2ZWQuIFNwcmVhZCBpbnRvIGV2ZXJ5XG4gKiBhdHRhY2htZW50LXNjb3BlZCBldmVudCBwYXlsb2FkIHNvIHN1YnNjcmliZXJzIGNhbiByb3V0ZSwgbG9nLFxuICogb3IgY29ycmVsYXRlIHdpdGhvdXQgcmUtd2Fsa2luZyB0aGUgbWVzc2FnZS5cbiAqXG4gKiBGaWVsZHM6XG4gKiAgIC0gYHNwYWNlX2lkYDogdGhlIEdlbmllIHNwYWNlIHRoZSBjb252ZXJzYXRpb24gbGl2ZXMgaW4uXG4gKiAgIC0gYGNvbnZlcnNhdGlvbl9pZGA6IGNvbnZlcnNhdGlvbiBpZCBvbmNlIEdlbmllIGhhcyBhc3NpZ25lZCBvbmUuXG4gKiAgIC0gYG1lc3NhZ2VfaWRgOiBHZW5pZSBtZXNzYWdlIGlkIGZvciB0aGUgYWN0aXZlIHR1cm4uXG4gKiAgIC0gYGF0dGFjaG1lbnRfaWRgOiBhdHRhY2htZW50IHRoZSBldmVudCBjYW1lIGZyb20uIE9wdGlvbmFsXG4gKiAgICAgYmVjYXVzZSBHZW5pZSBzb21ldGltZXMgZW1pdHMgYW4gYW5vbnltb3VzIG1haW4tYW5zd2VyXG4gKiAgICAgYXR0YWNobWVudCB3aXRob3V0IGFuIGlkOyB0aG9zZSBzdGlsbCBnZXQgZXZlbnRzLCBqdXN0IHdpdGhcbiAqICAgICBgYXR0YWNobWVudF9pZGAgdW5kZWZpbmVkLlxuICovXG5leHBvcnQgY29uc3QgR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHNwYWNlX2lkOiB6LnN0cmluZygpLFxuICBjb252ZXJzYXRpb25faWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgbWVzc2FnZV9pZDogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBhdHRhY2htZW50X2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbi8qKiBDb252ZXJzYXRpb24sIG1lc3NhZ2UsIGFuZCBhdHRhY2htZW50IGNvb3JkaW5hdGVzIHNoYXJlZCBieSBhdHRhY2htZW50IGV2ZW50cy4gKi9cbmV4cG9ydCB0eXBlIEdlbmllQ2hhdExvY2F0aW9uID0gei5pbmZlcjx0eXBlb2YgR2VuaWVDaGF0TG9jYXRpb25TY2hlbWE+O1xuXG4vKipcbiAqIExpZmVjeWNsZSBldmVudDogdGhlIHF1ZXN0aW9uIHRoaXMgdHVybiBpcyBhc2tpbmcgR2VuaWUuIEZpcmVzXG4gKiBvbmNlIHBlciBgZ2VuaWVFdmVudENoYXRgIGNhbGwsIHRoZSBmaXJzdCB0aW1lIHRoZSB1bmRlcmx5aW5nXG4gKiBgZ2VuaWVDaGF0YCBsb29wIHlpZWxkcyBhIGBHZW5pZU1lc3NhZ2VgLiBDYXJyaWVzIHRoZSBwcm9tcHRcbiAqIHRleHQgR2VuaWUgZWNob2VkIGJhY2sgb24gYG1lc3NhZ2UuY29udGVudGAgYW5kIHRoZSBhc3NpZ25lZFxuICogYG1lc3NhZ2VfaWRgIHNvIHN1YnNjcmliZXJzIGNhbiBncm91cCBldmVyeSBzdWJzZXF1ZW50IGV2ZW50XG4gKiBmb3IgdGhpcyB0dXJuIHVuZGVyIG9uZSBzdGFibGUga2V5LiBgY29udmVyc2F0aW9uX2lkYCBpc1xuICogcG9wdWxhdGVkIGZvciBib3RoIG9wZW5pbmcgYW5kIGZvbGxvdy11cCB0dXJucyAoR2VuaWUgYXNzaWduc1xuICogaXQgb24gYHN0YXJ0Q29udmVyc2F0aW9uYCkuXG4gKlxuICogRGVmZXJyZWQgKGluc3RlYWQgb2YgZmlyZWQgc3luY2hyb25vdXNseSBvbiBlbnRyeSkgc28gdGhlXG4gKiBgbWVzc2FnZV9pZGAgaXMgYXZhaWxhYmxlIHdoZW4gdGhlIGV2ZW50IGxhbmRzIC0gdGhhdCBvbmUgcm91bmRcbiAqIHRyaXAgY29zdHMgfjIwMG1zIGJ1dCBsZXRzIFVJcyByZW5kZXIgcXVlc3Rpb24gLyB0aGlua2luZyAvXG4gKiBxdWVyeSAvIHRleHQgYXMgYSBzaW5nbGUgZ3JvdXBlZCBibG9jayBwZXIgR2VuaWUgY2FsbCBpbnN0ZWFkXG4gKiBvZiBhIGZsYXQgc3RyZWFtLlxuICpcbiAqIGBhdHRhY2htZW50X2lkYCBpcyBpbnRlbnRpb25hbGx5IGFic2VudCAtIHF1ZXN0aW9ucyBhcmUgdHVyblxuICogc2NvcGVkLCBub3QgYXR0YWNobWVudCBzY29wZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBRdWVzdGlvbkV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEub21pdCh7XG4gIGF0dGFjaG1lbnRfaWQ6IHRydWUsXG59KS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJxdWVzdGlvblwiKSxcbiAgY29udGVudDogei5zdHJpbmcoKSxcbn0pO1xuLyoqIEluaXRpYWwgZXZlbnQgY2FycnlpbmcgdGhlIHVzZXIncyBxdWVzdGlvbiBhZnRlciBHZW5pZSBhc3NpZ25zIGEgbWVzc2FnZSBpZC4gKi9cbmV4cG9ydCB0eXBlIFF1ZXN0aW9uRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBRdWVzdGlvbkV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBMaWZlY3ljbGUgZXZlbnQ6IHJhdyBgR2VuaWVNZXNzYWdlYCBzbmFwc2hvdCBmb3IgdGhlIGFjdGl2ZVxuICogdHVybi4gRmlyZXMgb25jZSBwZXIgcG9sbCB5aWVsZC4gVGhlIGZ1bGwgbWVzc2FnZSBzaGFwZVxuICogKGluY2x1ZGluZyB0aGUgd2lkZW5lZCB0aG91Z2h0IC8gcmVnZW4gLyBhdHRhY2htZW50LXR5cGVcbiAqIGZpZWxkcykgaXMgZXhwb3NlZCBpbmxpbmUgYXMgYG1lc3NhZ2VgOyBjb25zdW1lcnMgbmFycm93IG9uXG4gKiBgZXZlbnQudHlwZSA9PT0gXCJtZXNzYWdlXCJgIGFuZCByZWFjaCBmb3IgYGV2ZW50Lm1lc3NhZ2VgLlxuICovXG5leHBvcnQgY29uc3QgTWVzc2FnZUV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEub21pdCh7XG4gIGF0dGFjaG1lbnRfaWQ6IHRydWUsXG59KS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJtZXNzYWdlXCIpLFxuICBtZXNzYWdlOiBHZW5pZU1lc3NhZ2VTY2hlbWEsXG59KTtcbi8qKiBSYXcgR2VuaWUgbWVzc2FnZSBzbmFwc2hvdCBlbWl0dGVkIG9uIGV2ZXJ5IHBvbGwgaXRlcmF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgTWVzc2FnZUV2ZW50ID0gei5pbmZlcjx0eXBlb2YgTWVzc2FnZUV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBUb3AtbGV2ZWwgYG1lc3NhZ2Uuc3RhdHVzYCB0cmFuc2l0aW9uZWQuIEZpcmVzIGZvciBldmVyeVxuICogZGlzdGluY3Qgc3RhdHVzIHNlZW4gb24gdGhlIHdpcmUgKGUuZy4gYFNVQk1JVFRFRGAgLT5cbiAqIGBGSUxURVJJTkdfQ09OVEVYVGAgLT4gYEFTS0lOR19BSWAgLT4gYFBFTkRJTkdfV0FSRUhPVVNFYCAtPlxuICogYEFTS0lOR19BSWAgLT4gYENPTVBMRVRFRGApLlxuICovXG5leHBvcnQgY29uc3QgU3RhdHVzRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5vbWl0KHtcbiAgYXR0YWNobWVudF9pZDogdHJ1ZSxcbn0pLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInN0YXR1c1wiKSxcbiAgc3RhdHVzOiBNZXNzYWdlU3RhdHVzU2NoZW1hLFxuICBwcmV2aW91c19zdGF0dXM6IE1lc3NhZ2VTdGF0dXNTY2hlbWEub3B0aW9uYWwoKSxcbn0pO1xuLyoqIE1lc3NhZ2Utc3RhdHVzIHRyYW5zaXRpb24sIGluY2x1ZGluZyB0aGUgcHJldmlvdXMgc3RhdHVzIHdoZW4gYXZhaWxhYmxlLiAqL1xuZXhwb3J0IHR5cGUgU3RhdHVzRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBTdGF0dXNFdmVudFNjaGVtYT47XG5cbi8qKlxuICogQSBuZXcgYXR0YWNobWVudCBzbG90IGFwcGVhcmVkIGluIGBtZXNzYWdlLmF0dGFjaG1lbnRzW11gLlxuICogRmlyZXMgZXhhY3RseSBvbmNlIHBlciBhdHRhY2htZW50IChtYXRjaGVkIGJ5IGBhdHRhY2htZW50X2lkYCxcbiAqIHBvc2l0aW9uYWxseSBmb3IgYW5vbnltb3VzIGF0dGFjaG1lbnRzKSB0aGUgZmlyc3QgdGltZSB3ZSBzZWVcbiAqIGl0LiBUaGUgc2xvdCdzIHBheWxvYWQga2luZCBsYW5kcyBpbiBgYXR0YWNobWVudF90eXBlYCBzbyB0aGVcbiAqIG91dGVyIGB0eXBlYCBkaXNjcmltaW5hdG9yIHN0YXlzIHVuYW1iaWd1b3VzLlxuICovXG5leHBvcnQgY29uc3QgQXR0YWNobWVudEV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwiYXR0YWNobWVudFwiKSxcbiAgaW5kZXg6IHoubnVtYmVyKCksXG4gIGF0dGFjaG1lbnRfdHlwZTogQXR0YWNobWVudFR5cGVTY2hlbWEsXG59KTtcbi8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBuZXcgdHlwZWQgYXR0YWNobWVudCBhcHBlYXJzIG9uIHRoZSBtZXNzYWdlLiAqL1xuZXhwb3J0IHR5cGUgQXR0YWNobWVudEV2ZW50ID0gei5pbmZlcjx0eXBlb2YgQXR0YWNobWVudEV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBBIG5ldyByZWFzb25pbmcgc3RlcCBhcHBlYXJlZCBvbiBhIHF1ZXJ5IGF0dGFjaG1lbnRcbiAqIChgYXR0YWNobWVudHNbaV0ucXVlcnkudGhvdWdodHNbaV1gKS4gRGVkdXBsaWNhdGVkIHBlclxuICogYCh0aG91Z2h0X3R5cGUsIGNvbnRlbnQpYCB0dXBsZSB3aXRoaW4gYW4gYXR0YWNobWVudCBzb1xuICogc3Vic2NyaWJlcnMgZG9uJ3Qgc2VlIHRoZSBzYW1lIHRob3VnaHQgbXVsdGlwbGUgdGltZXMgLSBHZW5pZVxuICogc29tZXRpbWVzIG11dGF0ZXMgZXhpc3RpbmcgdGhvdWdodCBzbG90cyBpbiBwbGFjZSwgc28gdGhlIGRpZmZcbiAqIGlzIHZhbHVlLWJhc2VkIHJhdGhlciB0aGFuIHBvc2l0aW9uYWwuXG4gKi9cbmV4cG9ydCBjb25zdCBUaGlua2luZ0V2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwidGhpbmtpbmdcIiksXG4gIHRleHQ6IHouc3RyaW5nKCksXG4gIHRob3VnaHRfdHlwZTogR2VuaWVUaG91Z2h0VHlwZVNjaGVtYSxcbn0pO1xuLyoqIEluY3JlbWVudGFsIEdlbmllIHJlYXNvbmluZyBldmVudCBkZXJpdmVkIGZyb20gcXVlcnkgdGhvdWdodHMuICovXG5leHBvcnQgdHlwZSBUaGlua2luZ0V2ZW50ID0gei5pbmZlcjx0eXBlb2YgVGhpbmtpbmdFdmVudFNjaGVtYT47XG5cbi8qKlxuICogQSB0ZXh0LWF0dGFjaG1lbnQgYGNvbnRlbnRgIGZpZWxkIGFwcGVhcmVkIG9yIGNoYW5nZWRcbiAqIChgYXR0YWNobWVudHNbaV0udGV4dC5jb250ZW50YCkuIEZpcmVzIHdoZW5ldmVyIHRoZSBzbmFwc2hvdFxuICogdmFsdWUgZGlmZmVycyBmcm9tIHRoZSBwcmV2aW91cyBvbmUgZm9yIHRoZSBzYW1lIGF0dGFjaG1lbnQuXG4gKi9cbmV4cG9ydCBjb25zdCBUZXh0RXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJ0ZXh0XCIpLFxuICB0ZXh0OiB6LnN0cmluZygpLFxufSk7XG4vKiogTmFycmF0aXZlIGFuc3dlciBmcmFnbWVudCBlbWl0dGVkIGZyb20gYSBHZW5pZSB0ZXh0IGF0dGFjaG1lbnQuICovXG5leHBvcnQgdHlwZSBUZXh0RXZlbnQgPSB6LmluZmVyPHR5cGVvZiBUZXh0RXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIFNRTCB3YXMgZmluYWxpemVkIG9uIGEgcXVlcnkgYXR0YWNobWVudFxuICogKGBhdHRhY2htZW50c1tpXS5xdWVyeS5xdWVyeWApLiBGaXJlcyBvbmNlIHdoZW4gdGhlIFNRTCBzdHJpbmdcbiAqIHRyYW5zaXRpb25zIGZyb20gdW5kZWZpbmVkIHRvIGRlZmluZWQsIGFuZCBhZ2FpbiBpZiBHZW5pZSBldmVyXG4gKiByZXdyaXRlcyBpdC4gYHRpdGxlYCBhbmQgYGRlc2NyaXB0aW9uYCBhcmUgZGVub3JtYWxpc2VkIG9mZiB0aGVcbiAqIGF0dGFjaG1lbnQncyBgcXVlcnkudGl0bGVgIC8gYHF1ZXJ5LmRlc2NyaXB0aW9uYCBzbyBjb25zdW1lcnNcbiAqIGNhbiBsYWJlbCB0aGUgU1FMIHBpbGwgd2l0aG91dCByZS13YWxraW5nIHRoZSBtZXNzYWdlLlxuICovXG5leHBvcnQgY29uc3QgUXVlcnlFdmVudFNjaGVtYSA9IEdlbmllQ2hhdExvY2F0aW9uU2NoZW1hLmV4dGVuZCh7XG4gIHR5cGU6IHoubGl0ZXJhbChcInF1ZXJ5XCIpLFxuICBzcWw6IHouc3RyaW5nKCksXG4gIHRpdGxlOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGRlc2NyaXB0aW9uOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbi8qKiBGaW5hbGl6ZWQgb3IgcmV3cml0dGVuIFNRTCBlbWl0dGVkIGZvciBhIEdlbmllIHF1ZXJ5IGF0dGFjaG1lbnQuICovXG5leHBvcnQgdHlwZSBRdWVyeUV2ZW50ID0gei5pbmZlcjx0eXBlb2YgUXVlcnlFdmVudFNjaGVtYT47XG5cbi8qKlxuICogU1FMIHdhcyBzdWJtaXR0ZWQgdG8gYSBTUUwgd2FyZWhvdXNlIGFuZCBhIHN0YXRlbWVudCBpZCB3YXNcbiAqIGFzc2lnbmVkIChgYXR0YWNobWVudHNbaV0ucXVlcnkuc3RhdGVtZW50X2lkYCkuIEZpcmVzIHdoZW4gdGhlXG4gKiBzdGF0ZW1lbnQgaWQgdHJhbnNpdGlvbnMgZnJvbSB1bmRlZmluZWQgdG8gZGVmaW5lZCAtIHRoaXMgaXMgdGhlXG4gKiBwb2ludCBhdCB3aGljaCBgY2xpZW50LnN0YXRlbWVudEV4ZWN1dGlvbi5nZXRTdGF0ZW1lbnQoeyBzdGF0ZW1lbnRfaWQgfSlgXG4gKiBiZWNvbWVzIGEgdmFsaWQgY2FsbC5cbiAqL1xuZXhwb3J0IGNvbnN0IFN0YXRlbWVudEV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwic3RhdGVtZW50XCIpLFxuICBzdGF0ZW1lbnRfaWQ6IHouc3RyaW5nKCksXG59KTtcbi8qKiBFdmVudCBpbmRpY2F0aW5nIHRoYXQgYSBxdWVyeSByZWNlaXZlZCBhbiBleGVjdXRhYmxlIHN0YXRlbWVudCBpZC4gKi9cbmV4cG9ydCB0eXBlIFN0YXRlbWVudEV2ZW50ID0gei5pbmZlcjx0eXBlb2YgU3RhdGVtZW50RXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIFJvdyBjb3VudCBmb3IgYSBxdWVyeSBhdHRhY2htZW50J3MgcmVzdWx0IGNoYW5nZWRcbiAqIChgYXR0YWNobWVudHNbaV0ucXVlcnkucXVlcnlfcmVzdWx0X21ldGFkYXRhLnJvd19jb3VudGApLiBGaXJlc1xuICogb24gZXZlcnkgY2hhbmdlLCBpbmNsdWRpbmcgdGhlIGluaXRpYWwgYHVuZGVmaW5lZCAtPiAwYCBhbmQgdGhlXG4gKiBsYXRlciBgMCAtPiBOYCBvbmNlIHRoZSB3YXJlaG91c2UgZmluaXNoZXMgZXhlY3V0aW9uLlxuICovXG5leHBvcnQgY29uc3QgUm93c0V2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEuZXh0ZW5kKHtcbiAgdHlwZTogei5saXRlcmFsKFwicm93c1wiKSxcbiAgcm93X2NvdW50OiB6Lm51bWJlcigpLFxuICBwcmV2aW91c19yb3dfY291bnQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgc3RhdGVtZW50X2lkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcbi8qKiBSb3ctY291bnQgdHJhbnNpdGlvbiBmb3IgYSBHZW5pZSBxdWVyeSByZXN1bHQuICovXG5leHBvcnQgdHlwZSBSb3dzRXZlbnQgPSB6LmluZmVyPHR5cGVvZiBSb3dzRXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIEdlbmllIHByb2R1Y2VkIGEgZm9sbG93LXVwIHN1Z2dlc3RlZC1xdWVzdGlvbnMgbGlzdFxuICogKGBhdHRhY2htZW50c1tpXS5zdWdnZXN0ZWRfcXVlc3Rpb25zLnF1ZXN0aW9uc1tdYCkuIEZpcmVzIG9uY2VcbiAqIHdoZW4gdGhlIGxpc3QgYXBwZWFycywgYW5kIGFnYWluIGlmIEdlbmllIHJld3JpdGVzIGl0LlxuICovXG5leHBvcnQgY29uc3QgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWEgPSBHZW5pZUNoYXRMb2NhdGlvblNjaGVtYS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJzdWdnZXN0ZWRfcXVlc3Rpb25zXCIpLFxuICBxdWVzdGlvbnM6IHouYXJyYXkoei5zdHJpbmcoKSksXG59KTtcbi8qKiBGb2xsb3ctdXAgcXVlc3Rpb24gbGlzdCBlbWl0dGVkIHdoZW4gR2VuaWUgYWRkcyBvciByZXdyaXRlcyBzdWdnZXN0aW9ucy4gKi9cbmV4cG9ydCB0eXBlIFN1Z2dlc3RlZFF1ZXN0aW9uc0V2ZW50ID0gei5pbmZlcjx0eXBlb2YgU3VnZ2VzdGVkUXVlc3Rpb25zRXZlbnRTY2hlbWE+O1xuXG4vKipcbiAqIFRoZSBhY3RpdmUgdHVybiByZWFjaGVkIGEgdGVybWluYWwgc3RhdHVzLiBBbHdheXMgZmlyZXMgb25jZVxuICogcGVyIHR1cm4gKGltbWVkaWF0ZWx5IGFmdGVyIHRoZSB0ZXJtaW5hbCBgbWVzc2FnZWAgZXZlbnQpLlxuICogQ2FycmllcyB0aGUgZmluYWwgYEdlbmllTWVzc2FnZWAgc25hcHNob3QgaW5saW5lIHNvIHN1YnNjcmliZXJzXG4gKiBkb24ndCBuZWVkIHRvIGtlZXAgdGhlaXIgb3duIGNvcHkgb2YgdGhlIGxhc3QgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFJlc3VsdEV2ZW50U2NoZW1hID0gR2VuaWVDaGF0TG9jYXRpb25TY2hlbWEub21pdCh7XG4gIGF0dGFjaG1lbnRfaWQ6IHRydWUsXG59KS5leHRlbmQoe1xuICB0eXBlOiB6LmxpdGVyYWwoXCJyZXN1bHRcIiksXG4gIHN0YXR1czogVGVybWluYWxTdGF0dXNTY2hlbWEsXG4gIG1lc3NhZ2U6IEdlbmllTWVzc2FnZVNjaGVtYSxcbn0pO1xuLyoqIEZpbmFsIGV2ZW50IGZvciBhIEdlbmllIHR1cm4sIGNhcnJ5aW5nIGl0cyB0ZXJtaW5hbCBzdGF0dXMgYW5kIG1lc3NhZ2Ugc25hcHNob3QuICovXG5leHBvcnQgdHlwZSBSZXN1bHRFdmVudCA9IHouaW5mZXI8dHlwZW9mIFJlc3VsdEV2ZW50U2NoZW1hPjtcblxuLyoqXG4gKiBEaXNjcmltaW5hdGVkIHVuaW9uIHlpZWxkZWQgYnkgYGdlbmllRXZlbnRDaGF0YC4gRWFjaCB2YXJpYW50XG4gKiBpcyBhIHNpbmdsZSBmbGF0IG9iamVjdCB3aXRoIGB0eXBlYCBhcyB0aGUgZGlzY3JpbWluYXRvciBhbmRcbiAqIHRoZSBwYXlsb2FkIGZpZWxkcyBob2lzdGVkIGRpcmVjdGx5IHRvIHRoZSB0b3AgbGV2ZWwgLSBub1xuICogYHBheWxvYWRgIHdyYXBwZXIuIENvbnN1bWVycyBuYXJyb3cgb24gYHR5cGVgIGFuZCByZWFkIGZpZWxkc1xuICogaW5saW5lOlxuICpcbiAqIEBleGFtcGxlXG4gKiBmb3IgYXdhaXQgKGNvbnN0IGV2ZW50IG9mIGdlbmllRXZlbnRDaGF0KHNwYWNlSWQsIFwiVG9wIHN0b3Jlcz9cIikpIHtcbiAqICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gKiAgICAgY2FzZSBcInRoaW5raW5nXCI6XG4gKiAgICAgICBjb25zb2xlLmxvZyhldmVudC50aG91Z2h0X3R5cGUsIGV2ZW50LnRleHQpO1xuICogICAgICAgYnJlYWs7XG4gKiAgICAgY2FzZSBcInJlc3VsdFwiOlxuICogICAgICAgY29uc29sZS5sb2coXCJkb25lOlwiLCBldmVudC5zdGF0dXMpO1xuICogICAgICAgYnJlYWs7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiBTdHJlYW0gb3JkZXIgcGVyIHR1cm46XG4gKlxuICogICAxLiBgcXVlc3Rpb25gLCBlbWl0dGVkIHdpdGggdGhlIGZpcnN0IGBtZXNzYWdlYCB5aWVsZCAoZGVmZXJyZWQgc29cbiAqICAgICAgdGhlIGFzc2lnbmVkIGBtZXNzYWdlX2lkYCBpcyBhdmFpbGFibGUpLCBjYXJyeWluZyB0aGUgcHJvbXB0XG4gKiAgICAgIHRoaXMgdHVybiBzZW50IHRvIEdlbmllLlxuICogICAyLiBgbWVzc2FnZWAgZm9yIGV2ZXJ5IHBvbGwgeWllbGQgKHJhdyBgR2VuaWVNZXNzYWdlYCBvblxuICogICAgICBgZXZlbnQubWVzc2FnZWApLlxuICogICAzLiBBbnkgZGVyaXZlZCBldmVudHMgdGhlIHNuYXBzaG90IGRpZmYgcHJvZHVjZWQgKGBzdGF0dXNgLFxuICogICAgICBgYXR0YWNobWVudGAsIGB0aGlua2luZ2AsIGB0ZXh0YCwgYHF1ZXJ5YCwgYHN0YXRlbWVudGAsXG4gKiAgICAgIGByb3dzYCwgYHN1Z2dlc3RlZF9xdWVzdGlvbnNgKSBpbiB0aGF0IGZpeGVkIG9yZGVyLlxuICogICA0LiBPbiB0aGUgdGVybWluYWwgc25hcHNob3QsIGEgZmluYWwgYHJlc3VsdGAgZXZlbnQuXG4gKlxuICogRXJyb3JzIHByb3BhZ2F0ZSB2aWEgdGhlIGdlbmVyYXRvciB0aHJvd2luZyAoYHRyeWAvYGNhdGNoYCB0aGVcbiAqIGBmb3IgYXdhaXRgKSwgbm90IHZpYSBhbiBgZXJyb3JgIHZhcmlhbnQgb24gdGhpcyB1bmlvbi5cbiAqL1xuZXhwb3J0IGNvbnN0IEdlbmllQ2hhdEV2ZW50U2NoZW1hID0gei5kaXNjcmltaW5hdGVkVW5pb24oXCJ0eXBlXCIsIFtcbiAgUXVlc3Rpb25FdmVudFNjaGVtYSxcbiAgTWVzc2FnZUV2ZW50U2NoZW1hLFxuICBTdGF0dXNFdmVudFNjaGVtYSxcbiAgQXR0YWNobWVudEV2ZW50U2NoZW1hLFxuICBUaGlua2luZ0V2ZW50U2NoZW1hLFxuICBUZXh0RXZlbnRTY2hlbWEsXG4gIFF1ZXJ5RXZlbnRTY2hlbWEsXG4gIFN0YXRlbWVudEV2ZW50U2NoZW1hLFxuICBSb3dzRXZlbnRTY2hlbWEsXG4gIFN1Z2dlc3RlZFF1ZXN0aW9uc0V2ZW50U2NoZW1hLFxuICBSZXN1bHRFdmVudFNjaGVtYSxcbl0pO1xuLyoqIE9yZGVyZWQgZXZlbnQgdW5pb24geWllbGRlZCBieSBgZ2VuaWVFdmVudENoYXRgOyBmYWlsdXJlcyBhcmUgdGhyb3duLCBub3QgZW1pdHRlZC4gKi9cbmV4cG9ydCB0eXBlIEdlbmllQ2hhdEV2ZW50ID0gei5pbmZlcjx0eXBlb2YgR2VuaWVDaGF0RXZlbnRTY2hlbWE+O1xuXG4vKiogRGlzY3JpbWluYXRvciB0eXBlIGZvciB7QGxpbmsgR2VuaWVDaGF0RXZlbnR9LiAqL1xuZXhwb3J0IHR5cGUgR2VuaWVDaGF0RXZlbnRUeXBlID0gR2VuaWVDaGF0RXZlbnRbXCJ0eXBlXCJdO1xuXG4vKipcbiAqIEZpZWxkIHNldCBmb3IgYSBnaXZlbiB7QGxpbmsgR2VuaWVDaGF0RXZlbnRUeXBlfSAtIHRoZSB2YXJpYW50XG4gKiB3aXRoIHRoZSBgdHlwZWAgZGlzY3JpbWluYXRvciBzdHJpcHBlZC4gVXNlZCBieSBkZXRlY3RvcnMgaW5cbiAqIGBldmVudC50c2Agc28gZWFjaCBkZXRlY3RvciByZXR1cm5zIGp1c3QgdGhlIHBheWxvYWQgZmllbGRzIGFuZFxuICogdGhlIG9yY2hlc3RyYXRvciBzdGFtcHMgYHR5cGVgIGF0IHlpZWxkIHRpbWUuXG4gKi9cbmV4cG9ydCB0eXBlIEdlbmllQ2hhdEV2ZW50RmllbGRzPFQgZXh0ZW5kcyBHZW5pZUNoYXRFdmVudFR5cGU+ID0gT21pdDxcbiAgRXh0cmFjdDxHZW5pZUNoYXRFdmVudCwgeyB0eXBlOiBUIH0+LFxuICBcInR5cGVcIlxuPjtcbiJdfQ==
package/package.json CHANGED
@@ -23,7 +23,7 @@
23
23
  "typescript": "^5.9.3"
24
24
  },
25
25
  "dependencies": {
26
- "@dbx-tools/shared-core": "^0.9.133",
26
+ "@dbx-tools/shared-core": "^0.9.136",
27
27
  "zod": "4.3.6"
28
28
  },
29
29
  "main": "./lib/index.js",
@@ -60,7 +60,7 @@
60
60
  "./package.json": "./package.json"
61
61
  }
62
62
  },
63
- "version": "0.9.133",
63
+ "version": "0.9.136",
64
64
  "types": "./lib/index.d.ts",
65
65
  "dbxToolsConfig": {
66
66
  "tags": [
@@ -289,6 +289,36 @@ export const GenieSpaceSchema = SDKGenieSpaceSchema.extend({
289
289
  /** Genie space metadata with the identifiers required by chat consumers. */
290
290
  export type GenieSpace = z.infer<typeof GenieSpaceSchema>;
291
291
 
292
+ /** Request accepted by the GA Genie space create endpoint. */
293
+ export const CreateGenieSpaceRequestSchema = z
294
+ .object({
295
+ warehouse_id: z.string().trim().min(1).describe("Associated SQL warehouse ID."),
296
+ serialized_space: z.string().trim().min(1).describe("Serialized Genie space definition."),
297
+ title: z.string().trim().min(1).optional().describe("Genie space title."),
298
+ description: z.string().trim().min(1).optional().describe("Genie space description."),
299
+ parent_path: z.string().trim().min(1).optional().describe("Parent workspace folder."),
300
+ })
301
+ .strict()
302
+ .describe("GA Genie space creation request.");
303
+
304
+ /** GA Genie space creation request. */
305
+ export type CreateGenieSpaceRequest = z.infer<typeof CreateGenieSpaceRequestSchema>;
306
+
307
+ /** Feedback request accepted by Genie chat-mode and agent-mode messages. */
308
+ export const GenieMessageFeedbackRequestSchema = z
309
+ .object({
310
+ space_id: z.string().trim().min(1).describe("Genie space ID."),
311
+ conversation_id: z.string().trim().min(1).describe("Genie conversation ID."),
312
+ message_id: z.string().trim().min(1).describe("Genie message ID."),
313
+ rating: z.enum(["POSITIVE", "NEGATIVE", "NONE"]).describe("Genie feedback rating."),
314
+ comment: z.string().trim().max(5_000).optional().describe("Optional Genie feedback comment."),
315
+ })
316
+ .strict()
317
+ .describe("Feedback attached to one Genie conversation message.");
318
+
319
+ /** Feedback attached to one Genie conversation message. */
320
+ export type GenieMessageFeedbackRequest = z.infer<typeof GenieMessageFeedbackRequestSchema>;
321
+
292
322
  /* ------------------------ terminal helpers ------------------------- */
293
323
 
294
324
  /**