mumucc 0.4.2 → 0.4.4
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/AGENTS.md +297 -0
- package/bin/mumucc +3 -8
- package/bun.lock +44 -141
- package/defaults/mcp-servers.json +0 -6
- package/mumucc-0.4.3.tgz +0 -0
- package/package.json +3 -3
- package/shims/bun-bundle.ts +0 -3
- package/shims/globals.d.ts +15 -0
- package/shims/globals.ts +1 -1
- package/src/QueryEngine.ts +1 -0
- package/src/assistant/gate.ts +4 -1
- package/src/assistant/index.ts +29 -1
- package/src/assistant/sessionDiscovery.ts +10 -1
- package/src/bootstrap/state.ts +6 -1
- package/src/buddy/CompanionSprite.tsx +1 -0
- package/src/buddy/observer.ts +6 -0
- package/src/buddy/useBuddyNotification.tsx +1 -0
- package/src/cli/handlers/util.tsx +1 -0
- package/src/cli/print.ts +4 -1
- package/src/cli/structuredIO.ts +6 -1
- package/src/commands/add-dir/add-dir.tsx +1 -0
- package/src/commands/branch/branch.ts +1 -0
- package/src/commands/bridge/bridge.tsx +2 -1
- package/src/commands/btw/btw.tsx +1 -0
- package/src/commands/buddy/index.ts +2 -1
- package/src/commands/chrome/chrome.tsx +1 -0
- package/src/commands/clear/caches.ts +1 -0
- package/src/commands/compact/compact.ts +1 -0
- package/src/commands/context/context-noninteractive.ts +1 -0
- package/src/commands/context/context.tsx +1 -0
- package/src/commands/copy/copy.tsx +2 -1
- package/src/commands/effort/effort.tsx +1 -0
- package/src/commands/extra-usage/extra-usage.tsx +1 -0
- package/src/commands/fast/fast.tsx +1 -0
- package/src/commands/fork/index.ts +2 -1
- package/src/commands/ide/ide.tsx +2 -1
- package/src/commands/insights.ts +1 -0
- package/src/commands/install-github-app/ApiKeyStep.tsx +1 -0
- package/src/commands/install-github-app/CheckExistingSecretStep.tsx +1 -0
- package/src/commands/install-github-app/ChooseRepoStep.tsx +1 -0
- package/src/commands/install-github-app/CreatingStep.tsx +1 -0
- package/src/commands/install-github-app/ErrorStep.tsx +1 -0
- package/src/commands/install-github-app/ExistingWorkflowStep.tsx +1 -0
- package/src/commands/install-github-app/InstallAppStep.tsx +1 -0
- package/src/commands/install-github-app/OAuthFlowStep.tsx +1 -0
- package/src/commands/install-github-app/SuccessStep.tsx +1 -0
- package/src/commands/install-github-app/WarningsStep.tsx +1 -0
- package/src/commands/install-github-app/install-github-app.tsx +2 -1
- package/src/commands/install.tsx +1 -0
- package/src/commands/login/CodexLogin.tsx +39 -12
- package/src/commands/login/CustomProviderLogin.tsx +45 -9
- package/src/commands/login/ThirdPartyLogin.tsx +24 -6
- package/src/commands/login/login.tsx +37 -10
- package/src/commands/login/profileDefaults.ts +25 -0
- package/src/commands/mcp/mcp.tsx +1 -0
- package/src/commands/mobile/mobile.tsx +1 -0
- package/src/commands/model/model.tsx +14 -3
- package/src/commands/peers/index.ts +2 -1
- package/src/commands/permissions/permissions.tsx +1 -0
- package/src/commands/plan/plan.tsx +1 -0
- package/src/commands/plugin/DiscoverPlugins.tsx +1 -0
- package/src/commands/plugin/ManageMarketplaces.tsx +1 -0
- package/src/commands/plugin/ManagePlugins.tsx +1 -0
- package/src/commands/plugin/PluginOptionsDialog.tsx +1 -0
- package/src/commands/plugin/PluginSettings.tsx +2 -1
- package/src/commands/plugin/UnifiedInstalledCell.tsx +1 -0
- package/src/commands/plugin/ValidatePlugin.tsx +1 -0
- package/src/commands/plugin/pluginDetailsHelpers.tsx +1 -0
- package/src/commands/rate-limit-options/rate-limit-options.tsx +1 -0
- package/src/commands/remote-setup/remote-setup.tsx +1 -0
- package/src/commands/resume/resume.tsx +1 -0
- package/src/commands/review/UltrareviewOverageDialog.tsx +1 -0
- package/src/commands/review/ultrareviewCommand.tsx +1 -0
- package/src/commands/session/session.tsx +1 -0
- package/src/commands/tag/tag.tsx +1 -0
- package/src/commands/terminalSetup/terminalSetup.tsx +1 -0
- package/src/commands/theme/theme.tsx +1 -0
- package/src/commands/thinkback/thinkback.tsx +2 -1
- package/src/commands/ultraplan.tsx +11 -1
- package/src/commands/upgrade/upgrade.tsx +1 -0
- package/src/commands/workflows/index.ts +2 -1
- package/src/components/AgentProgressLine.tsx +1 -0
- package/src/components/App.tsx +1 -0
- package/src/components/ApproveApiKey.tsx +1 -0
- package/src/components/AutoModeOptInDialog.tsx +1 -0
- package/src/components/AutoUpdater.tsx +1 -0
- package/src/components/AutoUpdaterWrapper.tsx +1 -0
- package/src/components/AwsAuthStatusBox.tsx +1 -0
- package/src/components/BaseTextInput.tsx +1 -0
- package/src/components/BashModeProgress.tsx +1 -0
- package/src/components/BridgeDialog.tsx +2 -1
- package/src/components/BypassPermissionsModeDialog.tsx +1 -0
- package/src/components/ChannelDowngradeDialog.tsx +1 -0
- package/src/components/ClaudeInChromeOnboarding.tsx +1 -0
- package/src/components/ClaudeMdExternalIncludesDialog.tsx +1 -0
- package/src/components/ClickableImageRef.tsx +1 -0
- package/src/components/CompactSummary.tsx +1 -0
- package/src/components/ConfigurableShortcutHint.tsx +1 -0
- package/src/components/ConsoleOAuthFlow.tsx +1 -0
- package/src/components/ContextSuggestions.tsx +1 -0
- package/src/components/ContextVisualization.tsx +2 -1
- package/src/components/CoordinatorAgentStatus.tsx +3 -4
- package/src/components/CostThresholdDialog.tsx +1 -0
- package/src/components/CtrlOToExpand.tsx +1 -0
- package/src/components/CustomSelect/SelectMulti.tsx +1 -0
- package/src/components/CustomSelect/select-input-option.tsx +1 -0
- package/src/components/CustomSelect/select-option.tsx +1 -0
- package/src/components/CustomSelect/select.tsx +2 -1
- package/src/components/CustomSelect/use-multi-select-state.ts +1 -0
- package/src/components/DesktopHandoff.tsx +1 -0
- package/src/components/DesktopUpsell/DesktopUpsellStartup.tsx +1 -0
- package/src/components/DevBar.tsx +1 -0
- package/src/components/DevChannelsDialog.tsx +1 -0
- package/src/components/DiagnosticsDisplay.tsx +1 -0
- package/src/components/EffortCallout.tsx +1 -0
- package/src/components/ExitFlow.tsx +1 -0
- package/src/components/FallbackToolUseErrorMessage.tsx +1 -0
- package/src/components/FastIcon.tsx +1 -0
- package/src/components/Feedback.tsx +1 -0
- package/src/components/FeedbackSurvey/FeedbackSurvey.tsx +1 -0
- package/src/components/FeedbackSurvey/FeedbackSurveyView.tsx +1 -0
- package/src/components/FeedbackSurvey/TranscriptSharePrompt.tsx +1 -0
- package/src/components/FeedbackSurvey/useFrustrationDetection.ts +6 -1
- package/src/components/FeedbackSurvey/useMemorySurvey.tsx +1 -0
- package/src/components/FeedbackSurvey/usePostCompactSurvey.tsx +2 -1
- package/src/components/FileEditToolDiff.tsx +1 -0
- package/src/components/FileEditToolUpdatedMessage.tsx +1 -0
- package/src/components/FileEditToolUseRejectedMessage.tsx +1 -0
- package/src/components/FilePathLink.tsx +1 -0
- package/src/components/FullscreenLayout.tsx +1 -0
- package/src/components/GlobalSearchDialog.tsx +2 -1
- package/src/components/HelpV2/Commands.tsx +1 -0
- package/src/components/HelpV2/HelpV2.tsx +1 -0
- package/src/components/HighlightedCode/Fallback.tsx +1 -0
- package/src/components/HighlightedCode.tsx +1 -0
- package/src/components/HistorySearchDialog.tsx +1 -0
- package/src/components/IdeAutoConnectDialog.tsx +1 -0
- package/src/components/IdeOnboardingDialog.tsx +1 -0
- package/src/components/IdeStatusIndicator.tsx +1 -0
- package/src/components/IdleReturnDialog.tsx +1 -0
- package/src/components/InvalidConfigDialog.tsx +1 -0
- package/src/components/InvalidSettingsDialog.tsx +1 -0
- package/src/components/KeybindingWarnings.tsx +1 -0
- package/src/components/LanguagePicker.tsx +1 -0
- package/src/components/LogSelector.tsx +2 -1
- package/src/components/LogoV2/ChannelsNotice.tsx +6 -5
- package/src/components/LogoV2/Clawd.tsx +1 -0
- package/src/components/LogoV2/CondensedLogo.tsx +1 -0
- package/src/components/LogoV2/Feed.tsx +1 -0
- package/src/components/LogoV2/FeedColumn.tsx +1 -0
- package/src/components/LogoV2/LogoV2.tsx +2 -1
- package/src/components/LogoV2/OverageCreditUpsell.tsx +1 -0
- package/src/components/LogoV2/WelcomeV2.tsx +1 -0
- package/src/components/LogoV2/feedConfigs.tsx +1 -0
- package/src/components/MCPServerApprovalDialog.tsx +1 -0
- package/src/components/MCPServerDesktopImportDialog.tsx +1 -0
- package/src/components/MCPServerMultiselectDialog.tsx +1 -0
- package/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.tsx +1 -0
- package/src/components/Markdown.tsx +1 -0
- package/src/components/MemoryUsageIndicator.tsx +1 -0
- package/src/components/Message.tsx +2 -1
- package/src/components/MessageModel.tsx +1 -0
- package/src/components/MessageResponse.tsx +1 -0
- package/src/components/MessageRow.tsx +1 -0
- package/src/components/MessageSelector.tsx +2 -1
- package/src/components/MessageTimestamp.tsx +1 -0
- package/src/components/Messages.tsx +1 -0
- package/src/components/ModelPicker.tsx +4 -3
- package/src/components/NativeAutoUpdater.tsx +1 -0
- package/src/components/NotebookEditToolUseRejectedMessage.tsx +1 -0
- package/src/components/Onboarding.tsx +1 -0
- package/src/components/OutputStylePicker.tsx +1 -0
- package/src/components/PackageManagerAutoUpdater.tsx +1 -0
- package/src/components/PrBadge.tsx +1 -0
- package/src/components/PromptInput/HistorySearchInput.tsx +1 -0
- package/src/components/PromptInput/Notifications.tsx +1 -0
- package/src/components/PromptInput/PromptInput.tsx +10 -8
- package/src/components/PromptInput/PromptInputFooter.tsx +1 -0
- package/src/components/PromptInput/PromptInputFooterLeftSide.tsx +1 -0
- package/src/components/PromptInput/PromptInputFooterSuggestions.tsx +1 -0
- package/src/components/PromptInput/PromptInputHelpMenu.tsx +1 -0
- package/src/components/PromptInput/PromptInputModeIndicator.tsx +1 -0
- package/src/components/PromptInput/PromptInputStashNotice.tsx +1 -0
- package/src/components/PromptInput/SandboxPromptFooterHint.tsx +1 -0
- package/src/components/PromptInput/ShimmeredInput.tsx +1 -0
- package/src/components/PromptInput/VoiceIndicator.tsx +1 -0
- package/src/components/QuickOpenDialog.tsx +2 -1
- package/src/components/RemoteEnvironmentDialog.tsx +2 -1
- package/src/components/ResumeTask.tsx +1 -0
- package/src/components/SandboxViolationExpandedView.tsx +1 -0
- package/src/components/SearchBox.tsx +1 -0
- package/src/components/SessionBackgroundHint.tsx +1 -0
- package/src/components/SessionPreview.tsx +1 -0
- package/src/components/Settings/Config.tsx +1 -0
- package/src/components/Settings/Settings.tsx +1 -0
- package/src/components/Settings/Status.tsx +2 -1
- package/src/components/Settings/Usage.tsx +1 -0
- package/src/components/ShowInIDEPrompt.tsx +1 -0
- package/src/components/SkillImprovementSurvey.tsx +1 -0
- package/src/components/Spinner/FlashingChar.tsx +1 -0
- package/src/components/Spinner/GlimmerMessage.tsx +1 -0
- package/src/components/Spinner/ShimmerChar.tsx +1 -0
- package/src/components/Spinner/SpinnerAnimationRow.tsx +1 -0
- package/src/components/Spinner/SpinnerGlyph.tsx +1 -0
- package/src/components/Spinner/TeammateSpinnerTree.tsx +1 -0
- package/src/components/Spinner/utils.ts +1 -0
- package/src/components/Spinner.tsx +2 -1
- package/src/components/Stats.tsx +2 -1
- package/src/components/StatusNotices.tsx +1 -0
- package/src/components/StructuredDiff/Fallback.tsx +1 -0
- package/src/components/StructuredDiff.tsx +2 -1
- package/src/components/StructuredDiffList.tsx +1 -0
- package/src/components/TaskListV2.tsx +1 -0
- package/src/components/TeammateViewHeader.tsx +1 -0
- package/src/components/TeleportError.tsx +1 -0
- package/src/components/TeleportProgress.tsx +1 -0
- package/src/components/TeleportRepoMismatchDialog.tsx +1 -0
- package/src/components/TeleportResumeWrapper.tsx +1 -0
- package/src/components/TextInput.tsx +1 -0
- package/src/components/ThemePicker.tsx +1 -0
- package/src/components/ThinkingToggle.tsx +1 -0
- package/src/components/TokenWarning.tsx +1 -0
- package/src/components/ToolUseLoader.tsx +1 -0
- package/src/components/TrustDialog/TrustDialog.tsx +1 -0
- package/src/components/ValidationErrorsList.tsx +1 -0
- package/src/components/VimTextInput.tsx +1 -0
- package/src/components/VirtualMessageList.tsx +1 -0
- package/src/components/WorkflowMultiselectDialog.tsx +1 -0
- package/src/components/agents/AgentDetail.tsx +1 -0
- package/src/components/agents/AgentEditor.tsx +1 -0
- package/src/components/agents/AgentNavigationFooter.tsx +1 -0
- package/src/components/agents/AgentsList.tsx +2 -1
- package/src/components/agents/AgentsMenu.tsx +2 -1
- package/src/components/agents/ColorPicker.tsx +1 -0
- package/src/components/agents/ModelSelector.tsx +1 -0
- package/src/components/agents/ToolSelector.tsx +2 -1
- package/src/components/agents/generateAgent.ts +1 -0
- package/src/components/agents/new-agent-creation/CreateAgentWizard.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/ColorStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/LocationStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/PromptStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/TypeStep.tsx +1 -0
- package/src/components/design-system/Byline.tsx +1 -0
- package/src/components/design-system/Dialog.tsx +1 -0
- package/src/components/design-system/Divider.tsx +1 -0
- package/src/components/design-system/FuzzyPicker.tsx +1 -0
- package/src/components/design-system/KeyboardShortcutHint.tsx +1 -0
- package/src/components/design-system/ListItem.tsx +1 -0
- package/src/components/design-system/LoadingState.tsx +1 -0
- package/src/components/design-system/Pane.tsx +1 -0
- package/src/components/design-system/ProgressBar.tsx +1 -0
- package/src/components/design-system/Ratchet.tsx +1 -0
- package/src/components/design-system/StatusIcon.tsx +1 -0
- package/src/components/design-system/Tabs.tsx +2 -1
- package/src/components/design-system/ThemeProvider.tsx +1 -0
- package/src/components/design-system/ThemedBox.tsx +1 -0
- package/src/components/design-system/ThemedText.tsx +1 -0
- package/src/components/diff/DiffDetailView.tsx +1 -0
- package/src/components/diff/DiffDialog.tsx +1 -0
- package/src/components/diff/DiffFileList.tsx +1 -0
- package/src/components/grove/Grove.tsx +2 -1
- package/src/components/hooks/HooksConfigMenu.tsx +2 -1
- package/src/components/hooks/PromptDialog.tsx +1 -0
- package/src/components/hooks/SelectEventMode.tsx +1 -0
- package/src/components/hooks/SelectHookMode.tsx +1 -0
- package/src/components/hooks/SelectMatcherMode.tsx +1 -0
- package/src/components/hooks/ViewHookMode.tsx +1 -0
- package/src/components/mcp/CapabilitiesSection.tsx +1 -0
- package/src/components/mcp/ElicitationDialog.tsx +1 -0
- package/src/components/mcp/MCPAgentServerMenu.tsx +1 -0
- package/src/components/mcp/MCPListPanel.tsx +2 -1
- package/src/components/mcp/MCPReconnect.tsx +1 -0
- package/src/components/mcp/MCPRemoteServerMenu.tsx +1 -0
- package/src/components/mcp/MCPSettings.tsx +2 -1
- package/src/components/mcp/MCPStdioServerMenu.tsx +1 -0
- package/src/components/mcp/MCPToolDetailView.tsx +1 -0
- package/src/components/mcp/MCPToolListView.tsx +1 -0
- package/src/components/mcp/McpParsingWarnings.tsx +1 -0
- package/src/components/memory/MemoryFileSelector.tsx +2 -1
- package/src/components/memory/MemoryUpdateNotification.tsx +1 -0
- package/src/components/messageActions.tsx +1 -0
- package/src/components/messages/AdvisorMessage.tsx +1 -0
- package/src/components/messages/AssistantRedactedThinkingMessage.tsx +1 -0
- package/src/components/messages/AssistantTextMessage.tsx +1 -0
- package/src/components/messages/AssistantThinkingMessage.tsx +1 -0
- package/src/components/messages/AssistantToolUseMessage.tsx +1 -0
- package/src/components/messages/AttachmentMessage.tsx +2 -1
- package/src/components/messages/CollapsedReadSearchContent.tsx +2 -1
- package/src/components/messages/GroupedToolUseContent.tsx +1 -0
- package/src/components/messages/HighlightedThinkingText.tsx +1 -0
- package/src/components/messages/HookProgressMessage.tsx +1 -0
- package/src/components/messages/PlanApprovalMessage.tsx +1 -0
- package/src/components/messages/RateLimitMessage.tsx +1 -0
- package/src/components/messages/ShutdownMessage.tsx +1 -0
- package/src/components/messages/SystemAPIErrorMessage.tsx +1 -0
- package/src/components/messages/SystemTextMessage.tsx +2 -1
- package/src/components/messages/TaskAssignmentMessage.tsx +1 -0
- package/src/components/messages/UserAgentNotificationMessage.tsx +1 -0
- package/src/components/messages/UserBashInputMessage.tsx +1 -0
- package/src/components/messages/UserBashOutputMessage.tsx +1 -0
- package/src/components/messages/UserChannelMessage.tsx +1 -0
- package/src/components/messages/UserCommandMessage.tsx +1 -0
- package/src/components/messages/UserImageMessage.tsx +1 -0
- package/src/components/messages/UserLocalCommandOutputMessage.tsx +1 -0
- package/src/components/messages/UserMemoryInputMessage.tsx +1 -0
- package/src/components/messages/UserPlanMessage.tsx +1 -0
- package/src/components/messages/UserResourceUpdateMessage.tsx +1 -0
- package/src/components/messages/UserTeammateMessage.tsx +1 -0
- package/src/components/messages/UserTextMessage.tsx +1 -0
- package/src/components/messages/UserToolResultMessage/RejectedPlanMessage.tsx +1 -0
- package/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +1 -0
- package/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +1 -0
- package/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +1 -0
- package/src/components/messages/UserToolResultMessage/utils.tsx +1 -0
- package/src/components/messages/nullRenderingAttachments.ts +1 -0
- package/src/components/messages/teamMemCollapsed.tsx +1 -0
- package/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx +2 -1
- package/src/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.tsx +1 -0
- package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx +2 -1
- package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx +2 -1
- package/src/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.tsx +1 -0
- package/src/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +1 -0
- package/src/components/permissions/BashPermissionRequest/bashToolUseOptions.tsx +1 -0
- package/src/components/permissions/ComputerUseApproval/ComputerUseApproval.tsx +2 -1
- package/src/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.tsx +1 -0
- package/src/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.tsx +1 -0
- package/src/components/permissions/FallbackPermissionRequest.tsx +1 -0
- package/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +1 -0
- package/src/components/permissions/FilePermissionDialog/FilePermissionDialog.tsx +1 -0
- package/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +1 -0
- package/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +1 -0
- package/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +1 -0
- package/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx +1 -0
- package/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx +2 -1
- package/src/components/permissions/PermissionDecisionDebugInfo.tsx +2 -1
- package/src/components/permissions/PermissionDialog.tsx +1 -0
- package/src/components/permissions/PermissionExplanation.tsx +2 -1
- package/src/components/permissions/PermissionPrompt.tsx +2 -1
- package/src/components/permissions/PermissionRequest.tsx +1 -0
- package/src/components/permissions/PermissionRequestTitle.tsx +1 -0
- package/src/components/permissions/PermissionRuleExplanation.tsx +1 -0
- package/src/components/permissions/SandboxPermissionRequest.tsx +1 -0
- package/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx +1 -0
- package/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx +1 -0
- package/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx +1 -0
- package/src/components/permissions/WorkerBadge.tsx +1 -0
- package/src/components/permissions/WorkerPendingPermission.tsx +1 -0
- package/src/components/permissions/rules/AddPermissionRules.tsx +1 -0
- package/src/components/permissions/rules/AddWorkspaceDirectory.tsx +2 -1
- package/src/components/permissions/rules/PermissionRuleDescription.tsx +1 -0
- package/src/components/permissions/rules/PermissionRuleInput.tsx +1 -0
- package/src/components/permissions/rules/PermissionRuleList.tsx +2 -1
- package/src/components/permissions/rules/RecentDenialsTab.tsx +1 -0
- package/src/components/permissions/rules/RemoveWorkspaceDirectory.tsx +1 -0
- package/src/components/permissions/rules/WorkspaceTab.tsx +1 -0
- package/src/components/sandbox/SandboxConfigTab.tsx +1 -0
- package/src/components/sandbox/SandboxDependenciesTab.tsx +1 -0
- package/src/components/sandbox/SandboxDoctorSection.tsx +1 -0
- package/src/components/sandbox/SandboxOverridesTab.tsx +1 -0
- package/src/components/sandbox/SandboxSettings.tsx +1 -0
- package/src/components/shell/ExpandShellOutputContext.tsx +1 -0
- package/src/components/shell/OutputLine.tsx +1 -0
- package/src/components/shell/ShellProgressMessage.tsx +1 -0
- package/src/components/shell/ShellTimeDisplay.tsx +1 -0
- package/src/components/skills/SkillsMenu.tsx +1 -0
- package/src/components/tasks/AsyncAgentDetailDialog.tsx +1 -0
- package/src/components/tasks/BackgroundTask.tsx +1 -0
- package/src/components/tasks/BackgroundTaskStatus.tsx +2 -1
- package/src/components/tasks/BackgroundTasksDialog.tsx +2 -1
- package/src/components/tasks/DreamDetailDialog.tsx +1 -0
- package/src/components/tasks/InProcessTeammateDetailDialog.tsx +1 -0
- package/src/components/tasks/RemoteSessionDetailDialog.tsx +2 -1
- package/src/components/tasks/RemoteSessionProgress.tsx +1 -0
- package/src/components/tasks/ShellDetailDialog.tsx +2 -1
- package/src/components/tasks/ShellProgress.tsx +1 -0
- package/src/components/tasks/taskStatusUtils.tsx +1 -0
- package/src/components/teams/TeamStatus.tsx +1 -0
- package/src/components/teams/TeamsDialog.tsx +2 -1
- package/src/components/ui/OrderedList.tsx +1 -0
- package/src/components/ui/OrderedListItem.tsx +1 -0
- package/src/components/ui/TreeSelect.tsx +2 -1
- package/src/components/wizard/WizardDialogLayout.tsx +1 -0
- package/src/components/wizard/WizardProvider.tsx +2 -1
- package/src/components/wizard/useWizard.ts +1 -0
- package/src/constants/betas.ts +1 -0
- package/src/constants/prompts.ts +1 -0
- package/src/context/QueuedMessageContext.tsx +1 -0
- package/src/context/fpsMetrics.tsx +1 -0
- package/src/context/mailbox.tsx +1 -0
- package/src/context/modalContext.tsx +1 -0
- package/src/context/overlayContext.tsx +1 -0
- package/src/context/promptOverlayContext.tsx +1 -0
- package/src/context/stats.tsx +1 -0
- package/src/context/voice.tsx +1 -0
- package/src/cost-tracker.ts +1 -0
- package/src/dialogLaunchers.tsx +1 -0
- package/src/entrypoints/agentSdkTypes.ts +4 -17
- package/src/entrypoints/cli.tsx +1 -0
- package/src/entrypoints/sdk/controlTypes.ts +86 -10
- package/src/entrypoints/sdk/coreTypes.generated.ts +99 -2
- package/src/entrypoints/sdk/runtimeTypes.ts +53 -18
- package/src/entrypoints/sdk/settingsTypes.generated.ts +2 -1
- package/src/hooks/notifs/useAntOrgWarningNotification.ts +1 -1
- package/src/hooks/notifs/useCanSwitchToExistingSubscription.tsx +1 -0
- package/src/hooks/notifs/useDeprecationWarningNotification.tsx +1 -0
- package/src/hooks/notifs/useFastModeNotification.tsx +1 -0
- package/src/hooks/notifs/useIDEStatusIndicator.tsx +1 -0
- package/src/hooks/notifs/useInstallMessages.tsx +1 -0
- package/src/hooks/notifs/useLspInitializationNotification.tsx +1 -0
- package/src/hooks/notifs/useMcpConnectivityStatus.tsx +1 -0
- package/src/hooks/notifs/useNpmDeprecationNotification.tsx +1 -0
- package/src/hooks/notifs/usePluginAutoupdateNotification.tsx +1 -0
- package/src/hooks/notifs/usePluginInstallationStatus.tsx +1 -0
- package/src/hooks/notifs/useRateLimitWarningNotification.tsx +1 -0
- package/src/hooks/useCanUseTool.tsx +2 -1
- package/src/hooks/useChromeExtensionNotification.tsx +1 -0
- package/src/hooks/useClaudeCodeHintRecommendation.tsx +1 -0
- package/src/hooks/useCommandKeybindings.tsx +1 -0
- package/src/hooks/useDiffData.ts +1 -0
- package/src/hooks/useIDEIntegration.tsx +1 -0
- package/src/hooks/useLspPluginRecommendation.tsx +1 -0
- package/src/hooks/useOfficialMarketplaceNotification.tsx +1 -0
- package/src/hooks/usePluginRecommendationBase.tsx +1 -0
- package/src/hooks/usePromptsFromClaudeInChrome.tsx +1 -0
- package/src/hooks/useRemoteSession.ts +1 -0
- package/src/hooks/useReplBridge.tsx +1 -0
- package/src/hooks/useSSHSession.ts +1 -0
- package/src/hooks/useTeleportResume.tsx +1 -0
- package/src/hooks/useTurnDiffs.ts +1 -0
- package/src/hooks/useTypeahead.tsx +1 -0
- package/src/hooks/useVoiceIntegration.tsx +1 -0
- package/src/ink/Ansi.tsx +1 -0
- package/src/ink/bidi.ts +1 -0
- package/src/ink/components/AlternateScreen.tsx +1 -0
- package/src/ink/components/Box.tsx +1 -0
- package/src/ink/components/Button.tsx +1 -0
- package/src/ink/components/ClockContext.tsx +1 -0
- package/src/ink/components/Link.tsx +1 -0
- package/src/ink/components/Newline.tsx +1 -0
- package/src/ink/components/NoSelect.tsx +1 -0
- package/src/ink/components/RawAnsi.tsx +1 -0
- package/src/ink/components/ScrollBox.tsx +1 -0
- package/src/ink/components/TerminalFocusContext.tsx +1 -0
- package/src/ink/components/Text.tsx +1 -0
- package/src/ink/ink.tsx +1 -0
- package/src/ink/reconciler.ts +1 -0
- package/src/ink/render-to-screen.ts +1 -0
- package/src/interactiveHelpers.tsx +4 -4
- package/src/keybindings/KeybindingContext.tsx +2 -1
- package/src/keybindings/KeybindingProviderSetup.tsx +1 -0
- package/src/keybindings/parser.ts +1 -0
- package/src/keybindings/template.ts +1 -0
- package/src/keybindings/validate.ts +1 -0
- package/src/main.tsx +5 -7
- package/src/memdir/findRelevantMemories.ts +1 -0
- package/src/native-ts/color-diff/index.ts +1 -0
- package/src/proactive/index.ts +26 -1
- package/src/proactive/useProactive.ts +13 -1
- package/src/query/stopHooks.ts +1 -0
- package/src/query.ts +1 -0
- package/src/remote/SessionsWebSocket.ts +1 -0
- package/src/screens/Doctor.tsx +2 -1
- package/src/screens/REPL.tsx +13 -6
- package/src/screens/ResumeConversation.tsx +1 -0
- package/src/services/AgentSummary/agentSummary.ts +1 -0
- package/src/services/PromptSuggestion/promptSuggestion.ts +1 -0
- package/src/services/api/claude.ts +33 -31
- package/src/services/api/client.ts +34 -31
- package/src/services/api/errors.ts +1 -0
- package/src/services/api/logging.ts +1 -0
- package/src/services/api/openaiShim.ts +35 -8
- package/src/services/api/withRetry.ts +1 -0
- package/src/services/autoDream/autoDream.ts +1 -0
- package/src/services/claudeAiLimits.ts +1 -0
- package/src/services/compact/autoCompact.ts +1 -0
- package/src/services/compact/cachedMicrocompact.ts +56 -4
- package/src/services/compact/compact.ts +1 -0
- package/src/services/compact/microCompact.ts +1 -0
- package/src/services/compact/postCompactCleanup.ts +1 -0
- package/src/services/compact/reactiveCompact.ts +16 -1
- package/src/services/compact/sessionMemoryCompact.ts +1 -0
- package/src/services/compact/snipCompact.ts +18 -1
- package/src/services/compact/snipProjection.ts +6 -1
- package/src/services/contextCollapse/index.ts +33 -1
- package/src/services/extractMemories/extractMemories.ts +1 -0
- package/src/services/mcp/MCPConnectionManager.tsx +1 -0
- package/src/services/mcp/channelAllowlist.ts +1 -1
- package/src/services/mcp/channelNotification.ts +90 -4
- package/src/services/mcp/channelPermissions.ts +1 -1
- package/src/services/mcp/client.ts +1 -0
- package/src/services/mcp/useManageMCPConnections.ts +5 -3
- package/src/services/notifier.ts +1 -0
- package/src/services/rateLimitMocking.ts +1 -0
- package/src/services/skillSearch/localSearch.ts +1 -1
- package/src/services/skillSearch/prefetch.ts +10 -1
- package/src/services/tips/tipRegistry.ts +1 -0
- package/src/services/toolUseSummary/toolUseSummaryGenerator.ts +1 -0
- package/src/services/tools/StreamingToolExecutor.ts +1 -0
- package/src/services/tools/toolOrchestration.ts +1 -0
- package/src/services/vcr.ts +1 -0
- package/src/services/voice.ts +1 -0
- package/src/setup.ts +1 -0
- package/src/skills/bundled/claudeInChrome.ts +1 -0
- package/src/skills/bundled/keybindings.ts +1 -0
- package/src/skills/bundled/skillify.ts +1 -0
- package/src/state/AppState.tsx +10 -7
- package/src/tasks/LocalMainSessionTask.ts +1 -0
- package/src/tasks/LocalShellTask/LocalShellTask.tsx +1 -0
- package/src/tasks/LocalShellTask/killShellTasks.ts +1 -0
- package/src/tasks/RemoteAgentTask/RemoteAgentTask.tsx +1 -0
- package/src/tools/AgentTool/AgentTool.tsx +30 -3
- package/src/tools/AgentTool/UI.tsx +2 -1
- package/src/tools/AgentTool/agentToolUtils.ts +1 -0
- package/src/tools/AgentTool/builtInAgents.ts +1 -0
- package/src/tools/AgentTool/forkSubagent.ts +1 -0
- package/src/tools/AgentTool/loadAgentsDir.ts +9 -0
- package/src/tools/AgentTool/runAgent.ts +2 -0
- package/src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx +1 -0
- package/src/tools/BashTool/BashTool.tsx +1 -0
- package/src/tools/BashTool/BashToolResultMessage.tsx +1 -0
- package/src/tools/BashTool/UI.tsx +1 -0
- package/src/tools/BriefTool/UI.tsx +1 -0
- package/src/tools/FileEditTool/UI.tsx +1 -0
- package/src/tools/FileEditTool/utils.ts +1 -0
- package/src/tools/FileReadTool/FileReadTool.ts +1 -0
- package/src/tools/FileReadTool/imageProcessor.ts +1 -0
- package/src/tools/FileWriteTool/UI.tsx +2 -1
- package/src/tools/GrepTool/UI.tsx +1 -0
- package/src/tools/LSPTool/UI.tsx +1 -0
- package/src/tools/MCPTool/UI.tsx +1 -0
- package/src/tools/NotebookEditTool/NotebookEditTool.ts +1 -0
- package/src/tools/NotebookEditTool/UI.tsx +1 -0
- package/src/tools/PowerShellTool/PowerShellTool.tsx +1 -0
- package/src/tools/SendMessageTool/SendMessageTool.ts +1 -0
- package/src/tools/SkillTool/SkillTool.ts +1 -0
- package/src/tools/TaskOutputTool/TaskOutputTool.tsx +1 -0
- package/src/tools/TaskStopTool/UI.tsx +1 -0
- package/src/tools/ToolSearchTool/prompt.ts +1 -0
- package/src/tools/TungstenTool/TungstenLiveMonitor.ts +3 -0
- package/src/tools/WebBrowserTool/WebBrowserPanel.ts +3 -1
- package/src/tools/WebFetchTool/utils.ts +1 -0
- package/src/tools/WebSearchTool/WebSearchTool.ts +1 -0
- package/src/tools/WorkflowTool/createWorkflowCommand.ts +3 -1
- package/src/tools/testing/TestingPermissionTool.tsx +1 -0
- package/src/tools/utils.ts +1 -0
- package/src/types/commands-js.d.ts +13 -0
- package/src/types/diff.d.ts +1 -0
- package/src/types/hooks.ts +1 -0
- package/src/types/macro.d.ts +15 -0
- package/src/types/markdown.d.ts +4 -0
- package/src/types/message.ts +56 -107
- package/src/types/react-compiler-runtime.d.ts +4 -0
- package/src/types/utils.ts +3 -3
- package/src/utils/advisor.ts +1 -0
- package/src/utils/asciicast.ts +1 -0
- package/src/utils/attachments.ts +1 -0
- package/src/utils/attribution.ts +1 -0
- package/src/utils/autoRunIssue.tsx +1 -0
- package/src/utils/claudeInChrome/mcpServer.ts +1 -0
- package/src/utils/claudeInChrome/setup.ts +1 -0
- package/src/utils/claudemd.ts +1 -0
- package/src/utils/cleanup.ts +1 -0
- package/src/utils/cliHighlight.ts +1 -0
- package/src/utils/collapseReadSearch.ts +1 -0
- package/src/utils/computerUse/executor.ts +1 -0
- package/src/utils/computerUse/gates.ts +1 -0
- package/src/utils/computerUse/hostAdapter.ts +1 -0
- package/src/utils/computerUse/inputLoader.ts +1 -0
- package/src/utils/computerUse/mcpServer.ts +1 -0
- package/src/utils/computerUse/setup.ts +1 -0
- package/src/utils/computerUse/swiftLoader.ts +1 -0
- package/src/utils/computerUse/wrapper.tsx +2 -1
- package/src/utils/context.ts +1 -0
- package/src/utils/contextAnalysis.ts +1 -0
- package/src/utils/conversationRecovery.ts +1 -0
- package/src/utils/deepLink/protocolHandler.ts +1 -0
- package/src/utils/diff.ts +1 -0
- package/src/utils/effort.ts +1 -0
- package/src/utils/envUtils.ts +1 -0
- package/src/utils/execFileNoThrowPortable.ts +1 -0
- package/src/utils/fileHistory.ts +1 -0
- package/src/utils/filePersistence/filePersistence.ts +1 -0
- package/src/utils/filePersistence/outputsScanner.ts +1 -0
- package/src/utils/gitDiff.ts +1 -0
- package/src/utils/groupToolUses.ts +1 -0
- package/src/utils/hooks/hooksConfigManager.ts +1 -0
- package/src/utils/hooks/skillImprovement.ts +1 -0
- package/src/utils/hooks.ts +1 -0
- package/src/utils/imagePaste.ts +1 -0
- package/src/utils/log.ts +1 -0
- package/src/utils/logoV2Utils.ts +6 -6
- package/src/utils/messageQueueManager.ts +1 -0
- package/src/utils/messages.ts +122 -100
- package/src/utils/model/agent.ts +43 -2
- package/src/utils/model/configs.ts +1 -1
- package/src/utils/model/deprecation.ts +1 -0
- package/src/utils/model/fetchModels.ts +11 -1
- package/src/utils/model/model.ts +31 -0
- package/src/utils/model/modelCapabilities.ts +1 -0
- package/src/utils/model/modelOptions.ts +68 -14
- package/src/utils/model/modelStrings.ts +1 -0
- package/src/utils/model/platformProfiles.ts +524 -0
- package/src/utils/model/thirdPartyProviders.ts +158 -15
- package/src/utils/modelCost.ts +1 -0
- package/src/utils/notebook.ts +1 -0
- package/src/utils/permissions/classifierDecision.ts +1 -0
- package/src/utils/permissions/pathValidation.ts +1 -0
- package/src/utils/permissions/permissionExplainer.ts +1 -0
- package/src/utils/plugins/loadPluginHooks.ts +1 -0
- package/src/utils/plugins/lspPluginIntegration.ts +1 -0
- package/src/utils/plugins/pluginLoader.ts +1 -0
- package/src/utils/preflightChecks.tsx +2 -1
- package/src/utils/processUserInput/processSlashCommand.tsx +13 -3
- package/src/utils/queryHelpers.ts +1 -0
- package/src/utils/readFileInRange.ts +1 -0
- package/src/utils/sandbox/sandbox-adapter.ts +24 -22
- package/src/utils/sessionFileAccessHooks.ts +1 -0
- package/src/utils/sessionRestore.ts +1 -0
- package/src/utils/sessionStorage.ts +84 -46
- package/src/utils/settings/types.ts +72 -0
- package/src/utils/shell/prefix.ts +1 -0
- package/src/utils/sideQuery.ts +1 -0
- package/src/utils/sliceAnsi.ts +1 -0
- package/src/utils/staticRender.tsx +1 -0
- package/src/utils/stats.ts +1 -0
- package/src/utils/status.tsx +1 -0
- package/src/utils/swarm/It2SetupPrompt.tsx +2 -1
- package/src/utils/swarm/teammateModel.ts +1 -0
- package/src/utils/taskSummary.ts +6 -1
- package/src/utils/textHighlighting.ts +1 -0
- package/src/utils/thinking.ts +1 -0
- package/src/utils/toolResultStorage.ts +1 -0
- package/src/utils/transcriptSearch.ts +1 -0
- package/src/utils/worktree.ts +1 -0
- package/stubs/@anthropic-ai/mcpb/index.d.ts +23 -1
- package/stubs/@anthropic-ai/sandbox-runtime/index.d.ts +39 -1
- package/.gitignore.bak +0 -11
- package/bin/mumuclaw +0 -154
- package/bin/opencc +0 -50
- package/src/channels/heartbeat-channel.mjs +0 -280
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
1
2
|
import { c as _c } from "react/compiler-runtime";
|
|
2
3
|
import chalk from 'chalk';
|
|
3
4
|
import * as React from 'react';
|
|
@@ -797,4 +798,4 @@ function _temp2(s_0) {
|
|
|
797
798
|
function _temp(s) {
|
|
798
799
|
return s.agentDefinitions;
|
|
799
800
|
}
|
|
800
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjaGFsayIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJTZXR0aW5nU291cmNlIiwiQ29tbWFuZFJlc3VsdERpc3BsYXkiLCJ1c2VFeGl0T25DdHJsQ0RXaXRoS2V5YmluZGluZ3MiLCJ1c2VNZXJnZWRUb29scyIsIkJveCIsIlRleHQiLCJ1c2VBcHBTdGF0ZSIsInVzZVNldEFwcFN0YXRlIiwiVG9vbHMiLCJSZXNvbHZlZEFnZW50IiwicmVzb2x2ZUFnZW50T3ZlcnJpZGVzIiwiQWdlbnREZWZpbml0aW9uIiwiZ2V0QWN0aXZlQWdlbnRzRnJvbUxpc3QiLCJ0b0Vycm9yIiwibG9nRXJyb3IiLCJTZWxlY3QiLCJEaWFsb2ciLCJBZ2VudERldGFpbCIsIkFnZW50RWRpdG9yIiwiQWdlbnROYXZpZ2F0aW9uRm9vdGVyIiwiQWdlbnRzTGlzdCIsImRlbGV0ZUFnZW50RnJvbUZpbGUiLCJDcmVhdGVBZ2VudFdpemFyZCIsIk1vZGVTdGF0ZSIsIlByb3BzIiwidG9vbHMiLCJvbkV4aXQiLCJyZXN1bHQiLCJvcHRpb25zIiwiZGlzcGxheSIsIkFnZW50c01lbnUiLCJ0MCIsIiQiLCJfYyIsInQxIiwiU3ltYm9sIiwiZm9yIiwibW9kZSIsInNvdXJjZSIsIm1vZGVTdGF0ZSIsInNldE1vZGVTdGF0ZSIsImFnZW50RGVmaW5pdGlvbnMiLCJfdGVtcCIsIm1jcFRvb2xzIiwiX3RlbXAyIiwidG9vbFBlcm1pc3Npb25Db250ZXh0IiwiX3RlbXAzIiwic2V0QXBwU3RhdGUiLCJhbGxBZ2VudHMiLCJhY3RpdmVBZ2VudHMiLCJhZ2VudHMiLCJ0MiIsImNoYW5nZXMiLCJzZXRDaGFuZ2VzIiwibWVyZ2VkVG9vbHMiLCJ0MyIsImZpbHRlciIsIl90ZW1wNCIsInQ0IiwiX3RlbXA1IiwidDUiLCJfdGVtcDYiLCJ0NiIsIl90ZW1wNyIsInQ3IiwiX3RlbXA4IiwidDgiLCJfdGVtcDkiLCJ0OSIsIl90ZW1wMCIsInQxMCIsInVzZXJTZXR0aW5ncyIsInByb2plY3RTZXR0aW5ncyIsInBvbGljeVNldHRpbmdzIiwibG9jYWxTZXR0aW5ncyIsImZsYWdTZXR0aW5ncyIsInBsdWdpbiIsImFsbCIsImFnZW50c0J5U291cmNlIiwidDExIiwibWVzc2FnZSIsInByZXYiLCJoYW5kbGVBZ2VudENyZWF0ZWQiLCJ0MTIiLCJhZ2VudCIsInN0YXRlIiwiYWxsQWdlbnRzXzAiLCJhXzYiLCJhIiwiYWdlbnRUeXBlIiwicHJldl8wIiwiYm9sZCIsInQxMyIsImVycm9yIiwiaGFuZGxlQWdlbnREZWxldGVkIiwiYWdlbnRzVG9TaG93IiwidDE0IiwiYWxsUmVzb2x2ZWQiLCJyZXNvbHZlZEFnZW50cyIsInQxNSIsImV4aXRNZXNzYWdlIiwibGVuZ3RoIiwiam9pbiIsInVuZGVmaW5lZCIsInQxNiIsImFnZW50XzAiLCJwcmV2aW91c01vZGUiLCJ0MTciLCJ0MTgiLCJ0MTkiLCJ0MjAiLCJhXzkiLCJmaW5kIiwiZnJlc2hBZ2VudF8xIiwiYWdlbnRUb1VzZSIsImlzRWRpdGFibGUiLCJsYWJlbCIsInZhbHVlIiwibWVudUl0ZW1zIiwidmFsdWVfMCIsImJiMTI5IiwiaGFuZGxlTWVudVNlbGVjdCIsInQyMSIsInQyMiIsInQyMyIsInQyNCIsInQyNSIsInQyNiIsImFfOCIsImZyZXNoQWdlbnRfMCIsImFnZW50VG9EaXNwbGF5IiwiZGVsZXRlT3B0aW9ucyIsImFfNyIsImZyZXNoQWdlbnQiLCJhZ2VudFRvRWRpdCIsIm1lc3NhZ2VfMCIsImFfNSIsImFfNCIsImFfMyIsImFfMiIsImFfMSIsImFfMCIsInNfMSIsInMiLCJzXzAiLCJtY3AiXSwic291cmNlcyI6WyJBZ2VudHNNZW51LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBTZXR0aW5nU291cmNlIH0gZnJvbSAnc3JjL3V0aWxzL3NldHRpbmdzL2NvbnN0YW50cy5qcydcbmltcG9ydCB0eXBlIHsgQ29tbWFuZFJlc3VsdERpc3BsYXkgfSBmcm9tICcuLi8uLi9jb21tYW5kcy5qcydcbmltcG9ydCB7IHVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncy5qcydcbmltcG9ydCB7IHVzZU1lcmdlZFRvb2xzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlTWVyZ2VkVG9vbHMuanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZSwgdXNlU2V0QXBwU3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9BcHBTdGF0ZS5qcydcbmltcG9ydCB0eXBlIHsgVG9vbHMgfSBmcm9tICcuLi8uLi9Ub29sLmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBSZXNvbHZlZEFnZW50LFxuICByZXNvbHZlQWdlbnRPdmVycmlkZXMsXG59IGZyb20gJy4uLy4uL3Rvb2xzL0FnZW50VG9vbC9hZ2VudERpc3BsYXkuanMnXG5pbXBvcnQge1xuICB0eXBlIEFnZW50RGVmaW5pdGlvbixcbiAgZ2V0QWN0aXZlQWdlbnRzRnJvbUxpc3QsXG59IGZyb20gJy4uLy4uL3Rvb2xzL0FnZW50VG9vbC9sb2FkQWdlbnRzRGlyLmpzJ1xuaW1wb3J0IHsgdG9FcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL2Vycm9ycy5qcydcbmltcG9ydCB7IGxvZ0Vycm9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9nLmpzJ1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi4vQ3VzdG9tU2VsZWN0L3NlbGVjdC5qcydcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vRGlhbG9nLmpzJ1xuaW1wb3J0IHsgQWdlbnREZXRhaWwgfSBmcm9tICcuL0FnZW50RGV0YWlsLmpzJ1xuaW1wb3J0IHsgQWdlbnRFZGl0b3IgfSBmcm9tICcuL0FnZW50RWRpdG9yLmpzJ1xuaW1wb3J0IHsgQWdlbnROYXZpZ2F0aW9uRm9vdGVyIH0gZnJvbSAnLi9BZ2VudE5hdmlnYXRpb25Gb290ZXIuanMnXG5pbXBvcnQgeyBBZ2VudHNMaXN0IH0gZnJvbSAnLi9BZ2VudHNMaXN0LmpzJ1xuaW1wb3J0IHsgZGVsZXRlQWdlbnRGcm9tRmlsZSB9IGZyb20gJy4vYWdlbnRGaWxlVXRpbHMuanMnXG5pbXBvcnQgeyBDcmVhdGVBZ2VudFdpemFyZCB9IGZyb20gJy4vbmV3LWFnZW50LWNyZWF0aW9uL0NyZWF0ZUFnZW50V2l6YXJkLmpzJ1xuaW1wb3J0IHR5cGUgeyBNb2RlU3RhdGUgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICB0b29sczogVG9vbHNcbiAgb25FeGl0OiAoXG4gICAgcmVzdWx0Pzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IGRpc3BsYXk/OiBDb21tYW5kUmVzdWx0RGlzcGxheSB9LFxuICApID0+IHZvaWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFnZW50c01lbnUoeyB0b29scywgb25FeGl0IH06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW21vZGVTdGF0ZSwgc2V0TW9kZVN0YXRlXSA9IHVzZVN0YXRlPE1vZGVTdGF0ZT4oe1xuICAgIG1vZGU6ICdsaXN0LWFnZW50cycsXG4gICAgc291cmNlOiAnYWxsJyxcbiAgfSlcbiAgY29uc3QgYWdlbnREZWZpbml0aW9ucyA9IHVzZUFwcFN0YXRlKHMgPT4gcy5hZ2VudERlZmluaXRpb25zKVxuICBjb25zdCBtY3BUb29scyA9IHVzZUFwcFN0YXRlKHMgPT4gcy5tY3AudG9vbHMpXG4gIGNvbnN0IHRvb2xQZXJtaXNzaW9uQ29udGV4dCA9IHVzZUFwcFN0YXRlKHMgPT4gcy50b29sUGVybWlzc2lvbkNvbnRleHQpXG4gIGNvbnN0IHNldEFwcFN0YXRlID0gdXNlU2V0QXBwU3RhdGUoKVxuICBjb25zdCB7IGFsbEFnZW50cywgYWN0aXZlQWdlbnRzOiBhZ2VudHMgfSA9IGFnZW50RGVmaW5pdGlvbnNcbiAgY29uc3QgW2NoYW5nZXMsIHNldENoYW5nZXNdID0gdXNlU3RhdGU8c3RyaW5nW10+KFtdKVxuXG4gIC8vIEdldCBNQ1AgdG9vbHMgZnJvbSBhcHAgc3RhdGUgYW5kIG1lcmdlIHdpdGggbG9jYWwgdG9vbHNcbiAgY29uc3QgbWVyZ2VkVG9vbHMgPSB1c2VNZXJnZWRUb29scyh0b29scywgbWNwVG9vbHMsIHRvb2xQZXJtaXNzaW9uQ29udGV4dClcblxuICB1c2VFeGl0T25DdHJsQ0RXaXRoS2V5YmluZGluZ3MoKVxuXG4gIGNvbnN0IGFnZW50c0J5U291cmNlOiBSZWNvcmQ8XG4gICAgU2V0dGluZ1NvdXJjZSB8ICdhbGwnIHwgJ2J1aWx0LWluJyB8ICdwbHVnaW4nLFxuICAgIEFnZW50RGVmaW5pdGlvbltdXG4gID4gPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICAnYnVpbHQtaW4nOiBhbGxBZ2VudHMuZmlsdGVyKGEgPT4gYS5zb3VyY2UgPT09ICdidWlsdC1pbicpLFxuICAgICAgdXNlclNldHRpbmdzOiBhbGxBZ2VudHMuZmlsdGVyKGEgPT4gYS5zb3VyY2UgPT09ICd1c2VyU2V0dGluZ3MnKSxcbiAgICAgIHByb2plY3RTZXR0aW5nczogYWxsQWdlbnRzLmZpbHRlcihhID0+IGEuc291cmNlID09PSAncHJvamVjdFNldHRpbmdzJyksXG4gICAgICBwb2xpY3lTZXR0aW5nczogYWxsQWdlbnRzLmZpbHRlcihhID0+IGEuc291cmNlID09PSAncG9saWN5U2V0dGluZ3MnKSxcbiAgICAgIGxvY2FsU2V0dGluZ3M6IGFsbEFnZW50cy5maWx0ZXIoYSA9PiBhLnNvdXJjZSA9PT0gJ2xvY2FsU2V0dGluZ3MnKSxcbiAgICAgIGZsYWdTZXR0aW5nczogYWxsQWdlbnRzLmZpbHRlcihhID0+IGEuc291cmNlID09PSAnZmxhZ1NldHRpbmdzJyksXG4gICAgICBwbHVnaW46IGFsbEFnZW50cy5maWx0ZXIoYSA9PiBhLnNvdXJjZSA9PT0gJ3BsdWdpbicpLFxuICAgICAgYWxsOiBhbGxBZ2VudHMsXG4gICAgfSksXG4gICAgW2FsbEFnZW50c10sXG4gIClcblxuICBjb25zdCBoYW5kbGVBZ2VudENyZWF0ZWQgPSB1c2VDYWxsYmFjaygobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0Q2hhbmdlcyhwcmV2ID0+IFsuLi5wcmV2LCBtZXNzYWdlXSlcbiAgICBzZXRNb2RlU3RhdGUoeyBtb2RlOiAnbGlzdC1hZ2VudHMnLCBzb3VyY2U6ICdhbGwnIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZUFnZW50RGVsZXRlZCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhZ2VudDogQWdlbnREZWZpbml0aW9uKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBkZWxldGVBZ2VudEZyb21GaWxlKGFnZW50KVxuICAgICAgICBzZXRBcHBTdGF0ZShzdGF0ZSA9PiB7XG4gICAgICAgICAgY29uc3QgYWxsQWdlbnRzID0gc3RhdGUuYWdlbnREZWZpbml0aW9ucy5hbGxBZ2VudHMuZmlsdGVyKFxuICAgICAgICAgICAgYSA9PlxuICAgICAgICAgICAgICAhKGEuYWdlbnRUeXBlID09PSBhZ2VudC5hZ2VudFR5cGUgJiYgYS5zb3VyY2UgPT09IGFnZW50LnNvdXJjZSksXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIGFnZW50RGVmaW5pdGlvbnM6IHtcbiAgICAgICAgICAgICAgLi4uc3RhdGUuYWdlbnREZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgYWxsQWdlbnRzLFxuICAgICAgICAgICAgICBhY3RpdmVBZ2VudHM6IGdldEFjdGl2ZUFnZW50c0Zyb21MaXN0KGFsbEFnZW50cyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBzZXRDaGFuZ2VzKHByZXYgPT4gW1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgYERlbGV0ZWQgYWdlbnQ6ICR7Y2hhbGsuYm9sZChhZ2VudC5hZ2VudFR5cGUpfWAsXG4gICAgICAgIF0pXG4gICAgICAgIC8vIEdvIGJhY2sgdG8gdGhlIGFnZW50cyBsaXN0IGFmdGVyIGRlbGV0aW9uXG4gICAgICAgIHNldE1vZGVTdGF0ZSh7IG1vZGU6ICdsaXN0LWFnZW50cycsIHNvdXJjZTogJ2FsbCcgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ0Vycm9yKHRvRXJyb3IoZXJyb3IpKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEFwcFN0YXRlXSxcbiAgKVxuXG4gIC8vIFJlbmRlciBiYXNlZCBvbiBtb2RlXG4gIHN3aXRjaCAobW9kZVN0YXRlLm1vZGUpIHtcbiAgICBjYXNlICdsaXN0LWFnZW50cyc6IHtcbiAgICAgIGNvbnN0IGFnZW50c1RvU2hvdyA9XG4gICAgICAgIG1vZGVTdGF0ZS5zb3VyY2UgPT09ICdhbGwnXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIC4uLmFnZW50c0J5U291cmNlWydidWlsdC1pbiddLFxuICAgICAgICAgICAgICAuLi5hZ2VudHNCeVNvdXJjZVsndXNlclNldHRpbmdzJ10sXG4gICAgICAgICAgICAgIC4uLmFnZW50c0J5U291cmNlWydwcm9qZWN0U2V0dGluZ3MnXSxcbiAgICAgICAgICAgICAgLi4uYWdlbnRzQnlTb3VyY2VbJ2xvY2FsU2V0dGluZ3MnXSxcbiAgICAgICAgICAgICAgLi4uYWdlbnRzQnlTb3VyY2VbJ3BvbGljeVNldHRpbmdzJ10sXG4gICAgICAgICAgICAgIC4uLmFnZW50c0J5U291cmNlWydmbGFnU2V0dGluZ3MnXSxcbiAgICAgICAgICAgICAgLi4uYWdlbnRzQnlTb3VyY2VbJ3BsdWdpbiddLFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogYWdlbnRzQnlTb3VyY2VbbW9kZVN0YXRlLnNvdXJjZV1cblxuICAgICAgLy8gUmVzb2x2ZSBvdmVycmlkZXMgYW5kIGZpbHRlciB0byB0aGUgYWdlbnRzIHdlIHdhbnQgdG8gc2hvd1xuICAgICAgY29uc3QgYWxsUmVzb2x2ZWQgPSByZXNvbHZlQWdlbnRPdmVycmlkZXMoYWdlbnRzVG9TaG93LCBhZ2VudHMpXG4gICAgICBjb25zdCByZXNvbHZlZEFnZW50czogUmVzb2x2ZWRBZ2VudFtdID0gYWxsUmVzb2x2ZWRcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8QWdlbnRzTGlzdFxuICAgICAgICAgICAgc291cmNlPXttb2RlU3RhdGUuc291cmNlfVxuICAgICAgICAgICAgYWdlbnRzPXtyZXNvbHZlZEFnZW50c31cbiAgICAgICAgICAgIG9uQmFjaz17KCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBleGl0TWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgY2hhbmdlcy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICA/IGBBZ2VudCBjaGFuZ2VzOlxcbiR7Y2hhbmdlcy5qb2luKCdcXG4nKX1gXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICBvbkV4aXQoZXhpdE1lc3NhZ2UgPz8gJ0FnZW50cyBkaWFsb2cgZGlzbWlzc2VkJywge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNoYW5nZXMubGVuZ3RoID09PSAwID8gJ3N5c3RlbScgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25TZWxlY3Q9e2FnZW50ID0+XG4gICAgICAgICAgICAgIHNldE1vZGVTdGF0ZSh7XG4gICAgICAgICAgICAgICAgbW9kZTogJ2FnZW50LW1lbnUnLFxuICAgICAgICAgICAgICAgIGFnZW50LFxuICAgICAgICAgICAgICAgIHByZXZpb3VzTW9kZTogbW9kZVN0YXRlLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25DcmVhdGVOZXc9eygpID0+IHNldE1vZGVTdGF0ZSh7IG1vZGU6ICdjcmVhdGUtYWdlbnQnIH0pfVxuICAgICAgICAgICAgY2hhbmdlcz17Y2hhbmdlc31cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxBZ2VudE5hdmlnYXRpb25Gb290ZXIgLz5cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgY2FzZSAnY3JlYXRlLWFnZW50JzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDcmVhdGVBZ2VudFdpemFyZFxuICAgICAgICAgIHRvb2xzPXttZXJnZWRUb29sc31cbiAgICAgICAgICBleGlzdGluZ0FnZW50cz17YWdlbnRzfVxuICAgICAgICAgIG9uQ29tcGxldGU9e2hhbmRsZUFnZW50Q3JlYXRlZH1cbiAgICAgICAgICBvbkNhbmNlbD17KCkgPT4gc2V0TW9kZVN0YXRlKHsgbW9kZTogJ2xpc3QtYWdlbnRzJywgc291cmNlOiAnYWxsJyB9KX1cbiAgICAgICAgLz5cbiAgICAgIClcblxuICAgIGNhc2UgJ2FnZW50LW1lbnUnOiB7XG4gICAgICAvLyBBbHdheXMgdXNlIGZyZXNoIGFnZW50IGRhdGFcbiAgICAgIGNvbnN0IGZyZXNoQWdlbnQgPSBhbGxBZ2VudHMuZmluZChcbiAgICAgICAgYSA9PlxuICAgICAgICAgIGEuYWdlbnRUeXBlID09PSBtb2RlU3RhdGUuYWdlbnQuYWdlbnRUeXBlICYmXG4gICAgICAgICAgYS5zb3VyY2UgPT09IG1vZGVTdGF0ZS5hZ2VudC5zb3VyY2UsXG4gICAgICApXG4gICAgICBjb25zdCBhZ2VudFRvVXNlID0gZnJlc2hBZ2VudCB8fCBtb2RlU3RhdGUuYWdlbnRcblxuICAgICAgY29uc3QgaXNFZGl0YWJsZSA9XG4gICAgICAgIGFnZW50VG9Vc2Uuc291cmNlICE9PSAnYnVpbHQtaW4nICYmXG4gICAgICAgIGFnZW50VG9Vc2Uuc291cmNlICE9PSAncGx1Z2luJyAmJlxuICAgICAgICBhZ2VudFRvVXNlLnNvdXJjZSAhPT0gJ2ZsYWdTZXR0aW5ncydcbiAgICAgIGNvbnN0IG1lbnVJdGVtcyA9IFtcbiAgICAgICAgeyBsYWJlbDogJ1ZpZXcgYWdlbnQnLCB2YWx1ZTogJ3ZpZXcnIH0sXG4gICAgICAgIC4uLihpc0VkaXRhYmxlXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIHsgbGFiZWw6ICdFZGl0IGFnZW50JywgdmFsdWU6ICdlZGl0JyB9LFxuICAgICAgICAgICAgICB7IGxhYmVsOiAnRGVsZXRlIGFnZW50JywgdmFsdWU6ICdkZWxldGUnIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXSksXG4gICAgICAgIHsgbGFiZWw6ICdCYWNrJywgdmFsdWU6ICdiYWNrJyB9LFxuICAgICAgXVxuXG4gICAgICBjb25zdCBoYW5kbGVNZW51U2VsZWN0ID0gKHZhbHVlOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgJ3ZpZXcnOlxuICAgICAgICAgICAgc2V0TW9kZVN0YXRlKHtcbiAgICAgICAgICAgICAgbW9kZTogJ3ZpZXctYWdlbnQnLFxuICAgICAgICAgICAgICBhZ2VudDogYWdlbnRUb1VzZSxcbiAgICAgICAgICAgICAgcHJldmlvdXNNb2RlOiBtb2RlU3RhdGUucHJldmlvdXNNb2RlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnZWRpdCc6XG4gICAgICAgICAgICBzZXRNb2RlU3RhdGUoe1xuICAgICAgICAgICAgICBtb2RlOiAnZWRpdC1hZ2VudCcsXG4gICAgICAgICAgICAgIGFnZW50OiBhZ2VudFRvVXNlLFxuICAgICAgICAgICAgICBwcmV2aW91c01vZGU6IG1vZGVTdGF0ZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgICBzZXRNb2RlU3RhdGUoe1xuICAgICAgICAgICAgICBtb2RlOiAnZGVsZXRlLWNvbmZpcm0nLFxuICAgICAgICAgICAgICBhZ2VudDogYWdlbnRUb1VzZSxcbiAgICAgICAgICAgICAgcHJldmlvdXNNb2RlOiBtb2RlU3RhdGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdiYWNrJzpcbiAgICAgICAgICAgIHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxEaWFsb2dcbiAgICAgICAgICAgIHRpdGxlPXttb2RlU3RhdGUuYWdlbnQuYWdlbnRUeXBlfVxuICAgICAgICAgICAgb25DYW5jZWw9eygpID0+IHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKX1cbiAgICAgICAgICAgIGhpZGVJbnB1dEd1aWRlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICBvcHRpb25zPXttZW51SXRlbXN9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZU1lbnVTZWxlY3R9XG4gICAgICAgICAgICAgICAgb25DYW5jZWw9eygpID0+IHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2NoYW5nZXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgPEJveCBtYXJnaW5Ub3A9ezF9PlxuICAgICAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+e2NoYW5nZXNbY2hhbmdlcy5sZW5ndGggLSAxXX08L1RleHQ+XG4gICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0RpYWxvZz5cbiAgICAgICAgICA8QWdlbnROYXZpZ2F0aW9uRm9vdGVyIC8+XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIGNhc2UgJ3ZpZXctYWdlbnQnOiB7XG4gICAgICAvLyBBbHdheXMgdXNlIGZyZXNoIGFnZW50IGRhdGEgZnJvbSBhbGxBZ2VudHNcbiAgICAgIGNvbnN0IGZyZXNoQWdlbnQgPSBhbGxBZ2VudHMuZmluZChcbiAgICAgICAgYSA9PlxuICAgICAgICAgIGEuYWdlbnRUeXBlID09PSBtb2RlU3RhdGUuYWdlbnQuYWdlbnRUeXBlICYmXG4gICAgICAgICAgYS5zb3VyY2UgPT09IG1vZGVTdGF0ZS5hZ2VudC5zb3VyY2UsXG4gICAgICApXG4gICAgICBjb25zdCBhZ2VudFRvRGlzcGxheSA9IGZyZXNoQWdlbnQgfHwgbW9kZVN0YXRlLmFnZW50XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPERpYWxvZ1xuICAgICAgICAgICAgdGl0bGU9e2FnZW50VG9EaXNwbGF5LmFnZW50VHlwZX1cbiAgICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PlxuICAgICAgICAgICAgICBzZXRNb2RlU3RhdGUoe1xuICAgICAgICAgICAgICAgIG1vZGU6ICdhZ2VudC1tZW51JyxcbiAgICAgICAgICAgICAgICBhZ2VudDogYWdlbnRUb0Rpc3BsYXksXG4gICAgICAgICAgICAgICAgcHJldmlvdXNNb2RlOiBtb2RlU3RhdGUucHJldmlvdXNNb2RlLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGlkZUlucHV0R3VpZGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QWdlbnREZXRhaWxcbiAgICAgICAgICAgICAgYWdlbnQ9e2FnZW50VG9EaXNwbGF5fVxuICAgICAgICAgICAgICB0b29scz17bWVyZ2VkVG9vbHN9XG4gICAgICAgICAgICAgIGFsbEFnZW50cz17YWxsQWdlbnRzfVxuICAgICAgICAgICAgICBvbkJhY2s9eygpID0+XG4gICAgICAgICAgICAgICAgc2V0TW9kZVN0YXRlKHtcbiAgICAgICAgICAgICAgICAgIG1vZGU6ICdhZ2VudC1tZW51JyxcbiAgICAgICAgICAgICAgICAgIGFnZW50OiBhZ2VudFRvRGlzcGxheSxcbiAgICAgICAgICAgICAgICAgIHByZXZpb3VzTW9kZTogbW9kZVN0YXRlLnByZXZpb3VzTW9kZSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvRGlhbG9nPlxuICAgICAgICAgIDxBZ2VudE5hdmlnYXRpb25Gb290ZXIgaW5zdHJ1Y3Rpb25zPVwiUHJlc3MgRW50ZXIgb3IgRXNjIHRvIGdvIGJhY2tcIiAvPlxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBjYXNlICdkZWxldGUtY29uZmlybSc6IHtcbiAgICAgIGNvbnN0IGRlbGV0ZU9wdGlvbnMgPSBbXG4gICAgICAgIHsgbGFiZWw6ICdZZXMsIGRlbGV0ZScsIHZhbHVlOiAneWVzJyB9LFxuICAgICAgICB7IGxhYmVsOiAnTm8sIGNhbmNlbCcsIHZhbHVlOiAnbm8nIH0sXG4gICAgICBdXG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPERpYWxvZ1xuICAgICAgICAgICAgdGl0bGU9XCJEZWxldGUgYWdlbnRcIlxuICAgICAgICAgICAgb25DYW5jZWw9eygpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCdwcmV2aW91c01vZGUnIGluIG1vZGVTdGF0ZSlcbiAgICAgICAgICAgICAgICBzZXRNb2RlU3RhdGUobW9kZVN0YXRlLnByZXZpb3VzTW9kZSlcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjb2xvcj1cImVycm9yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgYWdlbnR7JyAnfVxuICAgICAgICAgICAgICA8VGV4dCBib2xkPnttb2RlU3RhdGUuYWdlbnQuYWdlbnRUeXBlfTwvVGV4dD4/XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPlNvdXJjZToge21vZGVTdGF0ZS5hZ2VudC5zb3VyY2V9PC9UZXh0PlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtkZWxldGVPcHRpb25zfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSAneWVzJykge1xuICAgICAgICAgICAgICAgICAgICB2b2lkIGhhbmRsZUFnZW50RGVsZXRlZChtb2RlU3RhdGUuYWdlbnQpXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJ3ByZXZpb3VzTW9kZScgaW4gbW9kZVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZVN0YXRlKG1vZGVTdGF0ZS5wcmV2aW91c01vZGUpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoJ3ByZXZpb3VzTW9kZScgaW4gbW9kZVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0RpYWxvZz5cbiAgICAgICAgICA8QWdlbnROYXZpZ2F0aW9uRm9vdGVyIGluc3RydWN0aW9ucz1cIlByZXNzIOKGkeKGkyB0byBuYXZpZ2F0ZSwgRW50ZXIgdG8gc2VsZWN0LCBFc2MgdG8gY2FuY2VsXCIgLz5cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgY2FzZSAnZWRpdC1hZ2VudCc6IHtcbiAgICAgIC8vIEFsd2F5cyB1c2UgZnJlc2ggYWdlbnQgZGF0YVxuICAgICAgY29uc3QgZnJlc2hBZ2VudCA9IGFsbEFnZW50cy5maW5kKFxuICAgICAgICBhID0+XG4gICAgICAgICAgYS5hZ2VudFR5cGUgPT09IG1vZGVTdGF0ZS5hZ2VudC5hZ2VudFR5cGUgJiZcbiAgICAgICAgICBhLnNvdXJjZSA9PT0gbW9kZVN0YXRlLmFnZW50LnNvdXJjZSxcbiAgICAgIClcbiAgICAgIGNvbnN0IGFnZW50VG9FZGl0ID0gZnJlc2hBZ2VudCB8fCBtb2RlU3RhdGUuYWdlbnRcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RGlhbG9nXG4gICAgICAgICAgICB0aXRsZT17YEVkaXQgYWdlbnQ6ICR7YWdlbnRUb0VkaXQuYWdlbnRUeXBlfWB9XG4gICAgICAgICAgICBvbkNhbmNlbD17KCkgPT4gc2V0TW9kZVN0YXRlKG1vZGVTdGF0ZS5wcmV2aW91c01vZGUpfVxuICAgICAgICAgICAgaGlkZUlucHV0R3VpZGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QWdlbnRFZGl0b3JcbiAgICAgICAgICAgICAgYWdlbnQ9e2FnZW50VG9FZGl0fVxuICAgICAgICAgICAgICB0b29scz17bWVyZ2VkVG9vbHN9XG4gICAgICAgICAgICAgIG9uU2F2ZWQ9e21lc3NhZ2UgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZUFnZW50Q3JlYXRlZChtZXNzYWdlKVxuICAgICAgICAgICAgICAgIHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbkJhY2s9eygpID0+IHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9EaWFsb2c+XG4gICAgICAgICAgPEFnZW50TmF2aWdhdGlvbkZvb3RlciAvPlxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDdEQsY0FBY0MsYUFBYSxRQUFRLGlDQUFpQztBQUNwRSxjQUFjQyxvQkFBb0IsUUFBUSxtQkFBbUI7QUFDN0QsU0FBU0MsOEJBQThCLFFBQVEsK0NBQStDO0FBQzlGLFNBQVNDLGNBQWMsUUFBUSwrQkFBK0I7QUFDOUQsU0FBU0MsR0FBRyxFQUFFQyxJQUFJLFFBQVEsY0FBYztBQUN4QyxTQUFTQyxXQUFXLEVBQUVDLGNBQWMsUUFBUSx5QkFBeUI7QUFDckUsY0FBY0MsS0FBSyxRQUFRLGVBQWU7QUFDMUMsU0FDRSxLQUFLQyxhQUFhLEVBQ2xCQyxxQkFBcUIsUUFDaEIsdUNBQXVDO0FBQzlDLFNBQ0UsS0FBS0MsZUFBZSxFQUNwQkMsdUJBQXVCLFFBQ2xCLHdDQUF3QztBQUMvQyxTQUFTQyxPQUFPLFFBQVEsdUJBQXVCO0FBQy9DLFNBQVNDLFFBQVEsUUFBUSxvQkFBb0I7QUFDN0MsU0FBU0MsTUFBTSxRQUFRLDJCQUEyQjtBQUNsRCxTQUFTQyxNQUFNLFFBQVEsNEJBQTRCO0FBQ25ELFNBQVNDLFdBQVcsUUFBUSxrQkFBa0I7QUFDOUMsU0FBU0MsV0FBVyxRQUFRLGtCQUFrQjtBQUM5QyxTQUFTQyxxQkFBcUIsUUFBUSw0QkFBNEI7QUFDbEUsU0FBU0MsVUFBVSxRQUFRLGlCQUFpQjtBQUM1QyxTQUFTQyxtQkFB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
|
|
801
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjaGFsayIsIlJlYWN0IiwidXNlQ2FsbGJhY2siLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJTZXR0aW5nU291cmNlIiwiQ29tbWFuZFJlc3VsdERpc3BsYXkiLCJ1c2VFeGl0T25DdHJsQ0RXaXRoS2V5YmluZGluZ3MiLCJ1c2VNZXJnZWRUb29scyIsIkJveCIsIlRleHQiLCJ1c2VBcHBTdGF0ZSIsInVzZVNldEFwcFN0YXRlIiwiVG9vbHMiLCJSZXNvbHZlZEFnZW50IiwicmVzb2x2ZUFnZW50T3ZlcnJpZGVzIiwiQWdlbnREZWZpbml0aW9uIiwiZ2V0QWN0aXZlQWdlbnRzRnJvbUxpc3QiLCJ0b0Vycm9yIiwibG9nRXJyb3IiLCJTZWxlY3QiLCJEaWFsb2ciLCJBZ2VudERldGFpbCIsIkFnZW50RWRpdG9yIiwiQWdlbnROYXZpZ2F0aW9uRm9vdGVyIiwiQWdlbnRzTGlzdCIsImRlbGV0ZUFnZW50RnJvbUZpbGUiLCJDcmVhdGVBZ2VudFdpemFyZCIsIk1vZGVTdGF0ZSIsIlByb3BzIiwidG9vbHMiLCJvbkV4aXQiLCJyZXN1bHQiLCJvcHRpb25zIiwiZGlzcGxheSIsIkFnZW50c01lbnUiLCJ0MCIsIiQiLCJfYyIsInQxIiwiU3ltYm9sIiwiZm9yIiwibW9kZSIsInNvdXJjZSIsIm1vZGVTdGF0ZSIsInNldE1vZGVTdGF0ZSIsImFnZW50RGVmaW5pdGlvbnMiLCJfdGVtcCIsIm1jcFRvb2xzIiwiX3RlbXAyIiwidG9vbFBlcm1pc3Npb25Db250ZXh0IiwiX3RlbXAzIiwic2V0QXBwU3RhdGUiLCJhbGxBZ2VudHMiLCJhY3RpdmVBZ2VudHMiLCJhZ2VudHMiLCJ0MiIsImNoYW5nZXMiLCJzZXRDaGFuZ2VzIiwibWVyZ2VkVG9vbHMiLCJ0MyIsImZpbHRlciIsIl90ZW1wNCIsInQ0IiwiX3RlbXA1IiwidDUiLCJfdGVtcDYiLCJ0NiIsIl90ZW1wNyIsInQ3IiwiX3RlbXA4IiwidDgiLCJfdGVtcDkiLCJ0OSIsIl90ZW1wMCIsInQxMCIsInVzZXJTZXR0aW5ncyIsInByb2plY3RTZXR0aW5ncyIsInBvbGljeVNldHRpbmdzIiwibG9jYWxTZXR0aW5ncyIsImZsYWdTZXR0aW5ncyIsInBsdWdpbiIsImFsbCIsImFnZW50c0J5U291cmNlIiwidDExIiwibWVzc2FnZSIsInByZXYiLCJoYW5kbGVBZ2VudENyZWF0ZWQiLCJ0MTIiLCJhZ2VudCIsInN0YXRlIiwiYWxsQWdlbnRzXzAiLCJhXzYiLCJhIiwiYWdlbnRUeXBlIiwicHJldl8wIiwiYm9sZCIsInQxMyIsImVycm9yIiwiaGFuZGxlQWdlbnREZWxldGVkIiwiYWdlbnRzVG9TaG93IiwidDE0IiwiYWxsUmVzb2x2ZWQiLCJyZXNvbHZlZEFnZW50cyIsInQxNSIsImV4aXRNZXNzYWdlIiwibGVuZ3RoIiwiam9pbiIsInVuZGVmaW5lZCIsInQxNiIsImFnZW50XzAiLCJwcmV2aW91c01vZGUiLCJ0MTciLCJ0MTgiLCJ0MTkiLCJ0MjAiLCJhXzkiLCJmaW5kIiwiZnJlc2hBZ2VudF8xIiwiYWdlbnRUb1VzZSIsImlzRWRpdGFibGUiLCJsYWJlbCIsInZhbHVlIiwibWVudUl0ZW1zIiwidmFsdWVfMCIsImJiMTI5IiwiaGFuZGxlTWVudVNlbGVjdCIsInQyMSIsInQyMiIsInQyMyIsInQyNCIsInQyNSIsInQyNiIsImFfOCIsImZyZXNoQWdlbnRfMCIsImFnZW50VG9EaXNwbGF5IiwiZGVsZXRlT3B0aW9ucyIsImFfNyIsImZyZXNoQWdlbnQiLCJhZ2VudFRvRWRpdCIsIm1lc3NhZ2VfMCIsImFfNSIsImFfNCIsImFfMyIsImFfMiIsImFfMSIsImFfMCIsInNfMSIsInMiLCJzXzAiLCJtY3AiXSwic291cmNlcyI6WyJBZ2VudHNNZW51LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBTZXR0aW5nU291cmNlIH0gZnJvbSAnc3JjL3V0aWxzL3NldHRpbmdzL2NvbnN0YW50cy5qcydcbmltcG9ydCB0eXBlIHsgQ29tbWFuZFJlc3VsdERpc3BsYXkgfSBmcm9tICcuLi8uLi9jb21tYW5kcy5qcydcbmltcG9ydCB7IHVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncyB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncy5qcydcbmltcG9ydCB7IHVzZU1lcmdlZFRvb2xzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlTWVyZ2VkVG9vbHMuanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi9pbmsuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZSwgdXNlU2V0QXBwU3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9BcHBTdGF0ZS5qcydcbmltcG9ydCB0eXBlIHsgVG9vbHMgfSBmcm9tICcuLi8uLi9Ub29sLmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBSZXNvbHZlZEFnZW50LFxuICByZXNvbHZlQWdlbnRPdmVycmlkZXMsXG59IGZyb20gJy4uLy4uL3Rvb2xzL0FnZW50VG9vbC9hZ2VudERpc3BsYXkuanMnXG5pbXBvcnQge1xuICB0eXBlIEFnZW50RGVmaW5pdGlvbixcbiAgZ2V0QWN0aXZlQWdlbnRzRnJvbUxpc3QsXG59IGZyb20gJy4uLy4uL3Rvb2xzL0FnZW50VG9vbC9sb2FkQWdlbnRzRGlyLmpzJ1xuaW1wb3J0IHsgdG9FcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL2Vycm9ycy5qcydcbmltcG9ydCB7IGxvZ0Vycm9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9nLmpzJ1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi4vQ3VzdG9tU2VsZWN0L3NlbGVjdC5qcydcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vRGlhbG9nLmpzJ1xuaW1wb3J0IHsgQWdlbnREZXRhaWwgfSBmcm9tICcuL0FnZW50RGV0YWlsLmpzJ1xuaW1wb3J0IHsgQWdlbnRFZGl0b3IgfSBmcm9tICcuL0FnZW50RWRpdG9yLmpzJ1xuaW1wb3J0IHsgQWdlbnROYXZpZ2F0aW9uRm9vdGVyIH0gZnJvbSAnLi9BZ2VudE5hdmlnYXRpb25Gb290ZXIuanMnXG5pbXBvcnQgeyBBZ2VudHNMaXN0IH0gZnJvbSAnLi9BZ2VudHNMaXN0LmpzJ1xuaW1wb3J0IHsgZGVsZXRlQWdlbnRGcm9tRmlsZSB9IGZyb20gJy4vYWdlbnRGaWxlVXRpbHMuanMnXG5pbXBvcnQgeyBDcmVhdGVBZ2VudFdpemFyZCB9IGZyb20gJy4vbmV3LWFnZW50LWNyZWF0aW9uL0NyZWF0ZUFnZW50V2l6YXJkLmpzJ1xuaW1wb3J0IHR5cGUgeyBNb2RlU3RhdGUgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICB0b29sczogVG9vbHNcbiAgb25FeGl0OiAoXG4gICAgcmVzdWx0Pzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IGRpc3BsYXk/OiBDb21tYW5kUmVzdWx0RGlzcGxheSB9LFxuICApID0+IHZvaWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFnZW50c01lbnUoeyB0b29scywgb25FeGl0IH06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW21vZGVTdGF0ZSwgc2V0TW9kZVN0YXRlXSA9IHVzZVN0YXRlPE1vZGVTdGF0ZT4oe1xuICAgIG1vZGU6ICdsaXN0LWFnZW50cycsXG4gICAgc291cmNlOiAnYWxsJyxcbiAgfSlcbiAgY29uc3QgYWdlbnREZWZpbml0aW9ucyA9IHVzZUFwcFN0YXRlKHMgPT4gcy5hZ2VudERlZmluaXRpb25zKVxuICBjb25zdCBtY3BUb29scyA9IHVzZUFwcFN0YXRlKHMgPT4gcy5tY3AudG9vbHMpXG4gIGNvbnN0IHRvb2xQZXJtaXNzaW9uQ29udGV4dCA9IHVzZUFwcFN0YXRlKHMgPT4gcy50b29sUGVybWlzc2lvbkNvbnRleHQpXG4gIGNvbnN0IHNldEFwcFN0YXRlID0gdXNlU2V0QXBwU3RhdGUoKVxuICBjb25zdCB7IGFsbEFnZW50cywgYWN0aXZlQWdlbnRzOiBhZ2VudHMgfSA9IGFnZW50RGVmaW5pdGlvbnNcbiAgY29uc3QgW2NoYW5nZXMsIHNldENoYW5nZXNdID0gdXNlU3RhdGU8c3RyaW5nW10+KFtdKVxuXG4gIC8vIEdldCBNQ1AgdG9vbHMgZnJvbSBhcHAgc3RhdGUgYW5kIG1lcmdlIHdpdGggbG9jYWwgdG9vbHNcbiAgY29uc3QgbWVyZ2VkVG9vbHMgPSB1c2VNZXJnZWRUb29scyh0b29scywgbWNwVG9vbHMsIHRvb2xQZXJtaXNzaW9uQ29udGV4dClcblxuICB1c2VFeGl0T25DdHJsQ0RXaXRoS2V5YmluZGluZ3MoKVxuXG4gIGNvbnN0IGFnZW50c0J5U291cmNlOiBSZWNvcmQ8XG4gICAgU2V0dGluZ1NvdXJjZSB8ICdhbGwnIHwgJ2J1aWx0LWluJyB8ICdwbHVnaW4nLFxuICAgIEFnZW50RGVmaW5pdGlvbltdXG4gID4gPSB1c2VNZW1vKFxuICAgICgpID0+ICh7XG4gICAgICAnYnVpbHQtaW4nOiBhbGxBZ2VudHMuZmlsdGVyKGEgPT4gYS5zb3VyY2UgPT09ICdidWlsdC1pbicpLFxuICAgICAgdXNlclNldHRpbmdzOiBhbGxBZ2VudHMuZmlsdGVyKGEgPT4gYS5zb3VyY2UgPT09ICd1c2VyU2V0dGluZ3MnKSxcbiAgICAgIHByb2plY3RTZXR0aW5nczogYWxsQWdlbnRzLmZpbHRlcihhID0+IGEuc291cmNlID09PSAncHJvamVjdFNldHRpbmdzJyksXG4gICAgICBwb2xpY3lTZXR0aW5nczogYWxsQWdlbnRzLmZpbHRlcihhID0+IGEuc291cmNlID09PSAncG9saWN5U2V0dGluZ3MnKSxcbiAgICAgIGxvY2FsU2V0dGluZ3M6IGFsbEFnZW50cy5maWx0ZXIoYSA9PiBhLnNvdXJjZSA9PT0gJ2xvY2FsU2V0dGluZ3MnKSxcbiAgICAgIGZsYWdTZXR0aW5nczogYWxsQWdlbnRzLmZpbHRlcihhID0+IGEuc291cmNlID09PSAnZmxhZ1NldHRpbmdzJyksXG4gICAgICBwbHVnaW46IGFsbEFnZW50cy5maWx0ZXIoYSA9PiBhLnNvdXJjZSA9PT0gJ3BsdWdpbicpLFxuICAgICAgYWxsOiBhbGxBZ2VudHMsXG4gICAgfSksXG4gICAgW2FsbEFnZW50c10sXG4gIClcblxuICBjb25zdCBoYW5kbGVBZ2VudENyZWF0ZWQgPSB1c2VDYWxsYmFjaygobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgc2V0Q2hhbmdlcyhwcmV2ID0+IFsuLi5wcmV2LCBtZXNzYWdlXSlcbiAgICBzZXRNb2RlU3RhdGUoeyBtb2RlOiAnbGlzdC1hZ2VudHMnLCBzb3VyY2U6ICdhbGwnIH0pXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZUFnZW50RGVsZXRlZCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChhZ2VudDogQWdlbnREZWZpbml0aW9uKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBkZWxldGVBZ2VudEZyb21GaWxlKGFnZW50KVxuICAgICAgICBzZXRBcHBTdGF0ZShzdGF0ZSA9PiB7XG4gICAgICAgICAgY29uc3QgYWxsQWdlbnRzID0gc3RhdGUuYWdlbnREZWZpbml0aW9ucy5hbGxBZ2VudHMuZmlsdGVyKFxuICAgICAgICAgICAgYSA9PlxuICAgICAgICAgICAgICAhKGEuYWdlbnRUeXBlID09PSBhZ2VudC5hZ2VudFR5cGUgJiYgYS5zb3VyY2UgPT09IGFnZW50LnNvdXJjZSksXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgIGFnZW50RGVmaW5pdGlvbnM6IHtcbiAgICAgICAgICAgICAgLi4uc3RhdGUuYWdlbnREZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgYWxsQWdlbnRzLFxuICAgICAgICAgICAgICBhY3RpdmVBZ2VudHM6IGdldEFjdGl2ZUFnZW50c0Zyb21MaXN0KGFsbEFnZW50cyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBzZXRDaGFuZ2VzKHByZXYgPT4gW1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgYERlbGV0ZWQgYWdlbnQ6ICR7Y2hhbGsuYm9sZChhZ2VudC5hZ2VudFR5cGUpfWAsXG4gICAgICAgIF0pXG4gICAgICAgIC8vIEdvIGJhY2sgdG8gdGhlIGFnZW50cyBsaXN0IGFmdGVyIGRlbGV0aW9uXG4gICAgICAgIHNldE1vZGVTdGF0ZSh7IG1vZGU6ICdsaXN0LWFnZW50cycsIHNvdXJjZTogJ2FsbCcgfSlcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ0Vycm9yKHRvRXJyb3IoZXJyb3IpKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NldEFwcFN0YXRlXSxcbiAgKVxuXG4gIC8vIFJlbmRlciBiYXNlZCBvbiBtb2RlXG4gIHN3aXRjaCAobW9kZVN0YXRlLm1vZGUpIHtcbiAgICBjYXNlICdsaXN0LWFnZW50cyc6IHtcbiAgICAgIGNvbnN0IGFnZW50c1RvU2hvdyA9XG4gICAgICAgIG1vZGVTdGF0ZS5zb3VyY2UgPT09ICdhbGwnXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIC4uLmFnZW50c0J5U291cmNlWydidWlsdC1pbiddLFxuICAgICAgICAgICAgICAuLi5hZ2VudHNCeVNvdXJjZVsndXNlclNldHRpbmdzJ10sXG4gICAgICAgICAgICAgIC4uLmFnZW50c0J5U291cmNlWydwcm9qZWN0U2V0dGluZ3MnXSxcbiAgICAgICAgICAgICAgLi4uYWdlbnRzQnlTb3VyY2VbJ2xvY2FsU2V0dGluZ3MnXSxcbiAgICAgICAgICAgICAgLi4uYWdlbnRzQnlTb3VyY2VbJ3BvbGljeVNldHRpbmdzJ10sXG4gICAgICAgICAgICAgIC4uLmFnZW50c0J5U291cmNlWydmbGFnU2V0dGluZ3MnXSxcbiAgICAgICAgICAgICAgLi4uYWdlbnRzQnlTb3VyY2VbJ3BsdWdpbiddLFxuICAgICAgICAgICAgXVxuICAgICAgICAgIDogYWdlbnRzQnlTb3VyY2VbbW9kZVN0YXRlLnNvdXJjZV1cblxuICAgICAgLy8gUmVzb2x2ZSBvdmVycmlkZXMgYW5kIGZpbHRlciB0byB0aGUgYWdlbnRzIHdlIHdhbnQgdG8gc2hvd1xuICAgICAgY29uc3QgYWxsUmVzb2x2ZWQgPSByZXNvbHZlQWdlbnRPdmVycmlkZXMoYWdlbnRzVG9TaG93LCBhZ2VudHMpXG4gICAgICBjb25zdCByZXNvbHZlZEFnZW50czogUmVzb2x2ZWRBZ2VudFtdID0gYWxsUmVzb2x2ZWRcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8QWdlbnRzTGlzdFxuICAgICAgICAgICAgc291cmNlPXttb2RlU3RhdGUuc291cmNlfVxuICAgICAgICAgICAgYWdlbnRzPXtyZXNvbHZlZEFnZW50c31cbiAgICAgICAgICAgIG9uQmFjaz17KCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBleGl0TWVzc2FnZSA9XG4gICAgICAgICAgICAgICAgY2hhbmdlcy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICA/IGBBZ2VudCBjaGFuZ2VzOlxcbiR7Y2hhbmdlcy5qb2luKCdcXG4nKX1gXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICBvbkV4aXQoZXhpdE1lc3NhZ2UgPz8gJ0FnZW50cyBkaWFsb2cgZGlzbWlzc2VkJywge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNoYW5nZXMubGVuZ3RoID09PSAwID8gJ3N5c3RlbScgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25TZWxlY3Q9e2FnZW50ID0+XG4gICAgICAgICAgICAgIHNldE1vZGVTdGF0ZSh7XG4gICAgICAgICAgICAgICAgbW9kZTogJ2FnZW50LW1lbnUnLFxuICAgICAgICAgICAgICAgIGFnZW50LFxuICAgICAgICAgICAgICAgIHByZXZpb3VzTW9kZTogbW9kZVN0YXRlLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25DcmVhdGVOZXc9eygpID0+IHNldE1vZGVTdGF0ZSh7IG1vZGU6ICdjcmVhdGUtYWdlbnQnIH0pfVxuICAgICAgICAgICAgY2hhbmdlcz17Y2hhbmdlc31cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxBZ2VudE5hdmlnYXRpb25Gb290ZXIgLz5cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgY2FzZSAnY3JlYXRlLWFnZW50JzpcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxDcmVhdGVBZ2VudFdpemFyZFxuICAgICAgICAgIHRvb2xzPXttZXJnZWRUb29sc31cbiAgICAgICAgICBleGlzdGluZ0FnZW50cz17YWdlbnRzfVxuICAgICAgICAgIG9uQ29tcGxldGU9e2hhbmRsZUFnZW50Q3JlYXRlZH1cbiAgICAgICAgICBvbkNhbmNlbD17KCkgPT4gc2V0TW9kZVN0YXRlKHsgbW9kZTogJ2xpc3QtYWdlbnRzJywgc291cmNlOiAnYWxsJyB9KX1cbiAgICAgICAgLz5cbiAgICAgIClcblxuICAgIGNhc2UgJ2FnZW50LW1lbnUnOiB7XG4gICAgICAvLyBBbHdheXMgdXNlIGZyZXNoIGFnZW50IGRhdGFcbiAgICAgIGNvbnN0IGZyZXNoQWdlbnQgPSBhbGxBZ2VudHMuZmluZChcbiAgICAgICAgYSA9PlxuICAgICAgICAgIGEuYWdlbnRUeXBlID09PSBtb2RlU3RhdGUuYWdlbnQuYWdlbnRUeXBlICYmXG4gICAgICAgICAgYS5zb3VyY2UgPT09IG1vZGVTdGF0ZS5hZ2VudC5zb3VyY2UsXG4gICAgICApXG4gICAgICBjb25zdCBhZ2VudFRvVXNlID0gZnJlc2hBZ2VudCB8fCBtb2RlU3RhdGUuYWdlbnRcblxuICAgICAgY29uc3QgaXNFZGl0YWJsZSA9XG4gICAgICAgIGFnZW50VG9Vc2Uuc291cmNlICE9PSAnYnVpbHQtaW4nICYmXG4gICAgICAgIGFnZW50VG9Vc2Uuc291cmNlICE9PSAncGx1Z2luJyAmJlxuICAgICAgICBhZ2VudFRvVXNlLnNvdXJjZSAhPT0gJ2ZsYWdTZXR0aW5ncydcbiAgICAgIGNvbnN0IG1lbnVJdGVtcyA9IFtcbiAgICAgICAgeyBsYWJlbDogJ1ZpZXcgYWdlbnQnLCB2YWx1ZTogJ3ZpZXcnIH0sXG4gICAgICAgIC4uLihpc0VkaXRhYmxlXG4gICAgICAgICAgPyBbXG4gICAgICAgICAgICAgIHsgbGFiZWw6ICdFZGl0IGFnZW50JywgdmFsdWU6ICdlZGl0JyB9LFxuICAgICAgICAgICAgICB7IGxhYmVsOiAnRGVsZXRlIGFnZW50JywgdmFsdWU6ICdkZWxldGUnIH0sXG4gICAgICAgICAgICBdXG4gICAgICAgICAgOiBbXSksXG4gICAgICAgIHsgbGFiZWw6ICdCYWNrJywgdmFsdWU6ICdiYWNrJyB9LFxuICAgICAgXVxuXG4gICAgICBjb25zdCBoYW5kbGVNZW51U2VsZWN0ID0gKHZhbHVlOiBzdHJpbmcpOiB2b2lkID0+IHtcbiAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgJ3ZpZXcnOlxuICAgICAgICAgICAgc2V0TW9kZVN0YXRlKHtcbiAgICAgICAgICAgICAgbW9kZTogJ3ZpZXctYWdlbnQnLFxuICAgICAgICAgICAgICBhZ2VudDogYWdlbnRUb1VzZSxcbiAgICAgICAgICAgICAgcHJldmlvdXNNb2RlOiBtb2RlU3RhdGUucHJldmlvdXNNb2RlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnZWRpdCc6XG4gICAgICAgICAgICBzZXRNb2RlU3RhdGUoe1xuICAgICAgICAgICAgICBtb2RlOiAnZWRpdC1hZ2VudCcsXG4gICAgICAgICAgICAgIGFnZW50OiBhZ2VudFRvVXNlLFxuICAgICAgICAgICAgICBwcmV2aW91c01vZGU6IG1vZGVTdGF0ZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgICBzZXRNb2RlU3RhdGUoe1xuICAgICAgICAgICAgICBtb2RlOiAnZGVsZXRlLWNvbmZpcm0nLFxuICAgICAgICAgICAgICBhZ2VudDogYWdlbnRUb1VzZSxcbiAgICAgICAgICAgICAgcHJldmlvdXNNb2RlOiBtb2RlU3RhdGUsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdiYWNrJzpcbiAgICAgICAgICAgIHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxEaWFsb2dcbiAgICAgICAgICAgIHRpdGxlPXttb2RlU3RhdGUuYWdlbnQuYWdlbnRUeXBlfVxuICAgICAgICAgICAgb25DYW5jZWw9eygpID0+IHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKX1cbiAgICAgICAgICAgIGhpZGVJbnB1dEd1aWRlXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICBvcHRpb25zPXttZW51SXRlbXN9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZU1lbnVTZWxlY3R9XG4gICAgICAgICAgICAgICAgb25DYW5jZWw9eygpID0+IHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge2NoYW5nZXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgPEJveCBtYXJnaW5Ub3A9ezF9PlxuICAgICAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+e2NoYW5nZXNbY2hhbmdlcy5sZW5ndGggLSAxXX08L1RleHQ+XG4gICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0RpYWxvZz5cbiAgICAgICAgICA8QWdlbnROYXZpZ2F0aW9uRm9vdGVyIC8+XG4gICAgICAgIDwvPlxuICAgICAgKVxuICAgIH1cblxuICAgIGNhc2UgJ3ZpZXctYWdlbnQnOiB7XG4gICAgICAvLyBBbHdheXMgdXNlIGZyZXNoIGFnZW50IGRhdGEgZnJvbSBhbGxBZ2VudHNcbiAgICAgIGNvbnN0IGZyZXNoQWdlbnQgPSBhbGxBZ2VudHMuZmluZChcbiAgICAgICAgYSA9PlxuICAgICAgICAgIGEuYWdlbnRUeXBlID09PSBtb2RlU3RhdGUuYWdlbnQuYWdlbnRUeXBlICYmXG4gICAgICAgICAgYS5zb3VyY2UgPT09IG1vZGVTdGF0ZS5hZ2VudC5zb3VyY2UsXG4gICAgICApXG4gICAgICBjb25zdCBhZ2VudFRvRGlzcGxheSA9IGZyZXNoQWdlbnQgfHwgbW9kZVN0YXRlLmFnZW50XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPERpYWxvZ1xuICAgICAgICAgICAgdGl0bGU9e2FnZW50VG9EaXNwbGF5LmFnZW50VHlwZX1cbiAgICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PlxuICAgICAgICAgICAgICBzZXRNb2RlU3RhdGUoe1xuICAgICAgICAgICAgICAgIG1vZGU6ICdhZ2VudC1tZW51JyxcbiAgICAgICAgICAgICAgICBhZ2VudDogYWdlbnRUb0Rpc3BsYXksXG4gICAgICAgICAgICAgICAgcHJldmlvdXNNb2RlOiBtb2RlU3RhdGUucHJldmlvdXNNb2RlLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGlkZUlucHV0R3VpZGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QWdlbnREZXRhaWxcbiAgICAgICAgICAgICAgYWdlbnQ9e2FnZW50VG9EaXNwbGF5fVxuICAgICAgICAgICAgICB0b29scz17bWVyZ2VkVG9vbHN9XG4gICAgICAgICAgICAgIGFsbEFnZW50cz17YWxsQWdlbnRzfVxuICAgICAgICAgICAgICBvbkJhY2s9eygpID0+XG4gICAgICAgICAgICAgICAgc2V0TW9kZVN0YXRlKHtcbiAgICAgICAgICAgICAgICAgIG1vZGU6ICdhZ2VudC1tZW51JyxcbiAgICAgICAgICAgICAgICAgIGFnZW50OiBhZ2VudFRvRGlzcGxheSxcbiAgICAgICAgICAgICAgICAgIHByZXZpb3VzTW9kZTogbW9kZVN0YXRlLnByZXZpb3VzTW9kZSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvRGlhbG9nPlxuICAgICAgICAgIDxBZ2VudE5hdmlnYXRpb25Gb290ZXIgaW5zdHJ1Y3Rpb25zPVwiUHJlc3MgRW50ZXIgb3IgRXNjIHRvIGdvIGJhY2tcIiAvPlxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBjYXNlICdkZWxldGUtY29uZmlybSc6IHtcbiAgICAgIGNvbnN0IGRlbGV0ZU9wdGlvbnMgPSBbXG4gICAgICAgIHsgbGFiZWw6ICdZZXMsIGRlbGV0ZScsIHZhbHVlOiAneWVzJyB9LFxuICAgICAgICB7IGxhYmVsOiAnTm8sIGNhbmNlbCcsIHZhbHVlOiAnbm8nIH0sXG4gICAgICBdXG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPERpYWxvZ1xuICAgICAgICAgICAgdGl0bGU9XCJEZWxldGUgYWdlbnRcIlxuICAgICAgICAgICAgb25DYW5jZWw9eygpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCdwcmV2aW91c01vZGUnIGluIG1vZGVTdGF0ZSlcbiAgICAgICAgICAgICAgICBzZXRNb2RlU3RhdGUobW9kZVN0YXRlLnByZXZpb3VzTW9kZSlcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBjb2xvcj1cImVycm9yXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGUgYWdlbnR7JyAnfVxuICAgICAgICAgICAgICA8VGV4dCBib2xkPnttb2RlU3RhdGUuYWdlbnQuYWdlbnRUeXBlfTwvVGV4dD4/XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPlNvdXJjZToge21vZGVTdGF0ZS5hZ2VudC5zb3VyY2V9PC9UZXh0PlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgICBvcHRpb25zPXtkZWxldGVPcHRpb25zfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSAneWVzJykge1xuICAgICAgICAgICAgICAgICAgICB2b2lkIGhhbmRsZUFnZW50RGVsZXRlZChtb2RlU3RhdGUuYWdlbnQpXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJ3ByZXZpb3VzTW9kZScgaW4gbW9kZVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZVN0YXRlKG1vZGVTdGF0ZS5wcmV2aW91c01vZGUpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAoJ3ByZXZpb3VzTW9kZScgaW4gbW9kZVN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8L0RpYWxvZz5cbiAgICAgICAgICA8QWdlbnROYXZpZ2F0aW9uRm9vdGVyIGluc3RydWN0aW9ucz1cIlByZXNzIOKGkeKGkyB0byBuYXZpZ2F0ZSwgRW50ZXIgdG8gc2VsZWN0LCBFc2MgdG8gY2FuY2VsXCIgLz5cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgY2FzZSAnZWRpdC1hZ2VudCc6IHtcbiAgICAgIC8vIEFsd2F5cyB1c2UgZnJlc2ggYWdlbnQgZGF0YVxuICAgICAgY29uc3QgZnJlc2hBZ2VudCA9IGFsbEFnZW50cy5maW5kKFxuICAgICAgICBhID0+XG4gICAgICAgICAgYS5hZ2VudFR5cGUgPT09IG1vZGVTdGF0ZS5hZ2VudC5hZ2VudFR5cGUgJiZcbiAgICAgICAgICBhLnNvdXJjZSA9PT0gbW9kZVN0YXRlLmFnZW50LnNvdXJjZSxcbiAgICAgIClcbiAgICAgIGNvbnN0IGFnZW50VG9FZGl0ID0gZnJlc2hBZ2VudCB8fCBtb2RlU3RhdGUuYWdlbnRcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RGlhbG9nXG4gICAgICAgICAgICB0aXRsZT17YEVkaXQgYWdlbnQ6ICR7YWdlbnRUb0VkaXQuYWdlbnRUeXBlfWB9XG4gICAgICAgICAgICBvbkNhbmNlbD17KCkgPT4gc2V0TW9kZVN0YXRlKG1vZGVTdGF0ZS5wcmV2aW91c01vZGUpfVxuICAgICAgICAgICAgaGlkZUlucHV0R3VpZGVcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8QWdlbnRFZGl0b3JcbiAgICAgICAgICAgICAgYWdlbnQ9e2FnZW50VG9FZGl0fVxuICAgICAgICAgICAgICB0b29scz17bWVyZ2VkVG9vbHN9XG4gICAgICAgICAgICAgIG9uU2F2ZWQ9e21lc3NhZ2UgPT4ge1xuICAgICAgICAgICAgICAgIGhhbmRsZUFnZW50Q3JlYXRlZChtZXNzYWdlKVxuICAgICAgICAgICAgICAgIHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbkJhY2s9eygpID0+IHNldE1vZGVTdGF0ZShtb2RlU3RhdGUucHJldmlvdXNNb2RlKX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9EaWFsb2c+XG4gICAgICAgICAgPEFnZW50TmF2aWdhdGlvbkZvb3RlciAvPlxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG51bGxcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDdEQsY0FBY0MsYUFBYSxRQUFRLGlDQUFpQztBQUNwRSxjQUFjQyxvQkFBb0IsUUFBUSxtQkFBbUI7QUFDN0QsU0FBU0MsOEJBQThCLFFBQVEsK0NBQStDO0FBQzlGLFNBQVNDLGNBQWMsUUFBUSwrQkFBK0I7QUFDOUQsU0FBU0MsR0FBRyxFQUFFQyxJQUFJLFFBQVEsY0FBYztBQUN4QyxTQUFTQyxXQUFXLEVBQUVDLGNBQWMsUUFBUSx5QkFBeUI7QUFDckUsY0FBY0MsS0FBSyxRQUFRLGVBQWU7QUFDMUMsU0FDRSxLQUFLQyxhQUFhLEVBQ2xCQyxxQkFBcUIsUUFDaEIsdUNBQXVDO0FBQzlDLFNBQ0UsS0FBS0MsZUFBZSxFQUNwQkMsdUJBQXVCLFFBQ2xCLHdDQUF3QztBQUMvQyxTQUFTQyxPQUFPLFFBQVEsdUJBQXVCO0FBQy9DLFNBQVNDLFFBQVEsUUFBUSxvQkFBb0I7QUFDN0MsU0FBU0MsTUFBTSxRQUFRLDJCQUEyQjtBQUNsRCxTQUFTQyxNQUFNLFFBQVEsNEJBQTRCO0FBQ25ELFNBQVNDLFdBQVcsUUFBUSxrQkFBa0I7QUFDOUMsU0FBU0MsV0FBVyxRQUFRLGtCQUFrQjtBQUM5QyxTQUFTQyxxQkFBcUIsUUFBUSw0QkFBNEI7QUFDbEUsU0FBU0MsVUFBVSxRQUFRLGlCQUFpQjtBQUM1QyxTQUFTQyxtQkFBbUIsUUFBUSxxQkFBcUI7QUFDekQsU0FBU0MsaUJBQWlCLFFBQVEsMkNBQTJDO0FBQzdFLGNBQWNDLFNBQVMsUUFBUSxZQUFZO0FBRTNDLEtBQUtDLEtBQUssR0FBRztFQUNYQyxLQUFLLEVBQUVqQixLQUFLO0VBQ1prQixNQUFNLEVBQUUsQ0FDTkMsTUFBZSxDQUFSLEVBQUUsTUFBTSxFQUNmQyxPQUE0QyxDQUFwQyxFQUFFO0lBQUVDLE9BQU8sQ0FBQyxFQUFFNUIsb0JBQW9CO0VBQUMsQ0FBQyxFQUM1QyxHQUFHLElBQUk7QUFDWCxDQUFDO0FBRUQsT0FBTyxTQUFBNkIsV0FBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUFvQjtJQUFBUixLQUFBO0lBQUFDO0VBQUEsSUFBQUssRUFBd0I7RUFBQSxJQUFBRyxFQUFBO0VBQUEsSUFBQUYsQ0FBQSxRQUFBRyxNQUFBLENBQUFDLEdBQUE7SUFDS0YsRUFBQTtNQUFBRyxJQUFBLEVBQzlDLGFBQWE7TUFBQUMsTUFBQSxFQUNYO0lBQ1YsQ0FBQztJQUFBTixDQUFBLE1BQUFFLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFGLENBQUE7RUFBQTtFQUhELE9BQUFPLFNBQUEsRUFBQUMsWUFBQSxJQUFrQ3pDLFFBQVEsQ0FBWW1DLEVBR3JELENBQUM7RUFDRixNQUFBTyxnQkFBQSxHQUF5Qm5DLFdBQVcsQ0FBQ29DLEtBQXVCLENBQUM7RUFDN0QsTUFBQUMsUUFBQSxHQUFpQnJDLFdBQVcsQ0FBQ3NDLE1BQWdCLENBQUM7RUFDOUMsTUFBQUMscUJBQUEsR0FBOEJ2QyxXQUFXLENBQUN3QyxNQUE0QixDQUFDO0VBQ3ZFLE1BQUFDLFdBQUEsR0FBb0J4QyxjQUFjLENBQUMsQ0FBQztFQUNwQztJQUFBeUMsU0FBQTtJQUFBQyxZQUFBLEVBQUFDO0VBQUEsSUFBNENULGdCQUFnQjtFQUFBLElBQUFVLEVBQUE7RUFBQSxJQUFBbkIsQ0FBQSxRQUFBRyxNQUFBLENBQUFDLEdBQUE7SUFDWGUsRUFBQSxLQUFFO0lBQUFuQixDQUFBLE1BQUFtQixFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBbkIsQ0FBQTtFQUFBO0VBQW5ELE9BQUFvQixPQUFBLEVBQUFDLFVBQUEsSUFBOEJ0RCxRQUFRLENBQVdvRCxFQUFFLENBQUM7RUFHcEQsTUFBQUcsV0FBQSxHQUFvQm5ELGNBQWMsQ0FBQ3NCLEtBQUssRUFBRWtCLFFBQVEsRUFBRUUscUJBQXFCLENBQUM7RUFFMUUzQyw4QkFBOEIsQ0FBQyxDQUFDO0VBQUEsSUFBQXFELEVBQUE7RUFBQSxJQUFBdkIsQ0FBQSxRQUFBZ0IsU0FBQTtJQU9oQk8sRUFBQSxHQUFBUCxTQUFTLENBQUFRLE1BQU8sQ0FBQ0MsTUFBNEIsQ0FBQztJQUFBekIsQ0FBQSxNQUFBZ0IsU0FBQTtJQUFBaEIsQ0FBQSxNQUFBdUIsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQXZCLENBQUE7RUFBQTtFQUFBLElBQUEwQixFQUFBO0VBQUEsSUFBQTFCLENBQUEsUUFBQWdCLFNBQUE7SUFDNUNVLEVBQUEsR0FBQVYsU0FBUyxDQUFBUSxNQUFPLENBQUNHLE1BQWdDLENBQUM7SUFBQTNCLENBQUEsTUFBQWdCLFNBQUE7SUFBQWhCLENBQUEsTUFBQTBCLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUExQixDQUFBO0VBQUE7RUFBQSxJQUFBNEIsRUFBQTtFQUFBLElBQUE1QixDQUFBLFFBQUFnQixTQUFBO0lBQy9DWSxFQUFBLEdBQUFaLFNBQVMsQ0FBQVEsTUFBTyxDQUFDSyxNQUFtQyxDQUFDO0lBQUE3QixDQUFBLE1BQUFnQixTQUFBO0lBQUFoQixDQUFBLE1BQUE0QixFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBNUIsQ0FBQTtFQUFBO0VBQUEsSUFBQThCLEVBQUE7RUFBQSxJQUFBOUIsQ0FBQSxRQUFBZ0IsU0FBQTtJQUN0RGMsRUFBQSxHQUFBZCxTQUFTLENBQUFRLE1BQU8sQ0FBQ08sTUFBa0MsQ0FBQztJQUFBL0IsQ0FBQSxNQUFBZ0IsU0FBQTtJQUFBaEIsQ0FBQSxNQUFBOEIsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQTlCLENBQUE7RUFBQTtFQUFBLElBQUFnQyxFQUFBO0VBQUEsSUFBQWhDLENBQUEsU0FBQWdCLFNBQUE7SUFDckRnQixFQUFBLEdBQUFoQixTQUFTLENBQUFRLE1BQU8sQ0FBQ1MsTUFBaUMsQ0FBQztJQUFBakMsQ0FBQSxPQUFBZ0IsU0FBQTtJQUFBaEIsQ0FBQSxPQUFBZ0MsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQWhDLENBQUE7RUFBQTtFQUFBLElBQUFrQyxFQUFBO0VBQUEsSUFBQWxDLENBQUEsU0FBQWdCLFNBQUE7SUFDcERrQixFQUFBLEdBQUFsQixTQUFTLENBQUFRLE1BQU8sQ0FBQ1csTUFBZ0MsQ0FBQztJQUFBbkMsQ0FBQSxPQUFBZ0IsU0FBQTtJQUFBaEIsQ0FBQSxPQUFBa0MsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQWxDLENBQUE7RUFBQTtFQUFBLElBQUFvQyxFQUFBO0VBQUEsSUFBQXBDLENBQUEsU0FBQWdCLFNBQUE7SUFDeERvQixFQUFBLEdBQUFwQixTQUFTLENBQUFRLE1BQU8sQ0FBQ2EsTUFBMEIsQ0FBQztJQUFBckMsQ0FBQSxPQUFBZ0IsU0FBQTtJQUFBaEIsQ0FBQSxPQUFBb0MsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQXBDLENBQUE7RUFBQTtFQUFBLElBQUFzQyxHQUFBO0VBQUEsSUFBQXRDLENBQUEsU0FBQWdCLFNBQUEsSUFBQWhCLENBQUEsU0FBQXVCLEVBQUEsSUFBQXZCLENBQUEsU0FBQTBCLEVBQUEsSUFBQTFCLENBQUEsU0FBQTRCLEVBQUEsSUFBQTVCLENBQUEsU0FBQThCLEVBQUEsSUFBQTlCLENBQUEsU0FBQWdDLEVBQUEsSUFBQWhDLENBQUEsU0FBQWtDLEVBQUEsSUFBQWxDLENBQUEsU0FBQW9DLEVBQUE7SUFQL0NFLEdBQUE7TUFBQSxZQUNPZixFQUE4QztNQUFBZ0IsWUFBQSxFQUM1Q2IsRUFBa0Q7TUFBQWMsZUFBQSxFQUMvQ1osRUFBcUQ7TUFBQWEsY0FBQSxFQUN0RFgsRUFBb0Q7TUFBQVksYUFBQSxFQUNyRFYsRUFBbUQ7TUFBQVcsWUFBQSxFQUNwRFQsRUFBa0Q7TUFBQVUsTUFBQSxFQUN4RFIsRUFBNEM7TUFBQVMsR0FBQSxFQUMvQzdCO0lBQ1AsQ0FBQztJQUFBaEIsQ0FBQSxPQUFBZ0IsU0FBQTtJQUFBaEIsQ0FBQSxPQUFBdUIsRUFBQTtJQUFBdkIsQ0FBQSxPQUFBMEIsRUFBQTtJQUFBMUIsQ0FBQSxPQUFBNEIsRUFBQTtJQUFBNUIsQ0FBQSxPQUFBOEIsRUFBQTtJQUFBOUIsQ0FBQSxPQUFBZ0MsRUFBQTtJQUFBaEMsQ0FBQSxPQUFBa0MsRUFBQTtJQUFBbEMsQ0FBQSxPQUFBb0MsRUFBQTtJQUFBcEMsQ0FBQSxPQUFBc0MsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQXRDLENBQUE7RUFBQTtFQWJILE1BQUE4QyxjQUFBLEdBSVNSLEdBU047RUFFRixJQUFBUyxHQUFBO0VBQUEsSUFBQS9DLENBQUEsU0FBQUcsTUFBQSxDQUFBQyxHQUFBO0lBRXNDMkMsR0FBQSxHQUFBQyxPQUFBO01BQ3JDM0IsVUFBVSxDQUFDNEIsSUFBQSxJQUFRLElBQUlBLElBQUksRUFBRUQsT0FBTyxDQUFDLENBQUM7TUFDdEN4QyxZQUFZLENBQUM7UUFBQUgsSUFBQSxFQUFRLGFBQWE7UUFBQUMsTUFBQSxFQUFVO01BQU0sQ0FBQyxDQUFDO0lBQUEsQ0FDckQ7SUFBQU4sQ0FBQSxPQUFBK0MsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQS9DLENBQUE7RUFBQTtFQUhELE1BQUFrRCxrQkFBQSxHQUEyQkgsR0FHckI7RUFBQSxJQUFBSSxHQUFBO0VBQUEsSUFBQW5ELENBQUEsU0FBQWUsV0FBQTtJQUdKb0MsR0FBQSxTQUFBQyxLQUFBO01BQUE7TUFDRTtRQUNFLE1BQU0vRCxtQkFBbUIsQ0FBQytELEtBQUssQ0FBQztRQUNoQ3JDLFdBQVcsQ0FBQ3NDLEtBQUE7VUFDVixNQUFBQyxXQUFBLEdBQWtCRCxLQUFLLENBQUE1QyxnQkFBaUIsQ0FBQU8sU0FBVSxDQUFBUSxNQUFPLENBQ3ZEK0IsR0FBQSxJQUNFLEVBQUVDLEdBQUMsQ0FBQUMsU0FBVSxLQUFLTCxLQUFLLENBQUFLLFNBQXVDLElBQXpCRCxHQUFDLENBQUFsRCxNQUFPLEtBQUs4QyxLQUFLLENBQUE5QyxNQUFPLENBQ2xFLENBQUM7VUFBQSxPQUNNO1lBQUEsR0FDRitDLEtBQUs7WUFBQTVDLGdCQUFBLEVBQ1U7Y0FBQSxHQUNiNEMsS0FBSyxDQUFBNUMsZ0JBQWlCO2NBQUFPLFNBQUEsRUFDekJBLFdBQVM7Y0FBQUMsWUFBQSxFQUNLckMsdUJBQXVCLENBQUNvQyxXQUFTO1lBQ2pEO1VBQ0YsQ0FBQztRQUFBLENBQ0YsQ0FBQztRQUVGSyxVQUFVLENBQUNxQyxNQUFBLElBQVEsSUFDZFQsTUFBSSxFQUNQLGtCQUFrQnRGLEtBQUssQ0FBQWdHLElBQUssQ0FBQ1AsS0FBSyxDQUFBSyxTQUFVLENBQUMsRUFBRSxDQUNoRCxDQUFDO1FBRUZqRCxZQUFZLENBQUM7VUFBQUgsSUFBQSxFQUFRLGFBQWE7VUFBQUMsTUFBQSxFQUFVO1FBQU0sQ0FBQyxDQUFDO01BQUEsU0FBQXNELEdBQUE7UUFDN0NDLEtBQUEsQ0FBQUEsS0FBQSxDQUFBQSxDQUFBLENBQUFBLEdBQUs7UUFDWi9FLFFBQVEsQ0FBQ0QsT0FBTyxDQUFDZ0YsS0FBSyxDQUFDLENBQUM7TUFBQTtJQUN6QixDQUNGO0lBQUE3RCxDQUFBLE9BQUFlLFdBQUE7SUFBQWYsQ0FBQSxPQUFBbUQsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQW5ELENBQUE7RUFBQTtFQTVCSCxNQUFBOEQsa0JBQUEsR0FBMkJYLEdBOEIxQjtFQUdELFFBQVE1QyxTQUFTLENBQUFGLElBQUs7SUFBQSxLQUNmLGFBQWE7TUFBQTtRQUFBLElBQUF1RCxHQUFBO1FBQUEsSUFBQTVELENBQUEsU0FBQThDLGNBQUEsSUFBQTlDLENBQUEsU0FBQU8sU0FBQSxDQUFBRCxNQUFBO1VBRWRzRCxHQUFBLEdBQUFyRCxTQUFTLENBQUFELE1BQU8sS0FBSyxLQVVlLEdBVnBDLElBRVN3QyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQzFCQSxjQUFjLENBQUFQLFlBQWdCLEtBQzlCTyxjQUFjLENBQUFOLGVBQW1CLEtBQ2pDTSxjQUFjLENBQUFKLGFBQWlCLEtBQy9CSSxjQUFjLENBQUFMLGNBQWtCLEtBQ2hDSyxjQUFjLENBQUFILFlBQWdCLEtBQzlCRyxjQUFjLENBQUFGLE1BQVUsQ0FFRyxHQUFoQ0UsY0FBYyxDQUFDdkMsU0FBUyxDQUFBRCxNQUFPLENBQUM7VUFBQU4sQ0FBQSxPQUFBOEMsY0FBQTtVQUFBOUMsQ0FBQSxPQUFBTyxTQUFBLENBQUFELE1BQUE7VUFBQU4sQ0FBQSxPQUFBNEQsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQTVELENBQUE7UUFBQTtRQVh0QyxNQUFBK0QsWUFBQSxHQUNFSCxHQVVvQztRQUFBLElBQUFJLEdBQUE7UUFBQSxJQUFBaEUsQ0FBQSxTQUFBa0IsTUFBQSxJQUFBbEIsQ0FBQSxTQUFBK0QsWUFBQTtVQUdsQkMsR0FBQSxHQUFBdEYscUJBQXFCLENBQUNxRixZQUFZLEVBQUU3QyxNQUFNLENBQUM7VUFBQWxCLENBQUEsT0FBQWtCLE1BQUE7VUFBQWxCLENBQUEsT0FBQStELFlBQUE7VUFBQS9ELENBQUEsT0FBQWdFLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUFoRSxDQUFBO1FBQUE7UUFBL0QsTUFBQWlFLFdBQUEsR0FBb0JELEdBQTJDO1FBQy9ELE1BQUFFLGNBQUEsR0FBd0NELFdBQVc7UUFBQSxJQUFBRSxHQUFBO1FBQUEsSUFBQW5FLENBQUEsU0FBQW9CLE9BQUEsSUFBQXBCLENBQUEsU0FBQU4sTUFBQTtVQU9yQ3lFLEdBQUEsR0FBQUEsQ0FBQTtZQUNOLE1BQUFDLFdBQUEsR0FDRWhELE9BQU8sQ0FBQWlELE1BQU8sR0FBRyxDQUVKLEdBRmIsbUJBQ3VCakQsT0FBTyxDQUFBa0QsSUFBSyxDQUFDLElBQUksQ0FBQyxFQUM1QixHQUZiQyxTQUVhO1lBQ2Y3RSxNQUFNLENBQUMwRSxXQUF3QyxJQUF4Qyx5QkFBd0MsRUFBRTtjQUFBdkUsT0FBQSxFQUN0Q3VCLE9BQU8sQ0FBQWlELE1BQU8sS0FBSyxDQUF3QixHQUEzQyxRQUEyQyxHQUEzQ0U7WUFDWCxDQUFDLENBQUM7VUFBQSxDQUNIO1VBQUF2RSxDQUFBLE9BQUFvQixPQUFBO1VBQUFwQixDQUFBLE9BQUFOLE1BQUE7VUFBQU0sQ0FBQSxPQUFBbUUsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQW5FLENBQUE7UUFBQTtRQUFBLElBQUF3RSxHQUFBO1FBQUEsSUFBQXhFLENBQUEsU0FBQU8sU0FBQTtVQUNTaUUsR0FBQSxHQUFBQyxPQUFBLElBQ1JqRSxZQUFZLENBQUM7WUFBQUgsSUFBQSxFQUNMLFlBQVk7WUFBQStDLEtBQUEsRUFDbEJBLE9BQUs7WUFBQXNCLFlBQUEsRUFDU25FO1VBQ2hCLENBQUMsQ0FBQztVQUFBUCxDQUFBLE9BQUFPLFNBQUE7VUFBQVAsQ0FBQSxPQUFBd0UsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQXhFLENBQUE7UUFBQTtRQUFBLElBQUEyRSxHQUFBO1FBQUEsSUFBQTNFLENBQUEsU0FBQUcsTUFBQSxDQUFBQyxHQUFBO1VBRVN1RSxHQUFBLEdBQUFBLENBQUEsS0FBTW5FLFlBQVksQ0FBQztZQUFBSCxJQUFBLEVBQVE7VUFBZSxDQUFDLENBQUM7VUFBQUwsQ0FBQSxPQUFBMkUsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQTNFLENBQUE7UUFBQTtRQUFBLElBQUE0RSxHQUFBO1FBQUEsSUFBQTVFLENBQUEsU0FBQW9CLE9BQUEsSUFBQXBCLENBQUEsU0FBQU8sU0FBQSxDQUFBRCxNQUFBLElBQUFOLENBQUEsU0FBQWtFLGNBQUEsSUFBQWxFLENBQUEsU0FBQW1FLEdBQUEsSUFBQW5FLENBQUEsU0FBQXdFLEdBQUE7VUFuQjNESSxHQUFBLElBQUMsVUFBVSxDQUNELE1BQWdCLENBQWhCLENBQUFyRSxTQUFTLENBQUFELE1BQU0sQ0FBQyxDQUNoQjRELE1BQWMsQ0FBZEEsZUFBYSxDQUFDLENBQ2QsTUFRUCxDQVJPLENBQUFDLEdBUVIsQ0FBQyxDQUNTLFFBS04sQ0FMTSxDQUFBSyxHQUtQLENBQUMsQ0FFUyxXQUE0QyxDQUE1QyxDQUFBRyxHQUEyQyxDQUFDLENBQ2hEdkQsT0FBTyxDQUFQQSxRQUFNLENBQUMsR0FDaEI7VUFBQXBCLENBQUEsT0FBQW9CLE9BQUE7VUFBQXBCLENBQUEsT0FBQU8sU0FBQSxDQUFBRCxNQUFBO1VBQUFOLENBQUEsT0FBQWtFLGNBQUE7VUFBQWxFLENBQUEsT0FBQW1FLEdBQUE7VUFBQW5FLENBQUEsT0FBQXdFLEdBQUE7VUFBQXhFLENBQUEsT0FBQTRFLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUE1RSxDQUFBO1FBQUE7UUFBQSxJQUFBNkUsR0FBQTtRQUFBLElBQUE3RSxDQUFBLFNBQUFHLE1BQUEsQ0FBQUMsR0FBQTtVQUNGeUUsR0FBQSxJQUFDLHFCQUFxQixHQUFHO1VBQUE3RSxDQUFBLE9BQUE2RSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBN0UsQ0FBQTtRQUFBO1FBQUEsSUFBQThFLEdBQUE7UUFBQSxJQUFBOUUsQ0FBQSxTQUFBNEUsR0FBQTtVQXZCM0JFLEdBQUEsS0FDRSxDQUFBRixHQXFCQyxDQUNELENBQUFDLEdBQXdCLENBQUMsR0FDeEI7VUFBQTdFLENBQUEsT0FBQTRFLEdBQUE7VUFBQTVFLENBQUEsT0FBQThFLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUE5RSxDQUFBO1FBQUE7UUFBQSxPQXhCSDhFLEdBd0JHO01BQUE7SUFBQSxLQUlGLGNBQWM7TUFBQTtRQUFBLElBQUFsQixHQUFBO1FBQUEsSUFBQTVELENBQUEsU0FBQUcsTUFBQSxDQUFBQyxHQUFBO1VBTUh3RCxHQUFBLEdBQUFBLENBQUEsS0FBTXBELFlBQVksQ0FBQztZQUFBSCxJQUFBLEVBQVEsYUFBYTtZQUFBQyxNQUFBLEVBQVU7VUFBTSxDQUFDLENBQUM7VUFBQU4sQ0FBQSxPQUFBNEQsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQTVELENBQUE7UUFBQTtRQUFBLElBQUFnRSxHQUFBO1FBQUEsSUFBQWhFLENBQUEsU0FBQWtCLE1BQUEsSUFBQWxCLENBQUEsU0FBQXNCLFdBQUE7VUFKdEUwQyxHQUFBLElBQUMsaUJBQWlCLENBQ1QxQyxLQUFXLENBQVhBLFlBQVUsQ0FBQyxDQUNGSixjQUFNLENBQU5BLE9BQUssQ0FBQyxDQUNWZ0MsVUFBa0IsQ0FBbEJBLG1CQUFpQixDQUFDLENBQ3BCLFFBQTBELENBQTFELENBQUFVLEdBQXlELENBQUMsR0FDcEU7VUFBQTVELENBQUEsT0FBQWtCLE1BQUE7VUFBQWxCLENBQUEsT0FBQXNCLFdBQUE7VUFBQXRCLENBQUEsT0FBQWdFLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUFoRSxDQUFBO1FBQUE7UUFBQSxPQUxGZ0UsR0FLRTtNQUFBO0lBQUEsS0FHRCxZQUFZO01BQUE7UUFBQSxJQUFBSixHQUFBO1FBQUEsSUFBQTVELENBQUEsU0FBQWdCLFNBQUEsSUFBQWhCLENBQUEsU0FBQU8sU0FBQSxDQUFBNkMsS0FBQSxDQUFBSyxTQUFBLElBQUF6RCxDQUFBLFNBQUFPLFNBQUEsQ0FBQTZDLEtBQUEsQ0FBQTlDLE1BQUE7VUFBQSxJQUFBMEQsR0FBQTtVQUFBLElBQUFoRSxDQUFBLFNBQUFPLFNBQUEsQ0FBQTZDLEtBQUEsQ0FBQUssU0FBQSxJQUFBekQsQ0FBQSxTQUFBTyxTQUFBLENBQUE2QyxLQUFBLENBQUE5QyxNQUFBO1lBR2IwRCxHQUFBLEdBQUFlLEdBQUEsSUFDRXZCLEdBQUMsQ0FBQUMsU0FBVSxLQUFLbEQsU0FBUyxDQUFBNkMsS0FBTSxDQUFBSyxTQUNJLElBQW5DRCxHQUFDLENBQUFsRCxNQUFPLEtBQUtDLFNBQVMsQ0FBQTZDLEtBQU0sQ0FBQTlDLE1BQU87WUFBQU4sQ0FBQSxPQUFBTyxTQUFBLENBQUE2QyxLQUFBLENBQUFLLFNBQUE7WUFBQXpELENBQUEsT0FBQU8sU0FBQSxDQUFBNkMsS0FBQSxDQUFBOUMsTUFBQTtZQUFBTixDQUFBLE9BQUFnRSxHQUFBO1VBQUE7WUFBQUEsR0FBQSxHQUFBaEUsQ0FBQTtVQUFBO1VBSHBCNEQsR0FBQSxHQUFBNUMsU0FBUyxDQUFBZ0UsSUFBSyxDQUMvQmhCLEdBR0YsQ0FBQztVQUFBaEUsQ0FBQSxPQUFBZ0IsU0FBQTtVQUFBaEIsQ0FBQSxPQUFBTyxTQUFBLENBQUE2QyxLQUFBLENBQUFLLFNBQUE7VUFBQXpELENBQUEsT0FBQU8sU0FBQSxDQUFBNkMsS0FBQSxDQUFBOUMsTUFBQTtVQUFBTixDQUFBLE9BQUE0RCxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBNUQsQ0FBQTtRQUFBO1FBSkQsTUFBQWlGLFlBQUEsR0FBbUJyQixHQUlsQjtRQUNELE1BQUFzQixVQUFBLEdBQW1CRCxZQUE2QixJQUFmMUUsU0FBUyxDQUFBNkMsS0FBTTtRQUVoRCxNQUFBK0IsVUFBQSxHQUNFRCxVQUFVLENBQUE1RSxNQUFPLEtBQUssVUFDUSxJQUE5QjRFLFVBQVUsQ0FBQTVFLE1BQU8sS0FBSyxRQUNjLElBQXBDNEUsVUFBVSxDQUFBNUUsTUFBTyxLQUFLLGNBQWM7UUFBQSxJQUFBMEQsR0FBQTtRQUFBLElBQUFoRSxDQUFBLFNBQUFHLE1BQUEsQ0FBQUMsR0FBQTtVQUVwQzRELEdBQUE7WUFBQW9CLEtBQUEsRUFBUyxZQUFZO1lBQUFDLEtBQUEsRUFBUztVQUFPLENBQUM7VUFBQXJGLENBQUEsT0FBQWdFLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUFoRSxDQUFBO1FBQUE7UUFBQSxJQUFBbUUsR0FBQTtRQUFBLElBQUFuRSxDQUFBLFNBQUFtRixVQUFBO1VBQ2xDaEIsR0FBQSxHQUFBZ0IsVUFBVSxHQUFWLENBRUU7WUFBQUMsS0FBQSxFQUFTLFlBQVk7WUFBQUMsS0FBQSxFQUFTO1VBQU8sQ0FBQyxFQUN0QztZQUFBRCxLQUFBLEVBQVMsY0FBYztZQUFBQyxLQUFBLEVBQVM7VUFBUyxDQUFDLENBRTFDLEdBTEYsRUFLRTtVQUFBckYsQ0FBQSxPQUFBbUYsVUFBQTtVQUFBbkYsQ0FBQSxPQUFBbUUsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQW5FLENBQUE7UUFBQTtRQUFBLElBQUF3RSxHQUFBO1FBQUEsSUFBQXhFLENBQUEsU0FBQUcsTUFBQSxDQUFBQyxHQUFBO1VBQ05vRSxHQUFBO1lBQUFZLEtBQUEsRUFBUyxNQUFNO1lBQUFDLEtBQUEsRUFBUztVQUFPLENBQUM7VUFBQXJGLENBQUEsT0FBQXdFLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUF4RSxDQUFBO1FBQUE7UUFBQSxJQUFBMkUsR0FBQTtRQUFBLElBQUEzRSxDQUFBLFNBQUFtRSxHQUFBO1VBUmhCUSxHQUFBLElBQ2hCWCxHQUFzQyxLQUNsQ0csR0FLRSxFQUNOSyxHQUFnQyxDQUNqQztVQUFBeEUsQ0FBQSxPQUFBbUUsR0FBQTtVQUFBbkUsQ0FBQSxPQUFBMkUsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQTNFLENBQUE7UUFBQTtRQVRELE1BQUFzRixTQUFBLEdBQWtCWCxHQVNqQjtRQUFBLElBQUFDLEdBQUE7UUFBQSxJQUFBNUUsQ0FBQSxTQUFBa0YsVUFBQSxJQUFBbEYsQ0FBQSxTQUFBTyxTQUFBO1VBRXdCcUUsR0FBQSxHQUFBVyxPQUFBO1lBQUFDLEtBQUEsRUFDdkIsUUFBUUgsT0FBSztjQUFBLEtBQ04sTUFBTTtnQkFBQTtrQkFDVDdFLFlBQVksQ0FBQztvQkFBQUgsSUFBQSxFQUNMLFlBQVk7b0JBQUErQyxLQUFBLEVBQ1g4QixVQUFVO29CQUFBUixZQUFBLEVBQ0huRSxTQUFTLENBQUFtRTtrQkFDekIsQ0FBQyxDQUFDO2tCQUNGLE1BQUFjLEtBQUE7Z0JBQUs7Y0FBQSxLQUNGLE1BQU07Z0JBQUE7a0JBQ1RoRixZQUFZLENBQUM7b0JBQUFILElBQUEsRUFDTCxZQUFZO29CQUFBK0MsS0FBQSxFQUNYOEIsVUFBVTtvQkFBQVIsWUFBQSxFQUNIbkU7a0JBQ2hCLENBQUMsQ0FBQztrQkFDRixNQUFBaUYsS0FBQTtnQkFBSztjQUFBLEtBQ0YsUUFBUTtnQkFBQTtrQkFDWGhGLFlBQVksQ0FBQztvQkFBQUgsSUFBQSxFQUNMLGdCQUFnQjtvQkFBQStDLEtBQUEsRUFDZjhCLFVBQVU7b0JBQUFSLFlBQUEsRUFDSG5FO2tCQUNoQixDQUFDLENBQUM7a0JBQ0YsTUFBQWlGLEtBQUE7Z0JBQUs7Y0FBQSxLQUNGLE1BQU07Z0JBQUE7a0JBQ1RoRixZQUFZLENBQUNELFNBQVMsQ0FBQW1FLFlBQWEsQ0FBQztnQkFBQTtZQUV4QztVQUFDLENBQ0Y7VUFBQTFFLENBQUEsT0FBQWtGLFVBQUE7VUFBQWxGLENBQUEsT0FBQU8sU0FBQTtVQUFBUCxDQUFBLE9BQUE0RSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBNUUsQ0FBQTtRQUFBO1FBM0JELE1BQUF5RixnQkFBQSxHQUF5QmIsR0EyQnhCO1FBQUEsSUFBQUMsR0FBQTtRQUFBLElBQUE3RSxDQUFBLFNBQUFPLFNBQUEsQ0FBQW1FLFlBQUE7VUFNZUcsR0FBQSxHQUFBQSxDQUFBLEtBQU1yRSxZQUFZLENBQUNELFNBQVMsQ0FBQW1FLFlBQWEsQ0FBQztVQUFBMUUsQ0FBQSxPQUFBTyxTQUFBLENBQUFtRSxZQUFBO1VBQUExRSxDQUFBLE9BQUE2RSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBN0UsQ0FBQTtRQUFBO1FBQUEsSUFBQThFLEdBQUE7UUFBQSxJQUFBOUUsQ0FBQSxTQUFBTyxTQUFBLENBQUFtRSxZQUFBO1VBT3RDSSxHQUFBLEdBQUFBLENBQUEsS0FBTXRFLFlBQVksQ0FBQ0QsU0FBUyxDQUFBbUUsWUFBYSxDQUFDO1VBQUExRSxDQUFBLE9BQUFPLFNBQUEsQ0FBQW1FLFlBQUE7VUFBQTFFLENBQUEsT0FBQThFLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUE5RSxDQUFBO1FBQUE7UUFBQSxJQUFBMEYsR0FBQTtRQUFBLElBQUExRixDQUFBLFNBQUF5RixnQkFBQSxJQUFBekYsQ0FBQSxTQUFBc0YsU0FBQSxJQUFBdEYsQ0FBQSxTQUFBOEUsR0FBQTtVQUh0RFksR0FBQSxJQUFDLE1BQU0sQ0FDSUosT0FBUyxDQUFUQSxVQUFRLENBQUMsQ0FDUkcsUUFBZ0IsQ0FBaEJBLGlCQUFlLENBQUMsQ0FDaEIsUUFBMEMsQ0FBMUMsQ0FBQVgsR0FBeUMsQ0FBQyxHQUNwRDtVQUFBOUUsQ0FBQSxPQUFBeUYsZ0JBQUE7VUFBQXpGLENBQUEsT0FBQXNGLFNBQUE7VUFBQXRGLENBQUEsT0FBQThFLEdBQUE7VUFBQTlFLENBQUEsT0FBQTBGLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUExRixDQUFBO1FBQUE7UUFBQSxJQUFBMkYsR0FBQTtRQUFBLElBQUEzRixDQUFBLFNBQUFvQixPQUFBO1VBQ0R1RSxHQUFBLEdBQUF2RSxPQUFPLENBQUFpRCxNQUFPLEdBQUcsQ0FJakIsSUFIQyxDQUFDLEdBQUcsQ0FBWSxTQUFDLENBQUQsR0FBQyxDQUNmLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBUixLQUFPLENBQUMsQ0FBRSxDQUFBakQsT0FBTyxDQUFDQSxPQUFPLENBQUFpRCxNQUFPLEdBQUcsQ0FBQyxFQUFFLEVBQTNDLElBQUksQ0FDUCxFQUZDLEdBQUcsQ0FHTDtVQUFBckUsQ0FBQSxPQUFBb0IsT0FBQTtVQUFBcEIsQ0FBQSxPQUFBMkYsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQTNGLENBQUE7UUFBQTtRQUFBLElBQUE0RixHQUFBO1FBQUEsSUFBQTVGLENBQUEsU0FBQTBGLEdBQUEsSUFBQTFGLENBQUEsU0FBQTJGLEdBQUE7VUFWSEMsR0FBQSxJQUFDLEdBQUcsQ0FBZSxhQUFRLENBQVIsUUFBUSxDQUN6QixDQUFBRixHQUlDLENBQ0EsQ0FBQUMsR0FJRCxDQUNGLEVBWEMsR0FBRyxDQVdFO1VBQUEzRixDQUFBLE9BQUEwRixHQUFBO1VBQUExRixDQUFBLE9BQUEyRixHQUFBO1VBQUEzRixDQUFBLE9BQUE0RixHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBNUYsQ0FBQTtRQUFBO1FBQUEsSUFBQTZGLEdBQUE7UUFBQSxJQUFBN0YsQ0FBQSxTQUFBTyxTQUFBLENBQUE2QyxLQUFBLENBQUFLLFNBQUEsSUFBQXpELENBQUEsU0FBQTZFLEdBQUEsSUFBQTdFLENBQUEsU0FBQTRGLEdBQUE7VUFoQlJDLEdBQUEsSUFBQyxNQUFNLENBQ0UsS0FBeUIsQ0FBekIsQ0FBQXRGLFNBQVMsQ0FBQTZDLEtBQU0sQ0FBQUssU0FBUyxDQUFDLENBQ3RCLFFBQTBDLENBQTFDLENBQUFvQixHQUF5QyxDQUFDLENBQ3BELGNBQWMsQ0FBZCxLQUFhLENBQUMsQ0FFZCxDQUFBZSxHQVdLLENBQ1AsRUFqQkMsTUFBTSxDQWlCRTtVQUFBNUYsQ0FBQSxPQUFBTyxTQUFBLENBQUE2QyxLQUFBLENBQUFLLFNBQUE7VUFBQXpELENBQUEsT0FBQTZFLEdBQUE7VUFBQTdFLENBQUEsT0FBQTRGLEdBQUE7VUFBQTVGLENBQUEsT0FBQTZGLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUE3RixDQUFBO1FBQUE7UUFBQSxJQUFBOEYsR0FBQTtRQUFBLElBQUE5RixDQUFBLFNBQUFHLE1BQUEsQ0FBQUMsR0FBQTtVQUNUMEYsR0FBQSxJQUFDLHFCQUFxQixHQUFHO1VBQUE5RixDQUFBLE9BQUE4RixHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBOUYsQ0FBQTtRQUFBO1FBQUEsSUFBQStGLEdBQUE7UUFBQSxJQUFBL0YsQ0FBQSxTQUFBNkYsR0FBQTtVQW5CM0JFLEdBQUEsS0FDRSxDQUFBRixHQWlCUSxDQUNSLENBQUFDLEdBQXdCLENBQUMsR0FDeEI7VUFBQTlGLENBQUEsT0FBQTZGLEdBQUE7VUFBQTdGLENBQUEsT0FBQStGLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUEvRixDQUFBO1FBQUE7UUFBQSxPQXBCSCtGLEdBb0JHO01BQUE7SUFBQSxLQUlGLFlBQVk7TUFBQTtRQUFBLElBQUFuQyxHQUFBO1FBQUEsSUFBQTVELENBQUEsU0FBQWdCLFNBQUEsSUFBQWhCLENBQUEsU0FBQU8sU0FBQSxDQUFBNkMsS0FBQTtVQUFBLElBQUFZLEdBQUE7VUFBQSxJQUFBaEUsQ0FBQSxTQUFBTyxTQUFBLENBQUE2QyxLQUFBO1lBR2JZLEdBQUEsR0FBQWdDLEdBQUEsSUFDRXhDLEdBQUMsQ0FBQUMsU0FBVSxLQUFLbEQsU0FBUyxDQUFBNkMsS0FBTSxDQUFBSyxTQUNJLElBQW5DRCxHQUFDLENBQUFsRCxNQUFPLEtBQUtDLFNBQVMsQ0FBQTZDLEtBQU0sQ0FBQTlDLE1BQU87WUFBQU4sQ0FBQSxPQUFBTyxTQUFBLENBQUE2QyxLQUFBO1lBQUFwRCxDQUFBLE9BQUFnRSxHQUFBO1VBQUE7WUFBQUEsR0FBQSxHQUFBaEUsQ0FBQTtVQUFBO1VBSHBCNEQsR0FBQSxHQUFBNUMsU0FBUyxDQUFBZ0UsSUFBSyxDQUMvQmhCLEdBR0YsQ0FBQztVQUFBaEUsQ0FBQSxPQUFBZ0IsU0FBQTtVQUFBaEIsQ0FBQSxPQUFBTyxTQUFBLENBQUE2QyxLQUFBO1VBQUFwRCxDQUFBLE9BQUE0RCxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBNUQsQ0FBQTtRQUFBO1FBSkQsTUFBQWlHLFlBQUEsR0FBbUJyQyxHQUlsQjtRQUNELE1BQUFzQyxjQUFBLEdBQXVCRCxZQUE2QixJQUFmMUYsU0FBUyxDQUFBNkMsS0FBTTtRQUFBLElBQUFZLEdBQUE7UUFBQSxJQUFBaEUsQ0FBQSxTQUFBa0csY0FBQSxJQUFBbEcsQ0FBQSxTQUFBTyxTQUFBLENBQUFtRSxZQUFBO1VBTXBDVixHQUFBLEdBQUFBLENBQUEsS0FDUnhELFlBQVksQ0FBQztZQUFBSCxJQUFBLEVBQ0wsWUFBWTtZQUFBK0MsS0FBQSxFQUNYOEMsY0FBYztZQUFBeEIsWUFBQSxFQUNQbkUsU0FBUyxDQUFBbUU7VUFDekIsQ0FBQyxDQUFDO1VBQUExRSxDQUFBLE9BQUFrRyxjQUFBO1VBQUFsRyxDQUFBLE9BQUFPLFNBQUEsQ0FBQW1FLFlBQUE7VUFBQTFFLENBQUEsT0FBQWdFLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUFoRSxDQUFBO1FBQUE7UUFBQSxJQUFBbUUsR0FBQTtRQUFBLElBQUFuRSxDQUFBLFNBQUFrRyxjQUFBLElBQUFsRyxDQUFBLFNBQUFPLFNBQUEsQ0FBQW1FLFlBQUE7VUFRTVAsR0FBQSxHQUFBQSxDQUFBLEtBQ04zRCxZQUFZLENBQUM7WUFBQUgsSUFBQSxFQUNMLFlBQVk7WUFBQStDLEtBQUEsRUFDWDhDLGNBQWM7WUFBQXhCLFlBQUEsRUFDUG5FLFNBQVMsQ0FBQW1FO1VBQ3pCLENBQUMsQ0FBQztVQUFBMUUsQ0FBQSxPQUFBa0csY0FBQTtVQUFBbEcsQ0FBQSxPQUFBTyxTQUFBLENBQUFtRSxZQUFBO1VBQUExRSxDQUFBLE9BQUFtRSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBbkUsQ0FBQTtRQUFBO1FBQUEsSUFBQXdFLEdBQUE7UUFBQSxJQUFBeEUsQ0FBQSxVQUFBa0csY0FBQSxJQUFBbEcsQ0FBQSxVQUFBZ0IsU0FBQSxJQUFBaEIsQ0FBQSxVQUFBc0IsV0FBQSxJQUFBdEIsQ0FBQSxVQUFBbUUsR0FBQTtVQVROSyxHQUFBLElBQUMsV0FBVyxDQUNIMEIsS0FBYyxDQUFkQSxlQUFhLENBQUMsQ0FDZDVFLEtBQVcsQ0FBWEEsWUFBVSxDQUFDLENBQ1BOLFNBQVMsQ0FBVEEsVUFBUSxDQUFDLENBQ1osTUFLSixDQUxJLENBQUFtRCxHQUtMLENBQUMsR0FFSjtVQUFBbkUsQ0FBQSxRQUFBa0csY0FBQTtVQUFBbEcsQ0FBQSxRQUFBZ0IsU0FBQTtVQUFBaEIsQ0FBQSxRQUFBc0IsV0FBQTtVQUFBdEIsQ0FBQSxRQUFBbUUsR0FBQTtVQUFBbkUsQ0FBQSxRQUFBd0UsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQXhFLENBQUE7UUFBQTtRQUFBLElBQUEyRSxHQUFBO1FBQUEsSUFBQTNFLENBQUEsVUFBQWtHLGNBQUEsQ0FBQXpDLFNBQUEsSUFBQXpELENBQUEsVUFBQWdFLEdBQUEsSUFBQWhFLENBQUEsVUFBQXdFLEdBQUE7VUF0QkpHLEdBQUEsSUFBQyxNQUFNLENBQ0UsS0FBd0IsQ0FBeEIsQ0FBQXVCLGNBQWMsQ0FBQXpDLFNBQVMsQ0FBQyxDQUNyQixRQUtOLENBTE0sQ0FBQU8sR0FLUCxDQUFDLENBRUosY0FBYyxDQUFkLEtBQWEsQ0FBQyxDQUVkLENBQUFRLEdBV0MsQ0FDSCxFQXZCQyxNQUFNLENBdUJFO1VBQUF4RSxDQUFBLFFBQUFrRyxjQUFBLENBQUF6QyxTQUFBO1VBQUF6RCxDQUFBLFFBQUFnRSxHQUFBO1VBQUFoRSxDQUFBLFFBQUF3RSxHQUFBO1VBQUF4RSxDQUFBLFFBQUEyRSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBM0UsQ0FBQTtRQUFBO1FBQUEsSUFBQTRFLEdBQUE7UUFBQSxJQUFBNUUsQ0FBQSxVQUFBRyxNQUFBLENBQUFDLEdBQUE7VUFDVHdFLEdBQUEsSUFBQyxxQkFBcUIsQ0FBYyxZQUErQixDQUEvQiwrQkFBK0IsR0FBRztVQUFBNUUsQ0FBQSxRQUFBNEUsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQTVFLENBQUE7UUFBQTtRQUFBLElBQUE2RSxHQUFBO1FBQUEsSUFBQTdFLENBQUEsVUFBQTJFLEdBQUE7VUF6QnhFRSxHQUFBLEtBQ0UsQ0FBQUYsR0F1QlEsQ0FDUixDQUFBQyxHQUFxRSxDQUFDLEdBQ3JFO1VBQUE1RSxDQUFBLFFBQUEyRSxHQUFBO1VBQUEzRSxDQUFBLFFBQUE2RSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBN0UsQ0FBQTtRQUFBO1FBQUEsT0ExQkg2RSxHQTBCRztNQUFBO0lBQUEsS0FJRixnQkFBZ0I7TUFBQTtRQUFBLElBQUFqQixHQUFBO1FBQUEsSUFBQTVELENBQUEsVUFBQUcsTUFBQSxDQUFBQyxHQUFBO1VBQ0d3RCxHQUFBLElBQ3BCO1lBQUF3QixLQUFBLEVBQVMsYUFBYTtZQUFBQyxLQUFBLEVBQVM7VUFBTSxDQUFDLEVBQ3RDO1lBQUFELEtBQUEsRUFBUyxZQUFZO1lBQUFDLEtBQUEsRUFBUztVQUFLLENBQUMsQ0FDckM7VUFBQXJGLENBQUEsUUFBQTRELEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUE1RCxDQUFBO1FBQUE7UUFIRCxNQUFBbUcsYUFBQSxHQUFzQnZDLEdBR3JCO1FBQUEsSUFBQUksR0FBQTtRQUFBLElBQUFoRSxDQUFBLFVBQUFPLFNBQUE7VUFNZXlELEdBQUEsR0FBQUEsQ0FBQTtZQUNSLElBQUksY0FBYyxJQUFJekQsU0FBUztjQUM3QkMsWUFBWSxDQUFDRCxTQUFTLENBQUFtRSxZQUFhLENBQUM7WUFBQTtVQUFBLENBQ3ZDO1VBQUExRSxDQUFBLFFBQUFPLFNBQUE7VUFBQVAsQ0FBQSxRQUFBZ0UsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQWhFLENBQUE7UUFBQTtRQUFBLElBQUFtRSxHQUFBO1FBQUEsSUFBQW5FLENBQUEsVUFBQU8sU0FBQSxDQUFBNkMsS0FBQSxDQUFBSyxTQUFBO1VBR0RVLEdBQUEsSUFBQyxJQUFJLENBQUMseUNBQ3NDLElBQUUsQ0FDNUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFKLEtBQUcsQ0FBQyxDQUFFLENBQUE1RCxTQUFTLENBQUE2QyxLQUFNLENBQUFLLFNBQVMsQ0FBRSxFQUFyQyxJQUFJLENBQXdDLENBQy9DLEVBSEMsSUFBSSxDQUdFO1VBQUF6RCxDQUFBLFFBQUFPLFNBQUEsQ0FBQTZDLEtBQUEsQ0FBQUssU0FBQTtVQUFBekQsQ0FBQSxRQUFBbUUsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQW5FLENBQUE7UUFBQTtRQUFBLElBQUF3RSxHQUFBO1FBQUEsSUFBQXhFLENBQUEsVUFBQU8sU0FBQSxDQUFBNkMsS0FBQSxDQUFBOUMsTUFBQTtVQUNQa0UsR0FBQSxJQUFDLEdBQUcsQ0FBWSxTQUFDLENBQUQsR0FBQyxDQUNmLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBUixLQUFPLENBQUMsQ0FBQyxRQUFTLENBQUFqRSxTQUFTLENBQUE2QyxLQUFNLENBQUE5QyxNQUFNLENBQUUsRUFBOUMsSUFBSSxDQUNQLEVBRkMsR0FBRyxDQUVFO1VBQUFOLENBQUEsUUFBQU8sU0FBQSxDQUFBNkMsS0FBQSxDQUFBOUMsTUFBQTtVQUFBTixDQUFBLFFBQUF3RSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBeEUsQ0FBQTtRQUFBO1FBQUEsSUFBQTJFLEdBQUE7UUFBQSxJQUFBM0UsQ0FBQSxVQUFBOEQsa0JBQUEsSUFBQTlELENBQUEsVUFBQU8sU0FBQTtVQUlRb0UsR0FBQSxHQUFBVSxLQUFBO1lBQ1IsSUFBSUEsS0FBSyxLQUFLLEtBQUs7Y0FDWnZCLGtCQUFrQixDQUFDdkQsU0FBUyxDQUFBNkMsS0FBTSxDQUFDO1lBQUE7Y0FFeEMsSUFBSSxjQUFjLElBQUk3QyxTQUFTO2dCQUM3QkMsWUFBWSxDQUFDRCxTQUFTLENBQUFtRSxZQUFhLENBQUM7Y0FBQTtZQUNyQztVQUNGLENBQ0Y7VUFBQTFFLENBQUEsUUFBQThELGtCQUFBO1VBQUE5RCxDQUFBLFFBQUFPLFNBQUE7VUFBQVAsQ0FBQSxRQUFBMkUsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQTNFLENBQUE7UUFBQTtRQUFBLElBQUE0RSxHQUFBO1FBQUEsSUFBQTVFLENBQUEsVUFBQU8sU0FBQTtVQUNTcUUsR0FBQSxHQUFBQSxDQUFBO1lBQ1IsSUFBSSxjQUFjLElBQUlyRSxTQUFTO2NBQzdCQyxZQUFZLENBQUNELFNBQVMsQ0FBQW1FLFlBQWEsQ0FBQztZQUFBO1VBQ3JDLENBQ0Y7VUFBQTFFLENBQUEsUUFBQU8sU0FBQTtVQUFBUCxDQUFBLFFBQUE0RSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBNUUsQ0FBQTtRQUFBO1FBQUEsSUFBQTZFLEdBQUE7UUFBQSxJQUFBN0UsQ0FBQSxVQUFBMkUsR0FBQSxJQUFBM0UsQ0FBQSxVQUFBNEUsR0FBQTtVQWhCTEMsR0FBQSxJQUFDLEdBQUcsQ0FBWSxTQUFDLENBQUQsR0FBQyxDQUNmLENBQUMsTUFBTSxDQUNJc0IsT0FBYSxDQUFiQSxjQUFZLENBQUMsQ0FDWixRQVFULENBUlMsQ0FBQXhCLEdBUVYsQ0FBQyxDQUNTLFFBSVQsQ0FKUyxDQUFBQyxHQUlWLENBQUMsR0FFTCxFQWxCQyxHQUFHLENBa0JFO1VBQUE1RSxDQUFBLFFBQUEyRSxHQUFBO1VBQUEzRSxDQUFBLFFBQUE0RSxHQUFBO1VBQUE1RSxDQUFBLFFBQUE2RSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBN0UsQ0FBQTtRQUFBO1FBQUEsSUFBQThFLEdBQUE7UUFBQSxJQUFBOUUsQ0FBQSxVQUFBZ0UsR0FBQSxJQUFBaEUsQ0FBQSxVQUFBbUUsR0FBQSxJQUFBbkUsQ0FBQSxVQUFBd0UsR0FBQSxJQUFBeEUsQ0FBQSxVQUFBNkUsR0FBQTtVQWpDUkMsR0FBQSxJQUFDLE1BQU0sQ0FDQyxLQUFjLENBQWQsY0FBYyxDQUNWLFFBR1QsQ0FIUyxDQUFBZCxHQUdWLENBQUMsQ0FDSyxLQUFPLENBQVAsT0FBTyxDQUViLENBQUFHLEdBR00sQ0FDTixDQUFBSyxHQUVLLENBQ0wsQ0FBQUssR0FrQkssQ0FDUCxFQWxDQyxNQUFNLENBa0NFO1VBQUE3RSxDQUFBLFFBQUFnRSxHQUFBO1VBQUFoRSxDQUFBLFFBQUFtRSxHQUFBO1VBQUFuRSxDQUFBLFFBQUF3RSxHQUFBO1VBQUF4RSxDQUFBLFFBQUE2RSxHQUFBO1VBQUE3RSxDQUFBLFFBQUE4RSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBOUUsQ0FBQTtRQUFBO1FBQUEsSUFBQTBGLEdBQUE7UUFBQSxJQUFBMUYsQ0FBQSxVQUFBRyxNQUFBLENBQUFDLEdBQUE7VUFDVHNGLEdBQUEsSUFBQyxxQkFBcUIsQ0FBYyxZQUFzRCxDQUF0RCxpRUFBcUQsQ0FBQyxHQUFHO1VBQUExRixDQUFBLFFBQUEwRixHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBMUYsQ0FBQTtRQUFBO1FBQUEsSUFBQTJGLEdBQUE7UUFBQSxJQUFBM0YsQ0FBQSxVQUFBOEUsR0FBQTtVQXBDL0ZhLEdBQUEsS0FDRSxDQUFBYixHQWtDUSxDQUNSLENBQUFZLEdBQTRGLENBQUMsR0FDNUY7VUFBQTFGLENBQUEsUUFBQThFLEdBQUE7VUFBQTlFLENBQUEsUUFBQTJGLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUEzRixDQUFBO1FBQUE7UUFBQSxPQXJDSDJGLEdBcUNHO01BQUE7SUFBQSxLQUlGLFlBQVk7TUFBQTtRQUFBLElBQUEvQixHQUFBO1FBQUEsSUFBQTVELENBQUEsVUFBQWdCLFNBQUEsSUFBQWhCLENBQUEsVUFBQU8sU0FBQSxDQUFBNkMsS0FBQTtVQUFBLElBQUFZLEdBQUE7VUFBQSxJQUFBaEUsQ0FBQSxVQUFBTyxTQUFBLENBQUE2QyxLQUFBO1lBR2JZLEdBQUEsR0FBQW9DLEdBQUEsSUFDRTVDLEdBQUMsQ0FBQUMsU0FBVSxLQUFLbEQsU0FBUyxDQUFBNkMsS0FBTSxDQUFBSyxTQUNJLElBQW5DRCxHQUFDLENBQUFsRCxNQUFPLEtBQUtDLFNBQVMsQ0FBQTZDLEtBQU0sQ0FBQTlDLE1BQU87WUFBQU4sQ0FBQSxRQUFBTyxTQUFBLENBQUE2QyxLQUFBO1lBQUFwRCxDQUFBLFFBQUFnRSxHQUFBO1VBQUE7WUFBQUEsR0FBQSxHQUFBaEUsQ0FBQTtVQUFBO1VBSHBCNEQsR0FBQSxHQUFBNUMsU0FBUyxDQUFBZ0UsSUFBSyxDQUMvQmhCLEdBR0YsQ0FBQztVQUFBaEUsQ0FBQSxRQUFBZ0IsU0FBQTtVQUFBaEIsQ0FBQSxRQUFBTyxTQUFBLENBQUE2QyxLQUFBO1VBQUFwRCxDQUFBLFFBQUE0RCxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBNUQsQ0FBQTtRQUFBO1FBSkQsTUFBQXFHLFVBQUEsR0FBbUJ6QyxHQUlsQjtRQUNELE1BQUEwQyxXQUFBLEdBQW9CRCxVQUE2QixJQUFmOUYsU0FBUyxDQUFBNkMsS0FBTTtRQUtwQyxNQUFBWSxHQUFBLGtCQUFlc0MsV0FBVyxDQUFBN0MsU0FBVSxFQUFFO1FBQUEsSUFBQVUsR0FBQTtRQUFBLElBQUFuRSxDQUFBLFVBQUFPLFNBQUEsQ0FBQW1FLFlBQUE7VUFDbkNQLEdBQUEsR0FBQUEsQ0FBQSxLQUFNM0QsWUFBWSxDQUFDRCxTQUFTLENBQUFtRSxZQUFhLENBQUM7VUFBQTFFLENBQUEsUUFBQU8sU0FBQSxDQUFBbUUsWUFBQTtVQUFBMUUsQ0FBQSxRQUFBbUUsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQW5FLENBQUE7UUFBQTtRQUFBLElBQUF3RSxHQUFBO1FBQUEsSUFBQUcsR0FBQTtRQUFBLElBQUEzRSxDQUFBLFVBQUFPLFNBQUEsQ0FBQW1FLFlBQUE7VUFNekNGLEdBQUEsR0FBQStCLFNBQUE7WUFDUHJELGtCQUFrQixDQUFDRixTQUFPLENBQUM7WUFDM0J4QyxZQUFZLENBQUNELFNBQVMsQ0FBQW1FLFlBQWEsQ0FBQztVQUFBLENBQ3JDO1VBQ09DLEdBQUEsR0FBQUEsQ0FBQSxLQUFNbkUsWUFBWSxDQUFDRCxTQUFTLENBQUFtRSxZQUFhLENBQUM7VUFBQTFFLENBQUEsUUFBQU8sU0FBQSxDQUFBbUUsWUFBQTtVQUFBMUUsQ0FBQSxRQUFBd0UsR0FBQTtVQUFBeEUsQ0FBQSxRQUFBMkUsR0FBQTtRQUFBO1VBQUFILEdBQUEsR0FBQXhFLENBQUE7VUFBQTJFLEdBQUEsR0FBQTNFLENBQUE7UUFBQTtRQUFBLElBQUE0RSxHQUFBO1FBQUEsSUFBQTVFLENBQUEsVUFBQXNHLFdBQUEsSUFBQXRHLENBQUEsVUFBQXNCLFdBQUEsSUFBQXRCLENBQUEsVUFBQXdFLEdBQUEsSUFBQXhFLENBQUEsVUFBQTJFLEdBQUE7VUFQcERDLEdBQUEsSUFBQyxXQUFXLENBQ0gwQixLQUFXLENBQVhBLFlBQVUsQ0FBQyxDQUNYaEYsS0FBVyxDQUFYQSxZQUFVLENBQUMsQ0FDVCxPQUdSLENBSFEsQ0FBQWtELEdBR1QsQ0FBQyxDQUNPLE1BQTBDLENBQTFDLENBQUFHLEdBQXlDLENBQUMsR0FDbEQ7VUFBQTNFLENBQUEsUUFBQXNHLFdBQUE7VUFBQXRHLENBQUEsUUFBQXNCLFdBQUE7VUFBQXRCLENBQUEsUUFBQXdFLEdBQUE7VUFBQXhFLENBQUEsUUFBQTJFLEdBQUE7VUFBQTNFLENBQUEsUUFBQTRFLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUE1RSxDQUFBO1FBQUE7UUFBQSxJQUFBNkUsR0FBQTtRQUFBLElBQUE3RSxDQUFBLFVBQUFnRSxHQUFBLElBQUFoRSxDQUFBLFVBQUFtRSxHQUFBLElBQUFuRSxDQUFBLFVBQUE0RSxHQUFBO1VBYkpDLEdBQUEsSUFBQyxNQUFNLENBQ0UsS0FBc0MsQ0FBdEMsQ0FBQWIsR0FBcUMsQ0FBQyxDQUNuQyxRQUEwQyxDQUExQyxDQUFBRyxHQUF5QyxDQUFDLENBQ3BELGNBQWMsQ0FBZCxLQUFhLENBQUMsQ0FFZCxDQUFBUyxHQVFDLENBQ0gsRUFkQyxNQUFNLENBY0U7VUFBQTVFLENBQUEsUUFBQWdFLEdBQUE7VUFBQWhFLENBQUEsUUFBQW1FLEdBQUE7VUFBQW5FLENBQUEsUUFBQTRFLEdBQUE7VUFBQTVFLENBQUEsUUFBQTZFLEdBQUE7UUFBQTtVQUFBQSxHQUFBLEdBQUE3RSxDQUFBO1FBQUE7UUFBQSxJQUFBOEUsR0FBQTtRQUFBLElBQUE5RSxDQUFBLFVBQUFHLE1BQUEsQ0FBQUMsR0FBQTtVQUNUMEUsR0FBQSxJQUFDLHFCQUFxQixHQUFHO1VBQUE5RSxDQUFBLFFBQUE4RSxHQUFBO1FBQUE7VUFBQUEsR0FBQSxHQUFBOUUsQ0FBQTtRQUFBO1FBQUEsSUFBQTBGLEdBQUE7UUFBQSxJQUFBMUYsQ0FBQSxVQUFBNkUsR0FBQTtVQWhCM0JhLEdBQUEsS0FDRSxDQUFBYixHQWNRLENBQ1IsQ0FBQUMsR0FBd0IsQ0FBQyxHQUN4QjtVQUFBOUUsQ0FBQSxRQUFBNkUsR0FBQTtVQUFBN0UsQ0FBQSxRQUFBMEYsR0FBQTtRQUFBO1VBQUFBLEdBQUEsR0FBQTFGLENBQUE7UUFBQTtRQUFBLE9BakJIMEYsR0FpQkc7TUFBQTtJQUFBO01BQUE7UUFBQSxPQUtFLElBQUk7TUFBQTtFQUNmO0FBQUM7QUF6VUksU0FBQXJELE9BQUFtRSxHQUFBO0VBQUEsT0E0QjZCaEQsR0FBQyxDQUFBbEQsTUFBTyxLQUFLLFFBQVE7QUFBQTtBQTVCbEQsU0FBQTZCLE9BQUFzRSxHQUFBO0VBQUEsT0EyQm1DakQsR0FBQyxDQUFBbEQsTUFBTyxLQUFLLGNBQWM7QUFBQTtBQTNCOUQsU0FBQTJCLE9BQUF5RSxHQUFBO0VBQUEsT0EwQm9DbEQsR0FBQyxDQUFBbEQsTUFBTyxLQUFLLGVBQWU7QUFBQTtBQTFCaEUsU0FBQXlCLE9BQUE0RSxHQUFBO0VBQUEsT0F5QnFDbkQsR0FBQyxDQUFBbEQsTUFBTyxLQUFLLGdCQUFnQjtBQUFBO0FBekJsRSxTQUFBdUIsT0FBQStFLEdBQUE7RUFBQSxPQXdCc0NwRCxHQUFDLENBQUFsRCxNQUFPLEtBQUssaUJBQWlCO0FBQUE7QUF4QnBFLFNBQUFxQixPQUFBa0YsR0FBQTtFQUFBLE9BdUJtQ3JELEdBQUMsQ0FBQWxELE1BQU8sS0FBSyxjQUFjO0FBQUE7QUF2QjlELFNBQUFtQixPQUFBK0IsQ0FBQTtFQUFBLE9Bc0JpQ0EsQ0FBQyxDQUFBbEQsTUFBTyxLQUFLLFVBQVU7QUFBQTtBQXRCeEQsU0FBQVEsT0FBQWdHLEdBQUE7RUFBQSxPQU8wQ0MsR0FBQyxDQUFBbEcscUJBQXNCO0FBQUE7QUFQakUsU0FBQUQsT0FBQW9HLEdBQUE7RUFBQSxPQU02QkQsR0FBQyxDQUFBRSxHQUFJLENBQUF4SCxLQUFNO0FBQUE7QUFOeEMsU0FBQWlCLE1BQUFxRyxDQUFBO0VBQUEsT0FLcUNBLENBQUMsQ0FBQXRHLGdCQUFpQjtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
1
2
|
import { c as _c } from "react/compiler-runtime";
|
|
2
3
|
import figures from 'figures';
|
|
3
4
|
import React, { useCallback, useMemo, useState } from 'react';
|
|
@@ -559,4 +560,4 @@ function _temp2(t_0) {
|
|
|
559
560
|
function _temp(t) {
|
|
560
561
|
return t.name;
|
|
561
562
|
}
|
|
562
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIm1jcEluZm9Gcm9tU3RyaW5nIiwiaXNNY3BUb29sIiwiVG9vbCIsIlRvb2xzIiwiZmlsdGVyVG9vbHNGb3JBZ2VudCIsIkFHRU5UX1RPT0xfTkFNRSIsIkJhc2hUb29sIiwiRXhpdFBsYW5Nb2RlVjJUb29sIiwiRmlsZUVkaXRUb29sIiwiRmlsZVJlYWRUb29sIiwiRmlsZVdyaXRlVG9vbCIsIkdsb2JUb29sIiwiR3JlcFRvb2wiLCJMaXN0TWNwUmVzb3VyY2VzVG9vbCIsIk5vdGVib29rRWRpdFRvb2wiLCJSZWFkTWNwUmVzb3VyY2VUb29sIiwiVGFza091dHB1dFRvb2wiLCJUYXNrU3RvcFRvb2wiLCJUb2RvV3JpdGVUb29sIiwiVHVuZ3N0ZW5Ub29sIiwiV2ViRmV0Y2hUb29sIiwiV2ViU2VhcmNoVG9vbCIsIktleWJvYXJkRXZlbnQiLCJCb3giLCJUZXh0IiwidXNlS2V5YmluZGluZyIsImNvdW50IiwicGx1cmFsIiwiRGl2aWRlciIsIlByb3BzIiwidG9vbHMiLCJpbml0aWFsVG9vbHMiLCJvbkNvbXBsZXRlIiwic2VsZWN0ZWRUb29scyIsIm9uQ2FuY2VsIiwiVG9vbEJ1Y2tldCIsIm5hbWUiLCJ0b29sTmFtZXMiLCJTZXQiLCJpc01jcCIsIlRvb2xCdWNrZXRzIiwiUkVBRF9PTkxZIiwiRURJVCIsIkVYRUNVVElPTiIsIk1DUCIsIk9USEVSIiwiZ2V0VG9vbEJ1Y2tldHMiLCJ1bmRlZmluZWQiLCJmaWx0ZXIiLCJuIiwiZ2V0TWNwU2VydmVyQnVja2V0cyIsIkFycmF5Iiwic2VydmVyTmFtZSIsInNlcnZlck1hcCIsIk1hcCIsImZvckVhY2giLCJ0b29sIiwibWNwSW5mbyIsImV4aXN0aW5nIiwiZ2V0IiwicHVzaCIsInNldCIsImZyb20iLCJlbnRyaWVzIiwibWFwIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsIlRvb2xTZWxlY3RvciIsInQwIiwiJCIsIl9jIiwidDEiLCJpc0J1aWx0SW4iLCJpc0FzeW5jIiwiY3VzdG9tQWdlbnRUb29scyIsInQyIiwiaW5jbHVkZXMiLCJfdGVtcCIsImV4cGFuZGVkSW5pdGlhbFRvb2xzIiwic2V0U2VsZWN0ZWRUb29scyIsImZvY3VzSW5kZXgiLCJzZXRGb2N1c0luZGV4Iiwic2hvd0luZGl2aWR1YWxUb29scyIsInNldFNob3dJbmRpdmlkdWFsVG9vbHMiLCJ0MyIsIl90ZW1wMiIsInQ0IiwidDUiLCJoYXMiLCJ2YWxpZFNlbGVjdGVkVG9vbHMiLCJzZWxlY3RlZFNldCIsImlzQWxsU2VsZWN0ZWQiLCJsZW5ndGgiLCJ0NiIsIlN5bWJvbCIsImZvciIsInRvb2xOYW1lIiwiY3VycmVudCIsInRfMSIsInQiLCJoYW5kbGVUb2dnbGVUb29sIiwidDciLCJ0b29sTmFtZXNfMCIsInNlbGVjdCIsImN1cnJlbnRfMCIsInRvb2xzVG9BZGQiLCJ0XzIiLCJ0XzMiLCJoYW5kbGVUb2dnbGVUb29scyIsInQ4IiwiYWxsVG9vbE5hbWVzIiwiX3RlbXAzIiwiYXJlQWxsVG9vbHNTZWxlY3RlZCIsImV2ZXJ5IiwibmFtZV8wIiwiZmluYWxUb29scyIsImhhbmRsZUNvbmZpcm0iLCJidWNrZXRzIiwidG9vbEJ1Y2tldHMiLCJyZWFkT25seSIsImVkaXQiLCJleGVjdXRpb24iLCJtY3AiLCJvdGhlciIsInRvb2xzQnlCdWNrZXQiLCJ0OSIsImJ1Y2tldFRvb2xzIiwic2VsZWN0ZWQiLCJ0XzUiLCJuZWVkc1NlbGVjdGlvbiIsInRvb2xOYW1lc18xIiwiX3RlbXA0IiwiY3JlYXRlQnVja2V0VG9nZ2xlQWN0aW9uIiwibmF2aWdhYmxlSXRlbXMiLCJpZCIsImxhYmVsIiwiYWN0aW9uIiwiaXNDb250aW51ZSIsInQxMCIsImFsbFRvb2xOYW1lc18wIiwiX3RlbXA1IiwiY2hlY2tib3hPbiIsImNoZWNrYm94T2ZmIiwidG9vbEJ1Y2tldHNfMCIsImJ1Y2tldENvbmZpZ3MiLCJ0MTEiLCJuYW1lXzEiLCJidWNrZXRUb29sc18wIiwic2VsZWN0ZWRfMCIsInRfOCIsImlzRnVsbHlTZWxlY3RlZCIsInRvZ2dsZUJ1dHRvbkluZGV4IiwidDEyIiwiaXNUb2dnbGUiLCJtY3BTZXJ2ZXJCdWNrZXRzIiwiX3RlbXA2IiwiaXNIZWFkZXIiLCJ0MTMiLCJzZXJ2ZXJUb29scyIsInNlbGVjdGVkXzEiLCJ0XzkiLCJpc0Z1bGx5U2VsZWN0ZWRfMCIsInRvb2xOYW1lc18yIiwiX3RlbXA3IiwiX3RlbXA4IiwidG9vbF8wIiwiZGlzcGxheU5hbWUiLCJzdGFydHNXaXRoIiwiaGFuZGxlQ2FuY2VsIiwiY29udGV4dCIsImUiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsIml0ZW0iLCJuZXdJbmRleCIsIk1hdGgiLCJtYXgiLCJuZXdJbmRleF8wIiwibWluIiwiaGFuZGxlS2V5RG93biIsInQxNCIsInQxNSIsInBvaW50ZXIiLCJ0MTYiLCJ0MTciLCJ0MTgiLCJzbGljZSIsInQxOSIsIml0ZW1fMCIsImluZGV4IiwiaXNDdXJyZW50bHlGb2N1c2VkIiwiaXNUb2dnbGVCdXR0b24iLCJ0MjAiLCJzaXplIiwidDIxIiwidDIyIiwidF8xMCIsInRfNyIsInRfNiIsInRfNCIsInRfMCJdLCJzb3VyY2VzIjpbIlRvb2xTZWxlY3Rvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpZ3VyZXMgZnJvbSAnZmlndXJlcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IG1jcEluZm9Gcm9tU3RyaW5nIH0gZnJvbSAnc3JjL3NlcnZpY2VzL21jcC9tY3BTdHJpbmdVdGlscy5qcydcbmltcG9ydCB7IGlzTWNwVG9vbCB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9tY3AvdXRpbHMuanMnXG5pbXBvcnQgdHlwZSB7IFRvb2wsIFRvb2xzIH0gZnJvbSAnc3JjL1Rvb2wuanMnXG5pbXBvcnQgeyBmaWx0ZXJUb29sc0ZvckFnZW50IH0gZnJvbSAnc3JjL3Rvb2xzL0FnZW50VG9vbC9hZ2VudFRvb2xVdGlscy5qcydcbmltcG9ydCB7IEFHRU5UX1RPT0xfTkFNRSB9IGZyb20gJ3NyYy90b29scy9BZ2VudFRvb2wvY29uc3RhbnRzLmpzJ1xuaW1wb3J0IHsgQmFzaFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvQmFzaFRvb2wvQmFzaFRvb2wuanMnXG5pbXBvcnQgeyBFeGl0UGxhbk1vZGVWMlRvb2wgfSBmcm9tICdzcmMvdG9vbHMvRXhpdFBsYW5Nb2RlVG9vbC9FeGl0UGxhbk1vZGVWMlRvb2wuanMnXG5pbXBvcnQgeyBGaWxlRWRpdFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvRmlsZUVkaXRUb29sL0ZpbGVFZGl0VG9vbC5qcydcbmltcG9ydCB7IEZpbGVSZWFkVG9vbCB9IGZyb20gJ3NyYy90b29scy9GaWxlUmVhZFRvb2wvRmlsZVJlYWRUb29sLmpzJ1xuaW1wb3J0IHsgRmlsZVdyaXRlVG9vbCB9IGZyb20gJ3NyYy90b29scy9GaWxlV3JpdGVUb29sL0ZpbGVXcml0ZVRvb2wuanMnXG5pbXBvcnQgeyBHbG9iVG9vbCB9IGZyb20gJ3NyYy90b29scy9HbG9iVG9vbC9HbG9iVG9vbC5qcydcbmltcG9ydCB7IEdyZXBUb29sIH0gZnJvbSAnc3JjL3Rvb2xzL0dyZXBUb29sL0dyZXBUb29sLmpzJ1xuaW1wb3J0IHsgTGlzdE1jcFJlc291cmNlc1Rvb2wgfSBmcm9tICdzcmMvdG9vbHMvTGlzdE1jcFJlc291cmNlc1Rvb2wvTGlzdE1jcFJlc291cmNlc1Rvb2wuanMnXG5pbXBvcnQgeyBOb3RlYm9va0VkaXRUb29sIH0gZnJvbSAnc3JjL3Rvb2xzL05vdGVib29rRWRpdFRvb2wvTm90ZWJvb2tFZGl0VG9vbC5qcydcbmltcG9ydCB7IFJlYWRNY3BSZXNvdXJjZVRvb2wgfSBmcm9tICdzcmMvdG9vbHMvUmVhZE1jcFJlc291cmNlVG9vbC9SZWFkTWNwUmVzb3VyY2VUb29sLmpzJ1xuaW1wb3J0IHsgVGFza091dHB1dFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvVGFza091dHB1dFRvb2wvVGFza091dHB1dFRvb2wuanMnXG5pbXBvcnQgeyBUYXNrU3RvcFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvVGFza1N0b3BUb29sL1Rhc2tTdG9wVG9vbC5qcydcbmltcG9ydCB7IFRvZG9Xcml0ZVRvb2wgfSBmcm9tICdzcmMvdG9vbHMvVG9kb1dyaXRlVG9vbC9Ub2RvV3JpdGVUb29sLmpzJ1xuaW1wb3J0IHsgVHVuZ3N0ZW5Ub29sIH0gZnJvbSAnc3JjL3Rvb2xzL1R1bmdzdGVuVG9vbC9UdW5nc3RlblRvb2wuanMnXG5pbXBvcnQgeyBXZWJGZXRjaFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvV2ViRmV0Y2hUb29sL1dlYkZldGNoVG9vbC5qcydcbmltcG9ydCB7IFdlYlNlYXJjaFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvV2ViU2VhcmNoVG9vbC9XZWJTZWFyY2hUb29sLmpzJ1xuaW1wb3J0IHR5cGUgeyBLZXlib2FyZEV2ZW50IH0gZnJvbSAnLi4vLi4vaW5rL2V2ZW50cy9rZXlib2FyZC1ldmVudC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmcgfSBmcm9tICcuLi8uLi9rZXliaW5kaW5ncy91c2VLZXliaW5kaW5nLmpzJ1xuaW1wb3J0IHsgY291bnQgfSBmcm9tICcuLi8uLi91dGlscy9hcnJheS5qcydcbmltcG9ydCB7IHBsdXJhbCB9IGZyb20gJy4uLy4uL3V0aWxzL3N0cmluZ1V0aWxzLmpzJ1xuaW1wb3J0IHsgRGl2aWRlciB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vRGl2aWRlci5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgdG9vbHM6IFRvb2xzXG4gIGluaXRpYWxUb29sczogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgb25Db21wbGV0ZTogKHNlbGVjdGVkVG9vbHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSA9PiB2b2lkXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZFxufVxuXG50eXBlIFRvb2xCdWNrZXQgPSB7XG4gIG5hbWU6IHN0cmluZ1xuICB0b29sTmFtZXM6IFNldDxzdHJpbmc+XG4gIGlzTWNwPzogYm9vbGVhblxufVxuXG50eXBlIFRvb2xCdWNrZXRzID0ge1xuICBSRUFEX09OTFk6IFRvb2xCdWNrZXRcbiAgRURJVDogVG9vbEJ1Y2tldFxuICBFWEVDVVRJT046IFRvb2xCdWNrZXRcbiAgTUNQOiBUb29sQnVja2V0XG4gIE9USEVSOiBUb29sQnVja2V0XG59XG5cbmZ1bmN0aW9uIGdldFRvb2xCdWNrZXRzKCk6IFRvb2xCdWNrZXRzIHtcbiAgcmV0dXJuIHtcbiAgICBSRUFEX09OTFk6IHtcbiAgICAgIG5hbWU6ICdSZWFkLW9ubHkgdG9vbHMnLFxuICAgICAgdG9vbE5hbWVzOiBuZXcgU2V0KFtcbiAgICAgICAgR2xvYlRvb2wubmFtZSxcbiAgICAgICAgR3JlcFRvb2wubmFtZSxcbiAgICAgICAgRXhpdFBsYW5Nb2RlVjJUb29sLm5hbWUsXG4gICAgICAgIEZpbGVSZWFkVG9vbC5uYW1lLFxuICAgICAgICBXZWJGZXRjaFRvb2wubmFtZSxcbiAgICAgICAgVG9kb1dyaXRlVG9vbC5uYW1lLFxuICAgICAgICBXZWJTZWFyY2hUb29sLm5hbWUsXG4gICAgICAgIFRhc2tTdG9wVG9vbC5uYW1lLFxuICAgICAgICBUYXNrT3V0cHV0VG9vbC5uYW1lLFxuICAgICAgICBMaXN0TWNwUmVzb3VyY2VzVG9vbC5uYW1lLFxuICAgICAgICBSZWFkTWNwUmVzb3VyY2VUb29sLm5hbWUsXG4gICAgICBdKSxcbiAgICB9LFxuICAgIEVESVQ6IHtcbiAgICAgIG5hbWU6ICdFZGl0IHRvb2xzJyxcbiAgICAgIHRvb2xOYW1lczogbmV3IFNldChbXG4gICAgICAgIEZpbGVFZGl0VG9vbC5uYW1lLFxuICAgICAgICBGaWxlV3JpdGVUb29sLm5hbWUsXG4gICAgICAgIE5vdGVib29rRWRpdFRvb2wubmFtZSxcbiAgICAgIF0pLFxuICAgIH0sXG4gICAgRVhFQ1VUSU9OOiB7XG4gICAgICBuYW1lOiAnRXhlY3V0aW9uIHRvb2xzJyxcbiAgICAgIHRvb2xOYW1lczogbmV3IFNldChcbiAgICAgICAgW1xuICAgICAgICAgIEJhc2hUb29sLm5hbWUsXG4gICAgICAgICAgXCJleHRlcm5hbFwiID09PSAnYW50JyA/IFR1bmdzdGVuVG9vbC5uYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICBdLmZpbHRlcihuID0+IG4gIT09IHVuZGVmaW5lZCksXG4gICAgICApLFxuICAgIH0sXG4gICAgTUNQOiB7XG4gICAgICBuYW1lOiAnTUNQIHRvb2xzJyxcbiAgICAgIHRvb2xOYW1lczogbmV3IFNldCgpLCAvLyBEeW5hbWljIC0gbm8gc3RhdGljIGxpc3RcbiAgICAgIGlzTWNwOiB0cnVlLFxuICAgIH0sXG4gICAgT1RIRVI6IHtcbiAgICAgIG5hbWU6ICdPdGhlciB0b29scycsXG4gICAgICB0b29sTmFtZXM6IG5ldyBTZXQoKSwgLy8gRHluYW1pYyAtIGNhdGNoLWFsbCBmb3IgdW5jYXRlZ29yaXplZCB0b29sc1xuICAgIH0sXG4gIH1cbn1cblxuLy8gSGVscGVyIHRvIGdldCBNQ1Agc2VydmVyIGJ1Y2tldHMgZHluYW1pY2FsbHlcbmZ1bmN0aW9uIGdldE1jcFNlcnZlckJ1Y2tldHModG9vbHM6IFRvb2xzKTogQXJyYXk8e1xuICBzZXJ2ZXJOYW1lOiBzdHJpbmdcbiAgdG9vbHM6IFRvb2xzXG59PiB7XG4gIGNvbnN0IHNlcnZlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBUb29sW10+KClcblxuICB0b29scy5mb3JFYWNoKHRvb2wgPT4ge1xuICAgIGlmIChpc01jcFRvb2wodG9vbCkpIHtcbiAgICAgIGNvbnN0IG1jcEluZm8gPSBtY3BJbmZvRnJvbVN0cmluZyh0b29sLm5hbWUpXG4gICAgICBpZiAobWNwSW5mbz8uc2VydmVyTmFtZSkge1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHNlcnZlck1hcC5nZXQobWNwSW5mby5zZXJ2ZXJOYW1lKSB8fCBbXVxuICAgICAgICBleGlzdGluZy5wdXNoKHRvb2wpXG4gICAgICAgIHNlcnZlck1hcC5zZXQobWNwSW5mby5zZXJ2ZXJOYW1lLCBleGlzdGluZylcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIEFycmF5LmZyb20oc2VydmVyTWFwLmVudHJpZXMoKSlcbiAgICAubWFwKChbc2VydmVyTmFtZSwgdG9vbHNdKSA9PiAoeyBzZXJ2ZXJOYW1lLCB0b29scyB9KSlcbiAgICAuc29ydCgoYSwgYikgPT4gYS5zZXJ2ZXJOYW1lLmxvY2FsZUNvbXBhcmUoYi5zZXJ2ZXJOYW1lKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRvb2xTZWxlY3Rvcih7XG4gIHRvb2xzLFxuICBpbml0aWFsVG9vbHMsXG4gIG9uQ29tcGxldGUsXG4gIG9uQ2FuY2VsLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAvLyBGaWx0ZXIgdG9vbHMgZm9yIGN1c3RvbSBhZ2VudHNcbiAgY29uc3QgY3VzdG9tQWdlbnRUb29scyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZmlsdGVyVG9vbHNGb3JBZ2VudCh7IHRvb2xzLCBpc0J1aWx0SW46IGZhbHNlLCBpc0FzeW5jOiBmYWxzZSB9KSxcbiAgICBbdG9vbHNdLFxuICApXG5cbiAgLy8gRXhwYW5kIHdpbGRjYXJkIG9yIHVuZGVmaW5lZCB0byBleHBsaWNpdCB0b29sIGxpc3QgZm9yIGludGVybmFsIHN0YXRlXG4gIGNvbnN0IGV4cGFuZGVkSW5pdGlhbFRvb2xzID1cbiAgICAhaW5pdGlhbFRvb2xzIHx8IGluaXRpYWxUb29scy5pbmNsdWRlcygnKicpXG4gICAgICA/IGN1c3RvbUFnZW50VG9vbHMubWFwKHQgPT4gdC5uYW1lKVxuICAgICAgOiBpbml0aWFsVG9vbHNcblxuICBjb25zdCBbc2VsZWN0ZWRUb29scywgc2V0U2VsZWN0ZWRUb29sc10gPVxuICAgIHVzZVN0YXRlPHN0cmluZ1tdPihleHBhbmRlZEluaXRpYWxUb29scylcbiAgY29uc3QgW2ZvY3VzSW5kZXgsIHNldEZvY3VzSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW3Nob3dJbmRpdmlkdWFsVG9vbHMsIHNldFNob3dJbmRpdmlkdWFsVG9vbHNdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgLy8gRmlsdGVyIHNlbGVjdGVkVG9vbHMgdG8gb25seSBpbmNsdWRlIHRvb2xzIHRoYXQgY3VycmVudGx5IGV4aXN0XG4gIC8vIFRoaXMgaGFuZGxlcyBNQ1AgdG9vbHMgdGhhdCBkaXNjb25uZWN0IHdoaWxlIHNlbGVjdGVkXG4gIGNvbnN0IHZhbGlkU2VsZWN0ZWRUb29scyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHRvb2xOYW1lcyA9IG5ldyBTZXQoY3VzdG9tQWdlbnRUb29scy5tYXAodCA9PiB0Lm5hbWUpKVxuICAgIHJldHVybiBzZWxlY3RlZFRvb2xzLmZpbHRlcihuYW1lID0+IHRvb2xOYW1lcy5oYXMobmFtZSkpXG4gIH0sIFtzZWxlY3RlZFRvb2xzLCBjdXN0b21BZ2VudFRvb2xzXSlcblxuICBjb25zdCBzZWxlY3RlZFNldCA9IG5ldyBTZXQodmFsaWRTZWxlY3RlZFRvb2xzKVxuICBjb25zdCBpc0FsbFNlbGVjdGVkID1cbiAgICB2YWxpZFNlbGVjdGVkVG9vbHMubGVuZ3RoID09PSBjdXN0b21BZ2VudFRvb2xzLmxlbmd0aCAmJlxuICAgIGN1c3RvbUFnZW50VG9vbHMubGVuZ3RoID4gMFxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZVRvb2wgPSAodG9vbE5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmICghdG9vbE5hbWUpIHJldHVyblxuXG4gICAgc2V0U2VsZWN0ZWRUb29scyhjdXJyZW50ID0+XG4gICAgICBjdXJyZW50LmluY2x1ZGVzKHRvb2xOYW1lKVxuICAgICAgICA/IGN1cnJlbnQuZmlsdGVyKHQgPT4gdCAhPT0gdG9vbE5hbWUpXG4gICAgICAgIDogWy4uLmN1cnJlbnQsIHRvb2xOYW1lXSxcbiAgICApXG4gIH1cblxuICBjb25zdCBoYW5kbGVUb2dnbGVUb29scyA9ICh0b29sTmFtZXM6IHN0cmluZ1tdLCBzZWxlY3Q6IGJvb2xlYW4pID0+IHtcbiAgICBzZXRTZWxlY3RlZFRvb2xzKGN1cnJlbnQgPT4ge1xuICAgICAgaWYgKHNlbGVjdCkge1xuICAgICAgICBjb25zdCB0b29sc1RvQWRkID0gdG9vbE5hbWVzLmZpbHRlcih0ID0+ICFjdXJyZW50LmluY2x1ZGVzKHQpKVxuICAgICAgICByZXR1cm4gWy4uLmN1cnJlbnQsIC4uLnRvb2xzVG9BZGRdXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY3VycmVudC5maWx0ZXIodCA9PiAhdG9vbE5hbWVzLmluY2x1ZGVzKHQpKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25maXJtID0gKCkgPT4ge1xuICAgIC8vIENvbnZlcnQgdG8gdW5kZWZpbmVkIGlmIGFsbCB0b29scyBhcmUgc2VsZWN0ZWQgKGZvciBjbGVhbmVyIGZpbGUgZm9ybWF0KVxuICAgIGNvbnN0IGFsbFRvb2xOYW1lcyA9IGN1c3RvbUFnZW50VG9vbHMubWFwKHQgPT4gdC5uYW1lKVxuICAgIGNvbnN0IGFyZUFsbFRvb2xzU2VsZWN0ZWQgPVxuICAgICAgdmFsaWRTZWxlY3RlZFRvb2xzLmxlbmd0aCA9PT0gYWxsVG9vbE5hbWVzLmxlbmd0aCAmJlxuICAgICAgYWxsVG9vbE5hbWVzLmV2ZXJ5KG5hbWUgPT4gdmFsaWRTZWxlY3RlZFRvb2xzLmluY2x1ZGVzKG5hbWUpKVxuICAgIGNvbnN0IGZpbmFsVG9vbHMgPSBhcmVBbGxUb29sc1NlbGVjdGVkID8gdW5kZWZpbmVkIDogdmFsaWRTZWxlY3RlZFRvb2xzXG5cbiAgICBvbkNvbXBsZXRlKGZpbmFsVG9vbHMpXG4gIH1cblxuICAvLyBHcm91cCB0b29scyBieSBidWNrZXRcbiAgY29uc3QgdG9vbHNCeUJ1Y2tldCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHRvb2xCdWNrZXRzID0gZ2V0VG9vbEJ1Y2tldHMoKVxuICAgIGNvbnN0IGJ1Y2tldHMgPSB7XG4gICAgICByZWFkT25seTogW10gYXMgVG9vbFtdLFxuICAgICAgZWRpdDogW10gYXMgVG9vbFtdLFxuICAgICAgZXhlY3V0aW9uOiBbXSBhcyBUb29sW10sXG4gICAgICBtY3A6IFtdIGFzIFRvb2xbXSxcbiAgICAgIG90aGVyOiBbXSBhcyBUb29sW10sXG4gICAgfVxuXG4gICAgY3VzdG9tQWdlbnRUb29scy5mb3JFYWNoKHRvb2wgPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgaXQncyBhbiBNQ1AgdG9vbCBmaXJzdFxuICAgICAgaWYgKGlzTWNwVG9vbCh0b29sKSkge1xuICAgICAgICBidWNrZXRzLm1jcC5wdXNoKHRvb2wpXG4gICAgICB9IGVsc2UgaWYgKHRvb2xCdWNrZXRzLlJFQURfT05MWS50b29sTmFtZXMuaGFzKHRvb2wubmFtZSkpIHtcbiAgICAgICAgYnVja2V0cy5yZWFkT25seS5wdXNoKHRvb2wpXG4gICAgICB9IGVsc2UgaWYgKHRvb2xCdWNrZXRzLkVESVQudG9vbE5hbWVzLmhhcyh0b29sLm5hbWUpKSB7XG4gICAgICAgIGJ1Y2tldHMuZWRpdC5wdXNoKHRvb2wpXG4gICAgICB9IGVsc2UgaWYgKHRvb2xCdWNrZXRzLkVYRUNVVElPTi50b29sTmFtZXMuaGFzKHRvb2wubmFtZSkpIHtcbiAgICAgICAgYnVja2V0cy5leGVjdXRpb24ucHVzaCh0b29sKVxuICAgICAgfSBlbHNlIGlmICh0b29sLm5hbWUgIT09IEFHRU5UX1RPT0xfTkFNRSkge1xuICAgICAgICAvLyBDYXRjaC1hbGwgZm9yIHVuY2F0ZWdvcml6ZWQgdG9vbHMgKGV4Y2VwdCBUYXNrKVxuICAgICAgICBidWNrZXRzLm90aGVyLnB1c2godG9vbClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIGJ1Y2tldHNcbiAgfSwgW2N1c3RvbUFnZW50VG9vbHNdKVxuXG4gIGNvbnN0IGNyZWF0ZUJ1Y2tldFRvZ2dsZUFjdGlvbiA9IChidWNrZXRUb29sczogVG9vbFtdKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBjb3VudChidWNrZXRUb29scywgdCA9PiBzZWxlY3RlZFNldC5oYXModC5uYW1lKSlcbiAgICBjb25zdCBuZWVkc1NlbGVjdGlvbiA9IHNlbGVjdGVkIDwgYnVja2V0VG9vbHMubGVuZ3RoXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgdG9vbE5hbWVzID0gYnVja2V0VG9vbHMubWFwKHQgPT4gdC5uYW1lKVxuICAgICAgaGFuZGxlVG9nZ2xlVG9vbHModG9vbE5hbWVzLCBuZWVkc1NlbGVjdGlvbilcbiAgICB9XG4gIH1cblxuICAvLyBCdWlsZCBuYXZpZ2FibGUgaXRlbXMgKG5vIHNlcGFyYXRvcnMpXG4gIGNvbnN0IG5hdmlnYWJsZUl0ZW1zOiBBcnJheTx7XG4gICAgaWQ6IHN0cmluZ1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICBhY3Rpb246ICgpID0+IHZvaWRcbiAgICBpc0NvbnRpbnVlPzogYm9vbGVhblxuICAgIGlzVG9nZ2xlPzogYm9vbGVhblxuICAgIGlzSGVhZGVyPzogYm9vbGVhblxuICB9PiA9IFtdXG5cbiAgLy8gQ29udGludWUgYnV0dG9uXG4gIG5hdmlnYWJsZUl0ZW1zLnB1c2goe1xuICAgIGlkOiAnY29udGludWUnLFxuICAgIGxhYmVsOiAnQ29udGludWUnLFxuICAgIGFjdGlvbjogaGFuZGxlQ29uZmlybSxcbiAgICBpc0NvbnRpbnVlOiB0cnVlLFxuICB9KVxuXG4gIC8vIEFsbCB0b29sc1xuICBuYXZpZ2FibGVJdGVtcy5wdXNoKHtcbiAgICBpZDogJ2J1Y2tldC1hbGwnLFxuICAgIGxhYmVsOiBgJHtpc0FsbFNlbGVjdGVkID8gZmlndXJlcy5jaGVja2JveE9uIDogZmlndXJlcy5jaGVja2JveE9mZn0gQWxsIHRvb2xzYCxcbiAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgIGNvbnN0IGFsbFRvb2xOYW1lcyA9IGN1c3RvbUFnZW50VG9vbHMubWFwKHQgPT4gdC5uYW1lKVxuICAgICAgaGFuZGxlVG9nZ2xlVG9vbHMoYWxsVG9vbE5hbWVzLCAhaXNBbGxTZWxlY3RlZClcbiAgICB9LFxuICB9KVxuXG4gIC8vIENyZWF0ZSBidWNrZXQgbWVudSBpdGVtc1xuICBjb25zdCB0b29sQnVja2V0cyA9IGdldFRvb2xCdWNrZXRzKClcbiAgY29uc3QgYnVja2V0Q29uZmlncyA9IFtcbiAgICB7XG4gICAgICBpZDogJ2J1Y2tldC1yZWFkb25seScsXG4gICAgICBuYW1lOiB0b29sQnVja2V0cy5SRUFEX09OTFkubmFtZSxcbiAgICAgIHRvb2xzOiB0b29sc0J5QnVja2V0LnJlYWRPbmx5LFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdidWNrZXQtZWRpdCcsXG4gICAgICBuYW1lOiB0b29sQnVja2V0cy5FRElULm5hbWUsXG4gICAgICB0b29sczogdG9vbHNCeUJ1Y2tldC5lZGl0LFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdidWNrZXQtZXhlY3V0aW9uJyxcbiAgICAgIG5hbWU6IHRvb2xCdWNrZXRzLkVYRUNVVElPTi5uYW1lLFxuICAgICAgdG9vbHM6IHRvb2xzQnlCdWNrZXQuZXhlY3V0aW9uLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdidWNrZXQtbWNwJyxcbiAgICAgIG5hbWU6IHRvb2xCdWNrZXRzLk1DUC5uYW1lLFxuICAgICAgdG9vbHM6IHRvb2xzQnlCdWNrZXQubWNwLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdidWNrZXQtb3RoZXInLFxuICAgICAgbmFtZTogdG9vbEJ1Y2tldHMuT1RIRVIubmFtZSxcbiAgICAgIHRvb2xzOiB0b29sc0J5QnVja2V0Lm90aGVyLFxuICAgIH0sXG4gIF1cblxuICBidWNrZXRDb25maWdzLmZvckVhY2goKHsgaWQsIG5hbWUsIHRvb2xzOiBidWNrZXRUb29scyB9KSA9PiB7XG4gICAgaWYgKGJ1Y2tldFRvb2xzLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IGNvdW50KGJ1Y2tldFRvb2xzLCB0ID0+IHNlbGVjdGVkU2V0Lmhhcyh0Lm5hbWUpKVxuICAgIGNvbnN0IGlzRnVsbHlTZWxlY3RlZCA9IHNlbGVjdGVkID09PSBidWNrZXRUb29scy5sZW5ndGhcblxuICAgIG5hdmlnYWJsZUl0ZW1zLnB1c2goe1xuICAgICAgaWQsXG4gICAgICBsYWJlbDogYCR7aXNGdWxseVNlbGVjdGVkID8gZmlndXJlcy5jaGVja2JveE9uIDogZmlndXJlcy5jaGVja2JveE9mZn0gJHtuYW1lfWAsXG4gICAgICBhY3Rpb246IGNyZWF0ZUJ1Y2tldFRvZ2dsZUFjdGlvbihidWNrZXRUb29scyksXG4gICAgfSlcbiAgfSlcblxuICAvLyBUb2dnbGUgYnV0dG9uIGZvciBpbmRpdmlkdWFsIHRvb2xzXG4gIGNvbnN0IHRvZ2dsZUJ1dHRvbkluZGV4ID0gbmF2aWdhYmxlSXRlbXMubGVuZ3RoXG4gIG5hdmlnYWJsZUl0ZW1zLnB1c2goe1xuICAgIGlkOiAndG9nZ2xlLWluZGl2aWR1YWwnLFxuICAgIGxhYmVsOiBzaG93SW5kaXZpZHVhbFRvb2xzXG4gICAgICA/ICdIaWRlIGFkdmFuY2VkIG9wdGlvbnMnXG4gICAgICA6ICdTaG93IGFkdmFuY2VkIG9wdGlvbnMnLFxuICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgc2V0U2hvd0luZGl2aWR1YWxUb29scyghc2hvd0luZGl2aWR1YWxUb29scylcbiAgICAgIC8vIElmIGhpZGluZyB0b29scyBhbmQgZm9jdXMgaXMgb24gYW4gaW5kaXZpZHVhbCB0b29sLCBtb3ZlIGZvY3VzIHRvIHRvZ2dsZSBidXR0b25cbiAgICAgIGlmIChzaG93SW5kaXZpZHVhbFRvb2xzICYmIGZvY3VzSW5kZXggPiB0b2dnbGVCdXR0b25JbmRleCkge1xuICAgICAgICBzZXRGb2N1c0luZGV4KHRvZ2dsZUJ1dHRvbkluZGV4KVxuICAgICAgfVxuICAgIH0sXG4gICAgaXNUb2dnbGU6IHRydWUsXG4gIH0pXG5cbiAgLy8gTWVtb2l6ZSBNQ1Agc2VydmVyIGJ1Y2tldHMgKG11c3QgYmUgb3V0c2lkZSBjb25kaXRpb25hbCBmb3IgaG9va3MgcnVsZXMpXG4gIGNvbnN0IG1jcFNlcnZlckJ1Y2tldHMgPSB1c2VNZW1vKFxuICAgICgpID0+IGdldE1jcFNlcnZlckJ1Y2tldHMoY3VzdG9tQWdlbnRUb29scyksXG4gICAgW2N1c3RvbUFnZW50VG9vbHNdLFxuICApXG5cbiAgLy8gSW5kaXZpZHVhbCB0b29scyAob25seSBpZiBleHBhbmRlZClcbiAgaWYgKHNob3dJbmRpdmlkdWFsVG9vbHMpIHtcbiAgICAvLyBBZGQgTUNQIHNlcnZlciBidWNrZXRzIGlmIGFueSBleGlzdFxuICAgIGlmIChtY3BTZXJ2ZXJCdWNrZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIG5hdmlnYWJsZUl0ZW1zLnB1c2goe1xuICAgICAgICBpZDogJ21jcC1zZXJ2ZXJzLWhlYWRlcicsXG4gICAgICAgIGxhYmVsOiAnTUNQIFNlcnZlcnM6JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB7fSwgLy8gTm8gYWN0aW9uIC0ganVzdCBhIGhlYWRlclxuICAgICAgICBpc0hlYWRlcjogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIG1jcFNlcnZlckJ1Y2tldHMuZm9yRWFjaCgoeyBzZXJ2ZXJOYW1lLCB0b29sczogc2VydmVyVG9vbHMgfSkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGNvdW50KHNlcnZlclRvb2xzLCB0ID0+IHNlbGVjdGVkU2V0Lmhhcyh0Lm5hbWUpKVxuICAgICAgICBjb25zdCBpc0Z1bGx5U2VsZWN0ZWQgPSBzZWxlY3RlZCA9PT0gc2VydmVyVG9vbHMubGVuZ3RoXG5cbiAgICAgICAgbmF2aWdhYmxlSXRlbXMucHVzaCh7XG4gICAgICAgICAgaWQ6IGBtY3Atc2VydmVyLSR7c2VydmVyTmFtZX1gLFxuICAgICAgICAgIGxhYmVsOiBgJHtpc0Z1bGx5U2VsZWN0ZWQgPyBmaWd1cmVzLmNoZWNrYm94T24gOiBmaWd1cmVzLmNoZWNrYm94T2ZmfSAke3NlcnZlck5hbWV9ICgke3NlcnZlclRvb2xzLmxlbmd0aH0gJHtwbHVyYWwoc2VydmVyVG9vbHMubGVuZ3RoLCAndG9vbCcpfSlgLFxuICAgICAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdG9vbE5hbWVzID0gc2VydmVyVG9vbHMubWFwKHQgPT4gdC5uYW1lKVxuICAgICAgICAgICAgaGFuZGxlVG9nZ2xlVG9vbHModG9vbE5hbWVzLCAhaXNGdWxseVNlbGVjdGVkKVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICB9KVxuXG4gICAgICAvLyBBZGQgc2VwYXJhdG9yIGhlYWRlciBiZWZvcmUgaW5kaXZpZHVhbCB0b29sc1xuICAgICAgbmF2aWdhYmxlSXRlbXMucHVzaCh7XG4gICAgICAgIGlkOiAndG9vbHMtaGVhZGVyJyxcbiAgICAgICAgbGFiZWw6ICdJbmRpdmlkdWFsIFRvb2xzOicsXG4gICAgICAgIGFjdGlvbjogKCkgPT4ge30sXG4gICAgICAgIGlzSGVhZGVyOiB0cnVlLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBBZGQgaW5kaXZpZHVhbCB0b29sc1xuICAgIGN1c3RvbUFnZW50VG9vbHMuZm9yRWFjaCh0b29sID0+IHtcbiAgICAgIGxldCBkaXNwbGF5TmFtZSA9IHRvb2wubmFtZVxuICAgICAgaWYgKHRvb2wubmFtZS5zdGFydHNXaXRoKCdtY3BfXycpKSB7XG4gICAgICAgIGNvbnN0IG1jcEluZm8gPSBtY3BJbmZvRnJvbVN0cmluZyh0b29sLm5hbWUpXG4gICAgICAgIGRpc3BsYXlOYW1lID0gbWNwSW5mb1xuICAgICAgICAgID8gYCR7bWNwSW5mby50b29sTmFtZX0gKCR7bWNwSW5mby5zZXJ2ZXJOYW1lfSlgXG4gICAgICAgICAgOiB0b29sLm5hbWVcbiAgICAgIH1cblxuICAgICAgbmF2aWdhYmxlSXRlbXMucHVzaCh7XG4gICAgICAgIGlkOiBgdG9vbC0ke3Rvb2wubmFtZX1gLFxuICAgICAgICBsYWJlbDogYCR7c2VsZWN0ZWRTZXQuaGFzKHRvb2wubmFtZSkgPyBmaWd1cmVzLmNoZWNrYm94T24gOiBmaWd1cmVzLmNoZWNrYm94T2ZmfSAke2Rpc3BsYXlOYW1lfWAsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gaGFuZGxlVG9nZ2xlVG9vbCh0b29sLm5hbWUpLFxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2FuY2VsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChvbkNhbmNlbCkge1xuICAgICAgb25DYW5jZWwoKVxuICAgIH0gZWxzZSB7XG4gICAgICBvbkNvbXBsZXRlKGluaXRpYWxUb29scylcbiAgICB9XG4gIH0sIFtvbkNhbmNlbCwgb25Db21wbGV0ZSwgaW5pdGlhbFRvb2xzXSlcblxuICB1c2VLZXliaW5kaW5nKCdjb25maXJtOm5vJywgaGFuZGxlQ2FuY2VsLCB7IGNvbnRleHQ6ICdDb25maXJtYXRpb24nIH0pXG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAncmV0dXJuJykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBjb25zdCBpdGVtID0gbmF2aWdhYmxlSXRlbXNbZm9jdXNJbmRleF1cbiAgICAgIGlmIChpdGVtICYmICFpdGVtLmlzSGVhZGVyKSB7XG4gICAgICAgIGl0ZW0uYWN0aW9uKClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAndXAnKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGxldCBuZXdJbmRleCA9IGZvY3VzSW5kZXggLSAxXG4gICAgICAvLyBTa2lwIGhlYWRlcnMgd2hlbiBuYXZpZ2F0aW5nIHVwXG4gICAgICB3aGlsZSAobmV3SW5kZXggPiAwICYmIG5hdmlnYWJsZUl0ZW1zW25ld0luZGV4XT8uaXNIZWFkZXIpIHtcbiAgICAgICAgbmV3SW5kZXgtLVxuICAgICAgfVxuICAgICAgc2V0Rm9jdXNJbmRleChNYXRoLm1heCgwLCBuZXdJbmRleCkpXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ2Rvd24nKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGxldCBuZXdJbmRleCA9IGZvY3VzSW5kZXggKyAxXG4gICAgICAvLyBTa2lwIGhlYWRlcnMgd2hlbiBuYXZpZ2F0aW5nIGRvd25cbiAgICAgIHdoaWxlIChcbiAgICAgICAgbmV3SW5kZXggPCBuYXZpZ2FibGVJdGVtcy5sZW5ndGggLSAxICYmXG4gICAgICAgIG5hdmlnYWJsZUl0ZW1zW25ld0luZGV4XT8uaXNIZWFkZXJcbiAgICAgICkge1xuICAgICAgICBuZXdJbmRleCsrXG4gICAgICB9XG4gICAgICBzZXRGb2N1c0luZGV4KE1hdGgubWluKG5hdmlnYWJsZUl0ZW1zLmxlbmd0aCAtIDEsIG5ld0luZGV4KSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxCb3hcbiAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgbWFyZ2luVG9wPXsxfVxuICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICBhdXRvRm9jdXNcbiAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICA+XG4gICAgICB7LyogUmVuZGVyIENvbnRpbnVlIGJ1dHRvbiAqL31cbiAgICAgIDxUZXh0XG4gICAgICAgIGNvbG9yPXtmb2N1c0luZGV4ID09PSAwID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfVxuICAgICAgICBib2xkPXtmb2N1c0luZGV4ID09PSAwfVxuICAgICAgPlxuICAgICAgICB7Zm9jdXNJbmRleCA9PT0gMCA/IGAke2ZpZ3VyZXMucG9pbnRlcn0gYCA6ICcgICd9WyBDb250aW51ZSBdXG4gICAgICA8L1RleHQ+XG5cbiAgICAgIHsvKiBTZXBhcmF0b3IgKi99XG4gICAgICA8RGl2aWRlciB3aWR0aD17NDB9IC8+XG5cbiAgICAgIHsvKiBSZW5kZXIgYWxsIG5hdmlnYWJsZSBpdGVtcyBleGNlcHQgQ29udGludWUgKHdoaWNoIGlzIGF0IGluZGV4IDApICovfVxuICAgICAge25hdmlnYWJsZUl0ZW1zLnNsaWNlKDEpLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgaXNDdXJyZW50bHlGb2N1c2VkID0gaW5kZXggKyAxID09PSBmb2N1c0luZGV4XG4gICAgICAgIGNvbnN0IGlzVG9nZ2xlQnV0dG9uID0gaXRlbS5pc1RvZ2dsZVxuICAgICAgICBjb25zdCBpc0hlYWRlciA9IGl0ZW0uaXNIZWFkZXJcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxSZWFjdC5GcmFnbWVudCBrZXk9e2l0ZW0uaWR9PlxuICAgICAgICAgICAgey8qIEFkZCBzZXBhcmF0b3IgYmVmb3JlIHRvZ2dsZSBidXR0b24gKi99XG4gICAgICAgICAgICB7aXNUb2dnbGVCdXR0b24gJiYgPERpdmlkZXIgd2lkdGg9ezQwfSAvPn1cblxuICAgICAgICAgICAgey8qIEFkZCBtYXJnaW4gYmVmb3JlIGhlYWRlcnMgKi99XG4gICAgICAgICAgICB7aXNIZWFkZXIgJiYgaW5kZXggPiAwICYmIDxCb3ggbWFyZ2luVG9wPXsxfSAvPn1cblxuICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgY29sb3I9e1xuICAgICAgICAgICAgICAgIGlzSGVhZGVyXG4gICAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgOiBpc0N1cnJlbnRseUZvY3VzZWRcbiAgICAgICAgICAgICAgICAgICAgPyAnc3VnZ2VzdGlvbidcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkaW1Db2xvcj17aXNIZWFkZXJ9XG4gICAgICAgICAgICAgIGJvbGQ9e2lzVG9nZ2xlQnV0dG9uICYmIGlzQ3VycmVudGx5Rm9jdXNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2lzSGVhZGVyXG4gICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgIDogaXNDdXJyZW50bHlGb2N1c2VkXG4gICAgICAgICAgICAgICAgICA/IGAke2ZpZ3VyZXMucG9pbnRlcn0gYFxuICAgICAgICAgICAgICAgICAgOiAnICAnfVxuICAgICAgICAgICAgICB7aXNUb2dnbGVCdXR0b24gPyBgWyAke2l0ZW0ubGFiZWx9IF1gIDogaXRlbS5sYWJlbH1cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICApXG4gICAgICB9KX1cblxuICAgICAgPEJveCBtYXJnaW5Ub3A9ezF9IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAge2lzQWxsU2VsZWN0ZWRcbiAgICAgICAgICAgID8gJ0FsbCB0b29scyBzZWxlY3RlZCdcbiAgICAgICAgICAgIDogYCR7c2VsZWN0ZWRTZXQuc2l6ZX0gb2YgJHtjdXN0b21BZ2VudFRvb2xzLmxlbmd0aH0gdG9vbHMgc2VsZWN0ZWRgfVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0JveD5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsT0FBTyxNQUFNLFNBQVM7QUFDN0IsT0FBT0MsS0FBSyxJQUFJQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDN0QsU0FBU0MsaUJBQWlCLFFBQVEsb0NBQW9DO0FBQ3RFLFNBQVNDLFNBQVMsUUFBUSwyQkFBMkI7QUFDckQsY0FBY0MsSUFBSSxFQUFFQyxLQUFLLFFBQVEsYUFBYTtBQUM5QyxTQUFTQyxtQkFBbUIsUUFBUSx1Q0FBdUM7QUFDM0UsU0FBU0MsZUFBZSxRQUFRLGtDQUFrQztBQUNsRSxTQUFTQyxRQUFRLFFBQVEsZ0NBQWdDO0FBQ3pELFNBQVNDLGtCQUFrQixRQUFRLGtEQUFrRDtBQUNyRixTQUFTQyxZQUFZLFFBQVEsd0NBQXdDO0FBQ3JFLFNBQVNDLFlBQVksUUFBUSx3Q0FBd0M7QUFDckUsU0FBU0MsYUFBYSxRQUFRLDBDQUEwQztBQUN4RSxTQUFTQyxRQUFRLFFBQVEsZ0NBQWdDO0FBQ3pELFNBQVNDLFFBQVEsUUFBUSxnQ0FBZ0M7QUFDekQsU0FBU0Msb0JBQW9CLFFBQVEsd0RBQXdEO0FBQzdG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
|
|
563
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIm1jcEluZm9Gcm9tU3RyaW5nIiwiaXNNY3BUb29sIiwiVG9vbCIsIlRvb2xzIiwiZmlsdGVyVG9vbHNGb3JBZ2VudCIsIkFHRU5UX1RPT0xfTkFNRSIsIkJhc2hUb29sIiwiRXhpdFBsYW5Nb2RlVjJUb29sIiwiRmlsZUVkaXRUb29sIiwiRmlsZVJlYWRUb29sIiwiRmlsZVdyaXRlVG9vbCIsIkdsb2JUb29sIiwiR3JlcFRvb2wiLCJMaXN0TWNwUmVzb3VyY2VzVG9vbCIsIk5vdGVib29rRWRpdFRvb2wiLCJSZWFkTWNwUmVzb3VyY2VUb29sIiwiVGFza091dHB1dFRvb2wiLCJUYXNrU3RvcFRvb2wiLCJUb2RvV3JpdGVUb29sIiwiVHVuZ3N0ZW5Ub29sIiwiV2ViRmV0Y2hUb29sIiwiV2ViU2VhcmNoVG9vbCIsIktleWJvYXJkRXZlbnQiLCJCb3giLCJUZXh0IiwidXNlS2V5YmluZGluZyIsImNvdW50IiwicGx1cmFsIiwiRGl2aWRlciIsIlByb3BzIiwidG9vbHMiLCJpbml0aWFsVG9vbHMiLCJvbkNvbXBsZXRlIiwic2VsZWN0ZWRUb29scyIsIm9uQ2FuY2VsIiwiVG9vbEJ1Y2tldCIsIm5hbWUiLCJ0b29sTmFtZXMiLCJTZXQiLCJpc01jcCIsIlRvb2xCdWNrZXRzIiwiUkVBRF9PTkxZIiwiRURJVCIsIkVYRUNVVElPTiIsIk1DUCIsIk9USEVSIiwiZ2V0VG9vbEJ1Y2tldHMiLCJ1bmRlZmluZWQiLCJmaWx0ZXIiLCJuIiwiZ2V0TWNwU2VydmVyQnVja2V0cyIsIkFycmF5Iiwic2VydmVyTmFtZSIsInNlcnZlck1hcCIsIk1hcCIsImZvckVhY2giLCJ0b29sIiwibWNwSW5mbyIsImV4aXN0aW5nIiwiZ2V0IiwicHVzaCIsInNldCIsImZyb20iLCJlbnRyaWVzIiwibWFwIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsIlRvb2xTZWxlY3RvciIsInQwIiwiJCIsIl9jIiwidDEiLCJpc0J1aWx0SW4iLCJpc0FzeW5jIiwiY3VzdG9tQWdlbnRUb29scyIsInQyIiwiaW5jbHVkZXMiLCJfdGVtcCIsImV4cGFuZGVkSW5pdGlhbFRvb2xzIiwic2V0U2VsZWN0ZWRUb29scyIsImZvY3VzSW5kZXgiLCJzZXRGb2N1c0luZGV4Iiwic2hvd0luZGl2aWR1YWxUb29scyIsInNldFNob3dJbmRpdmlkdWFsVG9vbHMiLCJ0MyIsIl90ZW1wMiIsInQ0IiwidDUiLCJoYXMiLCJ2YWxpZFNlbGVjdGVkVG9vbHMiLCJzZWxlY3RlZFNldCIsImlzQWxsU2VsZWN0ZWQiLCJsZW5ndGgiLCJ0NiIsIlN5bWJvbCIsImZvciIsInRvb2xOYW1lIiwiY3VycmVudCIsInRfMSIsInQiLCJoYW5kbGVUb2dnbGVUb29sIiwidDciLCJ0b29sTmFtZXNfMCIsInNlbGVjdCIsImN1cnJlbnRfMCIsInRvb2xzVG9BZGQiLCJ0XzIiLCJ0XzMiLCJoYW5kbGVUb2dnbGVUb29scyIsInQ4IiwiYWxsVG9vbE5hbWVzIiwiX3RlbXAzIiwiYXJlQWxsVG9vbHNTZWxlY3RlZCIsImV2ZXJ5IiwibmFtZV8wIiwiZmluYWxUb29scyIsImhhbmRsZUNvbmZpcm0iLCJidWNrZXRzIiwidG9vbEJ1Y2tldHMiLCJyZWFkT25seSIsImVkaXQiLCJleGVjdXRpb24iLCJtY3AiLCJvdGhlciIsInRvb2xzQnlCdWNrZXQiLCJ0OSIsImJ1Y2tldFRvb2xzIiwic2VsZWN0ZWQiLCJ0XzUiLCJuZWVkc1NlbGVjdGlvbiIsInRvb2xOYW1lc18xIiwiX3RlbXA0IiwiY3JlYXRlQnVja2V0VG9nZ2xlQWN0aW9uIiwibmF2aWdhYmxlSXRlbXMiLCJpZCIsImxhYmVsIiwiYWN0aW9uIiwiaXNDb250aW51ZSIsInQxMCIsImFsbFRvb2xOYW1lc18wIiwiX3RlbXA1IiwiY2hlY2tib3hPbiIsImNoZWNrYm94T2ZmIiwidG9vbEJ1Y2tldHNfMCIsImJ1Y2tldENvbmZpZ3MiLCJ0MTEiLCJuYW1lXzEiLCJidWNrZXRUb29sc18wIiwic2VsZWN0ZWRfMCIsInRfOCIsImlzRnVsbHlTZWxlY3RlZCIsInRvZ2dsZUJ1dHRvbkluZGV4IiwidDEyIiwiaXNUb2dnbGUiLCJtY3BTZXJ2ZXJCdWNrZXRzIiwiX3RlbXA2IiwiaXNIZWFkZXIiLCJ0MTMiLCJzZXJ2ZXJUb29scyIsInNlbGVjdGVkXzEiLCJ0XzkiLCJpc0Z1bGx5U2VsZWN0ZWRfMCIsInRvb2xOYW1lc18yIiwiX3RlbXA3IiwiX3RlbXA4IiwidG9vbF8wIiwiZGlzcGxheU5hbWUiLCJzdGFydHNXaXRoIiwiaGFuZGxlQ2FuY2VsIiwiY29udGV4dCIsImUiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsIml0ZW0iLCJuZXdJbmRleCIsIk1hdGgiLCJtYXgiLCJuZXdJbmRleF8wIiwibWluIiwiaGFuZGxlS2V5RG93biIsInQxNCIsInQxNSIsInBvaW50ZXIiLCJ0MTYiLCJ0MTciLCJ0MTgiLCJzbGljZSIsInQxOSIsIml0ZW1fMCIsImluZGV4IiwiaXNDdXJyZW50bHlGb2N1c2VkIiwiaXNUb2dnbGVCdXR0b24iLCJ0MjAiLCJzaXplIiwidDIxIiwidDIyIiwidF8xMCIsInRfNyIsInRfNiIsInRfNCIsInRfMCJdLCJzb3VyY2VzIjpbIlRvb2xTZWxlY3Rvci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpZ3VyZXMgZnJvbSAnZmlndXJlcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IG1jcEluZm9Gcm9tU3RyaW5nIH0gZnJvbSAnc3JjL3NlcnZpY2VzL21jcC9tY3BTdHJpbmdVdGlscy5qcydcbmltcG9ydCB7IGlzTWNwVG9vbCB9IGZyb20gJ3NyYy9zZXJ2aWNlcy9tY3AvdXRpbHMuanMnXG5pbXBvcnQgdHlwZSB7IFRvb2wsIFRvb2xzIH0gZnJvbSAnc3JjL1Rvb2wuanMnXG5pbXBvcnQgeyBmaWx0ZXJUb29sc0ZvckFnZW50IH0gZnJvbSAnc3JjL3Rvb2xzL0FnZW50VG9vbC9hZ2VudFRvb2xVdGlscy5qcydcbmltcG9ydCB7IEFHRU5UX1RPT0xfTkFNRSB9IGZyb20gJ3NyYy90b29scy9BZ2VudFRvb2wvY29uc3RhbnRzLmpzJ1xuaW1wb3J0IHsgQmFzaFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvQmFzaFRvb2wvQmFzaFRvb2wuanMnXG5pbXBvcnQgeyBFeGl0UGxhbk1vZGVWMlRvb2wgfSBmcm9tICdzcmMvdG9vbHMvRXhpdFBsYW5Nb2RlVG9vbC9FeGl0UGxhbk1vZGVWMlRvb2wuanMnXG5pbXBvcnQgeyBGaWxlRWRpdFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvRmlsZUVkaXRUb29sL0ZpbGVFZGl0VG9vbC5qcydcbmltcG9ydCB7IEZpbGVSZWFkVG9vbCB9IGZyb20gJ3NyYy90b29scy9GaWxlUmVhZFRvb2wvRmlsZVJlYWRUb29sLmpzJ1xuaW1wb3J0IHsgRmlsZVdyaXRlVG9vbCB9IGZyb20gJ3NyYy90b29scy9GaWxlV3JpdGVUb29sL0ZpbGVXcml0ZVRvb2wuanMnXG5pbXBvcnQgeyBHbG9iVG9vbCB9IGZyb20gJ3NyYy90b29scy9HbG9iVG9vbC9HbG9iVG9vbC5qcydcbmltcG9ydCB7IEdyZXBUb29sIH0gZnJvbSAnc3JjL3Rvb2xzL0dyZXBUb29sL0dyZXBUb29sLmpzJ1xuaW1wb3J0IHsgTGlzdE1jcFJlc291cmNlc1Rvb2wgfSBmcm9tICdzcmMvdG9vbHMvTGlzdE1jcFJlc291cmNlc1Rvb2wvTGlzdE1jcFJlc291cmNlc1Rvb2wuanMnXG5pbXBvcnQgeyBOb3RlYm9va0VkaXRUb29sIH0gZnJvbSAnc3JjL3Rvb2xzL05vdGVib29rRWRpdFRvb2wvTm90ZWJvb2tFZGl0VG9vbC5qcydcbmltcG9ydCB7IFJlYWRNY3BSZXNvdXJjZVRvb2wgfSBmcm9tICdzcmMvdG9vbHMvUmVhZE1jcFJlc291cmNlVG9vbC9SZWFkTWNwUmVzb3VyY2VUb29sLmpzJ1xuaW1wb3J0IHsgVGFza091dHB1dFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvVGFza091dHB1dFRvb2wvVGFza091dHB1dFRvb2wuanMnXG5pbXBvcnQgeyBUYXNrU3RvcFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvVGFza1N0b3BUb29sL1Rhc2tTdG9wVG9vbC5qcydcbmltcG9ydCB7IFRvZG9Xcml0ZVRvb2wgfSBmcm9tICdzcmMvdG9vbHMvVG9kb1dyaXRlVG9vbC9Ub2RvV3JpdGVUb29sLmpzJ1xuaW1wb3J0IHsgVHVuZ3N0ZW5Ub29sIH0gZnJvbSAnc3JjL3Rvb2xzL1R1bmdzdGVuVG9vbC9UdW5nc3RlblRvb2wuanMnXG5pbXBvcnQgeyBXZWJGZXRjaFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvV2ViRmV0Y2hUb29sL1dlYkZldGNoVG9vbC5qcydcbmltcG9ydCB7IFdlYlNlYXJjaFRvb2wgfSBmcm9tICdzcmMvdG9vbHMvV2ViU2VhcmNoVG9vbC9XZWJTZWFyY2hUb29sLmpzJ1xuaW1wb3J0IHR5cGUgeyBLZXlib2FyZEV2ZW50IH0gZnJvbSAnLi4vLi4vaW5rL2V2ZW50cy9rZXlib2FyZC1ldmVudC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmcgfSBmcm9tICcuLi8uLi9rZXliaW5kaW5ncy91c2VLZXliaW5kaW5nLmpzJ1xuaW1wb3J0IHsgY291bnQgfSBmcm9tICcuLi8uLi91dGlscy9hcnJheS5qcydcbmltcG9ydCB7IHBsdXJhbCB9IGZyb20gJy4uLy4uL3V0aWxzL3N0cmluZ1V0aWxzLmpzJ1xuaW1wb3J0IHsgRGl2aWRlciB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vRGl2aWRlci5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgdG9vbHM6IFRvb2xzXG4gIGluaXRpYWxUb29sczogc3RyaW5nW10gfCB1bmRlZmluZWRcbiAgb25Db21wbGV0ZTogKHNlbGVjdGVkVG9vbHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSA9PiB2b2lkXG4gIG9uQ2FuY2VsPzogKCkgPT4gdm9pZFxufVxuXG50eXBlIFRvb2xCdWNrZXQgPSB7XG4gIG5hbWU6IHN0cmluZ1xuICB0b29sTmFtZXM6IFNldDxzdHJpbmc+XG4gIGlzTWNwPzogYm9vbGVhblxufVxuXG50eXBlIFRvb2xCdWNrZXRzID0ge1xuICBSRUFEX09OTFk6IFRvb2xCdWNrZXRcbiAgRURJVDogVG9vbEJ1Y2tldFxuICBFWEVDVVRJT046IFRvb2xCdWNrZXRcbiAgTUNQOiBUb29sQnVja2V0XG4gIE9USEVSOiBUb29sQnVja2V0XG59XG5cbmZ1bmN0aW9uIGdldFRvb2xCdWNrZXRzKCk6IFRvb2xCdWNrZXRzIHtcbiAgcmV0dXJuIHtcbiAgICBSRUFEX09OTFk6IHtcbiAgICAgIG5hbWU6ICdSZWFkLW9ubHkgdG9vbHMnLFxuICAgICAgdG9vbE5hbWVzOiBuZXcgU2V0KFtcbiAgICAgICAgR2xvYlRvb2wubmFtZSxcbiAgICAgICAgR3JlcFRvb2wubmFtZSxcbiAgICAgICAgRXhpdFBsYW5Nb2RlVjJUb29sLm5hbWUsXG4gICAgICAgIEZpbGVSZWFkVG9vbC5uYW1lLFxuICAgICAgICBXZWJGZXRjaFRvb2wubmFtZSxcbiAgICAgICAgVG9kb1dyaXRlVG9vbC5uYW1lLFxuICAgICAgICBXZWJTZWFyY2hUb29sLm5hbWUsXG4gICAgICAgIFRhc2tTdG9wVG9vbC5uYW1lLFxuICAgICAgICBUYXNrT3V0cHV0VG9vbC5uYW1lLFxuICAgICAgICBMaXN0TWNwUmVzb3VyY2VzVG9vbC5uYW1lLFxuICAgICAgICBSZWFkTWNwUmVzb3VyY2VUb29sLm5hbWUsXG4gICAgICBdKSxcbiAgICB9LFxuICAgIEVESVQ6IHtcbiAgICAgIG5hbWU6ICdFZGl0IHRvb2xzJyxcbiAgICAgIHRvb2xOYW1lczogbmV3IFNldChbXG4gICAgICAgIEZpbGVFZGl0VG9vbC5uYW1lLFxuICAgICAgICBGaWxlV3JpdGVUb29sLm5hbWUsXG4gICAgICAgIE5vdGVib29rRWRpdFRvb2wubmFtZSxcbiAgICAgIF0pLFxuICAgIH0sXG4gICAgRVhFQ1VUSU9OOiB7XG4gICAgICBuYW1lOiAnRXhlY3V0aW9uIHRvb2xzJyxcbiAgICAgIHRvb2xOYW1lczogbmV3IFNldChcbiAgICAgICAgW1xuICAgICAgICAgIEJhc2hUb29sLm5hbWUsXG4gICAgICAgICAgXCJleHRlcm5hbFwiID09PSAnYW50JyA/IFR1bmdzdGVuVG9vbC5uYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICBdLmZpbHRlcihuID0+IG4gIT09IHVuZGVmaW5lZCksXG4gICAgICApLFxuICAgIH0sXG4gICAgTUNQOiB7XG4gICAgICBuYW1lOiAnTUNQIHRvb2xzJyxcbiAgICAgIHRvb2xOYW1lczogbmV3IFNldCgpLCAvLyBEeW5hbWljIC0gbm8gc3RhdGljIGxpc3RcbiAgICAgIGlzTWNwOiB0cnVlLFxuICAgIH0sXG4gICAgT1RIRVI6IHtcbiAgICAgIG5hbWU6ICdPdGhlciB0b29scycsXG4gICAgICB0b29sTmFtZXM6IG5ldyBTZXQoKSwgLy8gRHluYW1pYyAtIGNhdGNoLWFsbCBmb3IgdW5jYXRlZ29yaXplZCB0b29sc1xuICAgIH0sXG4gIH1cbn1cblxuLy8gSGVscGVyIHRvIGdldCBNQ1Agc2VydmVyIGJ1Y2tldHMgZHluYW1pY2FsbHlcbmZ1bmN0aW9uIGdldE1jcFNlcnZlckJ1Y2tldHModG9vbHM6IFRvb2xzKTogQXJyYXk8e1xuICBzZXJ2ZXJOYW1lOiBzdHJpbmdcbiAgdG9vbHM6IFRvb2xzXG59PiB7XG4gIGNvbnN0IHNlcnZlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBUb29sW10+KClcblxuICB0b29scy5mb3JFYWNoKHRvb2wgPT4ge1xuICAgIGlmIChpc01jcFRvb2wodG9vbCkpIHtcbiAgICAgIGNvbnN0IG1jcEluZm8gPSBtY3BJbmZvRnJvbVN0cmluZyh0b29sLm5hbWUpXG4gICAgICBpZiAobWNwSW5mbz8uc2VydmVyTmFtZSkge1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHNlcnZlck1hcC5nZXQobWNwSW5mby5zZXJ2ZXJOYW1lKSB8fCBbXVxuICAgICAgICBleGlzdGluZy5wdXNoKHRvb2wpXG4gICAgICAgIHNlcnZlck1hcC5zZXQobWNwSW5mby5zZXJ2ZXJOYW1lLCBleGlzdGluZylcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIEFycmF5LmZyb20oc2VydmVyTWFwLmVudHJpZXMoKSlcbiAgICAubWFwKChbc2VydmVyTmFtZSwgdG9vbHNdKSA9PiAoeyBzZXJ2ZXJOYW1lLCB0b29scyB9KSlcbiAgICAuc29ydCgoYSwgYikgPT4gYS5zZXJ2ZXJOYW1lLmxvY2FsZUNvbXBhcmUoYi5zZXJ2ZXJOYW1lKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRvb2xTZWxlY3Rvcih7XG4gIHRvb2xzLFxuICBpbml0aWFsVG9vbHMsXG4gIG9uQ29tcGxldGUsXG4gIG9uQ2FuY2VsLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICAvLyBGaWx0ZXIgdG9vbHMgZm9yIGN1c3RvbSBhZ2VudHNcbiAgY29uc3QgY3VzdG9tQWdlbnRUb29scyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZmlsdGVyVG9vbHNGb3JBZ2VudCh7IHRvb2xzLCBpc0J1aWx0SW46IGZhbHNlLCBpc0FzeW5jOiBmYWxzZSB9KSxcbiAgICBbdG9vbHNdLFxuICApXG5cbiAgLy8gRXhwYW5kIHdpbGRjYXJkIG9yIHVuZGVmaW5lZCB0byBleHBsaWNpdCB0b29sIGxpc3QgZm9yIGludGVybmFsIHN0YXRlXG4gIGNvbnN0IGV4cGFuZGVkSW5pdGlhbFRvb2xzID1cbiAgICAhaW5pdGlhbFRvb2xzIHx8IGluaXRpYWxUb29scy5pbmNsdWRlcygnKicpXG4gICAgICA/IGN1c3RvbUFnZW50VG9vbHMubWFwKHQgPT4gdC5uYW1lKVxuICAgICAgOiBpbml0aWFsVG9vbHNcblxuICBjb25zdCBbc2VsZWN0ZWRUb29scywgc2V0U2VsZWN0ZWRUb29sc10gPVxuICAgIHVzZVN0YXRlPHN0cmluZ1tdPihleHBhbmRlZEluaXRpYWxUb29scylcbiAgY29uc3QgW2ZvY3VzSW5kZXgsIHNldEZvY3VzSW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW3Nob3dJbmRpdmlkdWFsVG9vbHMsIHNldFNob3dJbmRpdmlkdWFsVG9vbHNdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgLy8gRmlsdGVyIHNlbGVjdGVkVG9vbHMgdG8gb25seSBpbmNsdWRlIHRvb2xzIHRoYXQgY3VycmVudGx5IGV4aXN0XG4gIC8vIFRoaXMgaGFuZGxlcyBNQ1AgdG9vbHMgdGhhdCBkaXNjb25uZWN0IHdoaWxlIHNlbGVjdGVkXG4gIGNvbnN0IHZhbGlkU2VsZWN0ZWRUb29scyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHRvb2xOYW1lcyA9IG5ldyBTZXQoY3VzdG9tQWdlbnRUb29scy5tYXAodCA9PiB0Lm5hbWUpKVxuICAgIHJldHVybiBzZWxlY3RlZFRvb2xzLmZpbHRlcihuYW1lID0+IHRvb2xOYW1lcy5oYXMobmFtZSkpXG4gIH0sIFtzZWxlY3RlZFRvb2xzLCBjdXN0b21BZ2VudFRvb2xzXSlcblxuICBjb25zdCBzZWxlY3RlZFNldCA9IG5ldyBTZXQodmFsaWRTZWxlY3RlZFRvb2xzKVxuICBjb25zdCBpc0FsbFNlbGVjdGVkID1cbiAgICB2YWxpZFNlbGVjdGVkVG9vbHMubGVuZ3RoID09PSBjdXN0b21BZ2VudFRvb2xzLmxlbmd0aCAmJlxuICAgIGN1c3RvbUFnZW50VG9vbHMubGVuZ3RoID4gMFxuXG4gIGNvbnN0IGhhbmRsZVRvZ2dsZVRvb2wgPSAodG9vbE5hbWU6IHN0cmluZykgPT4ge1xuICAgIGlmICghdG9vbE5hbWUpIHJldHVyblxuXG4gICAgc2V0U2VsZWN0ZWRUb29scyhjdXJyZW50ID0+XG4gICAgICBjdXJyZW50LmluY2x1ZGVzKHRvb2xOYW1lKVxuICAgICAgICA/IGN1cnJlbnQuZmlsdGVyKHQgPT4gdCAhPT0gdG9vbE5hbWUpXG4gICAgICAgIDogWy4uLmN1cnJlbnQsIHRvb2xOYW1lXSxcbiAgICApXG4gIH1cblxuICBjb25zdCBoYW5kbGVUb2dnbGVUb29scyA9ICh0b29sTmFtZXM6IHN0cmluZ1tdLCBzZWxlY3Q6IGJvb2xlYW4pID0+IHtcbiAgICBzZXRTZWxlY3RlZFRvb2xzKGN1cnJlbnQgPT4ge1xuICAgICAgaWYgKHNlbGVjdCkge1xuICAgICAgICBjb25zdCB0b29sc1RvQWRkID0gdG9vbE5hbWVzLmZpbHRlcih0ID0+ICFjdXJyZW50LmluY2x1ZGVzKHQpKVxuICAgICAgICByZXR1cm4gWy4uLmN1cnJlbnQsIC4uLnRvb2xzVG9BZGRdXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY3VycmVudC5maWx0ZXIodCA9PiAhdG9vbE5hbWVzLmluY2x1ZGVzKHQpKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVDb25maXJtID0gKCkgPT4ge1xuICAgIC8vIENvbnZlcnQgdG8gdW5kZWZpbmVkIGlmIGFsbCB0b29scyBhcmUgc2VsZWN0ZWQgKGZvciBjbGVhbmVyIGZpbGUgZm9ybWF0KVxuICAgIGNvbnN0IGFsbFRvb2xOYW1lcyA9IGN1c3RvbUFnZW50VG9vbHMubWFwKHQgPT4gdC5uYW1lKVxuICAgIGNvbnN0IGFyZUFsbFRvb2xzU2VsZWN0ZWQgPVxuICAgICAgdmFsaWRTZWxlY3RlZFRvb2xzLmxlbmd0aCA9PT0gYWxsVG9vbE5hbWVzLmxlbmd0aCAmJlxuICAgICAgYWxsVG9vbE5hbWVzLmV2ZXJ5KG5hbWUgPT4gdmFsaWRTZWxlY3RlZFRvb2xzLmluY2x1ZGVzKG5hbWUpKVxuICAgIGNvbnN0IGZpbmFsVG9vbHMgPSBhcmVBbGxUb29sc1NlbGVjdGVkID8gdW5kZWZpbmVkIDogdmFsaWRTZWxlY3RlZFRvb2xzXG5cbiAgICBvbkNvbXBsZXRlKGZpbmFsVG9vbHMpXG4gIH1cblxuICAvLyBHcm91cCB0b29scyBieSBidWNrZXRcbiAgY29uc3QgdG9vbHNCeUJ1Y2tldCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHRvb2xCdWNrZXRzID0gZ2V0VG9vbEJ1Y2tldHMoKVxuICAgIGNvbnN0IGJ1Y2tldHMgPSB7XG4gICAgICByZWFkT25seTogW10gYXMgVG9vbFtdLFxuICAgICAgZWRpdDogW10gYXMgVG9vbFtdLFxuICAgICAgZXhlY3V0aW9uOiBbXSBhcyBUb29sW10sXG4gICAgICBtY3A6IFtdIGFzIFRvb2xbXSxcbiAgICAgIG90aGVyOiBbXSBhcyBUb29sW10sXG4gICAgfVxuXG4gICAgY3VzdG9tQWdlbnRUb29scy5mb3JFYWNoKHRvb2wgPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgaXQncyBhbiBNQ1AgdG9vbCBmaXJzdFxuICAgICAgaWYgKGlzTWNwVG9vbCh0b29sKSkge1xuICAgICAgICBidWNrZXRzLm1jcC5wdXNoKHRvb2wpXG4gICAgICB9IGVsc2UgaWYgKHRvb2xCdWNrZXRzLlJFQURfT05MWS50b29sTmFtZXMuaGFzKHRvb2wubmFtZSkpIHtcbiAgICAgICAgYnVja2V0cy5yZWFkT25seS5wdXNoKHRvb2wpXG4gICAgICB9IGVsc2UgaWYgKHRvb2xCdWNrZXRzLkVESVQudG9vbE5hbWVzLmhhcyh0b29sLm5hbWUpKSB7XG4gICAgICAgIGJ1Y2tldHMuZWRpdC5wdXNoKHRvb2wpXG4gICAgICB9IGVsc2UgaWYgKHRvb2xCdWNrZXRzLkVYRUNVVElPTi50b29sTmFtZXMuaGFzKHRvb2wubmFtZSkpIHtcbiAgICAgICAgYnVja2V0cy5leGVjdXRpb24ucHVzaCh0b29sKVxuICAgICAgfSBlbHNlIGlmICh0b29sLm5hbWUgIT09IEFHRU5UX1RPT0xfTkFNRSkge1xuICAgICAgICAvLyBDYXRjaC1hbGwgZm9yIHVuY2F0ZWdvcml6ZWQgdG9vbHMgKGV4Y2VwdCBUYXNrKVxuICAgICAgICBidWNrZXRzLm90aGVyLnB1c2godG9vbClcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIGJ1Y2tldHNcbiAgfSwgW2N1c3RvbUFnZW50VG9vbHNdKVxuXG4gIGNvbnN0IGNyZWF0ZUJ1Y2tldFRvZ2dsZUFjdGlvbiA9IChidWNrZXRUb29sczogVG9vbFtdKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBjb3VudChidWNrZXRUb29scywgdCA9PiBzZWxlY3RlZFNldC5oYXModC5uYW1lKSlcbiAgICBjb25zdCBuZWVkc1NlbGVjdGlvbiA9IHNlbGVjdGVkIDwgYnVja2V0VG9vbHMubGVuZ3RoXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgdG9vbE5hbWVzID0gYnVja2V0VG9vbHMubWFwKHQgPT4gdC5uYW1lKVxuICAgICAgaGFuZGxlVG9nZ2xlVG9vbHModG9vbE5hbWVzLCBuZWVkc1NlbGVjdGlvbilcbiAgICB9XG4gIH1cblxuICAvLyBCdWlsZCBuYXZpZ2FibGUgaXRlbXMgKG5vIHNlcGFyYXRvcnMpXG4gIGNvbnN0IG5hdmlnYWJsZUl0ZW1zOiBBcnJheTx7XG4gICAgaWQ6IHN0cmluZ1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICBhY3Rpb246ICgpID0+IHZvaWRcbiAgICBpc0NvbnRpbnVlPzogYm9vbGVhblxuICAgIGlzVG9nZ2xlPzogYm9vbGVhblxuICAgIGlzSGVhZGVyPzogYm9vbGVhblxuICB9PiA9IFtdXG5cbiAgLy8gQ29udGludWUgYnV0dG9uXG4gIG5hdmlnYWJsZUl0ZW1zLnB1c2goe1xuICAgIGlkOiAnY29udGludWUnLFxuICAgIGxhYmVsOiAnQ29udGludWUnLFxuICAgIGFjdGlvbjogaGFuZGxlQ29uZmlybSxcbiAgICBpc0NvbnRpbnVlOiB0cnVlLFxuICB9KVxuXG4gIC8vIEFsbCB0b29sc1xuICBuYXZpZ2FibGVJdGVtcy5wdXNoKHtcbiAgICBpZDogJ2J1Y2tldC1hbGwnLFxuICAgIGxhYmVsOiBgJHtpc0FsbFNlbGVjdGVkID8gZmlndXJlcy5jaGVja2JveE9uIDogZmlndXJlcy5jaGVja2JveE9mZn0gQWxsIHRvb2xzYCxcbiAgICBhY3Rpb246ICgpID0+IHtcbiAgICAgIGNvbnN0IGFsbFRvb2xOYW1lcyA9IGN1c3RvbUFnZW50VG9vbHMubWFwKHQgPT4gdC5uYW1lKVxuICAgICAgaGFuZGxlVG9nZ2xlVG9vbHMoYWxsVG9vbE5hbWVzLCAhaXNBbGxTZWxlY3RlZClcbiAgICB9LFxuICB9KVxuXG4gIC8vIENyZWF0ZSBidWNrZXQgbWVudSBpdGVtc1xuICBjb25zdCB0b29sQnVja2V0cyA9IGdldFRvb2xCdWNrZXRzKClcbiAgY29uc3QgYnVja2V0Q29uZmlncyA9IFtcbiAgICB7XG4gICAgICBpZDogJ2J1Y2tldC1yZWFkb25seScsXG4gICAgICBuYW1lOiB0b29sQnVja2V0cy5SRUFEX09OTFkubmFtZSxcbiAgICAgIHRvb2xzOiB0b29sc0J5QnVja2V0LnJlYWRPbmx5LFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdidWNrZXQtZWRpdCcsXG4gICAgICBuYW1lOiB0b29sQnVja2V0cy5FRElULm5hbWUsXG4gICAgICB0b29sczogdG9vbHNCeUJ1Y2tldC5lZGl0LFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdidWNrZXQtZXhlY3V0aW9uJyxcbiAgICAgIG5hbWU6IHRvb2xCdWNrZXRzLkVYRUNVVElPTi5uYW1lLFxuICAgICAgdG9vbHM6IHRvb2xzQnlCdWNrZXQuZXhlY3V0aW9uLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdidWNrZXQtbWNwJyxcbiAgICAgIG5hbWU6IHRvb2xCdWNrZXRzLk1DUC5uYW1lLFxuICAgICAgdG9vbHM6IHRvb2xzQnlCdWNrZXQubWNwLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdidWNrZXQtb3RoZXInLFxuICAgICAgbmFtZTogdG9vbEJ1Y2tldHMuT1RIRVIubmFtZSxcbiAgICAgIHRvb2xzOiB0b29sc0J5QnVja2V0Lm90aGVyLFxuICAgIH0sXG4gIF1cblxuICBidWNrZXRDb25maWdzLmZvckVhY2goKHsgaWQsIG5hbWUsIHRvb2xzOiBidWNrZXRUb29scyB9KSA9PiB7XG4gICAgaWYgKGJ1Y2tldFRvb2xzLmxlbmd0aCA9PT0gMCkgcmV0dXJuXG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IGNvdW50KGJ1Y2tldFRvb2xzLCB0ID0+IHNlbGVjdGVkU2V0Lmhhcyh0Lm5hbWUpKVxuICAgIGNvbnN0IGlzRnVsbHlTZWxlY3RlZCA9IHNlbGVjdGVkID09PSBidWNrZXRUb29scy5sZW5ndGhcblxuICAgIG5hdmlnYWJsZUl0ZW1zLnB1c2goe1xuICAgICAgaWQsXG4gICAgICBsYWJlbDogYCR7aXNGdWxseVNlbGVjdGVkID8gZmlndXJlcy5jaGVja2JveE9uIDogZmlndXJlcy5jaGVja2JveE9mZn0gJHtuYW1lfWAsXG4gICAgICBhY3Rpb246IGNyZWF0ZUJ1Y2tldFRvZ2dsZUFjdGlvbihidWNrZXRUb29scyksXG4gICAgfSlcbiAgfSlcblxuICAvLyBUb2dnbGUgYnV0dG9uIGZvciBpbmRpdmlkdWFsIHRvb2xzXG4gIGNvbnN0IHRvZ2dsZUJ1dHRvbkluZGV4ID0gbmF2aWdhYmxlSXRlbXMubGVuZ3RoXG4gIG5hdmlnYWJsZUl0ZW1zLnB1c2goe1xuICAgIGlkOiAndG9nZ2xlLWluZGl2aWR1YWwnLFxuICAgIGxhYmVsOiBzaG93SW5kaXZpZHVhbFRvb2xzXG4gICAgICA/ICdIaWRlIGFkdmFuY2VkIG9wdGlvbnMnXG4gICAgICA6ICdTaG93IGFkdmFuY2VkIG9wdGlvbnMnLFxuICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgc2V0U2hvd0luZGl2aWR1YWxUb29scyghc2hvd0luZGl2aWR1YWxUb29scylcbiAgICAgIC8vIElmIGhpZGluZyB0b29scyBhbmQgZm9jdXMgaXMgb24gYW4gaW5kaXZpZHVhbCB0b29sLCBtb3ZlIGZvY3VzIHRvIHRvZ2dsZSBidXR0b25cbiAgICAgIGlmIChzaG93SW5kaXZpZHVhbFRvb2xzICYmIGZvY3VzSW5kZXggPiB0b2dnbGVCdXR0b25JbmRleCkge1xuICAgICAgICBzZXRGb2N1c0luZGV4KHRvZ2dsZUJ1dHRvbkluZGV4KVxuICAgICAgfVxuICAgIH0sXG4gICAgaXNUb2dnbGU6IHRydWUsXG4gIH0pXG5cbiAgLy8gTWVtb2l6ZSBNQ1Agc2VydmVyIGJ1Y2tldHMgKG11c3QgYmUgb3V0c2lkZSBjb25kaXRpb25hbCBmb3IgaG9va3MgcnVsZXMpXG4gIGNvbnN0IG1jcFNlcnZlckJ1Y2tldHMgPSB1c2VNZW1vKFxuICAgICgpID0+IGdldE1jcFNlcnZlckJ1Y2tldHMoY3VzdG9tQWdlbnRUb29scyksXG4gICAgW2N1c3RvbUFnZW50VG9vbHNdLFxuICApXG5cbiAgLy8gSW5kaXZpZHVhbCB0b29scyAob25seSBpZiBleHBhbmRlZClcbiAgaWYgKHNob3dJbmRpdmlkdWFsVG9vbHMpIHtcbiAgICAvLyBBZGQgTUNQIHNlcnZlciBidWNrZXRzIGlmIGFueSBleGlzdFxuICAgIGlmIChtY3BTZXJ2ZXJCdWNrZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIG5hdmlnYWJsZUl0ZW1zLnB1c2goe1xuICAgICAgICBpZDogJ21jcC1zZXJ2ZXJzLWhlYWRlcicsXG4gICAgICAgIGxhYmVsOiAnTUNQIFNlcnZlcnM6JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB7fSwgLy8gTm8gYWN0aW9uIC0ganVzdCBhIGhlYWRlclxuICAgICAgICBpc0hlYWRlcjogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIG1jcFNlcnZlckJ1Y2tldHMuZm9yRWFjaCgoeyBzZXJ2ZXJOYW1lLCB0b29sczogc2VydmVyVG9vbHMgfSkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZCA9IGNvdW50KHNlcnZlclRvb2xzLCB0ID0+IHNlbGVjdGVkU2V0Lmhhcyh0Lm5hbWUpKVxuICAgICAgICBjb25zdCBpc0Z1bGx5U2VsZWN0ZWQgPSBzZWxlY3RlZCA9PT0gc2VydmVyVG9vbHMubGVuZ3RoXG5cbiAgICAgICAgbmF2aWdhYmxlSXRlbXMucHVzaCh7XG4gICAgICAgICAgaWQ6IGBtY3Atc2VydmVyLSR7c2VydmVyTmFtZX1gLFxuICAgICAgICAgIGxhYmVsOiBgJHtpc0Z1bGx5U2VsZWN0ZWQgPyBmaWd1cmVzLmNoZWNrYm94T24gOiBmaWd1cmVzLmNoZWNrYm94T2ZmfSAke3NlcnZlck5hbWV9ICgke3NlcnZlclRvb2xzLmxlbmd0aH0gJHtwbHVyYWwoc2VydmVyVG9vbHMubGVuZ3RoLCAndG9vbCcpfSlgLFxuICAgICAgICAgIGFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdG9vbE5hbWVzID0gc2VydmVyVG9vbHMubWFwKHQgPT4gdC5uYW1lKVxuICAgICAgICAgICAgaGFuZGxlVG9nZ2xlVG9vbHModG9vbE5hbWVzLCAhaXNGdWxseVNlbGVjdGVkKVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICB9KVxuXG4gICAgICAvLyBBZGQgc2VwYXJhdG9yIGhlYWRlciBiZWZvcmUgaW5kaXZpZHVhbCB0b29sc1xuICAgICAgbmF2aWdhYmxlSXRlbXMucHVzaCh7XG4gICAgICAgIGlkOiAndG9vbHMtaGVhZGVyJyxcbiAgICAgICAgbGFiZWw6ICdJbmRpdmlkdWFsIFRvb2xzOicsXG4gICAgICAgIGFjdGlvbjogKCkgPT4ge30sXG4gICAgICAgIGlzSGVhZGVyOiB0cnVlLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBBZGQgaW5kaXZpZHVhbCB0b29sc1xuICAgIGN1c3RvbUFnZW50VG9vbHMuZm9yRWFjaCh0b29sID0+IHtcbiAgICAgIGxldCBkaXNwbGF5TmFtZSA9IHRvb2wubmFtZVxuICAgICAgaWYgKHRvb2wubmFtZS5zdGFydHNXaXRoKCdtY3BfXycpKSB7XG4gICAgICAgIGNvbnN0IG1jcEluZm8gPSBtY3BJbmZvRnJvbVN0cmluZyh0b29sLm5hbWUpXG4gICAgICAgIGRpc3BsYXlOYW1lID0gbWNwSW5mb1xuICAgICAgICAgID8gYCR7bWNwSW5mby50b29sTmFtZX0gKCR7bWNwSW5mby5zZXJ2ZXJOYW1lfSlgXG4gICAgICAgICAgOiB0b29sLm5hbWVcbiAgICAgIH1cblxuICAgICAgbmF2aWdhYmxlSXRlbXMucHVzaCh7XG4gICAgICAgIGlkOiBgdG9vbC0ke3Rvb2wubmFtZX1gLFxuICAgICAgICBsYWJlbDogYCR7c2VsZWN0ZWRTZXQuaGFzKHRvb2wubmFtZSkgPyBmaWd1cmVzLmNoZWNrYm94T24gOiBmaWd1cmVzLmNoZWNrYm94T2ZmfSAke2Rpc3BsYXlOYW1lfWAsXG4gICAgICAgIGFjdGlvbjogKCkgPT4gaGFuZGxlVG9nZ2xlVG9vbCh0b29sLm5hbWUpLFxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQ2FuY2VsID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChvbkNhbmNlbCkge1xuICAgICAgb25DYW5jZWwoKVxuICAgIH0gZWxzZSB7XG4gICAgICBvbkNvbXBsZXRlKGluaXRpYWxUb29scylcbiAgICB9XG4gIH0sIFtvbkNhbmNlbCwgb25Db21wbGV0ZSwgaW5pdGlhbFRvb2xzXSlcblxuICB1c2VLZXliaW5kaW5nKCdjb25maXJtOm5vJywgaGFuZGxlQ2FuY2VsLCB7IGNvbnRleHQ6ICdDb25maXJtYXRpb24nIH0pXG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAncmV0dXJuJykge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICBjb25zdCBpdGVtID0gbmF2aWdhYmxlSXRlbXNbZm9jdXNJbmRleF1cbiAgICAgIGlmIChpdGVtICYmICFpdGVtLmlzSGVhZGVyKSB7XG4gICAgICAgIGl0ZW0uYWN0aW9uKClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGUua2V5ID09PSAndXAnKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGxldCBuZXdJbmRleCA9IGZvY3VzSW5kZXggLSAxXG4gICAgICAvLyBTa2lwIGhlYWRlcnMgd2hlbiBuYXZpZ2F0aW5nIHVwXG4gICAgICB3aGlsZSAobmV3SW5kZXggPiAwICYmIG5hdmlnYWJsZUl0ZW1zW25ld0luZGV4XT8uaXNIZWFkZXIpIHtcbiAgICAgICAgbmV3SW5kZXgtLVxuICAgICAgfVxuICAgICAgc2V0Rm9jdXNJbmRleChNYXRoLm1heCgwLCBuZXdJbmRleCkpXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ2Rvd24nKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIGxldCBuZXdJbmRleCA9IGZvY3VzSW5kZXggKyAxXG4gICAgICAvLyBTa2lwIGhlYWRlcnMgd2hlbiBuYXZpZ2F0aW5nIGRvd25cbiAgICAgIHdoaWxlIChcbiAgICAgICAgbmV3SW5kZXggPCBuYXZpZ2FibGVJdGVtcy5sZW5ndGggLSAxICYmXG4gICAgICAgIG5hdmlnYWJsZUl0ZW1zW25ld0luZGV4XT8uaXNIZWFkZXJcbiAgICAgICkge1xuICAgICAgICBuZXdJbmRleCsrXG4gICAgICB9XG4gICAgICBzZXRGb2N1c0luZGV4KE1hdGgubWluKG5hdmlnYWJsZUl0ZW1zLmxlbmd0aCAtIDEsIG5ld0luZGV4KSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxCb3hcbiAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgbWFyZ2luVG9wPXsxfVxuICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICBhdXRvRm9jdXNcbiAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICA+XG4gICAgICB7LyogUmVuZGVyIENvbnRpbnVlIGJ1dHRvbiAqL31cbiAgICAgIDxUZXh0XG4gICAgICAgIGNvbG9yPXtmb2N1c0luZGV4ID09PSAwID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfVxuICAgICAgICBib2xkPXtmb2N1c0luZGV4ID09PSAwfVxuICAgICAgPlxuICAgICAgICB7Zm9jdXNJbmRleCA9PT0gMCA/IGAke2ZpZ3VyZXMucG9pbnRlcn0gYCA6ICcgICd9WyBDb250aW51ZSBdXG4gICAgICA8L1RleHQ+XG5cbiAgICAgIHsvKiBTZXBhcmF0b3IgKi99XG4gICAgICA8RGl2aWRlciB3aWR0aD17NDB9IC8+XG5cbiAgICAgIHsvKiBSZW5kZXIgYWxsIG5hdmlnYWJsZSBpdGVtcyBleGNlcHQgQ29udGludWUgKHdoaWNoIGlzIGF0IGluZGV4IDApICovfVxuICAgICAge25hdmlnYWJsZUl0ZW1zLnNsaWNlKDEpLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgaXNDdXJyZW50bHlGb2N1c2VkID0gaW5kZXggKyAxID09PSBmb2N1c0luZGV4XG4gICAgICAgIGNvbnN0IGlzVG9nZ2xlQnV0dG9uID0gaXRlbS5pc1RvZ2dsZVxuICAgICAgICBjb25zdCBpc0hlYWRlciA9IGl0ZW0uaXNIZWFkZXJcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxSZWFjdC5GcmFnbWVudCBrZXk9e2l0ZW0uaWR9PlxuICAgICAgICAgICAgey8qIEFkZCBzZXBhcmF0b3IgYmVmb3JlIHRvZ2dsZSBidXR0b24gKi99XG4gICAgICAgICAgICB7aXNUb2dnbGVCdXR0b24gJiYgPERpdmlkZXIgd2lkdGg9ezQwfSAvPn1cblxuICAgICAgICAgICAgey8qIEFkZCBtYXJnaW4gYmVmb3JlIGhlYWRlcnMgKi99XG4gICAgICAgICAgICB7aXNIZWFkZXIgJiYgaW5kZXggPiAwICYmIDxCb3ggbWFyZ2luVG9wPXsxfSAvPn1cblxuICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgY29sb3I9e1xuICAgICAgICAgICAgICAgIGlzSGVhZGVyXG4gICAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgOiBpc0N1cnJlbnRseUZvY3VzZWRcbiAgICAgICAgICAgICAgICAgICAgPyAnc3VnZ2VzdGlvbidcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkaW1Db2xvcj17aXNIZWFkZXJ9XG4gICAgICAgICAgICAgIGJvbGQ9e2lzVG9nZ2xlQnV0dG9uICYmIGlzQ3VycmVudGx5Rm9jdXNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2lzSGVhZGVyXG4gICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgIDogaXNDdXJyZW50bHlGb2N1c2VkXG4gICAgICAgICAgICAgICAgICA/IGAke2ZpZ3VyZXMucG9pbnRlcn0gYFxuICAgICAgICAgICAgICAgICAgOiAnICAnfVxuICAgICAgICAgICAgICB7aXNUb2dnbGVCdXR0b24gPyBgWyAke2l0ZW0ubGFiZWx9IF1gIDogaXRlbS5sYWJlbH1cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICApXG4gICAgICB9KX1cblxuICAgICAgPEJveCBtYXJnaW5Ub3A9ezF9IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAge2lzQWxsU2VsZWN0ZWRcbiAgICAgICAgICAgID8gJ0FsbCB0b29scyBzZWxlY3RlZCdcbiAgICAgICAgICAgIDogYCR7c2VsZWN0ZWRTZXQuc2l6ZX0gb2YgJHtjdXN0b21BZ2VudFRvb2xzLmxlbmd0aH0gdG9vbHMgc2VsZWN0ZWRgfVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0JveD5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsT0FBTyxNQUFNLFNBQVM7QUFDN0IsT0FBT0MsS0FBSyxJQUFJQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDN0QsU0FBU0MsaUJBQWlCLFFBQVEsb0NBQW9DO0FBQ3RFLFNBQVNDLFNBQVMsUUFBUSwyQkFBMkI7QUFDckQsY0FBY0MsSUFBSSxFQUFFQyxLQUFLLFFBQVEsYUFBYTtBQUM5QyxTQUFTQyxtQkFBbUIsUUFBUSx1Q0FBdUM7QUFDM0UsU0FBU0MsZUFBZSxRQUFRLGtDQUFrQztBQUNsRSxTQUFTQyxRQUFRLFFBQVEsZ0NBQWdDO0FBQ3pELFNBQVNDLGtCQUFrQixRQUFRLGtEQUFrRDtBQUNyRixTQUFTQyxZQUFZLFFBQVEsd0NBQXdDO0FBQ3JFLFNBQVNDLFlBQVksUUFBUSx3Q0FBd0M7QUFDckUsU0FBU0MsYUFBYSxRQUFRLDBDQUEwQztBQUN4RSxTQUFTQyxRQUFRLFFBQVEsZ0NBQWdDO0FBQ3pELFNBQVNDLFFBQVEsUUFBUSxnQ0FBZ0M7QUFDekQsU0FBU0Msb0JBQW9CLFFBQVEsd0RBQXdEO0FBQzdG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
|