ummaya 0.2.14 → 0.2.15
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/npm-shrinkwrap.json +2 -2
- package/package.json +7 -4
- package/pyproject.toml +2 -2
- package/tui/package.json +1 -1
- package/tui/src/buddy/CompanionSprite.tsx +1 -2
- package/tui/src/buddy/useBuddyNotification.tsx +1 -2
- package/tui/src/cli/controlAuth.ts +20 -0
- package/tui/src/cli/handlers/auth.ts +7 -7
- package/tui/src/cli/handlers/mcp.tsx +0 -1
- package/tui/src/cli/handlers/util.tsx +2 -3
- package/tui/src/cli/print.ts +7 -4
- package/tui/src/commands/add-dir/add-dir.tsx +1 -2
- package/tui/src/commands/agents/agents.tsx +1 -2
- package/tui/src/commands/bridge/bridge.tsx +1 -2
- package/tui/src/commands/btw/btw.tsx +1 -2
- package/tui/src/commands/config/config.tsx +1 -2
- package/tui/src/commands/context/context.tsx +1 -2
- package/tui/src/commands/copy/copy.tsx +1 -2
- package/tui/src/commands/desktop/desktop.tsx +1 -2
- package/tui/src/commands/diff/diff.tsx +1 -2
- package/tui/src/commands/doctor/doctor.tsx +1 -2
- package/tui/src/commands/effort/effort.tsx +1 -2
- package/tui/src/commands/exit/exit.tsx +1 -2
- package/tui/src/commands/export/export.tsx +1 -2
- package/tui/src/commands/extra-usage/extra-usage.tsx +1 -2
- package/tui/src/commands/fast/fast.tsx +0 -1
- package/tui/src/commands/feedback/feedback.tsx +1 -2
- package/tui/src/commands/help/help.tsx +1 -2
- package/tui/src/commands/hooks/hooks.tsx +1 -2
- package/tui/src/commands/ide/ide.tsx +0 -1
- package/tui/src/commands/install.tsx +0 -1
- package/tui/src/commands/login/login.tsx +1 -2
- package/tui/src/commands/logout/logout.tsx +0 -1
- package/tui/src/commands/mcp/mcp.tsx +1 -2
- package/tui/src/commands/memory/memory.tsx +0 -1
- package/tui/src/commands/mobile/mobile.tsx +0 -1
- package/tui/src/commands/model/model.tsx +0 -1
- package/tui/src/commands/output-style/output-style.tsx +1 -2
- package/tui/src/commands/passes/passes.tsx +1 -2
- package/tui/src/commands/permissions/permissions.tsx +1 -2
- package/tui/src/commands/plan/plan.tsx +1 -2
- package/tui/src/commands/plugin/AddMarketplace.tsx +1 -2
- package/tui/src/commands/plugin/BrowseMarketplace.tsx +1 -2
- package/tui/src/commands/plugin/DiscoverPlugins.tsx +0 -1
- package/tui/src/commands/plugin/ManageMarketplaces.tsx +0 -1
- package/tui/src/commands/plugin/ManagePlugins.tsx +1 -2
- package/tui/src/commands/plugin/PluginErrors.tsx +1 -2
- package/tui/src/commands/plugin/PluginOptionsDialog.tsx +1 -2
- package/tui/src/commands/plugin/PluginOptionsFlow.tsx +1 -2
- package/tui/src/commands/plugin/PluginSettings.tsx +1 -2
- package/tui/src/commands/plugin/PluginTrustWarning.tsx +0 -1
- package/tui/src/commands/plugin/UnifiedInstalledCell.tsx +1 -2
- package/tui/src/commands/plugin/ValidatePlugin.tsx +1 -2
- package/tui/src/commands/plugin/index.tsx +0 -1
- package/tui/src/commands/plugin/plugin.tsx +1 -2
- package/tui/src/commands/plugin/pluginDetailsHelpers.tsx +1 -2
- package/tui/src/commands/privacy-settings/privacy-settings.tsx +0 -1
- package/tui/src/commands/rate-limit-options/rate-limit-options.tsx +1 -2
- package/tui/src/commands/remote-env/remote-env.tsx +1 -2
- package/tui/src/commands/remote-setup/remote-setup.tsx +0 -1
- package/tui/src/commands/resume/resume.tsx +1 -2
- package/tui/src/commands/review/UltrareviewOverageDialog.tsx +1 -2
- package/tui/src/commands/review/ultrareviewCommand.tsx +0 -1
- package/tui/src/commands/sandbox-toggle/sandbox-toggle.tsx +1 -2
- package/tui/src/commands/session/session.tsx +0 -1
- package/tui/src/commands/skills/skills.tsx +1 -2
- package/tui/src/commands/stats/stats.tsx +1 -2
- package/tui/src/commands/status/status.tsx +1 -2
- package/tui/src/commands/statusline.tsx +0 -1
- package/tui/src/commands/tag/tag.tsx +1 -2
- package/tui/src/commands/tasks/tasks.tsx +1 -2
- package/tui/src/commands/terminalSetup/terminalSetup.tsx +1 -2
- package/tui/src/commands/theme/theme.tsx +1 -2
- package/tui/src/commands/thinkback/thinkback.tsx +0 -1
- package/tui/src/commands/ultraplan.tsx +0 -1
- package/tui/src/commands/usage/usage.tsx +1 -2
- package/tui/src/commands/voice/voice.ts +2 -2
- package/tui/src/components/AgentProgressLine.tsx +1 -2
- package/tui/src/components/App.tsx +1 -2
- package/tui/src/components/ApproveApiKey.tsx +1 -2
- package/tui/src/components/AutoModeOptInDialog.tsx +0 -1
- package/tui/src/components/AutoUpdater.tsx +1 -2
- package/tui/src/components/AutoUpdaterWrapper.tsx +1 -2
- package/tui/src/components/AwsAuthStatusBox.tsx +1 -2
- package/tui/src/components/BaseTextInput.tsx +0 -1
- package/tui/src/components/BashModeProgress.tsx +1 -2
- package/tui/src/components/BridgeDialog.tsx +1 -2
- package/tui/src/components/BypassPermissionsModeDialog.tsx +0 -1
- package/tui/src/components/ChannelDowngradeDialog.tsx +1 -2
- package/tui/src/components/ClaudeCodeHint/PluginHintMenu.tsx +1 -2
- package/tui/src/components/ClaudeMdExternalIncludesDialog.tsx +0 -1
- package/tui/src/components/ClickableImageRef.tsx +1 -2
- package/tui/src/components/CompactSummary.tsx +1 -2
- package/tui/src/components/ConfigurableShortcutHint.tsx +1 -2
- package/tui/src/components/ContextSuggestions.tsx +1 -2
- package/tui/src/components/ContextVisualization.tsx +1 -2
- package/tui/src/components/CoordinatorAgentStatus.tsx +1 -2
- package/tui/src/components/CostThresholdDialog.tsx +0 -1
- package/tui/src/components/CtrlOToExpand.tsx +1 -2
- package/tui/src/components/CustomSelect/SelectMulti.tsx +1 -2
- package/tui/src/components/CustomSelect/select-input-option.tsx +1 -2
- package/tui/src/components/CustomSelect/select-option.tsx +1 -2
- package/tui/src/components/CustomSelect/select.tsx +1 -2
- package/tui/src/components/DesktopHandoff.tsx +0 -1
- package/tui/src/components/DesktopUpsell/DesktopUpsellStartup.tsx +0 -1
- package/tui/src/components/DevBar.tsx +1 -2
- package/tui/src/components/DevChannelsDialog.tsx +1 -2
- package/tui/src/components/DiagnosticsDisplay.tsx +1 -2
- package/tui/src/components/EffortCallout.tsx +1 -2
- package/tui/src/components/ExitFlow.tsx +1 -2
- package/tui/src/components/ExportDialog.tsx +1 -2
- package/tui/src/components/FallbackToolUseErrorMessage.tsx +0 -1
- package/tui/src/components/FallbackToolUseRejectedMessage.tsx +1 -2
- package/tui/src/components/FastIcon.tsx +1 -2
- package/tui/src/components/Feedback.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/FeedbackSurvey.tsx +1 -2
- package/tui/src/components/FeedbackSurvey/FeedbackSurveyView.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/TranscriptSharePrompt.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/useFeedbackSurvey.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/useMemorySurvey.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/usePostCompactSurvey.tsx +0 -1
- package/tui/src/components/FeedbackSurvey/useSurveyState.tsx +1 -2
- package/tui/src/components/FileEditToolDiff.tsx +1 -2
- package/tui/src/components/FileEditToolUpdatedMessage.tsx +1 -2
- package/tui/src/components/FileEditToolUseRejectedMessage.tsx +1 -2
- package/tui/src/components/FilePathLink.tsx +1 -2
- package/tui/src/components/FullscreenLayout.tsx +1 -2
- package/tui/src/components/GlobalSearchDialog.tsx +1 -2
- package/tui/src/components/HelpV2/Commands.tsx +1 -2
- package/tui/src/components/HelpV2/General.tsx +0 -1
- package/tui/src/components/HelpV2/HelpV2.tsx +0 -1
- package/tui/src/components/HighlightedCode/Fallback.tsx +1 -2
- package/tui/src/components/HighlightedCode.tsx +1 -2
- package/tui/src/components/HistorySearchDialog.tsx +1 -2
- package/tui/src/components/IdeAutoConnectDialog.tsx +1 -2
- package/tui/src/components/IdeOnboardingDialog.tsx +0 -1
- package/tui/src/components/IdeStatusIndicator.tsx +1 -2
- package/tui/src/components/IdleReturnDialog.tsx +1 -2
- package/tui/src/components/InterruptedByUser.tsx +0 -1
- package/tui/src/components/InvalidConfigDialog.tsx +1 -2
- package/tui/src/components/InvalidSettingsDialog.tsx +1 -2
- package/tui/src/components/KeybindingWarnings.tsx +1 -2
- package/tui/src/components/LanguagePicker.tsx +1 -2
- package/tui/src/components/LogSelector.tsx +0 -1
- package/tui/src/components/LogoV2/AnimatedAsterisk.tsx +1 -2
- package/tui/src/components/LogoV2/AnimatedClawd.tsx +1 -2
- package/tui/src/components/LogoV2/ChannelsNotice.tsx +0 -1
- package/tui/src/components/LogoV2/Clawd.tsx +1 -2
- package/tui/src/components/LogoV2/CondensedLogo.tsx +0 -1
- package/tui/src/components/LogoV2/EmergencyTip.tsx +0 -1
- package/tui/src/components/LogoV2/Feed.tsx +1 -2
- package/tui/src/components/LogoV2/FeedColumn.tsx +1 -2
- package/tui/src/components/LogoV2/GuestPassesUpsell.tsx +0 -1
- package/tui/src/components/LogoV2/LogoV2.tsx +0 -1
- package/tui/src/components/LogoV2/Opus1mMergeNotice.tsx +1 -2
- package/tui/src/components/LogoV2/OverageCreditUpsell.tsx +1 -2
- package/tui/src/components/LogoV2/VoiceModeNotice.tsx +1 -2
- package/tui/src/components/LogoV2/feedConfigs.tsx +0 -1
- package/tui/src/components/LspRecommendation/LspRecommendationMenu.tsx +1 -2
- package/tui/src/components/MCPServerApprovalDialog.tsx +1 -2
- package/tui/src/components/MCPServerDesktopImportDialog.tsx +0 -1
- package/tui/src/components/MCPServerDialogCopy.tsx +0 -1
- package/tui/src/components/MCPServerMultiselectDialog.tsx +1 -2
- package/tui/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.tsx +0 -1
- package/tui/src/components/Markdown.tsx +1 -2
- package/tui/src/components/MarkdownTable.tsx +1 -2
- package/tui/src/components/MemoryUsageIndicator.tsx +1 -2
- package/tui/src/components/Message.tsx +1 -2
- package/tui/src/components/MessageModel.tsx +1 -2
- package/tui/src/components/MessageResponse.tsx +1 -2
- package/tui/src/components/MessageRow.tsx +1 -2
- package/tui/src/components/MessageSelector.tsx +1 -2
- package/tui/src/components/MessageTimestamp.tsx +1 -2
- package/tui/src/components/Messages.tsx +0 -1
- package/tui/src/components/ModelPicker.tsx +0 -1
- package/tui/src/components/NativeAutoUpdater.tsx +1 -2
- package/tui/src/components/NotebookEditToolUseRejectedMessage.tsx +1 -2
- package/tui/src/components/OffscreenFreeze.tsx +1 -2
- package/tui/src/components/Onboarding.tsx +2 -3
- package/tui/src/components/OutputStylePicker.tsx +0 -1
- package/tui/src/components/PackageManagerAutoUpdater.tsx +0 -1
- package/tui/src/components/Passes/Passes.tsx +0 -1
- package/tui/src/components/PrBadge.tsx +1 -2
- package/tui/src/components/PressEnterToContinue.tsx +1 -2
- package/tui/src/components/PromptInput/HistorySearchInput.tsx +1 -2
- package/tui/src/components/PromptInput/IssueFlagBanner.tsx +1 -2
- package/tui/src/components/PromptInput/Notifications.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInput.tsx +0 -1
- package/tui/src/components/PromptInput/PromptInputFooter.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputFooterLeftSide.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputFooterSuggestions.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputHelpMenu.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputModeIndicator.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputQueuedCommands.tsx +1 -2
- package/tui/src/components/PromptInput/PromptInputStashNotice.tsx +1 -2
- package/tui/src/components/PromptInput/SandboxPromptFooterHint.tsx +1 -2
- package/tui/src/components/PromptInput/ShimmeredInput.tsx +1 -2
- package/tui/src/components/PromptInput/VoiceIndicator.tsx +1 -2
- package/tui/src/components/QuickOpenDialog.tsx +1 -2
- package/tui/src/components/RemoteCallout.tsx +0 -1
- package/tui/src/components/RemoteEnvironmentDialog.tsx +0 -1
- package/tui/src/components/ResumeTask.tsx +0 -1
- package/tui/src/components/SandboxViolationExpandedView.tsx +1 -2
- package/tui/src/components/ScrollKeybindingHandler.tsx +0 -1
- package/tui/src/components/SearchBox.tsx +1 -2
- package/tui/src/components/SessionBackgroundHint.tsx +1 -2
- package/tui/src/components/SessionPreview.tsx +1 -2
- package/tui/src/components/Settings/Config.tsx +0 -1
- package/tui/src/components/Settings/Settings.tsx +1 -2
- package/tui/src/components/Settings/Status.tsx +1 -2
- package/tui/src/components/Settings/Usage.tsx +1 -2
- package/tui/src/components/ShowInIDEPrompt.tsx +1 -2
- package/tui/src/components/SkillImprovementSurvey.tsx +1 -2
- package/tui/src/components/Spinner/FlashingChar.tsx +1 -2
- package/tui/src/components/Spinner/GlimmerMessage.tsx +1 -2
- package/tui/src/components/Spinner/ShimmerChar.tsx +1 -2
- package/tui/src/components/Spinner/SpinnerAnimationRow.tsx +1 -2
- package/tui/src/components/Spinner/SpinnerGlyph.tsx +1 -2
- package/tui/src/components/Spinner/TeammateSpinnerLine.tsx +1 -2
- package/tui/src/components/Spinner/TeammateSpinnerTree.tsx +1 -2
- package/tui/src/components/Spinner.tsx +0 -1
- package/tui/src/components/Stats.tsx +0 -1
- package/tui/src/components/StatusLine.tsx +1 -2
- package/tui/src/components/StatusNotices.tsx +1 -2
- package/tui/src/components/StructuredDiff/Fallback.tsx +1 -2
- package/tui/src/components/StructuredDiff.tsx +1 -2
- package/tui/src/components/StructuredDiffList.tsx +1 -2
- package/tui/src/components/TagTabs.tsx +1 -2
- package/tui/src/components/TaskListV2.tsx +1 -2
- package/tui/src/components/TeammateViewHeader.tsx +1 -2
- package/tui/src/components/TeleportError.tsx +0 -1
- package/tui/src/components/TeleportProgress.tsx +1 -2
- package/tui/src/components/TeleportRepoMismatchDialog.tsx +0 -1
- package/tui/src/components/TeleportStash.tsx +1 -2
- package/tui/src/components/TextInput.tsx +1 -2
- package/tui/src/components/ThemePicker.tsx +0 -1
- package/tui/src/components/ThinkingToggle.tsx +0 -1
- package/tui/src/components/TokenWarning.tsx +1 -2
- package/tui/src/components/ToolUseLoader.tsx +1 -2
- package/tui/src/components/TrustDialog/TrustDialog.tsx +0 -1
- package/tui/src/components/ValidationErrorsList.tsx +1 -2
- package/tui/src/components/VimTextInput.tsx +1 -2
- package/tui/src/components/VirtualMessageList.tsx +1 -2
- package/tui/src/components/WorktreeExitDialog.tsx +1 -2
- package/tui/src/components/agents/AgentDetail.tsx +0 -1
- package/tui/src/components/agents/AgentEditor.tsx +1 -2
- package/tui/src/components/agents/AgentNavigationFooter.tsx +1 -2
- package/tui/src/components/agents/AgentsList.tsx +0 -1
- package/tui/src/components/agents/AgentsMenu.tsx +1 -2
- package/tui/src/components/agents/ColorPicker.tsx +1 -2
- package/tui/src/components/agents/ModelSelector.tsx +1 -2
- package/tui/src/components/agents/ToolSelector.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/CreateAgentWizard.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/ColorStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.tsx +0 -1
- package/tui/src/components/agents/new-agent-creation/wizard-steps/ConfirmStepWrapper.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.tsx +0 -1
- package/tui/src/components/agents/new-agent-creation/wizard-steps/GenerateStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/LocationStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx +0 -1
- package/tui/src/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/PromptStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.tsx +1 -2
- package/tui/src/components/agents/new-agent-creation/wizard-steps/TypeStep.tsx +1 -2
- package/tui/src/components/design-system/Byline.tsx +1 -2
- package/tui/src/components/design-system/Dialog.tsx +1 -2
- package/tui/src/components/design-system/Divider.tsx +1 -2
- package/tui/src/components/design-system/FuzzyPicker.tsx +1 -2
- package/tui/src/components/design-system/KeyboardShortcutHint.tsx +1 -2
- package/tui/src/components/design-system/ListItem.tsx +1 -2
- package/tui/src/components/design-system/LoadingState.tsx +0 -1
- package/tui/src/components/design-system/Pane.tsx +1 -2
- package/tui/src/components/design-system/ProgressBar.tsx +1 -2
- package/tui/src/components/design-system/Ratchet.tsx +1 -2
- package/tui/src/components/design-system/StatusIcon.tsx +1 -2
- package/tui/src/components/design-system/Tabs.tsx +1 -2
- package/tui/src/components/design-system/ThemeProvider.tsx +1 -2
- package/tui/src/components/design-system/ThemedBox.tsx +1 -2
- package/tui/src/components/design-system/ThemedText.tsx +1 -2
- package/tui/src/components/diff/DiffDetailView.tsx +1 -2
- package/tui/src/components/diff/DiffDialog.tsx +1 -2
- package/tui/src/components/diff/DiffFileList.tsx +1 -2
- package/tui/src/components/grove/Grove.tsx +0 -1
- package/tui/src/components/hooks/HooksConfigMenu.tsx +0 -1
- package/tui/src/components/hooks/PromptDialog.tsx +1 -2
- package/tui/src/components/hooks/SelectEventMode.tsx +0 -1
- package/tui/src/components/hooks/SelectHookMode.tsx +0 -1
- package/tui/src/components/hooks/SelectMatcherMode.tsx +0 -1
- package/tui/src/components/hooks/ViewHookMode.tsx +0 -1
- package/tui/src/components/mcp/CapabilitiesSection.tsx +1 -2
- package/tui/src/components/mcp/ElicitationDialog.tsx +0 -1
- package/tui/src/components/mcp/MCPAgentServerMenu.tsx +1 -2
- package/tui/src/components/mcp/MCPListPanel.tsx +0 -1
- package/tui/src/components/mcp/MCPReconnect.tsx +1 -2
- package/tui/src/components/mcp/MCPRemoteServerMenu.tsx +2 -3
- package/tui/src/components/mcp/MCPSettings.tsx +0 -1
- package/tui/src/components/mcp/MCPStdioServerMenu.tsx +1 -2
- package/tui/src/components/mcp/MCPToolDetailView.tsx +1 -2
- package/tui/src/components/mcp/MCPToolListView.tsx +1 -2
- package/tui/src/components/mcp/McpParsingWarnings.tsx +0 -1
- package/tui/src/components/mcp/utils/reconnectHelpers.tsx +1 -2
- package/tui/src/components/memory/MemoryFileSelector.tsx +1 -2
- package/tui/src/components/memory/MemoryUpdateNotification.tsx +1 -2
- package/tui/src/components/messageActions.tsx +1 -2
- package/tui/src/components/messages/AdvisorMessage.tsx +1 -2
- package/tui/src/components/messages/AssistantRedactedThinkingMessage.tsx +1 -2
- package/tui/src/components/messages/AssistantThinkingMessage.tsx +1 -2
- package/tui/src/components/messages/AssistantToolUseMessage.tsx +0 -1
- package/tui/src/components/messages/AttachmentMessage.tsx +1 -2
- package/tui/src/components/messages/CollapsedReadSearchContent.tsx +1 -2
- package/tui/src/components/messages/CompactBoundaryMessage.tsx +1 -2
- package/tui/src/components/messages/GroupedToolUseContent.tsx +1 -2
- package/tui/src/components/messages/HighlightedThinkingText.tsx +1 -2
- package/tui/src/components/messages/HookProgressMessage.tsx +1 -2
- package/tui/src/components/messages/PlanApprovalMessage.tsx +1 -2
- package/tui/src/components/messages/RateLimitMessage.tsx +1 -2
- package/tui/src/components/messages/ShutdownMessage.tsx +1 -2
- package/tui/src/components/messages/SystemAPIErrorMessage.tsx +1 -2
- package/tui/src/components/messages/SystemTextMessage.tsx +1 -2
- package/tui/src/components/messages/TaskAssignmentMessage.tsx +1 -2
- package/tui/src/components/messages/UserAgentNotificationMessage.tsx +1 -2
- package/tui/src/components/messages/UserBashInputMessage.tsx +1 -2
- package/tui/src/components/messages/UserBashOutputMessage.tsx +1 -2
- package/tui/src/components/messages/UserChannelMessage.tsx +1 -2
- package/tui/src/components/messages/UserCommandMessage.tsx +1 -2
- package/tui/src/components/messages/UserImageMessage.tsx +1 -2
- package/tui/src/components/messages/UserLocalCommandOutputMessage.tsx +1 -2
- package/tui/src/components/messages/UserMemoryInputMessage.tsx +1 -2
- package/tui/src/components/messages/UserPlanMessage.tsx +1 -2
- package/tui/src/components/messages/UserPromptMessage.tsx +1 -2
- package/tui/src/components/messages/UserResourceUpdateMessage.tsx +1 -2
- package/tui/src/components/messages/UserTeammateMessage.tsx +1 -2
- package/tui/src/components/messages/UserTextMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/RejectedPlanMessage.tsx +0 -1
- package/tui/src/components/messages/UserToolResultMessage/RejectedToolUseMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/UserToolCanceledMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/UserToolSuccessMessage.tsx +1 -2
- package/tui/src/components/messages/UserToolResultMessage/utils.tsx +0 -1
- package/tui/src/components/messages/teamMemCollapsed.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/PreviewQuestionView.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx +1 -2
- package/tui/src/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.tsx +1 -2
- package/tui/src/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/BashPermissionRequest/bashToolUseOptions.tsx +0 -1
- package/tui/src/components/permissions/ComputerUseApproval/ComputerUseApproval.tsx +0 -1
- package/tui/src/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/FallbackPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/FilePermissionDialog/FilePermissionDialog.tsx +1 -2
- package/tui/src/components/permissions/FilePermissionDialog/permissionOptions.tsx +0 -1
- package/tui/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +1 -2
- package/tui/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx +1 -2
- package/tui/src/components/permissions/PermissionDecisionDebugInfo.tsx +1 -2
- package/tui/src/components/permissions/PermissionDialog.tsx +1 -2
- package/tui/src/components/permissions/PermissionExplanation.tsx +1 -2
- package/tui/src/components/permissions/PermissionPrompt.tsx +0 -1
- package/tui/src/components/permissions/PermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/PermissionRequestTitle.tsx +1 -2
- package/tui/src/components/permissions/PermissionRuleExplanation.tsx +1 -2
- package/tui/src/components/permissions/PowerShellPermissionRequest/PowerShellPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/PowerShellPermissionRequest/powershellToolUseOptions.tsx +0 -1
- package/tui/src/components/permissions/SandboxPermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx +1 -2
- package/tui/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx +0 -1
- package/tui/src/components/permissions/WorkerBadge.tsx +1 -2
- package/tui/src/components/permissions/WorkerPendingPermission.tsx +1 -2
- package/tui/src/components/permissions/rules/AddPermissionRules.tsx +0 -1
- package/tui/src/components/permissions/rules/AddWorkspaceDirectory.tsx +0 -1
- package/tui/src/components/permissions/rules/PermissionRuleDescription.tsx +1 -2
- package/tui/src/components/permissions/rules/PermissionRuleInput.tsx +1 -2
- package/tui/src/components/permissions/rules/PermissionRuleList.tsx +0 -1
- package/tui/src/components/permissions/rules/RecentDenialsTab.tsx +1 -2
- package/tui/src/components/permissions/rules/RemoveWorkspaceDirectory.tsx +0 -1
- package/tui/src/components/permissions/rules/WorkspaceTab.tsx +1 -2
- package/tui/src/components/permissions/shellPermissionHelpers.tsx +1 -2
- package/tui/src/components/sandbox/SandboxConfigTab.tsx +1 -2
- package/tui/src/components/sandbox/SandboxDependenciesTab.tsx +1 -2
- package/tui/src/components/sandbox/SandboxDoctorSection.tsx +1 -2
- package/tui/src/components/sandbox/SandboxOverridesTab.tsx +0 -1
- package/tui/src/components/sandbox/SandboxSettings.tsx +0 -1
- package/tui/src/components/shell/ExpandShellOutputContext.tsx +1 -2
- package/tui/src/components/shell/OutputLine.tsx +1 -2
- package/tui/src/components/shell/ShellProgressMessage.tsx +1 -2
- package/tui/src/components/shell/ShellTimeDisplay.tsx +1 -2
- package/tui/src/components/skills/SkillsMenu.tsx +0 -1
- package/tui/src/components/tasks/AsyncAgentDetailDialog.tsx +1 -2
- package/tui/src/components/tasks/BackgroundTask.tsx +1 -2
- package/tui/src/components/tasks/BackgroundTaskStatus.tsx +1 -2
- package/tui/src/components/tasks/BackgroundTasksDialog.tsx +1 -2
- package/tui/src/components/tasks/DreamDetailDialog.tsx +1 -2
- package/tui/src/components/tasks/InProcessTeammateDetailDialog.tsx +1 -2
- package/tui/src/components/tasks/RemoteSessionDetailDialog.tsx +0 -1
- package/tui/src/components/tasks/RemoteSessionProgress.tsx +1 -2
- package/tui/src/components/tasks/ShellDetailDialog.tsx +1 -2
- package/tui/src/components/tasks/ShellProgress.tsx +1 -2
- package/tui/src/components/tasks/renderToolActivity.tsx +1 -2
- package/tui/src/components/tasks/taskStatusUtils.tsx +1 -2
- package/tui/src/components/teams/TeamStatus.tsx +1 -2
- package/tui/src/components/teams/TeamsDialog.tsx +1 -2
- package/tui/src/components/ui/OrderedList.tsx +1 -2
- package/tui/src/components/ui/OrderedListItem.tsx +1 -2
- package/tui/src/components/ui/TreeSelect.tsx +1 -2
- package/tui/src/components/wizard/WizardDialogLayout.tsx +1 -2
- package/tui/src/components/wizard/WizardNavigationFooter.tsx +1 -2
- package/tui/src/components/wizard/WizardProvider.tsx +1 -2
- package/tui/src/context/QueuedMessageContext.tsx +1 -2
- package/tui/src/context/fpsMetrics.tsx +1 -2
- package/tui/src/context/mailbox.tsx +1 -2
- package/tui/src/context/modalContext.tsx +1 -2
- package/tui/src/context/notifications.tsx +1 -2
- package/tui/src/context/overlayContext.tsx +1 -2
- package/tui/src/context/promptOverlayContext.tsx +1 -2
- package/tui/src/context/stats.tsx +1 -2
- package/tui/src/context/voice.tsx +1 -2
- package/tui/src/dialogLaunchers.tsx +0 -1
- package/tui/src/entrypoints/cli.tsx +0 -1
- package/tui/src/hooks/notifs/useCanSwitchToExistingSubscription.tsx +0 -1
- package/tui/src/hooks/notifs/useDeprecationWarningNotification.tsx +1 -2
- package/tui/src/hooks/notifs/useFastModeNotification.tsx +1 -2
- package/tui/src/hooks/notifs/useIDEStatusIndicator.tsx +1 -2
- package/tui/src/hooks/notifs/useInstallMessages.tsx +1 -2
- package/tui/src/hooks/notifs/useLspInitializationNotification.tsx +1 -2
- package/tui/src/hooks/notifs/useMcpConnectivityStatus.tsx +0 -1
- package/tui/src/hooks/notifs/useModelMigrationNotifications.tsx +1 -2
- package/tui/src/hooks/notifs/useNpmDeprecationNotification.tsx +1 -2
- package/tui/src/hooks/notifs/usePluginAutoupdateNotification.tsx +1 -2
- package/tui/src/hooks/notifs/usePluginInstallationStatus.tsx +1 -2
- package/tui/src/hooks/notifs/useRateLimitWarningNotification.tsx +1 -2
- package/tui/src/hooks/notifs/useSettingsErrors.tsx +1 -2
- package/tui/src/hooks/useApiKeyVerification.ts +7 -7
- package/tui/src/hooks/useArrowKeyHistory.tsx +1 -2
- package/tui/src/hooks/useCanUseTool.tsx +0 -1
- package/tui/src/hooks/useChromeExtensionNotification.tsx +0 -1
- package/tui/src/hooks/useClaudeCodeHintRecommendation.tsx +1 -2
- package/tui/src/hooks/useCommandKeybindings.tsx +1 -2
- package/tui/src/hooks/useGlobalKeybindings.tsx +1 -2
- package/tui/src/hooks/useIDEIntegration.tsx +1 -2
- package/tui/src/hooks/useLspPluginRecommendation.tsx +1 -2
- package/tui/src/hooks/useOfficialMarketplaceNotification.tsx +0 -1
- package/tui/src/hooks/usePluginRecommendationBase.tsx +1 -2
- package/tui/src/hooks/usePromptsFromClaudeInChrome.tsx +1 -2
- package/tui/src/hooks/useReplBridge.tsx +1 -2
- package/tui/src/hooks/useTypeahead.tsx +0 -1
- package/tui/src/hooks/useVoiceIntegration.tsx +1 -2
- package/tui/src/ink/Ansi.tsx +1 -2
- package/tui/src/ink/components/AlternateScreen.tsx +1 -2
- package/tui/src/ink/components/App.tsx +0 -1
- package/tui/src/ink/components/Box.tsx +1 -2
- package/tui/src/ink/components/Button.tsx +1 -2
- package/tui/src/ink/components/ClockContext.tsx +1 -2
- package/tui/src/ink/components/ErrorOverview.tsx +1 -2
- package/tui/src/ink/components/Link.tsx +1 -2
- package/tui/src/ink/components/Newline.tsx +1 -2
- package/tui/src/ink/components/NoSelect.tsx +1 -2
- package/tui/src/ink/components/RawAnsi.tsx +1 -2
- package/tui/src/ink/components/ScrollBox.tsx +1 -2
- package/tui/src/ink/components/Spacer.tsx +1 -2
- package/tui/src/ink/components/TerminalFocusContext.tsx +1 -2
- package/tui/src/ink/components/TerminalSizeContext.tsx +1 -2
- package/tui/src/ink/components/Text.tsx +1 -2
- package/tui/src/ink/ink.tsx +0 -1
- package/tui/src/interactiveHelpers.tsx +0 -1
- package/tui/src/keybindings/KeybindingContext.tsx +1 -2
- package/tui/src/keybindings/KeybindingProviderSetup.tsx +1 -2
- package/tui/src/main.tsx +0 -1
- package/tui/src/moreright/useMoreRight.tsx +1 -2
- package/tui/src/replLauncher.tsx +1 -2
- package/tui/src/screens/Doctor.tsx +0 -1
- package/tui/src/screens/REPL.tsx +0 -1
- package/tui/src/screens/ResumeConversation.tsx +0 -1
- package/tui/src/services/mcp/MCPConnectionManager.tsx +1 -2
- package/tui/src/services/mcp/claudeai.ts +1 -1
- package/tui/src/services/mcpServerApproval.tsx +1 -2
- package/tui/src/services/oauth/client.ts +15 -15
- package/tui/src/services/oauth/getOauthProfile.ts +2 -2
- package/tui/src/services/oauth/index.ts +12 -18
- package/tui/src/services/policyLimits/index.ts +3 -3
- package/tui/src/services/remoteManagedSettings/index.ts +3 -3
- package/tui/src/services/remoteManagedSettings/securityCheck.tsx +1 -2
- package/tui/src/services/remoteManagedSettings/syncCache.ts +3 -3
- package/tui/src/services/voiceStreamSTT.ts +2 -2
- package/tui/src/state/AppState.tsx +1 -2
- package/tui/src/tasks/InProcessTeammateTask/InProcessTeammateTask.tsx +1 -2
- package/tui/src/tasks/LocalAgentTask/LocalAgentTask.tsx +1 -2
- package/tui/src/tasks/LocalShellTask/LocalShellTask.tsx +1 -2
- package/tui/src/tasks/RemoteAgentTask/RemoteAgentTask.tsx +0 -1
- package/tui/src/tools/AgentTool/UI.tsx +1 -2
- package/tui/src/tools/BashTool/BashToolResultMessage.tsx +0 -1
- package/tui/src/tools/BashTool/UI.tsx +1 -2
- package/tui/src/tools/BriefTool/UI.tsx +0 -1
- package/tui/src/tools/ConfigTool/ConfigTool.ts +2 -2
- package/tui/src/tools/ConfigTool/UI.tsx +1 -2
- package/tui/src/tools/EnterPlanModeTool/UI.tsx +0 -1
- package/tui/src/tools/EnterWorktreeTool/UI.tsx +1 -2
- package/tui/src/tools/ExitPlanModeTool/UI.tsx +0 -1
- package/tui/src/tools/ExitWorktreeTool/UI.tsx +1 -2
- package/tui/src/tools/FileEditTool/UI.tsx +1 -2
- package/tui/src/tools/FileReadTool/UI.tsx +1 -2
- package/tui/src/tools/FileWriteTool/UI.tsx +1 -2
- package/tui/src/tools/GlobTool/UI.tsx +1 -2
- package/tui/src/tools/GrepTool/UI.tsx +1 -2
- package/tui/src/tools/LSPTool/UI.tsx +1 -2
- package/tui/src/tools/ListMcpResourcesTool/UI.tsx +1 -2
- package/tui/src/tools/MCPTool/UI.tsx +1 -2
- package/tui/src/tools/NotebookEditTool/UI.tsx +1 -2
- package/tui/src/tools/PowerShellTool/UI.tsx +0 -1
- package/tui/src/tools/ReadMcpResourceTool/UI.tsx +1 -2
- package/tui/src/tools/RemoteTriggerTool/UI.tsx +1 -2
- package/tui/src/tools/ScheduleCronTool/UI.tsx +1 -2
- package/tui/src/tools/SendMessageTool/UI.tsx +1 -2
- package/tui/src/tools/SkillTool/UI.tsx +1 -2
- package/tui/src/tools/TaskStopTool/UI.tsx +1 -2
- package/tui/src/tools/TeamCreateTool/UI.tsx +1 -2
- package/tui/src/tools/TeamDeleteTool/UI.tsx +1 -2
- package/tui/src/tools/WebFetchTool/UI.tsx +1 -2
- package/tui/src/tools/testing/TestingPermissionTool.tsx +1 -2
- package/tui/src/utils/auth.ts +6 -12
- package/tui/src/utils/autoRunIssue.tsx +1 -2
- package/tui/src/utils/billing.ts +2 -2
- package/tui/src/utils/computerUse/toolRendering.tsx +1 -2
- package/tui/src/utils/computerUse/wrapper.tsx +0 -1
- package/tui/src/utils/exportRenderer.tsx +1 -2
- package/tui/src/utils/fastMode.ts +2 -2
- package/tui/src/utils/highlightMatch.tsx +1 -2
- package/tui/src/utils/http.ts +2 -2
- package/tui/src/utils/managedEnv.ts +1 -1
- package/tui/src/utils/messages/systemInit.ts +2 -2
- package/tui/src/utils/plugins/performStartupChecks.tsx +1 -2
- package/tui/src/utils/preflightChecks.tsx +0 -1
- package/tui/src/utils/processUserInput/processBashCommand.tsx +1 -2
- package/tui/src/utils/processUserInput/processSlashCommand.tsx +0 -1
- package/tui/src/utils/staticRender.tsx +1 -2
- package/tui/src/utils/status.tsx +1 -2
- package/tui/src/utils/statusNoticeDefinitions.tsx +5 -6
- package/tui/src/utils/swarm/It2SetupPrompt.tsx +1 -2
- package/tui/src/utils/teleport.tsx +0 -1
- package/tui/src/voice/voiceModeEnabled.ts +3 -3
- package/uv.lock +1 -1
- package/src/ummaya/llm/_cc_reference/README.md +0 -104
- package/src/ummaya/llm/_cc_reference/api.ts +0 -721
- package/src/ummaya/llm/_cc_reference/claude.ts +0 -3422
- package/src/ummaya/llm/_cc_reference/client.ts +0 -392
- package/src/ummaya/llm/_cc_reference/emptyUsage.ts +0 -25
- package/src/ummaya/llm/_cc_reference/errors.ts +0 -1210
- package/src/ummaya/llm/_cc_reference/messages.ts +0 -5515
- package/src/ummaya/llm/_cc_reference/permissions.ts +0 -1489
- package/src/ummaya/llm/_cc_reference/prompts.ts +0 -917
- package/src/ummaya/llm/_cc_reference/query.ts +0 -1732
- package/src/ummaya/llm/_cc_reference/toolExecution.ts +0 -1748
- package/src/ummaya/llm/_cc_reference/toolOrchestration.ts +0 -191
- package/src/ummaya/llm/_cc_reference/toolResultStorage.ts +0 -1043
- package/src/ummaya/llm/_cc_reference/tools.ts +0 -392
|
@@ -832,4 +832,3 @@ export function shouldRenderStatically(message: RenderableMessage, streamingTool
|
|
|
832
832
|
}
|
|
833
833
|
}
|
|
834
834
|
}
|
|
835
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZWF0dXJlIiwiY2hhbGsiLCJVVUlEIiwiUmVmT2JqZWN0IiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImV2ZXJ5IiwiZ2V0SXNSZW1vdGVNb2RlIiwiQ29tbWFuZCIsIkJMQUNLX0NJUkNMRSIsInVzZVRlcm1pbmFsU2l6ZSIsIlNjcm9sbEJveEhhbmRsZSIsInVzZVRlcm1pbmFsTm90aWZpY2F0aW9uIiwiQm94IiwiVGV4dCIsInVzZVNob3J0Y3V0RGlzcGxheSIsIlNjcmVlbiIsIlRvb2xzIiwiZmluZFRvb2xCeU5hbWUiLCJBZ2VudERlZmluaXRpb25zUmVzdWx0IiwiTWVzc2FnZSIsIk1lc3NhZ2VUeXBlIiwiTm9ybWFsaXplZE1lc3NhZ2UiLCJQcm9ncmVzc01lc3NhZ2UiLCJQcm9ncmVzc01lc3NhZ2VUeXBlIiwiUmVuZGVyYWJsZU1lc3NhZ2UiLCJBZHZpc29yQmxvY2siLCJpc0Fkdmlzb3JCbG9jayIsImNvbGxhcHNlQmFja2dyb3VuZEJhc2hOb3RpZmljYXRpb25zIiwiY29sbGFwc2VIb29rU3VtbWFyaWVzIiwiY29sbGFwc2VSZWFkU2VhcmNoR3JvdXBzIiwiY29sbGFwc2VUZWFtbWF0ZVNodXRkb3ducyIsImdldEdsb2JhbENvbmZpZyIsImlzRW52VHJ1dGh5IiwiaXNGdWxsc2NyZWVuRW52RW5hYmxlZCIsImFwcGx5R3JvdXBpbmciLCJidWlsZE1lc3NhZ2VMb29rdXBzIiwiY3JlYXRlQXNzaXN0YW50TWVzc2FnZSIsImRlcml2ZVVVSUQiLCJnZXRNZXNzYWdlc0FmdGVyQ29tcGFjdEJvdW5kYXJ5IiwiZ2V0VG9vbFVzZUlEIiwiZ2V0VG9vbFVzZUlEcyIsImhhc1VucmVzb2x2ZWRIb29rc0Zyb21Mb29rdXAiLCJpc05vdEVtcHR5TWVzc2FnZSIsIm5vcm1hbGl6ZU1lc3NhZ2VzIiwicmVvcmRlck1lc3NhZ2VzSW5VSSIsIlN0cmVhbWluZ1RoaW5raW5nIiwiU3RyZWFtaW5nVG9vbFVzZSIsInNob3VsZFNob3dVc2VyTWVzc2FnZSIsInBsdXJhbCIsInJlbmRlcmFibGVTZWFyY2hUZXh0IiwiRGl2aWRlciIsIlVuc2VlbkRpdmlkZXIiLCJMb2dvVjIiLCJTdHJlYW1pbmdNYXJrZG93biIsImhhc0NvbnRlbnRBZnRlckluZGV4IiwiTWVzc2FnZVJvdyIsIkluVmlydHVhbExpc3RDb250ZXh0IiwiTWVzc2FnZUFjdGlvbnNOYXYiLCJNZXNzYWdlQWN0aW9uc1NlbGVjdGVkQ29udGV4dCIsIk1lc3NhZ2VBY3Rpb25zU3RhdGUiLCJBc3Npc3RhbnRUaGlua2luZ01lc3NhZ2UiLCJpc051bGxSZW5kZXJpbmdBdHRhY2htZW50IiwiT2Zmc2NyZWVuRnJlZXplIiwiVG9vbFVzZUNvbmZpcm0iLCJTdGF0dXNOb3RpY2VzIiwiSnVtcEhhbmRsZSIsIkxvZ29IZWFkZXIiLCJtZW1vIiwidDAiLCIkIiwiX2MiLCJhZ2VudERlZmluaXRpb25zIiwidDEiLCJTeW1ib2wiLCJmb3IiLCJ0MiIsInByb2FjdGl2ZU1vZHVsZSIsInJlcXVpcmUiLCJCUklFRl9UT09MX05BTUUiLCJTRU5EX1VTRVJfRklMRV9UT09MX05BTUUiLCJWaXJ0dWFsTWVzc2FnZUxpc3QiLCJmaWx0ZXJGb3JCcmllZlRvb2wiLCJ0eXBlIiwic3VidHlwZSIsImlzTWV0YSIsImlzQXBpRXJyb3JNZXNzYWdlIiwibWVzc2FnZSIsImNvbnRlbnQiLCJBcnJheSIsIm5hbWUiLCJ0b29sX3VzZV9pZCIsImF0dGFjaG1lbnQiLCJvcmlnaW4iLCJjb21tYW5kTW9kZSIsIm1lc3NhZ2VzIiwiVCIsImJyaWVmVG9vbE5hbWVzIiwibmFtZVNldCIsIlNldCIsImJyaWVmVG9vbFVzZUlEcyIsImZpbHRlciIsIm1zZyIsImJsb2NrIiwiaGFzIiwiYWRkIiwiaWQiLCJ1bmRlZmluZWQiLCJhdHQiLCJkcm9wVGV4dEluQnJpZWZUdXJucyIsInR1cm5zV2l0aEJyaWVmIiwidGV4dEluZGV4VG9UdXJuIiwidHVybiIsImkiLCJsZW5ndGgiLCJzaXplIiwiXyIsInQiLCJQcm9wcyIsInRvb2xzIiwiY29tbWFuZHMiLCJ2ZXJib3NlIiwidG9vbEpTWCIsImpzeCIsIlJlYWN0Tm9kZSIsInNob3VsZEhpZGVQcm9tcHRJbnB1dCIsInNob3VsZENvbnRpbnVlQW5pbWF0aW9uIiwidG9vbFVzZUNvbmZpcm1RdWV1ZSIsImluUHJvZ3Jlc3NUb29sVXNlSURzIiwiaXNNZXNzYWdlU2VsZWN0b3JWaXNpYmxlIiwiY29udmVyc2F0aW9uSWQiLCJzY3JlZW4iLCJzdHJlYW1pbmdUb29sVXNlcyIsInNob3dBbGxJblRyYW5zY3JpcHQiLCJvbk9wZW5SYXRlTGltaXRPcHRpb25zIiwiaGlkZUxvZ28iLCJpc0xvYWRpbmciLCJoaWRlUGFzdFRoaW5raW5nIiwic3RyZWFtaW5nVGhpbmtpbmciLCJzdHJlYW1pbmdUZXh0IiwiaXNCcmllZk9ubHkiLCJ1bnNlZW5EaXZpZGVyIiwic2Nyb2xsUmVmIiwidHJhY2tTdGlja3lQcm9tcHQiLCJqdW1wUmVmIiwib25TZWFyY2hNYXRjaGVzQ2hhbmdlIiwiY291bnQiLCJjdXJyZW50Iiwic2NhbkVsZW1lbnQiLCJlbCIsIkRPTUVsZW1lbnQiLCJNYXRjaFBvc2l0aW9uIiwic2V0UG9zaXRpb25zIiwic3RhdGUiLCJwb3NpdGlvbnMiLCJyb3dPZmZzZXQiLCJjdXJyZW50SWR4IiwiZGlzYWJsZVJlbmRlckNhcCIsImN1cnNvciIsInNldEN1cnNvciIsImN1cnNvck5hdlJlZiIsIlJlZiIsInJlbmRlclJhbmdlIiwic3RhcnQiLCJlbmQiLCJNQVhfTUVTU0FHRVNfVE9fU0hPV19JTl9UUkFOU0NSSVBUX01PREUiLCJNQVhfTUVTU0FHRVNfV0lUSE9VVF9WSVJUVUFMSVpBVElPTiIsIk1FU1NBR0VfQ0FQX1NURVAiLCJTbGljZUFuY2hvciIsInV1aWQiLCJpZHgiLCJjb21wdXRlU2xpY2VTdGFydCIsImNvbGxhcHNlZCIsIlJlYWRvbmx5QXJyYXkiLCJhbmNob3JSZWYiLCJjYXAiLCJzdGVwIiwiYW5jaG9yIiwiYW5jaG9ySWR4IiwiZmluZEluZGV4IiwibSIsIk1hdGgiLCJtaW4iLCJtYXgiLCJtc2dBdFN0YXJ0IiwiTWVzc2FnZXNJbXBsIiwiY29sdW1ucyIsInRvZ2dsZVNob3dBbGxTaG9ydGN1dCIsIm5vcm1hbGl6ZWRNZXNzYWdlcyIsImlzU3RyZWFtaW5nVGhpbmtpbmdWaXNpYmxlIiwiaXNTdHJlYW1pbmciLCJzdHJlYW1pbmdFbmRlZEF0IiwiRGF0ZSIsIm5vdyIsImxhc3RUaGlua2luZ0Jsb2NrSWQiLCJqIiwiaGFzVG9vbFJlc3VsdCIsInNvbWUiLCJsYXRlc3RCYXNoT3V0cHV0VVVJRCIsInRleHQiLCJzdGFydHNXaXRoIiwibm9ybWFsaXplZFRvb2xVc2VJRHMiLCJzdHJlYW1pbmdUb29sVXNlc1dpdGhvdXRJblByb2dyZXNzIiwic3R1IiwiY29udGVudEJsb2NrIiwic3ludGhldGljU3RyZWFtaW5nVG9vbFVzZU1lc3NhZ2VzIiwiZmxhdE1hcCIsInN0cmVhbWluZ1Rvb2xVc2UiLCJpc1RyYW5zY3JpcHRNb2RlIiwiZGlzYWJsZVZpcnR1YWxTY3JvbGwiLCJwcm9jZXNzIiwiZW52IiwiQ0xBVURFX0NPREVfRElTQUJMRV9WSVJUVUFMX1NDUk9MTCIsInZpcnR1YWxTY3JvbGxSdW50aW1lR2F0ZSIsInNob3VsZFRydW5jYXRlIiwic2xpY2VBbmNob3JSZWYiLCJsb29rdXBzIiwiaGFzVHJ1bmNhdGVkTWVzc2FnZXMiLCJoaWRkZW5NZXNzYWdlQ291bnQiLCJjb21wYWN0QXdhcmVNZXNzYWdlcyIsImluY2x1ZGVTbmlwcGVkIiwibWVzc2FnZXNUb1Nob3dOb3RUcnVuY2F0ZWQiLCJFeGNsdWRlIiwibiIsImRyb3BUZXh0VG9vbE5hbWVzIiwiYnJpZWZGaWx0ZXJlZCIsIm1lc3NhZ2VzVG9TaG93Iiwic2xpY2UiLCJncm91cGVkTWVzc2FnZXMiLCJyZW5kZXJhYmxlTWVzc2FnZXMiLCJjYXBBcHBsaWVzIiwic2xpY2VTdGFydCIsInN0cmVhbWluZ1Rvb2xVc2VJRHMiLCJtYXAiLCJkaXZpZGVyQmVmb3JlSW5kZXgiLCJwcmVmaXgiLCJmaXJzdFVuc2VlblV1aWQiLCJzZWxlY3RlZElkeCIsImV4cGFuZGVkS2V5cyIsInNldEV4cGFuZGVkS2V5cyIsIlJlYWRvbmx5U2V0Iiwib25JdGVtQ2xpY2siLCJrIiwiZXhwYW5kS2V5IiwicHJldiIsIm5leHQiLCJkZWxldGUiLCJpc0l0ZW1FeHBhbmRlZCIsImxvb2t1cHNSZWYiLCJpc0l0ZW1DbGlja2FibGUiLCJiIiwiaXNfZXJyb3IiLCJ0b29sVXNlUmVzdWx0IiwidG9vbFVzZUJ5VG9vbFVzZUlEIiwiZ2V0IiwidG9vbCIsImlzUmVzdWx0VHJ1bmNhdGVkIiwiY2FuQW5pbWF0ZSIsImhhc1Rvb2xzSW5Qcm9ncmVzcyIsInByb2dyZXNzIiwicHJldlByb2dyZXNzU3RhdGUiLCJwcm9ncmVzc0VuYWJsZWQiLCJ0ZXJtaW5hbFByb2dyZXNzQmFyRW5hYmxlZCIsImlzUHJvYWN0aXZlQWN0aXZlIiwibWVzc2FnZUtleSIsInJlbmRlck1lc3NhZ2VSb3ciLCJpbmRleCIsInByZXZUeXBlIiwiaXNVc2VyQ29udGludWF0aW9uIiwiaGFzQ29udGVudEFmdGVyIiwicm93IiwiZXhwYW5kZWQiLCJ3cmFwcGVkIiwic2VhcmNoVGV4dENhY2hlIiwiV2Vha01hcCIsImV4dHJhY3RTZWFyY2hUZXh0IiwiY2FjaGVkIiwiaXNBcnJheSIsInRyIiwiZmluZCIsInR1IiwiZXh0cmFjdGVkIiwibG93ZXJlZCIsInRvTG93ZXJDYXNlIiwic2V0IiwiYm9sZCIsInRoaW5raW5nIiwic2V0c0VxdWFsIiwiYSIsIml0ZW0iLCJNZXNzYWdlcyIsImtleXMiLCJPYmplY3QiLCJrZXkiLCJwIiwic2hvdWxkUmVuZGVyU3RhdGljYWxseSIsInNpYmxpbmdUb29sVXNlSURzIiwiUmV0dXJuVHlwZSIsInJlc29sdmVkVG9vbFVzZUlEcyIsInRvb2xVc2VJRCIsImFsbFJlc29sdmVkIl0sInNvdXJjZXMiOlsiTWVzc2FnZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZlYXR1cmUgfSBmcm9tICdidW46YnVuZGxlJ1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJ1xuaW1wb3J0IHR5cGUgeyBVVUlEIH0gZnJvbSAnY3J5cHRvJ1xuaW1wb3J0IHR5cGUgeyBSZWZPYmplY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZXZlcnkgfSBmcm9tICdzcmMvdXRpbHMvc2V0LmpzJ1xuaW1wb3J0IHsgZ2V0SXNSZW1vdGVNb2RlIH0gZnJvbSAnLi4vYm9vdHN0cmFwL3N0YXRlLmpzJ1xuaW1wb3J0IHR5cGUgeyBDb21tYW5kIH0gZnJvbSAnLi4vY29tbWFuZHMuanMnXG5pbXBvcnQgeyBCTEFDS19DSVJDTEUgfSBmcm9tICcuLi9jb25zdGFudHMvZmlndXJlcy5qcydcbmltcG9ydCB7IHVzZVRlcm1pbmFsU2l6ZSB9IGZyb20gJy4uL2hvb2tzL3VzZVRlcm1pbmFsU2l6ZS5qcydcbmltcG9ydCB0eXBlIHsgU2Nyb2xsQm94SGFuZGxlIH0gZnJvbSAnLi4vaW5rL2NvbXBvbmVudHMvU2Nyb2xsQm94LmpzJ1xuaW1wb3J0IHsgdXNlVGVybWluYWxOb3RpZmljYXRpb24gfSBmcm9tICcuLi9pbmsvdXNlVGVybWluYWxOb3RpZmljYXRpb24uanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5pbXBvcnQgeyB1c2VTaG9ydGN1dERpc3BsYXkgfSBmcm9tICcuLi9rZXliaW5kaW5ncy91c2VTaG9ydGN1dERpc3BsYXkuanMnXG5pbXBvcnQgdHlwZSB7IFNjcmVlbiB9IGZyb20gJy4uL3NjcmVlbnMvUkVQTC5qcydcbmltcG9ydCB0eXBlIHsgVG9vbHMgfSBmcm9tICcuLi9Ub29sLmpzJ1xuaW1wb3J0IHsgZmluZFRvb2xCeU5hbWUgfSBmcm9tICcuLi9Ub29sLmpzJ1xuaW1wb3J0IHR5cGUgeyBBZ2VudERlZmluaXRpb25zUmVzdWx0IH0gZnJvbSAnLi4vdG9vbHMvQWdlbnRUb29sL2xvYWRBZ2VudHNEaXIuanMnXG5pbXBvcnQgdHlwZSB7XG4gIE1lc3NhZ2UgYXMgTWVzc2FnZVR5cGUsXG4gIE5vcm1hbGl6ZWRNZXNzYWdlLFxuICBQcm9ncmVzc01lc3NhZ2UgYXMgUHJvZ3Jlc3NNZXNzYWdlVHlwZSxcbiAgUmVuZGVyYWJsZU1lc3NhZ2UsXG59IGZyb20gJy4uL3R5cGVzL21lc3NhZ2UuanMnXG5pbXBvcnQgeyB0eXBlIEFkdmlzb3JCbG9jaywgaXNBZHZpc29yQmxvY2sgfSBmcm9tICcuLi91dGlscy9hZHZpc29yLmpzJ1xuaW1wb3J0IHsgY29sbGFwc2VCYWNrZ3JvdW5kQmFzaE5vdGlmaWNhdGlvbnMgfSBmcm9tICcuLi91dGlscy9jb2xsYXBzZUJhY2tncm91bmRCYXNoTm90aWZpY2F0aW9ucy5qcydcbmltcG9ydCB7IGNvbGxhcHNlSG9va1N1bW1hcmllcyB9IGZyb20gJy4uL3V0aWxzL2NvbGxhcHNlSG9va1N1bW1hcmllcy5qcydcbmltcG9ydCB7IGNvbGxhcHNlUmVhZFNlYXJjaEdyb3VwcyB9IGZyb20gJy4uL3V0aWxzL2NvbGxhcHNlUmVhZFNlYXJjaC5qcydcbmltcG9ydCB7IGNvbGxhcHNlVGVhbW1hdGVTaHV0ZG93bnMgfSBmcm9tICcuLi91dGlscy9jb2xsYXBzZVRlYW1tYXRlU2h1dGRvd25zLmpzJ1xuaW1wb3J0IHsgZ2V0R2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vdXRpbHMvY29uZmlnLmpzJ1xuaW1wb3J0IHsgaXNFbnZUcnV0aHkgfSBmcm9tICcuLi91dGlscy9lbnZVdGlscy5qcydcbmltcG9ydCB7IGlzRnVsbHNjcmVlbkVudkVuYWJsZWQgfSBmcm9tICcuLi91dGlscy9mdWxsc2NyZWVuLmpzJ1xuaW1wb3J0IHsgYXBwbHlHcm91cGluZyB9IGZyb20gJy4uL3V0aWxzL2dyb3VwVG9vbFVzZXMuanMnXG5pbXBvcnQge1xuICBidWlsZE1lc3NhZ2VMb29rdXBzLFxuICBjcmVhdGVBc3Npc3RhbnRNZXNzYWdlLFxuICBkZXJpdmVVVUlELFxuICBnZXRNZXNzYWdlc0FmdGVyQ29tcGFjdEJvdW5kYXJ5LFxuICBnZXRUb29sVXNlSUQsXG4gIGdldFRvb2xVc2VJRHMsXG4gIGhhc1VucmVzb2x2ZWRIb29rc0Zyb21Mb29rdXAsXG4gIGlzTm90RW1wdHlNZXNzYWdlLFxuICBub3JtYWxpemVNZXNzYWdlcyxcbiAgcmVvcmRlck1lc3NhZ2VzSW5VSSxcbiAgdHlwZSBTdHJlYW1pbmdUaGlua2luZyxcbiAgdHlwZSBTdHJlYW1pbmdUb29sVXNlLFxuICBzaG91bGRTaG93VXNlck1lc3NhZ2UsXG59IGZyb20gJy4uL3V0aWxzL21lc3NhZ2VzLmpzJ1xuaW1wb3J0IHsgcGx1cmFsIH0gZnJvbSAnLi4vdXRpbHMvc3RyaW5nVXRpbHMuanMnXG5pbXBvcnQgeyByZW5kZXJhYmxlU2VhcmNoVGV4dCB9IGZyb20gJy4uL3V0aWxzL3RyYW5zY3JpcHRTZWFyY2guanMnXG5pbXBvcnQgeyBEaXZpZGVyIH0gZnJvbSAnLi9kZXNpZ24tc3lzdGVtL0RpdmlkZXIuanMnXG5pbXBvcnQgdHlwZSB7IFVuc2VlbkRpdmlkZXIgfSBmcm9tICcuL0Z1bGxzY3JlZW5MYXlvdXQuanMnXG5pbXBvcnQgeyBMb2dvVjIgfSBmcm9tICcuL0xvZ29WMi9Mb2dvVjIuanMnXG5pbXBvcnQgeyBTdHJlYW1pbmdNYXJrZG93biB9IGZyb20gJy4vTWFya2Rvd24uanMnXG5pbXBvcnQgeyBoYXNDb250ZW50QWZ0ZXJJbmRleCwgTWVzc2FnZVJvdyB9IGZyb20gJy4vTWVzc2FnZVJvdy5qcydcbmltcG9ydCB7XG4gIEluVmlydHVhbExpc3RDb250ZXh0LFxuICB0eXBlIE1lc3NhZ2VBY3Rpb25zTmF2LFxuICBNZXNzYWdlQWN0aW9uc1NlbGVjdGVkQ29udGV4dCxcbiAgdHlwZSBNZXNzYWdlQWN0aW9uc1N0YXRlLFxufSBmcm9tICcuL21lc3NhZ2VBY3Rpb25zLmpzJ1xuaW1wb3J0IHsgQXNzaXN0YW50VGhpbmtpbmdNZXNzYWdlIH0gZnJvbSAnLi9tZXNzYWdlcy9Bc3Npc3RhbnRUaGlua2luZ01lc3NhZ2UuanMnXG5pbXBvcnQgeyBpc051bGxSZW5kZXJpbmdBdHRhY2htZW50IH0gZnJvbSAnLi9tZXNzYWdlcy9udWxsUmVuZGVyaW5nQXR0YWNobWVudHMuanMnXG5pbXBvcnQgeyBPZmZzY3JlZW5GcmVlemUgfSBmcm9tICcuL09mZnNjcmVlbkZyZWV6ZS5qcydcbmltcG9ydCB0eXBlIHsgVG9vbFVzZUNvbmZpcm0gfSBmcm9tICcuL3Blcm1pc3Npb25zL1Blcm1pc3Npb25SZXF1ZXN0LmpzJ1xuaW1wb3J0IHsgU3RhdHVzTm90aWNlcyB9IGZyb20gJy4vU3RhdHVzTm90aWNlcy5qcydcbmltcG9ydCB0eXBlIHsgSnVtcEhhbmRsZSB9IGZyb20gJy4vVmlydHVhbE1lc3NhZ2VMaXN0LmpzJ1xuXG4vLyBNZW1vZWQgbG9nbyBoZWFkZXI6IHRoaXMgYm94IGlzIHRoZSBGSVJTVCBzaWJsaW5nIGJlZm9yZSBhbGwgTWVzc2FnZVJvd3Ncbi8vIGluIG1haW4tc2NyZWVuIG1vZGUuIElmIGl0IGJlY29tZXMgZGlydHkgb24gZXZlcnkgTWVzc2FnZXMgcmUtcmVuZGVyLFxuLy8gcmVuZGVyQ2hpbGRyZW4ncyBzZWVuRGlydHlDaGlsZCBjYXNjYWRlIGRpc2FibGVzIHByZXZTY3JlZW4gKGJsaXQpIGZvclxuLy8gQUxMIHN1YnNlcXVlbnQgc2libGluZ3Mg4oCUIGV2ZXJ5IE1lc3NhZ2VSb3cgcmUtd3JpdGVzIGZyb20gc2NyYXRjaCBpbnN0ZWFkXG4vLyBvZiBibGl0dGluZy4gSW4gbG9uZyBzZXNzaW9ucyAofjI4MDAgbWVzc2FnZXMpIHRoaXMgaXMgMTUwSysgd3JpdGVzL2ZyYW1lXG4vLyBhbmQgcGVncyBDUFUgYXQgMTAwJS4gTWVtbyBvbiBhZ2VudERlZmluaXRpb25zIHNvIGEgbmV3IG1lc3NhZ2VzIGFycmF5XG4vLyBkb2Vzbid0IGludmFsaWRhdGUgdGhlIGxvZ28gc3VidHJlZS4gTG9nb1YyL1N0YXR1c05vdGljZXMgaW50ZXJuYWxseVxuLy8gc3Vic2NyaWJlIHRvIHVzZUFwcFN0YXRlL3VzZVNldHRpbmdzIGZvciB0aGVpciBvd24gdXBkYXRlcy5cbmNvbnN0IExvZ29IZWFkZXIgPSBSZWFjdC5tZW1vKGZ1bmN0aW9uIExvZ29IZWFkZXIoe1xuICBhZ2VudERlZmluaXRpb25zLFxufToge1xuICBhZ2VudERlZmluaXRpb25zOiBBZ2VudERlZmluaXRpb25zUmVzdWx0IHwgdW5kZWZpbmVkXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgLy8gTG9nb1YyIGhhcyBpdHMgb3duIGludGVybmFsIE9mZnNjcmVlbkZyZWV6ZSAoY2F0Y2hlcyBpdHMgdXNlQXBwU3RhdGVcbiAgLy8gcmUtcmVuZGVycykuIFRoaXMgb3V0ZXIgZnJlZXplIGNhdGNoZXMgYWdlbnREZWZpbml0aW9ucyBjaGFuZ2VzIGFuZCBhbnlcbiAgLy8gZnV0dXJlIFN0YXR1c05vdGljZXMgc3Vic2NyaXB0aW9ucyB3aGlsZSB0aGUgaGVhZGVyIGlzIGluIHNjcm9sbGJhY2suXG4gIHJldHVybiAoXG4gICAgPE9mZnNjcmVlbkZyZWV6ZT5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGdhcD17MX0+XG4gICAgICAgIDxMb2dvVjIgLz5cbiAgICAgICAgPFJlYWN0LlN1c3BlbnNlIGZhbGxiYWNrPXtudWxsfT5cbiAgICAgICAgICA8U3RhdHVzTm90aWNlcyBhZ2VudERlZmluaXRpb25zPXthZ2VudERlZmluaXRpb25zfSAvPlxuICAgICAgICA8L1JlYWN0LlN1c3BlbnNlPlxuICAgICAgPC9Cb3g+XG4gICAgPC9PZmZzY3JlZW5GcmVlemU+XG4gIClcbn0pXG5cbi8vIERlYWQgY29kZSBlbGltaW5hdGlvbjogY29uZGl0aW9uYWwgaW1wb3J0IGZvciBwcm9hY3RpdmUgbW9kZVxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0cyAqL1xuY29uc3QgcHJvYWN0aXZlTW9kdWxlID1cbiAgZmVhdHVyZSgnUFJPQUNUSVZFJykgfHwgZmVhdHVyZSgnS0FJUk9TJylcbiAgICA/IHJlcXVpcmUoJy4uL3Byb2FjdGl2ZS9pbmRleC5qcycpXG4gICAgOiBudWxsXG5jb25zdCBCUklFRl9UT09MX05BTUU6IHN0cmluZyB8IG51bGwgPVxuICBmZWF0dXJlKCdLQUlST1MnKSB8fCBmZWF0dXJlKCdLQUlST1NfQlJJRUYnKVxuICAgID8gKFxuICAgICAgICByZXF1aXJlKCcuLi90b29scy9CcmllZlRvb2wvcHJvbXB0LmpzJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vdG9vbHMvQnJpZWZUb29sL3Byb21wdC5qcycpXG4gICAgICApLkJSSUVGX1RPT0xfTkFNRVxuICAgIDogbnVsbFxuY29uc3QgU0VORF9VU0VSX0ZJTEVfVE9PTF9OQU1FOiBzdHJpbmcgfCBudWxsID0gZmVhdHVyZSgnS0FJUk9TJylcbiAgPyAoXG4gICAgICByZXF1aXJlKCcuLi90b29scy9TZW5kVXNlckZpbGVUb29sL3Byb21wdC5qcycpIGFzIHR5cGVvZiBpbXBvcnQoJy4uL3Rvb2xzL1NlbmRVc2VyRmlsZVRvb2wvcHJvbXB0LmpzJylcbiAgICApLlNFTkRfVVNFUl9GSUxFX1RPT0xfTkFNRVxuICA6IG51bGxcblxuLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzICovXG5pbXBvcnQgeyBWaXJ0dWFsTWVzc2FnZUxpc3QgfSBmcm9tICcuL1ZpcnR1YWxNZXNzYWdlTGlzdC5qcydcblxuLyoqXG4gKiBJbiBicmllZi1vbmx5IG1vZGUsIGZpbHRlciBtZXNzYWdlcyB0byBzaG93IE9OTFkgQnJpZWYgdG9vbF91c2UgYmxvY2tzLFxuICogdGhlaXIgdG9vbF9yZXN1bHRzLCBhbmQgcmVhbCB1c2VyIGlucHV0LiBBbGwgYXNzaXN0YW50IHRleHQgaXMgZHJvcHBlZCDigJRcbiAqIGlmIHRoZSBtb2RlbCBmb3JnZXRzIHRvIGNhbGwgQnJpZWYsIHRoZSB1c2VyIHNlZXMgbm90aGluZyBmb3IgdGhhdCB0dXJuLlxuICogVGhhdCdzIG9uIHRoZSBtb2RlbCB0byBnZXQgcmlnaHQ7IHRoZSBmaWx0ZXIgZG9lcyBub3Qgc2Vjb25kLWd1ZXNzIGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyRm9yQnJpZWZUb29sPFxuICBUIGV4dGVuZHMge1xuICAgIHR5cGU6IHN0cmluZ1xuICAgIHN1YnR5cGU/OiBzdHJpbmdcbiAgICBpc01ldGE/OiBib29sZWFuXG4gICAgaXNBcGlFcnJvck1lc3NhZ2U/OiBib29sZWFuXG4gICAgbWVzc2FnZT86IHtcbiAgICAgIGNvbnRlbnQ6IEFycmF5PHtcbiAgICAgICAgdHlwZTogc3RyaW5nXG4gICAgICAgIG5hbWU/OiBzdHJpbmdcbiAgICAgICAgdG9vbF91c2VfaWQ/OiBzdHJpbmdcbiAgICAgIH0+XG4gICAgfVxuICAgIGF0dGFjaG1lbnQ/OiB7XG4gICAgICB0eXBlOiBzdHJpbmdcbiAgICAgIGlzTWV0YT86IGJvb2xlYW5cbiAgICAgIG9yaWdpbj86IHVua25vd25cbiAgICAgIGNvbW1hbmRNb2RlPzogc3RyaW5nXG4gICAgfVxuICB9LFxuPihtZXNzYWdlczogVFtdLCBicmllZlRvb2xOYW1lczogc3RyaW5nW10pOiBUW10ge1xuICBjb25zdCBuYW1lU2V0ID0gbmV3IFNldChicmllZlRvb2xOYW1lcylcbiAgLy8gdG9vbF91c2UgYWx3YXlzIHByZWNlZGVzIGl0cyB0b29sX3Jlc3VsdCBpbiB0aGUgYXJyYXksIHNvIHdlIGNhbiBjb2xsZWN0XG4gIC8vIElEcyBhbmQgbWF0Y2ggYWdhaW5zdCB0aGVtIGluIGEgc2luZ2xlIHBhc3MuXG4gIGNvbnN0IGJyaWVmVG9vbFVzZUlEcyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIHJldHVybiBtZXNzYWdlcy5maWx0ZXIobXNnID0+IHtcbiAgICAvLyBTeXN0ZW0gbWVzc2FnZXMgKGF0dGFjaCBjb25maXJtYXRpb24sIHJlbW90ZSBlcnJvcnMsIGNvbXBhY3QgYm91bmRhcmllcylcbiAgICAvLyBtdXN0IHN0YXkgdmlzaWJsZSDigJQgZHJvcHBpbmcgdGhlbSBsZWF2ZXMgdGhlIHZpZXdlciB3aXRoIG5vIGZlZWRiYWNrLlxuICAgIC8vIEV4Y2VwdGlvbjogYXBpX21ldHJpY3MgaXMgcGVyLXR1cm4gZGVidWcgbm9pc2UgKFRURlQsIGNvbmZpZyB3cml0ZXMsXG4gICAgLy8gaG9vayB0aW1pbmcpIHRoYXQgZGVmZWF0cyB0aGUgcG9pbnQgb2YgYnJpZWYgbW9kZS4gU3RpbGwgdmlzaWJsZSBpblxuICAgIC8vIHRyYW5zY3JpcHQgbW9kZSAoY3RybCtvKSB3aGljaCBieXBhc3NlcyB0aGlzIGZpbHRlci5cbiAgICBpZiAobXNnLnR5cGUgPT09ICdzeXN0ZW0nKSByZXR1cm4gbXNnLnN1YnR5cGUgIT09ICdhcGlfbWV0cmljcydcbiAgICBjb25zdCBibG9jayA9IG1zZy5tZXNzYWdlPy5jb250ZW50WzBdXG4gICAgaWYgKG1zZy50eXBlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgLy8gQVBJIGVycm9yIG1lc3NhZ2VzIChhdXRoIGZhaWx1cmVzLCByYXRlIGxpbWl0cywgZXRjLikgbXVzdCBzdGF5IHZpc2libGVcbiAgICAgIGlmIChtc2cuaXNBcGlFcnJvck1lc3NhZ2UpIHJldHVybiB0cnVlXG4gICAgICAvLyBLZWVwIEJyaWVmIHRvb2xfdXNlIGJsb2NrcyAocmVuZGVycyB3aXRoIHN0YW5kYXJkIHRvb2wgY2FsbCBjaHJvbWUsXG4gICAgICAvLyBhbmQgbXVzdCBiZSBpbiB0aGUgbGlzdCBzbyBidWlsZE1lc3NhZ2VMb29rdXBzIGNhbiByZXNvbHZlIHRvb2wgcmVzdWx0cylcbiAgICAgIGlmIChibG9jaz8udHlwZSA9PT0gJ3Rvb2xfdXNlJyAmJiBibG9jay5uYW1lICYmIG5hbWVTZXQuaGFzKGJsb2NrLm5hbWUpKSB7XG4gICAgICAgIGlmICgnaWQnIGluIGJsb2NrKSB7XG4gICAgICAgICAgYnJpZWZUb29sVXNlSURzLmFkZCgoYmxvY2sgYXMgeyBpZDogc3RyaW5nIH0pLmlkKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgaWYgKG1zZy50eXBlID09PSAndXNlcicpIHtcbiAgICAgIGlmIChibG9jaz8udHlwZSA9PT0gJ3Rvb2xfcmVzdWx0Jykge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGJsb2NrLnRvb2xfdXNlX2lkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBicmllZlRvb2xVc2VJRHMuaGFzKGJsb2NrLnRvb2xfdXNlX2lkKVxuICAgICAgICApXG4gICAgICB9XG4gICAgICAvLyBSZWFsIHVzZXIgaW5wdXQgb25seSDigJQgZHJvcCBtZXRhL3RpY2sgbWVzc2FnZXMuXG4gICAgICByZXR1cm4gIW1zZy5pc01ldGFcbiAgICB9XG4gICAgaWYgKG1zZy50eXBlID09PSAnYXR0YWNobWVudCcpIHtcbiAgICAgIC8vIEh1bWFuIGlucHV0IGRyYWluZWQgbWlkLXR1cm4gYXJyaXZlcyBhcyBhIHF1ZXVlZF9jb21tYW5kIGF0dGFjaG1lbnRcbiAgICAgIC8vIChxdWVyeS50cyBtaWQtY2hhaW4gZHJhaW4g4oaSIGdldFF1ZXVlZENvbW1hbmRBdHRhY2htZW50cykuIEtlZXAgaXQg4oCUXG4gICAgICAvLyBpdCdzIHdoYXQgdGhlIHVzZXIgdHlwZWQuIGNvbW1hbmRNb2RlID09PSAncHJvbXB0JyBwb3NpdGl2ZWx5XG4gICAgICAvLyBpZGVudGlmaWVzIGh1bWFuLXR5cGVkIGlucHV0OyB0YXNrLW5vdGlmaWNhdGlvbiBjYWxsZXJzIHNldFxuICAgICAgLy8gbW9kZTogJ3Rhc2stbm90aWZpY2F0aW9uJyBidXQgbm90IG9yaWdpbi9pc01ldGEsIHNvIHRoZSBwb3NpdGl2ZVxuICAgICAgLy8gY29tbWFuZE1vZGUgY2hlY2sgaXMgcmVxdWlyZWQgdG8gZXhjbHVkZSB0aGVtLlxuICAgICAgY29uc3QgYXR0ID0gbXNnLmF0dGFjaG1lbnRcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGF0dD8udHlwZSA9PT0gJ3F1ZXVlZF9jb21tYW5kJyAmJlxuICAgICAgICBhdHQuY29tbWFuZE1vZGUgPT09ICdwcm9tcHQnICYmXG4gICAgICAgICFhdHQuaXNNZXRhICYmXG4gICAgICAgIGF0dC5vcmlnaW4gPT09IHVuZGVmaW5lZFxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfSlcbn1cblxuLyoqXG4gKiBGdWxsLXRyYW5zY3JpcHQgY29tcGFuaW9uIHRvIGZpbHRlckZvckJyaWVmVG9vbC4gV2hlbiB0aGUgQnJpZWYgdG9vbCBpc1xuICogaW4gdXNlLCB0aGUgbW9kZWwncyB0ZXh0IG91dHB1dCBpcyByZWR1bmRhbnQgd2l0aCB0aGUgU2VuZFVzZXJNZXNzYWdlXG4gKiBjb250ZW50IGl0IHdyb3RlIHJpZ2h0IGFmdGVyIOKAlCBkcm9wIHRoZSB0ZXh0IHNvIG9ubHkgdGhlIFNlbmRVc2VyTWVzc2FnZVxuICogYmxvY2sgc2hvd3MuIFRvb2wgY2FsbHMgYW5kIHRoZWlyIHJlc3VsdHMgc3RheSB2aXNpYmxlLlxuICpcbiAqIFBlci10dXJuOiBvbmx5IGRyb3BzIHRleHQgaW4gdHVybnMgdGhhdCBhY3R1YWxseSBjYWxsZWQgQnJpZWYuIElmIHRoZVxuICogbW9kZWwgZm9yZ2V0cywgdGV4dCBzdGlsbCBzaG93cyDigJQgb3RoZXJ3aXNlIHRoZSB1c2VyIHdvdWxkIHNlZSBub3RoaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZHJvcFRleHRJbkJyaWVmVHVybnM8XG4gIFQgZXh0ZW5kcyB7XG4gICAgdHlwZTogc3RyaW5nXG4gICAgaXNNZXRhPzogYm9vbGVhblxuICAgIG1lc3NhZ2U/OiB7IGNvbnRlbnQ6IEFycmF5PHsgdHlwZTogc3RyaW5nOyBuYW1lPzogc3RyaW5nIH0+IH1cbiAgfSxcbj4obWVzc2FnZXM6IFRbXSwgYnJpZWZUb29sTmFtZXM6IHN0cmluZ1tdKTogVFtdIHtcbiAgY29uc3QgbmFtZVNldCA9IG5ldyBTZXQoYnJpZWZUb29sTmFtZXMpXG4gIC8vIEZpcnN0IHBhc3M6IGZpbmQgd2hpY2ggdHVybnMgKGJvdW5kZWQgYnkgbm9uLW1ldGEgdXNlciBtZXNzYWdlcykgY29udGFpblxuICAvLyBhIEJyaWVmIHRvb2xfdXNlLiBUYWcgZWFjaCBhc3Npc3RhbnQgdGV4dCBibG9jayB3aXRoIGl0cyB0dXJuIGluZGV4LlxuICBjb25zdCB0dXJuc1dpdGhCcmllZiA9IG5ldyBTZXQ8bnVtYmVyPigpXG4gIGNvbnN0IHRleHRJbmRleFRvVHVybjogbnVtYmVyW10gPSBbXVxuICBsZXQgdHVybiA9IDBcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXNzYWdlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IG1zZyA9IG1lc3NhZ2VzW2ldIVxuICAgIGNvbnN0IGJsb2NrID0gbXNnLm1lc3NhZ2U/LmNvbnRlbnRbMF1cbiAgICBpZiAobXNnLnR5cGUgPT09ICd1c2VyJyAmJiBibG9jaz8udHlwZSAhPT0gJ3Rvb2xfcmVzdWx0JyAmJiAhbXNnLmlzTWV0YSkge1xuICAgICAgdHVybisrXG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAobXNnLnR5cGUgPT09ICdhc3Npc3RhbnQnKSB7XG4gICAgICBpZiAoYmxvY2s/LnR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICB0ZXh0SW5kZXhUb1R1cm5baV0gPSB0dXJuXG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBibG9jaz8udHlwZSA9PT0gJ3Rvb2xfdXNlJyAmJlxuICAgICAgICBibG9jay5uYW1lICYmXG4gICAgICAgIG5hbWVTZXQuaGFzKGJsb2NrLm5hbWUpXG4gICAgICApIHtcbiAgICAgICAgdHVybnNXaXRoQnJpZWYuYWRkKHR1cm4pXG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICh0dXJuc1dpdGhCcmllZi5zaXplID09PSAwKSByZXR1cm4gbWVzc2FnZXNcbiAgLy8gU2Vjb25kIHBhc3M6IGRyb3AgdGV4dCBibG9ja3Mgd2hvc2UgdHVybiBjYWxsZWQgQnJpZWYuXG4gIHJldHVybiBtZXNzYWdlcy5maWx0ZXIoKF8sIGkpID0+IHtcbiAgICBjb25zdCB0ID0gdGV4dEluZGV4VG9UdXJuW2ldXG4gICAgcmV0dXJuIHQgPT09IHVuZGVmaW5lZCB8fCAhdHVybnNXaXRoQnJpZWYuaGFzKHQpXG4gIH0pXG59XG5cbnR5cGUgUHJvcHMgPSB7XG4gIG1lc3NhZ2VzOiBNZXNzYWdlVHlwZVtdXG4gIHRvb2xzOiBUb29sc1xuICBjb21tYW5kczogQ29tbWFuZFtdXG4gIHZlcmJvc2U6IGJvb2xlYW5cbiAgdG9vbEpTWDoge1xuICAgIGpzeDogUmVhY3QuUmVhY3ROb2RlIHwgbnVsbFxuICAgIHNob3VsZEhpZGVQcm9tcHRJbnB1dDogYm9vbGVhblxuICAgIHNob3VsZENvbnRpbnVlQW5pbWF0aW9uPzogdHJ1ZVxuICB9IHwgbnVsbFxuICB0b29sVXNlQ29uZmlybVF1ZXVlOiBUb29sVXNlQ29uZmlybVtdXG4gIGluUHJvZ3Jlc3NUb29sVXNlSURzOiBTZXQ8c3RyaW5nPlxuICBpc01lc3NhZ2VTZWxlY3RvclZpc2libGU6IGJvb2xlYW5cbiAgY29udmVyc2F0aW9uSWQ6IHN0cmluZ1xuICBzY3JlZW46IFNjcmVlblxuICBzdHJlYW1pbmdUb29sVXNlczogU3RyZWFtaW5nVG9vbFVzZVtdXG4gIHNob3dBbGxJblRyYW5zY3JpcHQ/OiBib29sZWFuXG4gIGFnZW50RGVmaW5pdGlvbnM/OiBBZ2VudERlZmluaXRpb25zUmVzdWx0XG4gIG9uT3BlblJhdGVMaW1pdE9wdGlvbnM/OiAoKSA9PiB2b2lkXG4gIC8qKiBIaWRlIHRoZSBsb2dvL2hlYWRlciAtIHVzZWQgZm9yIHN1YmFnZW50IHpvb20gdmlldyAqL1xuICBoaWRlTG9nbz86IGJvb2xlYW5cbiAgaXNMb2FkaW5nOiBib29sZWFuXG4gIC8qKiBJbiB0cmFuc2NyaXB0IG1vZGUsIGhpZGUgYWxsIHRoaW5raW5nIGJsb2NrcyBleGNlcHQgdGhlIGxhc3Qgb25lICovXG4gIGhpZGVQYXN0VGhpbmtpbmc/OiBib29sZWFuXG4gIC8qKiBTdHJlYW1pbmcgdGhpbmtpbmcgY29udGVudCAobGl2ZSB1cGRhdGVzLCBub3QgZnJvemVuKSAqL1xuICBzdHJlYW1pbmdUaGlua2luZz86IFN0cmVhbWluZ1RoaW5raW5nIHwgbnVsbFxuICAvKiogU3RyZWFtaW5nIHRleHQgcHJldmlldyAocmVuZGVyZWQgYXMgbGFzdCBpdGVtIHNvIHRyYW5zaXRpb24gdG8gZmluYWwgbWVzc2FnZSBpcyBwb3NpdGlvbmFsbHkgc2VhbWxlc3MpICovXG4gIHN0cmVhbWluZ1RleHQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKiBXaGVuIHRydWUsIG9ubHkgc2hvdyBCcmllZiB0b29sIG91dHB1dCAoaGlkZSBldmVyeXRoaW5nIGVsc2UpICovXG4gIGlzQnJpZWZPbmx5PzogYm9vbGVhblxuICAvKiogRnVsbHNjcmVlbi1tb2RlIFwi4pSA4pSA4pSAIE4gbmV3IOKUgOKUgOKUgFwiIGRpdmlkZXIuIFJlbmRlcnMgYmVmb3JlIHRoZSBmaXJzdFxuICAgKiAgcmVuZGVyYWJsZU1lc3NhZ2UgZGVyaXZlZCBmcm9tIGZpcnN0VW5zZWVuVXVpZCAobWF0Y2hlZCBieSB0aGUgMjQtY2hhclxuICAgKiAgcHJlZml4IHRoYXQgZGVyaXZlVVVJRCBwcmVzZXJ2ZXMpLiAqL1xuICB1bnNlZW5EaXZpZGVyPzogVW5zZWVuRGl2aWRlclxuICAvKiogRnVsbHNjcmVlbi1tb2RlIFNjcm9sbEJveCBoYW5kbGUuIEVuYWJsZXMgUmVhY3QtbGV2ZWwgdmlydHVhbGl6YXRpb24gd2hlbiBwcmVzZW50LiAqL1xuICBzY3JvbGxSZWY/OiBSZWZPYmplY3Q8U2Nyb2xsQm94SGFuZGxlIHwgbnVsbD5cbiAgLyoqIEZ1bGxzY3JlZW4tbW9kZTogZW5hYmxlIHN0aWNreS1wcm9tcHQgdHJhY2tpbmcgKHdyaXRlcyB2aWEgU2Nyb2xsQ2hyb21lQ29udGV4dCkuICovXG4gIHRyYWNrU3RpY2t5UHJvbXB0PzogYm9vbGVhblxuICAvKiogVHJhbnNjcmlwdCBzZWFyY2g6IGp1bXAtdG8taW5kZXggKyBzZXRTZWFyY2hRdWVyeS9uZXh0TWF0Y2gvcHJldk1hdGNoLiAqL1xuICBqdW1wUmVmPzogUmVmT2JqZWN0PEp1bXBIYW5kbGUgfCBudWxsPlxuICAvKiogVHJhbnNjcmlwdCBzZWFyY2g6IGZpcmVzIHdoZW4gbWF0Y2ggY291bnQvcG9zaXRpb24gY2hhbmdlcy4gKi9cbiAgb25TZWFyY2hNYXRjaGVzQ2hhbmdlPzogKGNvdW50OiBudW1iZXIsIGN1cnJlbnQ6IG51bWJlcikgPT4gdm9pZFxuICAvKiogUGFpbnQgYW4gZXhpc3RpbmcgRE9NIHN1YnRyZWUgdG8gZnJlc2ggU2NyZWVuLCBzY2FuLiBFbGVtZW50IGNvbWVzXG4gICAqICBmcm9tIHRoZSBtYWluIHRyZWUgKGFsbCByZWFsIHByb3ZpZGVycykuIE1lc3NhZ2UtcmVsYXRpdmUgcG9zaXRpb25zLiAqL1xuICBzY2FuRWxlbWVudD86IChcbiAgICBlbDogaW1wb3J0KCcuLi9pbmsvZG9tLmpzJykuRE9NRWxlbWVudCxcbiAgKSA9PiBpbXBvcnQoJy4uL2luay9yZW5kZXItdG8tc2NyZWVuLmpzJykuTWF0Y2hQb3NpdGlvbltdXG4gIC8qKiBQb3NpdGlvbi1iYXNlZCBDVVJSRU5UIGhpZ2hsaWdodC4gcG9zaXRpb25zIHN0YWJsZSAobXNnLXJlbGF0aXZlKSxcbiAgICogIHJvd09mZnNldCB0cmFja3Mgc2Nyb2xsLiBudWxsIGNsZWFycy4gKi9cbiAgc2V0UG9zaXRpb25zPzogKFxuICAgIHN0YXRlOiB7XG4gICAgICBwb3NpdGlvbnM6IGltcG9ydCgnLi4vaW5rL3JlbmRlci10by1zY3JlZW4uanMnKS5NYXRjaFBvc2l0aW9uW11cbiAgICAgIHJvd09mZnNldDogbnVtYmVyXG4gICAgICBjdXJyZW50SWR4OiBudW1iZXJcbiAgICB9IHwgbnVsbCxcbiAgKSA9PiB2b2lkXG4gIC8qKiBCeXBhc3MgTUFYX01FU1NBR0VTX1dJVEhPVVRfVklSVFVBTElaQVRJT04uIEZvciBvbmUtc2hvdCBoZWFkbGVzcyByZW5kZXJzXG4gICAqICAoZS5nLiAvZXhwb3J0IHZpYSByZW5kZXJUb1N0cmluZykgd2hlcmUgdGhlIG1lbW9yeSBjb25jZXJuIGRvZXNuJ3QgYXBwbHlcbiAgICogIGFuZCB0aGUgXCJhbHJlYWR5IGluIHNjcm9sbGJhY2tcIiBqdXN0aWZpY2F0aW9uIGRvZXNuJ3QgaG9sZC4gKi9cbiAgZGlzYWJsZVJlbmRlckNhcD86IGJvb2xlYW5cbiAgLyoqIEluLXRyYW5zY3JpcHQgY3Vyc29yOyBleHBhbmRlZCBvdmVycmlkZXMgdmVyYm9zZSBmb3Igc2VsZWN0ZWQgbWVzc2FnZS4gKi9cbiAgY3Vyc29yPzogTWVzc2FnZUFjdGlvbnNTdGF0ZSB8IG51bGxcbiAgc2V0Q3Vyc29yPzogKGN1cnNvcjogTWVzc2FnZUFjdGlvbnNTdGF0ZSB8IG51bGwpID0+IHZvaWRcbiAgLyoqIFBhc3NlZCB0aHJvdWdoIHRvIFZpcnR1YWxNZXNzYWdlTGlzdCAoaGVpZ2h0Q2FjaGUgb3ducyB2aXNpYmlsaXR5KS4gKi9cbiAgY3Vyc29yTmF2UmVmPzogUmVhY3QuUmVmPE1lc3NhZ2VBY3Rpb25zTmF2PlxuICAvKiogUmVuZGVyIG9ubHkgY29sbGFwc2VkLnNsaWNlKHN0YXJ0LCBlbmQpLiBGb3IgY2h1bmtlZCBoZWFkbGVzcyBleHBvcnRcbiAgICogIChzdHJlYW1SZW5kZXJlZE1lc3NhZ2VzIGluIGV4cG9ydFJlbmRlcmVyLnRzeCk6IHByZXAgcnVucyBvbiB0aGUgRlVMTFxuICAgKiAgbWVzc2FnZXMgYXJyYXkgc28gZ3JvdXBpbmcvbG9va3VwcyBhcmUgY29ycmVjdCwgYnV0IG9ubHkgdGhpcyBzbGljZVxuICAgKiAgY2h1bmsgaW5zdGVhZCBvZiB0aGUgZnVsbCBzZXNzaW9uLiBUaGUgbG9nbyByZW5kZXJzIG9ubHkgZm9yIGNodW5rIDBcbiAgICogIChzdGFydCA9PT0gMCk7IGxhdGVyIGNodW5rcyBhcmUgbWlkLXN0cmVhbSBjb250aW51YXRpb25zLlxuICAgKiAgTWVhc3VyZWQgTWFyIDIwMjY6IDUzOC1tc2cgc2Vzc2lvbiwgMjAgc2xpY2VzIOKGkiDiiJI1NSUgcGxhdGVhdSBSU1MuICovXG4gIHJlbmRlclJhbmdlPzogcmVhZG9ubHkgW3N0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyXVxufVxuXG5jb25zdCBNQVhfTUVTU0FHRVNfVE9fU0hPV19JTl9UUkFOU0NSSVBUX01PREUgPSAzMFxuXG4vLyBTYWZldHkgY2FwIGZvciB0aGUgbm9uLXZpcnR1YWxpemVkIHJlbmRlciBwYXRoIChmdWxsc2NyZWVuIG9mZiBvclxuLy8gZXhwbGljaXRseSBkaXNhYmxlZCkuIEluayBtb3VudHMgYSBmdWxsIGZpYmVyIHRyZWUgcGVyIG1lc3NhZ2UgKH4yNTAgS0Jcbi8vIFJTUyBlYWNoKTsgeW9nYSBsYXlvdXQgaGVpZ2h0IGdyb3dzIHVuYm91bmRlZDsgdGhlIHNjcmVlbiBidWZmZXIgaXMgc2l6ZWRcbi8vIHRvIGZpdCBldmVyeSBsaW5lLiBBdCB+MjAwMCBtZXNzYWdlcyB0aGlzIGlzIH4zMDAwLWxpbmUgc2NyZWVucywgfjUwMCBNQlxuLy8gb2YgZmliZXJzLCBhbmQgcGVyLWZyYW1lIHdyaXRlIGNvc3RzIHRoYXQgcHVzaCB0aGUgcHJvY2VzcyBpbnRvIGEgR0Ncbi8vIGRlYXRoIHNwaXJhbCAob2JzZXJ2ZWQ6IDU5IEdCIFJTUywgMTRrIG1tYXAvbXVubWFwL3NlYykuIENvbnRlbnQgZHJvcHBlZFxuLy8gZnJvbSB0aGlzIHNsaWNlIGhhcyBhbHJlYWR5IGJlZW4gcHJpbnRlZCB0byB0ZXJtaW5hbCBzY3JvbGxiYWNrIOKAlCB1c2Vyc1xuLy8gY2FuIHN0aWxsIHNjcm9sbCB1cCBuYXRpdmVseS4gVmlydHVhbE1lc3NhZ2VMaXN0ICh0aGUgZGVmYXVsdCBhbnQgcGF0aClcbi8vIGJ5cGFzc2VzIHRoaXMgY2FwIGVudGlyZWx5LiBIZWFkbGVzcyBvbmUtc2hvdCByZW5kZXJzIChlLmcuIC9leHBvcnQpXG4vLyBwYXNzIGRpc2FibGVSZW5kZXJDYXAgdG8gb3B0IG91dCDigJQgdGhleSBoYXZlIG5vIHNjcm9sbGJhY2sgYW5kIHRoZVxuLy8gbWVtb3J5IGNvbmNlcm4gZG9lc24ndCBhcHBseSB0byByZW5kZXJUb1N0cmluZy5cbi8vXG4vLyBUaGUgc2xpY2UgYm91bmRhcnkgaXMgdHJhY2tlZCBhcyBhIFVVSUQgYW5jaG9yLCBub3QgYSBjb3VudC1kZXJpdmVkXG4vLyBpbmRleC4gQ291bnQtYmFzZWQgc2xpY2luZyAoc2xpY2UoLTIwMCkpIGRyb3BzIG9uZSBtZXNzYWdlIGZyb20gdGhlXG4vLyBmcm9udCBvbiBldmVyeSBhcHBlbmQsIHNoaWZ0aW5nIHNjcm9sbGJhY2sgY29udGVudCBhbmQgZm9yY2luZyBhIGZ1bGxcbi8vIHRlcm1pbmFsIHJlc2V0IHBlciB0dXJuIChDQy05NDEpLiBRdWFudGl6aW5nIHRvIDUwLW1lc3NhZ2Ugc3RlcHNcbi8vIChDQy0xMTU0KSBoZWxwZWQgYnV0IHN0aWxsIHNoaWZ0ZWQgb24gY29tcGFjdGlvbiBhbmQgY29sbGFwc2UgcmVncm91cGluZ1xuLy8gc2luY2UgdGhvc2UgY2hhbmdlIGNvbGxhcHNlZC5sZW5ndGggd2l0aG91dCBhZGRpbmcgbWVzc2FnZXMuIFRoZSBVVUlEXG4vLyBhbmNob3Igb25seSBhZHZhbmNlcyB3aGVuIHJlbmRlcmVkIGNvdW50IGdlbnVpbmVseSBleGNlZWRzIENBUCtTVEVQIOKAlFxuLy8gaW1tdW5lIHRvIGxlbmd0aCBjaHVybiBmcm9tIGdyb3VwaW5nL2NvbXBhY3Rpb24gKENDLTExNzQpLlxuLy9cbi8vIFRoZSBhbmNob3Igc3RvcmVzIEJPVEggdXVpZCBhbmQgaW5kZXguIFNvbWUgdXVpZHMgYXJlIHVuc3RhYmxlIGJldHdlZW5cbi8vIHJlbmRlcnM6IGNvbGxhcHNlSG9va1N1bW1hcmllcyBkZXJpdmVzIHRoZSBtZXJnZWQgdXVpZCBmcm9tIHRoZSBmaXJzdFxuLy8gc3VtbWFyeSBpbiBhIGdyb3VwLCBidXQgcmVvcmRlck1lc3NhZ2VzSW5VSSByZXNodWZmbGVzIGhvb2sgYWRqYWNlbmN5XG4vLyBhcyB0b29sIHJlc3VsdHMgc3RyZWFtIGluLCBjaGFuZ2luZyB3aGljaCBzdW1tYXJ5IGlzIGZpcnN0LiBXaGVuIHRoZVxuLy8gdXVpZCB2YW5pc2hlcywgZmFsbGluZyBiYWNrIHRvIHRoZSBzdG9yZWQgaW5kZXggKGNsYW1wZWQpIGtlZXBzIHRoZVxuLy8gc2xpY2Ugcm91Z2hseSB3aGVyZSBpdCB3YXMgaW5zdGVhZCBvZiByZXNldHRpbmcgdG8gMCDigJQgd2hpY2ggd291bGRcbi8vIGp1bXAgZnJvbSB+MjAwIHJlbmRlcmVkIG1lc3NhZ2VzIHRvIHRoZSBmdWxsIGhpc3RvcnksIG9ycGhhbmluZ1xuLy8gaW4tcHJvZ3Jlc3MgYmFkZ2Ugc25hcHNob3RzIGluIHNjcm9sbGJhY2suXG5jb25zdCBNQVhfTUVTU0FHRVNfV0lUSE9VVF9WSVJUVUFMSVpBVElPTiA9IDIwMFxuY29uc3QgTUVTU0FHRV9DQVBfU1RFUCA9IDUwXG5cbmV4cG9ydCB0eXBlIFNsaWNlQW5jaG9yID0geyB1dWlkOiBzdHJpbmc7IGlkeDogbnVtYmVyIH0gfCBudWxsXG5cbi8qKiBFeHBvcnRlZCBmb3IgdGVzdGluZy4gTXV0YXRlcyBhbmNob3JSZWYgd2hlbiB0aGUgd2luZG93IG5lZWRzIHRvIGFkdmFuY2UuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZVNsaWNlU3RhcnQoXG4gIGNvbGxhcHNlZDogUmVhZG9ubHlBcnJheTx7IHV1aWQ6IHN0cmluZyB9PixcbiAgYW5jaG9yUmVmOiB7IGN1cnJlbnQ6IFNsaWNlQW5jaG9yIH0sXG4gIGNhcCA9IE1BWF9NRVNTQUdFU19XSVRIT1VUX1ZJUlRVQUxJWkFUSU9OLFxuICBzdGVwID0gTUVTU0FHRV9DQVBfU1RFUCxcbik6IG51bWJlciB7XG4gIGNvbnN0IGFuY2hvciA9IGFuY2hvclJlZi5jdXJyZW50XG4gIGNvbnN0IGFuY2hvcklkeCA9IGFuY2hvclxuICAgID8gY29sbGFwc2VkLmZpbmRJbmRleChtID0+IG0udXVpZCA9PT0gYW5jaG9yLnV1aWQpXG4gICAgOiAtMVxuICAvLyBBbmNob3IgZm91bmQg4oaSIHVzZSBpdC4gQW5jaG9yIGxvc3Qg4oaSIGZhbGwgYmFjayB0byBzdG9yZWQgaW5kZXhcbiAgLy8gKGNsYW1wZWQpIHNvIGNvbGxhcHNlLXJlZ3JvdXBpbmcgdXVpZCBjaHVybiBkb2Vzbid0IHJlc2V0IHRvIDAuXG4gIGxldCBzdGFydCA9XG4gICAgYW5jaG9ySWR4ID49IDBcbiAgICAgID8gYW5jaG9ySWR4XG4gICAgICA6IGFuY2hvclxuICAgICAgICA/IE1hdGgubWluKGFuY2hvci5pZHgsIE1hdGgubWF4KDAsIGNvbGxhcHNlZC5sZW5ndGggLSBjYXApKVxuICAgICAgICA6IDBcbiAgaWYgKGNvbGxhcHNlZC5sZW5ndGggLSBzdGFydCA+IGNhcCArIHN0ZXApIHtcbiAgICBzdGFydCA9IGNvbGxhcHNlZC5sZW5ndGggLSBjYXBcbiAgfVxuICAvLyBSZWZyZXNoIGFuY2hvciBmcm9tIHdoYXRldmVyIGxpdmVzIGF0IHRoZSBjdXJyZW50IHN0YXJ0IOKAlCBoZWFscyBhXG4gIC8vIHN0YWxlIHV1aWQgYWZ0ZXIgZmFsbGJhY2sgYW5kIGNhcHR1cmVzIGEgbmV3IG9uZSBhZnRlciBhZHZhbmNlbWVudC5cbiAgY29uc3QgbXNnQXRTdGFydCA9IGNvbGxhcHNlZFtzdGFydF1cbiAgaWYgKFxuICAgIG1zZ0F0U3RhcnQgJiZcbiAgICAoYW5jaG9yPy51dWlkICE9PSBtc2dBdFN0YXJ0LnV1aWQgfHwgYW5jaG9yLmlkeCAhPT0gc3RhcnQpXG4gICkge1xuICAgIGFuY2hvclJlZi5jdXJyZW50ID0geyB1dWlkOiBtc2dBdFN0YXJ0LnV1aWQsIGlkeDogc3RhcnQgfVxuICB9IGVsc2UgaWYgKCFtc2dBdFN0YXJ0ICYmIGFuY2hvcikge1xuICAgIGFuY2hvclJlZi5jdXJyZW50ID0gbnVsbFxuICB9XG4gIHJldHVybiBzdGFydFxufVxuXG5jb25zdCBNZXNzYWdlc0ltcGwgPSAoe1xuICBtZXNzYWdlcyxcbiAgdG9vbHMsXG4gIGNvbW1hbmRzLFxuICB2ZXJib3NlLFxuICB0b29sSlNYLFxuICB0b29sVXNlQ29uZmlybVF1ZXVlLFxuICBpblByb2dyZXNzVG9vbFVzZUlEcyxcbiAgaXNNZXNzYWdlU2VsZWN0b3JWaXNpYmxlLFxuICBjb252ZXJzYXRpb25JZCxcbiAgc2NyZWVuLFxuICBzdHJlYW1pbmdUb29sVXNlcyxcbiAgc2hvd0FsbEluVHJhbnNjcmlwdCA9IGZhbHNlLFxuICBhZ2VudERlZmluaXRpb25zLFxuICBvbk9wZW5SYXRlTGltaXRPcHRpb25zLFxuICBoaWRlTG9nbyA9IGZhbHNlLFxuICBpc0xvYWRpbmcsXG4gIGhpZGVQYXN0VGhpbmtpbmcgPSBmYWxzZSxcbiAgc3RyZWFtaW5nVGhpbmtpbmcsXG4gIHN0cmVhbWluZ1RleHQsXG4gIGlzQnJpZWZPbmx5ID0gZmFsc2UsXG4gIHVuc2VlbkRpdmlkZXIsXG4gIHNjcm9sbFJlZixcbiAgdHJhY2tTdGlja3lQcm9tcHQsXG4gIGp1bXBSZWYsXG4gIG9uU2VhcmNoTWF0Y2hlc0NoYW5nZSxcbiAgc2NhbkVsZW1lbnQsXG4gIHNldFBvc2l0aW9ucyxcbiAgZGlzYWJsZVJlbmRlckNhcCA9IGZhbHNlLFxuICBjdXJzb3IgPSBudWxsLFxuICBzZXRDdXJzb3IsXG4gIGN1cnNvck5hdlJlZixcbiAgcmVuZGVyUmFuZ2UsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSA9PiB7XG4gIGNvbnN0IHsgY29sdW1ucyB9ID0gdXNlVGVybWluYWxTaXplKClcbiAgY29uc3QgdG9nZ2xlU2hvd0FsbFNob3J0Y3V0ID0gdXNlU2hvcnRjdXREaXNwbGF5KFxuICAgICd0cmFuc2NyaXB0OnRvZ2dsZVNob3dBbGwnLFxuICAgICdUcmFuc2NyaXB0JyxcbiAgICAnQ3RybCtFJyxcbiAgKVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWRNZXNzYWdlcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gbm9ybWFsaXplTWVzc2FnZXMobWVzc2FnZXMpLmZpbHRlcihpc05vdEVtcHR5TWVzc2FnZSksXG4gICAgW21lc3NhZ2VzXSxcbiAgKVxuXG4gIC8vIENoZWNrIGlmIHN0cmVhbWluZyB0aGlua2luZyBzaG91bGQgYmUgdmlzaWJsZSAoc3RyZWFtaW5nIG9yIHdpdGhpbiAzMHMgdGltZW91dClcbiAgY29uc3QgaXNTdHJlYW1pbmdUaGlua2luZ1Zpc2libGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIXN0cmVhbWluZ1RoaW5raW5nKSByZXR1cm4gZmFsc2VcbiAgICBpZiAoc3RyZWFtaW5nVGhpbmtpbmcuaXNTdHJlYW1pbmcpIHJldHVybiB0cnVlXG4gICAgaWYgKHN0cmVhbWluZ1RoaW5raW5nLnN0cmVhbWluZ0VuZGVkQXQpIHtcbiAgICAgIHJldHVybiBEYXRlLm5vdygpIC0gc3RyZWFtaW5nVGhpbmtpbmcuc3RyZWFtaW5nRW5kZWRBdCA8IDMwMDAwXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9LCBbc3RyZWFtaW5nVGhpbmtpbmddKVxuXG4gIC8vIEZpbmQgdGhlIGxhc3QgdGhpbmtpbmcgYmxvY2sgKG1lc3NhZ2UgVVVJRCArIGNvbnRlbnQgaW5kZXgpIGZvciBoaWRpbmcgcGFzdCB0aGlua2luZyBpbiB0cmFuc2NyaXB0IG1vZGVcbiAgLy8gV2hlbiBzdHJlYW1pbmcgdGhpbmtpbmcgaXMgdmlzaWJsZSwgdXNlIGEgc3BlY2lhbCBJRCB0aGF0IHdvbid0IG1hdGNoIGFueSBjb21wbGV0ZWQgdGhpbmtpbmcgYmxvY2tcbiAgLy8gV2l0aCBhZGFwdGl2ZSB0aGlua2luZywgb25seSBjb25zaWRlciB0aGlua2luZyBibG9ja3MgZnJvbSB0aGUgY3VycmVudCB0dXJuIGFuZCBzdG9wIHNlYXJjaGluZyBvbmNlIHdlXG4gIC8vIGhpdCB0aGUgbGFzdCB1c2VyIG1lc3NhZ2UuXG4gIGNvbnN0IGxhc3RUaGlua2luZ0Jsb2NrSWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWhpZGVQYXN0VGhpbmtpbmcpIHJldHVybiBudWxsXG4gICAgLy8gSWYgc3RyZWFtaW5nIHRoaW5raW5nIGlzIHZpc2libGUsIGhpZGUgYWxsIGNvbXBsZXRlZCB0aGlua2luZyBibG9ja3MgYnkgdXNpbmcgYSBub24tbWF0Y2hpbmcgSURcbiAgICBpZiAoaXNTdHJlYW1pbmdUaGlua2luZ1Zpc2libGUpIHJldHVybiAnc3RyZWFtaW5nJ1xuICAgIC8vIEl0ZXJhdGUgYmFja3dhcmRzIHRvIGZpbmQgdGhlIGxhc3QgbWVzc2FnZSB3aXRoIGEgdGhpbmtpbmcgYmxvY2tcbiAgICBmb3IgKGxldCBpID0gbm9ybWFsaXplZE1lc3NhZ2VzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCBtc2cgPSBub3JtYWxpemVkTWVzc2FnZXNbaV1cbiAgICAgIGlmIChtc2c/LnR5cGUgPT09ICdhc3Npc3RhbnQnKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBtc2cubWVzc2FnZS5jb250ZW50XG4gICAgICAgIC8vIEZpbmQgdGhlIGxhc3QgdGhpbmtpbmcgYmxvY2sgaW4gdGhpcyBtZXNzYWdlXG4gICAgICAgIGZvciAobGV0IGogPSBjb250ZW50Lmxlbmd0aCAtIDE7IGogPj0gMDsgai0tKSB7XG4gICAgICAgICAgaWYgKGNvbnRlbnRbal0/LnR5cGUgPT09ICd0aGlua2luZycpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHttc2cudXVpZH06JHtqfWBcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAobXNnPy50eXBlID09PSAndXNlcicpIHtcbiAgICAgICAgY29uc3QgaGFzVG9vbFJlc3VsdCA9IG1zZy5tZXNzYWdlLmNvbnRlbnQuc29tZShcbiAgICAgICAgICBibG9jayA9PiBibG9jay50eXBlID09PSAndG9vbF9yZXN1bHQnLFxuICAgICAgICApXG4gICAgICAgIGlmICghaGFzVG9vbFJlc3VsdCkge1xuICAgICAgICAgIC8vIFJlYWNoZWQgYSBwcmV2aW91cyB1c2VyIHR1cm4gc28gZG9uJ3Qgc2hvdyBzdGFsZSB0aGlua2luZyBmcm9tIGJlZm9yZVxuICAgICAgICAgIHJldHVybiAnbm8tdGhpbmtpbmcnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfSwgW25vcm1hbGl6ZWRNZXNzYWdlcywgaGlkZVBhc3RUaGlua2luZywgaXNTdHJlYW1pbmdUaGlua2luZ1Zpc2libGVdKVxuXG4gIC8vIEZpbmQgdGhlIGxhdGVzdCB1c2VyIGJhc2ggb3V0cHV0IG1lc3NhZ2UgKGZyb20gISBjb21tYW5kcylcbiAgLy8gVGhpcyBhbGxvd3MgdXMgdG8gc2hvdyBmdWxsIG91dHB1dCBmb3IgdGhlIG1vc3QgcmVjZW50IGJhc2ggY29tbWFuZFxuICBjb25zdCBsYXRlc3RCYXNoT3V0cHV0VVVJRCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8vIEl0ZXJhdGUgYmFja3dhcmRzIHRvIGZpbmQgdGhlIGxhc3QgdXNlciBtZXNzYWdlIHdpdGggYmFzaCBvdXRwdXRcbiAgICBmb3IgKGxldCBpID0gbm9ybWFsaXplZE1lc3NhZ2VzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBjb25zdCBtc2cgPSBub3JtYWxpemVkTWVzc2FnZXNbaV1cbiAgICAgIGlmIChtc2c/LnR5cGUgPT09ICd1c2VyJykge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gbXNnLm1lc3NhZ2UuY29udGVudFxuICAgICAgICAvLyBDaGVjayBpZiBhbnkgdGV4dCBjb250ZW50IGlzIGJhc2ggb3V0cHV0XG4gICAgICAgIGZvciAoY29uc3QgYmxvY2sgb2YgY29udGVudCkge1xuICAgICAgICAgIGlmIChibG9jay50eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBibG9jay50ZXh0XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHRleHQuc3RhcnRzV2l0aCgnPGJhc2gtc3Rkb3V0JykgfHxcbiAgICAgICAgICAgICAgdGV4dC5zdGFydHNXaXRoKCc8YmFzaC1zdGRlcnInKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiBtc2cudXVpZFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9LCBbbm9ybWFsaXplZE1lc3NhZ2VzXSlcblxuICAvLyBzdHJlYW1pbmdUb29sVXNlcyB1cGRhdGVzIG9uIGV2ZXJ5IGlucHV0X2pzb25fZGVsdGEgd2hpbGUgbm9ybWFsaXplZE1lc3NhZ2VzXG4gIC8vIHN0YXlzIHN0YWJsZSDigJQgcHJlY29tcHV0ZSB0aGUgU2V0IHNvIHRoZSBmaWx0ZXIgaXMgTyhrKSBub3QgTyhuw5drKSBwZXIgY2h1bmsuXG4gIGNvbnN0IG5vcm1hbGl6ZWRUb29sVXNlSURzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBnZXRUb29sVXNlSURzKG5vcm1hbGl6ZWRNZXNzYWdlcyksXG4gICAgW25vcm1hbGl6ZWRNZXNzYWdlc10sXG4gIClcblxuICBjb25zdCBzdHJlYW1pbmdUb29sVXNlc1dpdGhvdXRJblByb2dyZXNzID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgc3RyZWFtaW5nVG9vbFVzZXMuZmlsdGVyKFxuICAgICAgICBzdHUgPT5cbiAgICAgICAgICAhaW5Qcm9ncmVzc1Rvb2xVc2VJRHMuaGFzKHN0dS5jb250ZW50QmxvY2suaWQpICYmXG4gICAgICAgICAgIW5vcm1hbGl6ZWRUb29sVXNlSURzLmhhcyhzdHUuY29udGVudEJsb2NrLmlkKSxcbiAgICAgICksXG4gICAgW3N0cmVhbWluZ1Rvb2xVc2VzLCBpblByb2dyZXNzVG9vbFVzZUlEcywgbm9ybWFsaXplZFRvb2xVc2VJRHNdLFxuICApXG5cbiAgY29uc3Qgc3ludGhldGljU3RyZWFtaW5nVG9vbFVzZU1lc3NhZ2VzID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgc3RyZWFtaW5nVG9vbFVzZXNXaXRob3V0SW5Qcm9ncmVzcy5mbGF0TWFwKHN0cmVhbWluZ1Rvb2xVc2UgPT4ge1xuICAgICAgICBjb25zdCBtc2cgPSBjcmVhdGVBc3Npc3RhbnRNZXNzYWdlKHtcbiAgICAgICAgICBjb250ZW50OiBbc3RyZWFtaW5nVG9vbFVzZS5jb250ZW50QmxvY2tdLFxuICAgICAgICB9KVxuICAgICAgICAvLyBPdmVycmlkZSByYW5kb21VVUlEIHdpdGggZGV0ZXJtaW5pc3RpYyB2YWx1ZSBkZXJpdmVkIGZyb20gY29udGVudFxuICAgICAgICAvLyBibG9jayBJRCB0byBwcmV2ZW50IFJlYWN0IGtleSBjaGFuZ2VzIG9uIGV2ZXJ5IG1lbW8gcmVjb21wdXRhdGlvbi5cbiAgICAgICAgLy8gU2FtZSBjbGFzcyBvZiBidWcgZml4ZWQgaW4gbm9ybWFsaXplTWVzc2FnZXMgKGNvbW1pdCAzODMzMjZlNjEzKTpcbiAgICAgICAgLy8gZnJlc2ggcmFuZG9tVVVJRCDihpIgdW5zdGFibGUgUmVhY3Qga2V5cyDihpIgY29tcG9uZW50IHJlbW91bnRzIOKGklxuICAgICAgICAvLyBJbmsgcmVuZGVyaW5nIGNvcnJ1cHRpb24gKG92ZXJsYXBwaW5nIHRleHQgZnJvbSBzdGFsZSBET00gbm9kZXMpLlxuICAgICAgICBtc2cudXVpZCA9IGRlcml2ZVVVSUQoc3RyZWFtaW5nVG9vbFVzZS5jb250ZW50QmxvY2suaWQgYXMgVVVJRCwgMClcbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU1lc3NhZ2VzKFttc2ddKVxuICAgICAgfSksXG4gICAgW3N0cmVhbWluZ1Rvb2xVc2VzV2l0aG91dEluUHJvZ3Jlc3NdLFxuICApXG5cbiAgY29uc3QgaXNUcmFuc2NyaXB0TW9kZSA9IHNjcmVlbiA9PT0gJ3RyYW5zY3JpcHQnXG4gIC8vIEhvaXN0ZWQgdG8gbW91bnQtdGltZSDigJQgdGhpcyBjb21wb25lbnQgcmUtcmVuZGVycyBvbiBldmVyeSBzY3JvbGwuXG4gIGNvbnN0IGRpc2FibGVWaXJ0dWFsU2Nyb2xsID0gdXNlTWVtbyhcbiAgICAoKSA9PiBpc0VudlRydXRoeShwcm9jZXNzLmVudi5DTEFVREVfQ09ERV9ESVNBQkxFX1ZJUlRVQUxfU0NST0xMKSxcbiAgICBbXSxcbiAgKVxuICAvLyBWaXJ0dWFsIHNjcm9sbCByZXBsYWNlcyB0aGUgdHJhbnNjcmlwdCBjYXA6IGV2ZXJ5dGhpbmcgaXMgc2Nyb2xsYWJsZSBhbmRcbiAgLy8gbWVtb3J5IGlzIGJvdW5kZWQgYnkgdGhlIG1vdW50ZWQtaXRlbSBjb3VudCwgbm90IHRoZSB0b3RhbC4gc2Nyb2xsUmVmIGlzXG4gIC8vIG9ubHkgcGFzc2VkIHdoZW4gaXNGdWxsc2NyZWVuRW52RW5hYmxlZCgpIGlzIHRydWUgKFJFUEwudHN4IGdhdGVzIGl0KSxcbiAgLy8gc28gc2Nyb2xsUmVmJ3MgcHJlc2VuY2UgaXMgdGhlIHNpZ25hbC5cbiAgY29uc3QgdmlydHVhbFNjcm9sbFJ1bnRpbWVHYXRlID0gc2Nyb2xsUmVmICE9IG51bGwgJiYgIWRpc2FibGVWaXJ0dWFsU2Nyb2xsXG4gIGNvbnN0IHNob3VsZFRydW5jYXRlID1cbiAgICBpc1RyYW5zY3JpcHRNb2RlICYmICFzaG93QWxsSW5UcmFuc2NyaXB0ICYmICF2aXJ0dWFsU2Nyb2xsUnVudGltZUdhdGVcblxuICAvLyBBbmNob3IgZm9yIHRoZSBmaXJzdCByZW5kZXJlZCBtZXNzYWdlIGluIHRoZSBub24tdmlydHVhbGl6ZWQgY2FwIHNsaWNlLlxuICAvLyBNb25vdG9uaWMgYWR2YW5jZSBvbmx5IOKAlCBtdXRhdGlvbiBkdXJpbmcgcmVuZGVyIGlzIGlkZW1wb3RlbnQgKHNhZmVcbiAgLy8gdW5kZXIgU3RyaWN0TW9kZSBkb3VibGUtcmVuZGVyKS4gU2VlIE1BWF9NRVNTQUdFU19XSVRIT1VUX1ZJUlRVQUxJWkFUSU9OXG4gIC8vIGNvbW1lbnQgYWJvdmUgZm9yIHdoeSB0aGlzIHJlcGxhY2VkIGNvdW50LWJhc2VkIHNsaWNpbmcuXG4gIGNvbnN0IHNsaWNlQW5jaG9yUmVmID0gdXNlUmVmPFNsaWNlQW5jaG9yPihudWxsKVxuXG4gIC8vIEV4cGVuc2l2ZSBtZXNzYWdlIHRyYW5zZm9ybXMg4oCUIGZpbHRlciwgcmVvcmRlciwgZ3JvdXAsIGNvbGxhcHNlLCBsb29rdXBzLlxuICAvLyBBbGwgTyhuKSBvdmVyIDI3ayBtZXNzYWdlcy4gU3BsaXQgZnJvbSB0aGUgcmVuZGVyUmFuZ2Ugc2xpY2Ugc28gc2Nyb2xsaW5nXG4gIC8vICh3aGljaCBvbmx5IGNoYW5nZXMgcmVuZGVyUmFuZ2UpIGRvZXNuJ3QgcmUtcnVuIHRoZXNlLiBQcmV2aW91c2x5IHRoaXNcbiAgLy8gdXNlTWVtbyBpbmNsdWRlZCByZW5kZXJSYW5nZSDihpIgZXZlcnkgc2Nyb2xsIHJlYnVpbHQgNiBNYXBzIG92ZXIgMjdrXG4gIC8vIG1lc3NhZ2VzICsgNCBmaWx0ZXIvbWFwIHBhc3NlcyA9IH41MG1zIGFsbG9jIHBlciBzY3JvbGwg4oaSIEdDIHByZXNzdXJlIOKGklxuICAvLyAxMDAtMTczbXMgc3RvcC10aGUtd29ybGQgcGF1c2VzIG9uIHRoZSAxR0IgaGVhcC5cbiAgY29uc3QgeyBjb2xsYXBzZWQsIGxvb2t1cHMsIGhhc1RydW5jYXRlZE1lc3NhZ2VzLCBoaWRkZW5NZXNzYWdlQ291bnQgfSA9XG4gICAgdXNlTWVtbygoKSA9PiB7XG4gICAgICAvLyBJbiBmdWxsc2NyZWVuIG1vZGUgdGhlIGFsdCBidWZmZXIgaGFzIG5vIG5hdGl2ZSBzY3JvbGxiYWNrLCBzbyB0aGVcbiAgICAgIC8vIGNvbXBhY3QtYm91bmRhcnkgZmlsdGVyIGp1c3QgaGlkZXMgaGlzdG9yeSB0aGUgU2Nyb2xsQm94IGNvdWxkXG4gICAgICAvLyBvdGhlcndpc2Ugc2Nyb2xsIHRvLiBNYWluLXNjcmVlbiBtb2RlIGtlZXBzIHRoZSBmaWx0ZXIg4oCUIHByZS1jb21wYWN0XG4gICAgICAvLyByb3dzIGxpdmUgYWJvdmUgdGhlIHZpZXdwb3J0IGluIG5hdGl2ZSBzY3JvbGxiYWNrIHRoZXJlLCBhbmRcbiAgICAgIC8vIHJlLXJlbmRlcmluZyB0aGVtIHRyaWdnZXJzIGZ1bGwgcmVzZXRzLlxuICAgICAgLy8gaW5jbHVkZVNuaXBwZWQ6IFVJIHJlbmRlcmluZyBrZWVwcyBzbmlwcGVkIG1lc3NhZ2VzIGZvciBzY3JvbGxiYWNrXG4gICAgICAvLyAodGhpcyBQUidzIGNvcmUgZ29hbCDigJQgZnVsbCBoaXN0b3J5IGluIFVJLCBmaWx0ZXIgb25seSBmb3IgdGhlIG1vZGVsKS5cbiAgICAgIC8vIEFsc28gYXZvaWRzIGEgVVVJRCBtaXNtYXRjaDogbm9ybWFsaXplTWVzc2FnZXMgZGVyaXZlcyBuZXcgVVVJRHMsIHNvXG4gICAgICAvLyBwcm9qZWN0U25pcHBlZFZpZXcncyBjaGVjayBhZ2FpbnN0IG9yaWdpbmFsIHJlbW92ZWRVdWlkcyB3b3VsZCBmYWlsLlxuICAgICAgY29uc3QgY29tcGFjdEF3YXJlTWVzc2FnZXMgPVxuICAgICAgICB2ZXJib3NlIHx8IGlzRnVsbHNjcmVlbkVudkVuYWJsZWQoKVxuICAgICAgICAgID8gbm9ybWFsaXplZE1lc3NhZ2VzXG4gICAgICAgICAgOiBnZXRNZXNzYWdlc0FmdGVyQ29tcGFjdEJvdW5kYXJ5KG5vcm1hbGl6ZWRNZXNzYWdlcywge1xuICAgICAgICAgICAgICBpbmNsdWRlU25pcHBlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgIGNvbnN0IG1lc3NhZ2VzVG9TaG93Tm90VHJ1bmNhdGVkID0gcmVvcmRlck1lc3NhZ2VzSW5VSShcbiAgICAgICAgY29tcGFjdEF3YXJlTWVzc2FnZXNcbiAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgKG1zZyk6IG1zZyBpcyBFeGNsdWRlPE5vcm1hbGl6ZWRNZXNzYWdlLCBQcm9ncmVzc01lc3NhZ2VUeXBlPiA9PlxuICAgICAgICAgICAgICBtc2cudHlwZSAhPT0gJ3Byb2dyZXNzJyxcbiAgICAgICAgICApXG4gICAgICAgICAgLy8gQ0MtNzI0OiBkcm9wIGF0dGFjaG1lbnQgbWVzc2FnZXMgdGhhdCBBdHRhY2htZW50TWVzc2FnZSByZW5kZXJzIGFzXG4gICAgICAgICAgLy8gbnVsbCAoaG9va19zdWNjZXNzLCBob29rX2FkZGl0aW9uYWxfY29udGV4dCwgaG9va19jYW5jZWxsZWQsIGV0Yy4pXG4gICAgICAgICAgLy8gQkVGT1JFIGNvdW50aW5nL3NsaWNpbmcgc28gdGhleSBkb24ndCBpbmZsYXRlIHRoZSBcIk4gbWVzc2FnZXNcIlxuICAgICAgICAgIC8vIGNvdW50IGluIGN0cmwtbyBvciBjb25zdW1lIHNsb3RzIGluIHRoZSAyMDAtbWVzc2FnZSByZW5kZXIgY2FwLlxuICAgICAgICAgIC5maWx0ZXIobXNnID0+ICFpc051bGxSZW5kZXJpbmdBdHRhY2htZW50KG1zZykpXG4gICAgICAgICAgLmZpbHRlcihfID0+IHNob3VsZFNob3dVc2VyTWVzc2FnZShfLCBpc1RyYW5zY3JpcHRNb2RlKSksXG4gICAgICAgIHN5bnRoZXRpY1N0cmVhbWluZ1Rvb2xVc2VNZXNzYWdlcyxcbiAgICAgIClcbiAgICAgIC8vIFRocmVlLXRpZXIgZmlsdGVyaW5nLiBUcmFuc2NyaXB0IG1vZGUgKGN0cmwrbyBzY3JlZW4pIGlzIHRydWx5IHVuZmlsdGVyZWQuXG4gICAgICAvLyBCcmllZi1vbmx5OiBTZW5kVXNlck1lc3NhZ2UgKyB1c2VyIGlucHV0IG9ubHkuIERlZmF1bHQ6IGRyb3AgcmVkdW5kYW50XG4gICAgICAvLyBhc3Npc3RhbnQgdGV4dCBpbiB0dXJucyB3aGVyZSBTZW5kVXNlck1lc3NhZ2Ugd2FzIGNhbGxlZCAodGhlIG1vZGVsJ3NcbiAgICAgIC8vIHRleHQgaXMgd29ya2luZy1ub3RlcyB0aGF0IGR1cGxpY2F0ZSB0aGUgU2VuZFVzZXJNZXNzYWdlIGNvbnRlbnQpLlxuICAgICAgY29uc3QgYnJpZWZUb29sTmFtZXMgPSBbQlJJRUZfVE9PTF9OQU1FLCBTRU5EX1VTRVJfRklMRV9UT09MX05BTUVdLmZpbHRlcihcbiAgICAgICAgKG4pOiBuIGlzIHN0cmluZyA9PiBuICE9PSBudWxsLFxuICAgICAgKVxuICAgICAgLy8gZHJvcFRleHRJbkJyaWVmVHVybnMgc2hvdWxkIG9ubHkgdHJpZ2dlciBvbiBTZW5kVXNlck1lc3NhZ2UgdHVybnMg4oCUXG4gICAgICAvLyBTZW5kVXNlckZpbGUgZGVsaXZlcnMgYSBmaWxlIHdpdGhvdXQgcmVwbGFjZW1lbnQgdGV4dCwgc28gZHJvcHBpbmdcbiAgICAgIC8vIGFzc2lzdGFudCB0ZXh0IGZvciBmaWxlLW9ubHkgdHVybnMgd291bGQgbGVhdmUgdGhlIHVzZXIgd2l0aCBubyBjb250ZXh0LlxuICAgICAgY29uc3QgZHJvcFRleHRUb29sTmFtZXMgPSBbQlJJRUZfVE9PTF9OQU1FXS5maWx0ZXIoXG4gICAgICAgIChuKTogbiBpcyBzdHJpbmcgPT4gbiAhPT0gbnVsbCxcbiAgICAgIClcbiAgICAgIGNvbnN0IGJyaWVmRmlsdGVyZWQgPVxuICAgICAgICBicmllZlRvb2xOYW1lcy5sZW5ndGggPiAwICYmICFpc1RyYW5zY3JpcHRNb2RlXG4gICAgICAgICAgPyBpc0JyaWVmT25seVxuICAgICAgICAgICAgPyBmaWx0ZXJGb3JCcmllZlRvb2wobWVzc2FnZXNUb1Nob3dOb3RUcnVuY2F0ZWQsIGJyaWVmVG9vbE5hbWVzKVxuICAgICAgICAgICAgOiBkcm9wVGV4dFRvb2xOYW1lcy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgID8gZHJvcFRleHRJbkJyaWVmVHVybnMoXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlc1RvU2hvd05vdFRydW5jYXRlZCxcbiAgICAgICAgICAgICAgICAgIGRyb3BUZXh0VG9vbE5hbWVzLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBtZXNzYWdlc1RvU2hvd05vdFRydW5jYXRlZFxuICAgICAgICAgIDogbWVzc2FnZXNUb1Nob3dOb3RUcnVuY2F0ZWRcblxuICAgICAgY29uc3QgbWVzc2FnZXNUb1Nob3cgPSBzaG91bGRUcnVuY2F0ZVxuICAgICAgICA/IGJyaWVmRmlsdGVyZWQuc2xpY2UoLU1BWF9NRVNTQUdFU19UT19TSE9XX0lOX1RSQU5TQ1JJUFRfTU9ERSlcbiAgICAgICAgOiBicmllZkZpbHRlcmVkXG5cbiAgICAgIGNvbnN0IGhhc1RydW5jYXRlZE1lc3NhZ2VzID1cbiAgICAgICAgc2hvdWxkVHJ1bmNhdGUgJiZcbiAgICAgICAgYnJpZWZGaWx0ZXJlZC5sZW5ndGggPiBNQVhfTUVTU0FHRVNfVE9fU0hPV19JTl9UUkFOU0NSSVBUX01PREVcblxuICAgICAgY29uc3QgeyBtZXNzYWdlczogZ3JvdXBlZE1lc3NhZ2VzIH0gPSBhcHBseUdyb3VwaW5nKFxuICAgICAgICBtZXNzYWdlc1RvU2hvdyxcbiAgICAgICAgdG9vbHMsXG4gICAgICAgIHZlcmJvc2UsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGNvbGxhcHNlZCA9IGNvbGxhcHNlQmFja2dyb3VuZEJhc2hOb3RpZmljYXRpb25zKFxuICAgICAgICBjb2xsYXBzZUhvb2tTdW1tYXJpZXMoXG4gICAgICAgICAgY29sbGFwc2VUZWFtbWF0ZVNodXRkb3ducyhcbiAgICAgICAgICAgIGNvbGxhcHNlUmVhZFNlYXJjaEdyb3Vwcyhncm91cGVkTWVzc2FnZXMsIHRvb2xzKSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICB2ZXJib3NlLFxuICAgICAgKVxuXG4gICAgICBjb25zdCBsb29rdXBzID0gYnVpbGRNZXNzYWdlTG9va3Vwcyhub3JtYWxpemVkTWVzc2FnZXMsIG1lc3NhZ2VzVG9TaG93KVxuXG4gICAgICBjb25zdCBoaWRkZW5NZXNzYWdlQ291bnQgPVxuICAgICAgICBtZXNzYWdlc1RvU2hvd05vdFRydW5jYXRlZC5sZW5ndGggLVxuICAgICAgICBNQVhfTUVTU0FHRVNfVE9fU0hPV19JTl9UUkFOU0NSSVBUX01PREVcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sbGFwc2VkLFxuICAgICAgICBsb29rdXBzLFxuICAgICAgICBoYXNUcnVuY2F0ZWRNZXNzYWdlcyxcbiAgICAgICAgaGlkZGVuTWVzc2FnZUNvdW50LFxuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIHZlcmJvc2UsXG4gICAgICBub3JtYWxpemVkTWVzc2FnZXMsXG4gICAgICBpc1RyYW5zY3JpcHRNb2RlLFxuICAgICAgc3ludGhldGljU3RyZWFtaW5nVG9vbFVzZU1lc3NhZ2VzLFxuICAgICAgc2hvdWxkVHJ1bmNhdGUsXG4gICAgICB0b29scyxcbiAgICAgIGlzQnJpZWZPbmx5LFxuICAgIF0pXG5cbiAgLy8gQ2hlYXAgc2xpY2Ug4oCUIG9ubHkgcnVucyB3aGVuIHNjcm9sbCByYW5nZSBvciBzbGljZSBjb25maWcgY2hhbmdlcy5cbiAgY29uc3QgcmVuZGVyYWJsZU1lc3NhZ2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgLy8gU2FmZXR5IGNhcCBmb3IgdGhlIG5vbi12aXJ0dWFsaXplZCByZW5kZXIgcGF0aC4gQXBwbGllZCBoZXJlIChub3QgYXRcbiAgICAvLyB0aGUgSlNYIHNpdGUpIHNvIHJlbmRlck1lc3NhZ2VSb3cncyBpbmRleC1iYXNlZCBsb29rdXBzIGFuZFxuICAgIC8vIGRpdmlkZXJCZWZvcmVJbmRleCBjb21wdXRlIG9uIHRoZSBzYW1lIGFycmF5LiBWaXJ0dWFsTWVzc2FnZUxpc3RcbiAgICAvLyBuZXZlciBzZWVzIHRoaXMgc2xpY2Ug4oCUIHZpcnR1YWxTY3JvbGxSdW50aW1lR2F0ZSBpcyBjb25zdGFudCBmb3IgdGhlXG4gICAgLy8gY29tcG9uZW50J3MgbGlmZXRpbWUgKHNjcm9sbFJlZiBpcyBlaXRoZXIgYWx3YXlzIHBhc3NlZCBvciBuZXZlcikuXG4gICAgLy8gcmVuZGVyUmFuZ2UgaXMgZmlyc3Q6IHRoZSBjaHVua2VkIGV4cG9ydCBwYXRoIHNsaWNlcyB0aGVcbiAgICAvLyBwb3N0LWdyb3VwaW5nIGFycmF5IHNvIGVhY2ggY2h1bmsgZ2V0cyBjb3JyZWN0IHRvb2wtY2FsbCBncm91cGluZy5cbiAgICBjb25zdCBjYXBBcHBsaWVzID0gIXZpcnR1YWxTY3JvbGxSdW50aW1lR2F0ZSAmJiAhZGlzYWJsZVJlbmRlckNhcFxuICAgIGNvbnN0IHNsaWNlU3RhcnQgPSBjYXBBcHBsaWVzXG4gICAgICA/IGNvbXB1dGVTbGljZVN0YXJ0KGNvbGxhcHNlZCwgc2xpY2VBbmNob3JSZWYpXG4gICAgICA6IDBcbiAgICByZXR1cm4gcmVuZGVyUmFuZ2VcbiAgICAgID8gY29sbGFwc2VkLnNsaWNlKHJlbmRlclJhbmdlWzBdLCByZW5kZXJSYW5nZVsxXSlcbiAgICAgIDogc2xpY2VTdGFydCA+IDBcbiAgICAgICAgPyBjb2xsYXBzZWQuc2xpY2Uoc2xpY2VTdGFydClcbiAgICAgICAgOiBjb2xsYXBzZWRcbiAgfSwgW2NvbGxhcHNlZCwgcmVuZGVyUmFuZ2UsIHZpcnR1YWxTY3JvbGxSdW50aW1lR2F0ZSwgZGlzYWJsZVJlbmRlckNhcF0pXG5cbiAgY29uc3Qgc3RyZWFtaW5nVG9vbFVzZUlEcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gbmV3IFNldChzdHJlYW1pbmdUb29sVXNlcy5tYXAoXyA9PiBfLmNvbnRlbnRCbG9jay5pZCkpLFxuICAgIFtzdHJlYW1pbmdUb29sVXNlc10sXG4gIClcblxuICAvLyBEaXZpZGVyIGluc2VydGlvbiBwb2ludDogZmlyc3QgcmVuZGVyYWJsZU1lc3NhZ2Ugd2hvc2UgdXVpZCBzaGFyZXMgdGhlXG4gIC8vIDI0LWNoYXIgcHJlZml4IHdpdGggZmlyc3RVbnNlZW5VdWlkIChkZXJpdmVVVUlEIGtlZXBzIHRoZSBmaXJzdCAyNFxuICAvLyBjaGFycyBvZiB0aGUgc291cmNlIG1lc3NhZ2UgdXVpZCwgc28gdGhpcyBtYXRjaGVzIGFueSBibG9jayBmcm9tIGl0KS5cbiAgY29uc3QgZGl2aWRlckJlZm9yZUluZGV4ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCF1bnNlZW5EaXZpZGVyKSByZXR1cm4gLTFcbiAgICBjb25zdCBwcmVmaXggPSB1bnNlZW5EaXZpZGVyLmZpcnN0VW5zZWVuVXVpZC5zbGljZSgwLCAyNClcbiAgICByZXR1cm4gcmVuZGVyYWJsZU1lc3NhZ2VzLmZpbmRJbmRleChtID0+IG0udXVpZC5zbGljZSgwLCAyNCkgPT09IHByZWZpeClcbiAgfSwgW3Vuc2VlbkRpdmlkZXIsIHJlbmRlcmFibGVNZXNzYWdlc10pXG5cbiAgY29uc3Qgc2VsZWN0ZWRJZHggPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWN1cnNvcikgcmV0dXJuIC0xXG4gICAgcmV0dXJuIHJlbmRlcmFibGVNZXNzYWdlcy5maW5kSW5kZXgobSA9PiBtLnV1aWQgPT09IGN1cnNvci51dWlkKVxuICB9LCBbY3Vyc29yLCByZW5kZXJhYmxlTWVzc2FnZXNdKVxuXG4gIC8vIEZ1bGxzY3JlZW46IGNsaWNrIGEgbWVzc2FnZSB0byB0b2dnbGUgdmVyYm9zZSByZW5kZXJpbmcgZm9yIGl0LiBLZXllZCBieVxuICAvLyB0b29sX3VzZV9pZCB3aGVyZSBhdmFpbGFibGUgc28gYSB0b29sX3VzZSBhbmQgaXRzIHRvb2xfcmVzdWx0IChzZXBhcmF0ZVxuICAvLyByb3dzKSBleHBhbmQgdG9nZXRoZXI7IGZhbGxzIGJhY2sgdG8gdXVpZCBmb3IgZ3JvdXBzL3RoaW5raW5nLiBTdGFsZSBrZXlzXG4gIC8vIGFyZSBoYXJtbGVzcyDigJQgdGhleSBuZXZlciBtYXRjaCBhbnl0aGluZyBpbiByZW5kZXJhYmxlTWVzc2FnZXMuXG4gIGNvbnN0IFtleHBhbmRlZEtleXMsIHNldEV4cGFuZGVkS2V5c10gPSB1c2VTdGF0ZTxSZWFkb25seVNldDxzdHJpbmc+PihcbiAgICAoKSA9PiBuZXcgU2V0KCksXG4gIClcbiAgY29uc3Qgb25JdGVtQ2xpY2sgPSB1c2VDYWxsYmFjaygobXNnOiBSZW5kZXJhYmxlTWVzc2FnZSkgPT4ge1xuICAgIGNvbnN0IGsgPSBleHBhbmRLZXkobXNnKVxuICAgIHNldEV4cGFuZGVkS2V5cyhwcmV2ID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBuZXcgU2V0KHByZXYpXG4gICAgICBpZiAobmV4dC5oYXMoaykpIG5leHQuZGVsZXRlKGspXG4gICAgICBlbHNlIG5leHQuYWRkKGspXG4gICAgICByZXR1cm4gbmV4dFxuICAgIH0pXG4gIH0sIFtdKVxuICBjb25zdCBpc0l0ZW1FeHBhbmRlZCA9IHVzZUNhbGxiYWNrKFxuICAgIChtc2c6IFJlbmRlcmFibGVNZXNzYWdlKSA9PlxuICAgICAgZXhwYW5kZWRLZXlzLnNpemUgPiAwICYmIGV4cGFuZGVkS2V5cy5oYXMoZXhwYW5kS2V5KG1zZykpLFxuICAgIFtleHBhbmRlZEtleXNdLFxuICApXG4gIC8vIE9ubHkgaG92ZXIvY2xpY2sgbWVzc2FnZXMgd2hlcmUgdGhlIHZlcmJvc2UgdG9nZ2xlIHJldmVhbHMgbW9yZTpcbiAgLy8gY29sbGFwc2VkIHJlYWQvc2VhcmNoIGdyb3Vwcywgb3IgdG9vbCByZXN1bHRzIHRoYXQgc2VsZi1yZXBvcnQgdHJ1bmNhdGlvblxuICAvLyB2aWEgaXNSZXN1bHRUcnVuY2F0ZWQuIENhbGxiYWNrIG11c3QgYmUgc3RhYmxlIGFjcm9zcyBtZXNzYWdlIHVwZGF0ZXM6IGlmXG4gIC8vIGl0cyBpZGVudGl0eSAob3IgcmV0dXJuIHZhbHVlKSBmbGlwcyBkdXJpbmcgc3RyZWFtaW5nLCBvbk1vdXNlRW50ZXJcbiAgLy8gYXR0YWNoZXMgYWZ0ZXIgdGhlIG1vdXNlIGlzIGFscmVhZHkgaW5zaWRlIOKGkiBob3ZlciBuZXZlciBmaXJlcy4gdG9vbHMgaXNcbiAgLy8gc2Vzc2lvbi1zdGFibGU7IGxvb2t1cHMgaXMgcmVhZCB2aWEgcmVmIHNvIHRoZSBjYWxsYmFjayBkb2Vzbid0IGNodXJuIG9uXG4gIC8vIGV2ZXJ5IG5ldyBtZXNzYWdlLlxuICBjb25zdCBsb29rdXBzUmVmID0gdXNlUmVmKGxvb2t1cHMpXG4gIGxvb2t1cHNSZWYuY3VycmVudCA9IGxvb2t1cHNcbiAgY29uc3QgaXNJdGVtQ2xpY2thYmxlID0gdXNlQ2FsbGJhY2soXG4gICAgKG1zZzogUmVuZGVyYWJsZU1lc3NhZ2UpOiBib29sZWFuID0+IHtcbiAgICAgIGlmIChtc2cudHlwZSA9PT0gJ2NvbGxhcHNlZF9yZWFkX3NlYXJjaCcpIHJldHVybiB0cnVlXG4gICAgICBpZiAobXNnLnR5cGUgPT09ICdhc3Npc3RhbnQnKSB7XG4gICAgICAgIGNvbnN0IGIgPSBtc2cubWVzc2FnZS5jb250ZW50WzBdIGFzIHVua25vd24gYXMgQWR2aXNvckJsb2NrIHwgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgYiAhPSBudWxsICYmXG4gICAgICAgICAgaXNBZHZpc29yQmxvY2soYikgJiZcbiAgICAgICAgICBiLnR5cGUgPT09ICdhZHZpc29yX3Rvb2xfcmVzdWx0JyAmJlxuICAgICAgICAgIGIuY29udGVudC50eXBlID09PSAnYWR2aXNvcl9yZXN1bHQnXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIGlmIChtc2cudHlwZSAhPT0gJ3VzZXInKSByZXR1cm4gZmFsc2VcbiAgICAgIGNvbnN0IGIgPSBtc2cubWVzc2FnZS5jb250ZW50WzBdXG4gICAgICBpZiAoYj8udHlwZSAhPT0gJ3Rvb2xfcmVzdWx0JyB8fCBiLmlzX2Vycm9yIHx8ICFtc2cudG9vbFVzZVJlc3VsdClcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICBjb25zdCBuYW1lID0gbG9va3Vwc1JlZi5jdXJyZW50LnRvb2xVc2VCeVRvb2xVc2VJRC5nZXQoXG4gICAgICAgIGIudG9vbF91c2VfaWQsXG4gICAgICApPy5uYW1lXG4gICAgICBjb25zdCB0b29sID0gbmFtZSA/IGZpbmRUb29sQnlOYW1lKHRvb2xzLCBuYW1lKSA6IHVuZGVmaW5lZFxuICAgICAgcmV0dXJuIHRvb2w/LmlzUmVzdWx0VHJ1bmNhdGVkPy4obXNnLnRvb2xVc2VSZXN1bHQgYXMgbmV2ZXIpID8/IGZhbHNlXG4gICAgfSxcbiAgICBbdG9vbHNdLFxuICApXG5cbiAgY29uc3QgY2FuQW5pbWF0ZSA9XG4gICAgKCF0b29sSlNYIHx8ICEhdG9vbEpTWC5zaG91bGRDb250aW51ZUFuaW1hdGlvbikgJiZcbiAgICAhdG9vbFVzZUNvbmZpcm1RdWV1ZS5sZW5ndGggJiZcbiAgICAhaXNNZXNzYWdlU2VsZWN0b3JWaXNpYmxlXG5cbiAgY29uc3QgaGFzVG9vbHNJblByb2dyZXNzID0gaW5Qcm9ncmVzc1Rvb2xVc2VJRHMuc2l6ZSA+IDBcblxuICAvLyBSZXBvcnQgcHJvZ3Jlc3MgdG8gdGVybWluYWwgKGZvciB0ZXJtaW5hbHMgdGhhdCBzdXBwb3J0IE9TQyA5OzQpXG4gIGNvbnN0IHsgcHJvZ3Jlc3MgfSA9IHVzZVRlcm1pbmFsTm90aWZpY2F0aW9uKClcbiAgY29uc3QgcHJldlByb2dyZXNzU3RhdGUgPSB1c2VSZWY8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgcHJvZ3Jlc3NFbmFibGVkID1cbiAgICBnZXRHbG9iYWxDb25maWcoKS50ZXJtaW5hbFByb2dyZXNzQmFyRW5hYmxlZCAmJlxuICAgICFnZXRJc1JlbW90ZU1vZGUoKSAmJlxuICAgICEocHJvYWN0aXZlTW9kdWxlPy5pc1Byb2FjdGl2ZUFjdGl2ZSgpID8/IGZhbHNlKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gcHJvZ3Jlc3NFbmFibGVkXG4gICAgICA/IGhhc1Rvb2xzSW5Qcm9ncmVzc1xuICAgICAgICA/ICdpbmRldGVybWluYXRlJ1xuICAgICAgICA6ICdjb21wbGV0ZWQnXG4gICAgICA6IG51bGxcbiAgICBpZiAocHJldlByb2dyZXNzU3RhdGUuY3VycmVudCA9PT0gc3RhdGUpIHJldHVyblxuICAgIHByZXZQcm9ncmVzc1N0YXRlLmN1cnJlbnQgPSBzdGF0ZVxuICAgIHByb2dyZXNzKHN0YXRlKVxuICB9LCBbcHJvZ3Jlc3MsIHByb2dyZXNzRW5hYmxlZCwgaGFzVG9vbHNJblByb2dyZXNzXSlcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4gcHJvZ3Jlc3MobnVsbClcbiAgfSwgW3Byb2dyZXNzXSlcblxuICBjb25zdCBtZXNzYWdlS2V5ID0gdXNlQ2FsbGJhY2soXG4gICAgKG1zZzogUmVuZGVyYWJsZU1lc3NhZ2UpID0+IGAke21zZy51dWlkfS0ke2NvbnZlcnNhdGlvbklkfWAsXG4gICAgW2NvbnZlcnNhdGlvbklkXSxcbiAgKVxuXG4gIGNvbnN0IHJlbmRlck1lc3NhZ2VSb3cgPSAobXNnOiBSZW5kZXJhYmxlTWVzc2FnZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IHByZXZUeXBlID0gaW5kZXggPiAwID8gcmVuZGVyYWJsZU1lc3NhZ2VzW2luZGV4IC0gMV0/LnR5cGUgOiB1bmRlZmluZWRcbiAgICBjb25zdCBpc1VzZXJDb250aW51YXRpb24gPSBtc2cudHlwZSA9PT0gJ3VzZXInICYmIHByZXZUeXBlID09PSAndXNlcidcbiAgICAvLyBoYXNDb250ZW50QWZ0ZXIgaXMgb25seSBjb25zdW1lZCBmb3IgY29sbGFwc2VkX3JlYWRfc2VhcmNoIGdyb3VwcztcbiAgICAvLyBza2lwIHRoZSBzY2FuIGZvciBldmVyeXRoaW5nIGVsc2UuIHN0cmVhbWluZ1RleHQgaXMgcmVuZGVyZWQgYXMgYVxuICAgIC8vIHNpYmxpbmcgYWZ0ZXIgdGhpcyBtYXAsIHNvIGl0J3MgbmV2ZXIgaW4gcmVuZGVyYWJsZU1lc3NhZ2VzIOKAlCBPUiBpdFxuICAgIC8vIGluIGV4cGxpY2l0bHkgc28gdGhlIGdyb3VwIGZsaXBzIHRvIHBhc3QgdGVuc2UgYXMgc29vbiBhcyB0ZXh0IHN0YXJ0c1xuICAgIC8vIHN0cmVhbWluZyBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIHRoZSBibG9jayB0byBmaW5hbGl6ZS5cbiAgICBjb25zdCBoYXNDb250ZW50QWZ0ZXIgPVxuICAgICAgbXNnLnR5cGUgPT09ICdjb2xsYXBzZWRfcmVhZF9zZWFyY2gnICYmXG4gICAgICAoISFzdHJlYW1pbmdUZXh0IHx8XG4gICAgICAgIGhhc0NvbnRlbnRBZnRlckluZGV4KFxuICAgICAgICAgIHJlbmRlcmFibGVNZXNzYWdlcyxcbiAgICAgICAgICBpbmRleCxcbiAgICAgICAgICB0b29scyxcbiAgICAgICAgICBzdHJlYW1pbmdUb29sVXNlSURzLFxuICAgICAgICApKVxuXG4gICAgY29uc3QgayA9IG1lc3NhZ2VLZXkobXNnKVxuICAgIGNvbnN0IHJvdyA9IChcbiAgICAgIDxNZXNzYWdlUm93XG4gICAgICAgIGtleT17a31cbiAgICAgICAgbWVzc2FnZT17bXNnfVxuICAgICAgICBpc1VzZXJDb250aW51YXRpb249e2lzVXNlckNvbnRpbnVhdGlvbn1cbiAgICAgICAgaGFzQ29udGVudEFmdGVyPXtoYXNDb250ZW50QWZ0ZXJ9XG4gICAgICAgIHRvb2xzPXt0b29sc31cbiAgICAgICAgY29tbWFuZHM9e2NvbW1hbmRzfVxuICAgICAgICB2ZXJib3NlPXtcbiAgICAgICAgICB2ZXJib3NlIHx8XG4gICAgICAgICAgaXNJdGVtRXhwYW5kZWQobXNnKSB8fFxuICAgICAgICAgIChjdXJzb3I/LmV4cGFuZGVkID09PSB0cnVlICYmIGluZGV4ID09PSBzZWxlY3RlZElkeClcbiAgICAgICAgfVxuICAgICAgICBpblByb2dyZXNzVG9vbFVzZUlEcz17aW5Qcm9ncmVzc1Rvb2xVc2VJRHN9XG4gICAgICAgIHN0cmVhbWluZ1Rvb2xVc2VJRHM9e3N0cmVhbWluZ1Rvb2xVc2VJRHN9XG4gICAgICAgIHNjcmVlbj17c2NyZWVufVxuICAgICAgICBjYW5BbmltYXRlPXtjYW5BbmltYXRlfVxuICAgICAgICBvbk9wZW5SYXRlTGltaXRPcHRpb25zPXtvbk9wZW5SYXRlTGltaXRPcHRpb25zfVxuICAgICAgICBsYXN0VGhpbmtpbmdCbG9ja0lkPXtsYXN0VGhpbmtpbmdCbG9ja0lkfVxuICAgICAgICBsYXRlc3RCYXNoT3V0cHV0VVVJRD17bGF0ZXN0QmFzaE91dHB1dFVVSUR9XG4gICAgICAgIGNvbHVtbnM9e2NvbHVtbnN9XG4gICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICBsb29rdXBzPXtsb29rdXBzfVxuICAgICAgLz5cbiAgICApXG5cbiAgICAvLyBQZXItcm93IFByb3ZpZGVyIOKAlCBvbmx5IDIgcm93cyByZS1yZW5kZXIgb24gc2VsZWN0aW9uIGNoYW5nZS5cbiAgICAvLyBXcmFwcGVkIEJFRk9SRSBkaXZpZGVyIGJyYW5jaCBzbyBib3RoIHJldHVybiBwYXRocyBnZXQgaXQuXG4gICAgY29uc3Qgd3JhcHBlZCA9IChcbiAgICAgIDxNZXNzYWdlQWN0aW9uc1NlbGVjdGVkQ29udGV4dC5Qcm92aWRlclxuICAgICAgICBrZXk9e2t9XG4gICAgICAgIHZhbHVlPXtpbmRleCA9PT0gc2VsZWN0ZWRJZHh9XG4gICAgICA+XG4gICAgICAgIHtyb3d9XG4gICAgICA8L01lc3NhZ2VBY3Rpb25zU2VsZWN0ZWRDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcblxuICAgIGlmICh1bnNlZW5EaXZpZGVyICYmIGluZGV4ID09PSBkaXZpZGVyQmVmb3JlSW5kZXgpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIDxCb3gga2V5PVwidW5zZWVuLWRpdmlkZXJcIiBtYXJnaW5Ub3A9ezF9PlxuICAgICAgICAgIDxEaXZpZGVyXG4gICAgICAgICAgICB0aXRsZT17YCR7dW5zZWVuRGl2aWRlci5jb3VudH0gbmV3ICR7cGx1cmFsKHVuc2VlbkRpdmlkZXIuY291bnQsICdtZXNzYWdlJyl9YH1cbiAgICAgICAgICAgIHdpZHRoPXtjb2x1bW5zfVxuICAgICAgICAgICAgY29sb3I9XCJpbmFjdGl2ZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Cb3g+LFxuICAgICAgICB3cmFwcGVkLFxuICAgICAgXVxuICAgIH1cbiAgICByZXR1cm4gd3JhcHBlZFxuICB9XG5cbiAgLy8gU2VhcmNoIGluZGV4aW5nOiBmb3IgdG9vbF9yZXN1bHQgbWVzc2FnZXMsIGxvb2sgdXAgdGhlIFRvb2wgYW5kIHVzZVxuICAvLyBpdHMgZXh0cmFjdFNlYXJjaFRleHQg4oCUIHRvb2wtb3duZWQsIHByZWNpc2UsIG1hdGNoZXMgd2hhdFxuICAvLyByZW5kZXJUb29sUmVzdWx0TWVzc2FnZSBzaG93cy4gRmFsbHMgYmFjayB0byByZW5kZXJhYmxlU2VhcmNoVGV4dFxuICAvLyAoZHVjay10eXBlcyB0b29sVXNlUmVzdWx0KSBmb3IgdG9vbHMgdGhhdCBoYXZlbid0IGltcGxlbWVudGVkIGl0LFxuICAvLyBhbmQgZm9yIGFsbCBub24tdG9vbC1yZXN1bHQgbWVzc2FnZSB0eXBlcy4gVGhlIGRyaWZ0LWNhdGNoZXIgdGVzdFxuICAvLyAodG9vbFNlYXJjaFRleHQudGVzdC50c3gpIHJlbmRlcnMgKyBjb21wYXJlcyB0byBrZWVwIHRoZXNlIGluIHN5bmMuXG4gIC8vXG4gIC8vIEEgc2Vjb25kLVJlYWN0LXJvb3QgcmVjb25jaWxlIGFwcHJvYWNoIHdhcyB0cmllZCBhbmQgcnVsZWQgb3V0XG4gIC8vIChtZWFzdXJlZCAzLjFtcy9tc2csIGdyb3dpbmcg4oCUIGZsdXNoU3luY1dvcmsgcHJvY2Vzc2VzIGFsbCByb290cztcbiAgLy8gY29tcG9uZW50IGhvb2tzIG11dGF0ZSBzaGFyZWQgc3RhdGUg4oaSIG1haW4gcm9vdCBhY2N1bXVsYXRlcyB1cGRhdGVzKS5cbiAgY29uc3Qgc2VhcmNoVGV4dENhY2hlID0gdXNlUmVmKG5ldyBXZWFrTWFwPFJlbmRlcmFibGVNZXNzYWdlLCBzdHJpbmc+KCkpXG4gIGNvbnN0IGV4dHJhY3RTZWFyY2hUZXh0ID0gdXNlQ2FsbGJhY2soXG4gICAgKG1zZzogUmVuZGVyYWJsZU1lc3NhZ2UpOiBzdHJpbmcgPT4ge1xuICAgICAgY29uc3QgY2FjaGVkID0gc2VhcmNoVGV4dENhY2hlLmN1cnJlbnQuZ2V0KG1zZylcbiAgICAgIGlmIChjYWNoZWQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGNhY2hlZFxuICAgICAgbGV0IHRleHQgPSByZW5kZXJhYmxlU2VhcmNoVGV4dChtc2cpXG4gICAgICAvLyBJZiB0aGlzIGlzIGEgdG9vbF9yZXN1bHQgbWVzc2FnZSBhbmQgdGhlIHRvb2wgaW1wbGVtZW50c1xuICAgICAgLy8gZXh0cmFjdFNlYXJjaFRleHQsIHByZWZlciB0aGF0IOKAlCBpdCdzIHByZWNpc2UgKHRvb2wtb3duZWQpXG4gICAgICAvLyB2cyByZW5kZXJhYmxlU2VhcmNoVGV4dCdzIGZpZWxkLW5hbWUgaGV1cmlzdGljLlxuICAgICAgaWYgKFxuICAgICAgICBtc2cudHlwZSA9PT0gJ3VzZXInICYmXG4gICAgICAgIG1zZy50b29sVXNlUmVzdWx0ICYmXG4gICAgICAgIEFycmF5LmlzQXJyYXkobXNnLm1lc3NhZ2UuY29udGVudClcbiAgICAgICkge1xuICAgICAgICBjb25zdCB0ciA9IG1zZy5tZXNzYWdlLmNvbnRlbnQuZmluZChiID0+IGIudHlwZSA9PT0gJ3Rvb2xfcmVzdWx0JylcbiAgICAgICAgaWYgKHRyICYmICd0b29sX3VzZV9pZCcgaW4gdHIpIHtcbiAgICAgICAgICBjb25zdCB0dSA9IGxvb2t1cHMudG9vbFVzZUJ5VG9vbFVzZUlELmdldCh0ci50b29sX3VzZV9pZClcbiAgICAgICAgICBjb25zdCB0b29sID0gdHUgJiYgZmluZFRvb2xCeU5hbWUodG9vbHMsIHR1Lm5hbWUpXG4gICAgICAgICAgY29uc3QgZXh0cmFjdGVkID0gdG9vbD8uZXh0cmFjdFNlYXJjaFRleHQ/LihcbiAgICAgICAgICAgIG1zZy50b29sVXNlUmVzdWx0IGFzIG5ldmVyLFxuICAgICAgICAgIClcbiAgICAgICAgICAvLyB1bmRlZmluZWQgPSB0b29sIGRpZG4ndCBpbXBsZW1lbnQg4oaSIGtlZXAgaGV1cmlzdGljLiBFbXB0eVxuICAgICAgICAgIC8vIHN0cmluZyA9IHRvb2wgc2F5cyBcIm5vdGhpbmcgdG8gaW5kZXhcIiDihpIgcmVzcGVjdCB0aGF0LlxuICAgICAgICAgIGlmIChleHRyYWN0ZWQgIT09IHVuZGVmaW5lZCkgdGV4dCA9IGV4dHJhY3RlZFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBDYWNoZSBMT1dFUkVEOiBzZXRTZWFyY2hRdWVyeSdzIGhvdCBsb29wIGluZGV4T2ZzIHBlciBrZXlzdHJva2UuXG4gICAgICAvLyBMb3dlcmluZyBoZXJlIChvbmNlLCBhdCB3YXJtKSB2cyB0aGVyZSAoZXZlcnkga2V5c3Ryb2tlKSB0cmFkZXNcbiAgICAgIC8vIH5zYW1lIHN0ZWFkeS1zdGF0ZSBtZW1vcnkgZm9yIHplcm8gcGVyLWtleXN0cm9rZSBhbGxvYy4gQ2FjaGVcbiAgICAgIC8vIEdDJ3Mgd2l0aCBtZXNzYWdlcyBvbiB0cmFuc2NyaXB0IGV4aXQuIFRvb2wgbWV0aG9kcyByZXR1cm4gcmF3O1xuICAgICAgLy8gcmVuZGVyYWJsZVNlYXJjaFRleHQgYWxyZWFkeSBsb3dlcmNhc2VzIChyZWR1bmRhbnQgYnV0IGNoZWFwKS5cbiAgICAgIGNvbnN0IGxvd2VyZWQgPSB0ZXh0LnRvTG93ZXJDYXNlKClcbiAgICAgIHNlYXJjaFRleHRDYWNoZS5jdXJyZW50LnNldChtc2csIGxvd2VyZWQpXG4gICAgICByZXR1cm4gbG93ZXJlZFxuICAgIH0sXG4gICAgW3Rvb2xzLCBsb29rdXBzXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHsvKiBMb2dvICovfVxuICAgICAgeyFoaWRlTG9nbyAmJiAhKHJlbmRlclJhbmdlICYmIHJlbmRlclJhbmdlWzBdID4gMCkgJiYgKFxuICAgICAgICA8TG9nb0hlYWRlciBhZ2VudERlZmluaXRpb25zPXthZ2VudERlZmluaXRpb25zfSAvPlxuICAgICAgKX1cblxuICAgICAgey8qIFRydW5jYXRpb24gaW5kaWNhdG9yICovfVxuICAgICAge2hhc1RydW5jYXRlZE1lc3NhZ2VzICYmIChcbiAgICAgICAgPERpdmlkZXJcbiAgICAgICAgICB0aXRsZT17YCR7dG9nZ2xlU2hvd0FsbFNob3J0Y3V0fSB0byBzaG93ICR7Y2hhbGsuYm9sZChoaWRkZW5NZXNzYWdlQ291bnQpfSBwcmV2aW91cyBtZXNzYWdlc2B9XG4gICAgICAgICAgd2lkdGg9e2NvbHVtbnN9XG4gICAgICAgIC8+XG4gICAgICApfVxuXG4gICAgICB7LyogU2hvdyBhbGwgaW5kaWNhdG9yICovfVxuICAgICAge2lzVHJhbnNjcmlwdE1vZGUgJiZcbiAgICAgICAgc2hvd0FsbEluVHJhbnNjcmlwdCAmJlxuICAgICAgICBoaWRkZW5NZXNzYWdlQ291bnQgPiAwICYmXG4gICAgICAgIC8vIGRpc2FibGVSZW5kZXJDYXAgKGUuZy4gWyBkdW1wLXRvLXNjcm9sbGJhY2spIG1lYW5zIHdlJ3JlIHVuY2FwcGVkXG4gICAgICAgIC8vIGFzIGEgb25lLXNob3QgZXNjYXBlIGhhdGNoLCBub3QgYSB0b2dnbGUg4oCUIGN0cmwrZSBpcyBkZWFkIGFuZFxuICAgICAgICAvLyBub3RoaW5nIGlzIGFjdHVhbGx5IFwiaGlkZGVuXCIgdG8gcmVzdG9yZS5cbiAgICAgICAgIWRpc2FibGVSZW5kZXJDYXAgJiYgKFxuICAgICAgICAgIDxEaXZpZGVyXG4gICAgICAgICAgICB0aXRsZT17YCR7dG9nZ2xlU2hvd0FsbFNob3J0Y3V0fSB0byBoaWRlICR7Y2hhbGsuYm9sZChoaWRkZW5NZXNzYWdlQ291bnQpfSBwcmV2aW91cyBtZXNzYWdlc2B9XG4gICAgICAgICAgICB3aWR0aD17Y29sdW1uc31cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuXG4gICAgICB7LyogTWVzc2FnZXMgLSByZW5kZXJlZCBhcyBtZW1vaXplZCBNZXNzYWdlUm93IGNvbXBvbmVudHMuXG4gICAgICAgICAgZmxhdE1hcCBpbnNlcnRzIHRoZSB1bnNlZW4tZGl2aWRlciBhcyBhIHNlcGFyYXRlIGtleWVkIHNpYmxpbmcgc29cbiAgICAgICAgICAoYSkgbm9uLWZ1bGxzY3JlZW4gcmVuZGVycyBwYXkgbm8gcGVyLW1lc3NhZ2UgRnJhZ21lbnQgd3JhcCwgYW5kXG4gICAgICAgICAgKGIpIGRpdmlkZXIgdG9nZ2xlIGluIGZ1bGxzY3JlZW4gcHJlc2VydmVzIGFsbCBNZXNzYWdlUm93cyBieSBrZXkuXG4gICAgICAgICAgUHJlLWNvbXB1dGUgZGVyaXZlZCB2YWx1ZXMgaW5zdGVhZCBvZiBwYXNzaW5nIHJlbmRlcmFibGVNZXNzYWdlcyB0b1xuICAgICAgICAgIGVhY2ggcm93IC0gUmVhY3QgQ29tcGlsZXIgcGlucyBwcm9wcyBpbiB0aGUgZmliZXIncyBtZW1vQ2FjaGUsIHNvXG4gICAgICAgICAgcGFzc2luZyB0aGUgYXJyYXkgd291bGQgYWNjdW11bGF0ZSBldmVyeSBoaXN0b3JpY2FsIHZlcnNpb25cbiAgICAgICAgICAofjEtMk1CIG92ZXIgYSA3LXR1cm4gc2Vzc2lvbikuICovfVxuICAgICAge3ZpcnR1YWxTY3JvbGxSdW50aW1lR2F0ZSA/IChcbiAgICAgICAgPEluVmlydHVhbExpc3RDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt0cnVlfT5cbiAgICAgICAgICA8VmlydHVhbE1lc3NhZ2VMaXN0XG4gICAgICAgICAgICBtZXNzYWdlcz17cmVuZGVyYWJsZU1lc3NhZ2VzfVxuICAgICAgICAgICAgc2Nyb2xsUmVmPXtzY3JvbGxSZWZ9XG4gICAgICAgICAgICBjb2x1bW5zPXtjb2x1bW5zfVxuICAgICAgICAgICAgaXRlbUtleT17bWVzc2FnZUtleX1cbiAgICAgICAgICAgIHJlbmRlckl0ZW09e3JlbmRlck1lc3NhZ2VSb3d9XG4gICAgICAgICAgICBvbkl0ZW1DbGljaz17b25JdGVtQ2xpY2t9XG4gICAgICAgICAgICBpc0l0ZW1DbGlja2FibGU9e2lzSXRlbUNsaWNrYWJsZX1cbiAgICAgICAgICAgIGlzSXRlbUV4cGFuZGVkPXtpc0l0ZW1FeHBhbmRlZH1cbiAgICAgICAgICAgIHRyYWNrU3RpY2t5UHJvbXB0PXt0cmFja1N0aWNreVByb21wdH1cbiAgICAgICAgICAgIHNlbGVjdGVkSW5kZXg9e3NlbGVjdGVkSWR4ID49IDAgPyBzZWxlY3RlZElkeCA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGN1cnNvck5hdlJlZj17Y3Vyc29yTmF2UmVmfVxuICAgICAgICAgICAgc2V0Q3Vyc29yPXtzZXRDdXJzb3J9XG4gICAgICAgICAgICBqdW1wUmVmPXtqdW1wUmVmfVxuICAgICAgICAgICAgb25TZWFyY2hNYXRjaGVzQ2hhbmdlPXtvblNlYXJjaE1hdGNoZXNDaGFuZ2V9XG4gICAgICAgICAgICBzY2FuRWxlbWVudD17c2NhbkVsZW1lbnR9XG4gICAgICAgICAgICBzZXRQb3NpdGlvbnM9e3NldFBvc2l0aW9uc31cbiAgICAgICAgICAgIGV4dHJhY3RTZWFyY2hUZXh0PXtleHRyYWN0U2VhcmNoVGV4dH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0luVmlydHVhbExpc3RDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgKSA6IChcbiAgICAgICAgcmVuZGVyYWJsZU1lc3NhZ2VzLmZsYXRNYXAocmVuZGVyTWVzc2FnZVJvdylcbiAgICAgICl9XG5cbiAgICAgIHtzdHJlYW1pbmdUZXh0ICYmICFpc0JyaWVmT25seSAmJiAoXG4gICAgICAgIDxCb3hcbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiZmxleC1zdGFydFwiXG4gICAgICAgICAgZmxleERpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgbWFyZ2luVG9wPXsxfVxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgID5cbiAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJyb3dcIj5cbiAgICAgICAgICAgIDxCb3ggbWluV2lkdGg9ezJ9PlxuICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cInRleHRcIj57QkxBQ0tfQ0lSQ0xFfTwvVGV4dD5cbiAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxTdHJlYW1pbmdNYXJrZG93bj57c3RyZWFtaW5nVGV4dH08L1N0cmVhbWluZ01hcmtkb3duPlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgIDwvQm94PlxuICAgICAgKX1cblxuICAgICAge2lzU3RyZWFtaW5nVGhpbmtpbmdWaXNpYmxlICYmIHN0cmVhbWluZ1RoaW5raW5nICYmICFpc0JyaWVmT25seSAmJiAoXG4gICAgICAgIDxCb3ggbWFyZ2luVG9wPXsxfT5cbiAgICAgICAgICA8QXNzaXN0YW50VGhpbmtpbmdNZXNzYWdlXG4gICAgICAgICAgICBwYXJhbT17e1xuICAgICAgICAgICAgICB0eXBlOiAndGhpbmtpbmcnLFxuICAgICAgICAgICAgICB0aGlua2luZzogc3RyZWFtaW5nVGhpbmtpbmcudGhpbmtpbmcsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgYWRkTWFyZ2luPXtmYWxzZX1cbiAgICAgICAgICAgIGlzVHJhbnNjcmlwdE1vZGU9e3RydWV9XG4gICAgICAgICAgICB2ZXJib3NlPXt2ZXJib3NlfVxuICAgICAgICAgICAgaGlkZUluVHJhbnNjcmlwdD17ZmFsc2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Cb3g+XG4gICAgICApfVxuICAgIDwvPlxuICApXG59XG5cbi8qKiBLZXkgZm9yIGNsaWNrLXRvLWV4cGFuZDogdG9vbF91c2VfaWQgd2hlcmUgYXZhaWxhYmxlIChzbyB0b29sX3VzZSArIGl0c1xuICogIHRvb2xfcmVzdWx0IGV4cGFuZCB0b2dldGhlciksIGVsc2UgdXVpZCBmb3IgZ3JvdXBzL3RoaW5raW5nLiAqL1xuZnVuY3Rpb24gZXhwYW5kS2V5KG1zZzogUmVuZGVyYWJsZU1lc3NhZ2UpOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgIChtc2cudHlwZSA9PT0gJ2Fzc2lzdGFudCcgfHwgbXNnLnR5cGUgPT09ICd1c2VyJ1xuICAgICAgPyBnZXRUb29sVXNlSUQobXNnKVxuICAgICAgOiBudWxsKSA/PyBtc2cudXVpZFxuICApXG59XG5cbi8vIEN1c3RvbSBjb21wYXJhdG9yIHRvIHByZXZlbnQgdW5uZWNlc3NhcnkgcmUtcmVuZGVycyBkdXJpbmcgc3RyZWFtaW5nLlxuLy8gRGVmYXVsdCBSZWFjdC5tZW1vIGRvZXMgc2hhbGxvdyBjb21wYXJpc29uIHdoaWNoIGZhaWxzIHdoZW46XG4vLyAxLiBvbk9wZW5SYXRlTGltaXRPcHRpb25zIGNhbGxiYWNrIGlzIHJlY3JlYXRlZCAoZG9lc24ndCBhZmZlY3QgcmVuZGVyIG91dHB1dClcbi8vIDIuIHN0cmVhbWluZ1Rvb2xVc2VzIGFycmF5IGlzIHJlY3JlYXRlZCBvbiBldmVyeSBkZWx0YSwgYnV0IG9ubHkgY29udGVudEJsb2NrIG1hdHRlcnMgZm9yIHJlbmRlcmluZ1xuLy8gMy4gc3RyZWFtaW5nVGhpbmtpbmcgY2hhbmdlcyBvbiBldmVyeSBkZWx0YSAtIHdlIERPIHdhbnQgdG8gcmUtcmVuZGVyIGZvciB0aGlzXG5mdW5jdGlvbiBzZXRzRXF1YWw8VD4oYTogU2V0PFQ+LCBiOiBTZXQ8VD4pOiBib29sZWFuIHtcbiAgaWYgKGEuc2l6ZSAhPT0gYi5zaXplKSByZXR1cm4gZmFsc2VcbiAgZm9yIChjb25zdCBpdGVtIG9mIGEpIHtcbiAgICBpZiAoIWIuaGFzKGl0ZW0pKSByZXR1cm4gZmFsc2VcbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgTWVzc2FnZXMgPSBSZWFjdC5tZW1vKE1lc3NhZ2VzSW1wbCwgKHByZXYsIG5leHQpID0+IHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHByZXYpIGFzIChrZXlvZiB0eXBlb2YgcHJldilbXVxuICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgaWYgKFxuICAgICAga2V5ID09PSAnb25PcGVuUmF0ZUxpbWl0T3B0aW9ucycgfHxcbiAgICAgIGtleSA9PT0gJ3Njcm9sbFJlZicgfHxcbiAgICAgIGtleSA9PT0gJ3RyYWNrU3RpY2t5UHJvbXB0JyB8fFxuICAgICAga2V5ID09PSAnc2V0Q3Vyc29yJyB8fFxuICAgICAga2V5ID09PSAnY3Vyc29yTmF2UmVmJyB8fFxuICAgICAga2V5ID09PSAnanVtcFJlZicgfHxcbiAgICAgIGtleSA9PT0gJ29uU2VhcmNoTWF0Y2hlc0NoYW5nZScgfHxcbiAgICAgIGtleSA9PT0gJ3NjYW5FbGVtZW50JyB8fFxuICAgICAga2V5ID09PSAnc2V0UG9zaXRpb25zJ1xuICAgIClcbiAgICAgIGNvbnRpbnVlXG4gICAgaWYgKHByZXZba2V5XSAhPT0gbmV4dFtrZXldKSB7XG4gICAgICBpZiAoa2V5ID09PSAnc3RyZWFtaW5nVG9vbFVzZXMnKSB7XG4gICAgICAgIGNvbnN0IHAgPSBwcmV2LnN0cmVhbWluZ1Rvb2xVc2VzXG4gICAgICAgIGNvbnN0IG4gPSBuZXh0LnN0cmVhbWluZ1Rvb2xVc2VzXG4gICAgICAgIGlmIChcbiAgICAgICAgICBwLmxlbmd0aCA9PT0gbi5sZW5ndGggJiZcbiAgICAgICAgICBwLmV2ZXJ5KChpdGVtLCBpKSA9PiBpdGVtLmNvbnRlbnRCbG9jayA9PT0gbltpXT8uY29udGVudEJsb2NrKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoa2V5ID09PSAnaW5Qcm9ncmVzc1Rvb2xVc2VJRHMnKSB7XG4gICAgICAgIGlmIChzZXRzRXF1YWwocHJldi5pblByb2dyZXNzVG9vbFVzZUlEcywgbmV4dC5pblByb2dyZXNzVG9vbFVzZUlEcykpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoa2V5ID09PSAndW5zZWVuRGl2aWRlcicpIHtcbiAgICAgICAgY29uc3QgcCA9IHByZXYudW5zZWVuRGl2aWRlclxuICAgICAgICBjb25zdCBuID0gbmV4dC51bnNlZW5EaXZpZGVyXG4gICAgICAgIGlmIChcbiAgICAgICAgICBwPy5maXJzdFVuc2VlblV1aWQgPT09IG4/LmZpcnN0VW5zZWVuVXVpZCAmJlxuICAgICAgICAgIHA/LmNvdW50ID09PSBuPy5jb3VudFxuICAgICAgICApIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoa2V5ID09PSAndG9vbHMnKSB7XG4gICAgICAgIGNvbnN0IHAgPSBwcmV2LnRvb2xzXG4gICAgICAgIGNvbnN0IG4gPSBuZXh0LnRvb2xzXG4gICAgICAgIGlmIChcbiAgICAgICAgICBwLmxlbmd0aCA9PT0gbi5sZW5ndGggJiZcbiAgICAgICAgICBwLmV2ZXJ5KCh0b29sLCBpKSA9PiB0b29sLm5hbWUgPT09IG5baV0/Lm5hbWUpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIHN0cmVhbWluZ1RoaW5raW5nIGNoYW5nZXMgZnJlcXVlbnRseSAtIGFsd2F5cyByZS1yZW5kZXIgd2hlbiBpdCBjaGFuZ2VzXG4gICAgICAvLyAobm8gc3BlY2lhbCBoYW5kbGluZyBuZWVkZWQsIGRlZmF1bHQgYmVoYXZpb3IgaXMgY29ycmVjdClcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZVxufSlcblxuZXhwb3J0IGZ1bmN0aW9uIHNob3VsZFJlbmRlclN0YXRpY2FsbHkoXG4gIG1lc3NhZ2U6IFJlbmRlcmFibGVNZXNzYWdlLFxuICBzdHJlYW1pbmdUb29sVXNlSURzOiBTZXQ8c3RyaW5nPixcbiAgaW5Qcm9ncmVzc1Rvb2xVc2VJRHM6IFNldDxzdHJpbmc+LFxuICBzaWJsaW5nVG9vbFVzZUlEczogUmVhZG9ubHlTZXQ8c3RyaW5nPixcbiAgc2NyZWVuOiBTY3JlZW4sXG4gIGxvb2t1cHM6IFJldHVyblR5cGU8dHlwZW9mIGJ1aWxkTWVzc2FnZUxvb2t1cHM+LFxuKTogYm9vbGVhbiB7XG4gIGlmIChzY3JlZW4gPT09ICd0cmFuc2NyaXB0Jykge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICBjYXNlICdhdHRhY2htZW50JzpcbiAgICBjYXNlICd1c2VyJzpcbiAgICBjYXNlICdhc3Npc3RhbnQnOiB7XG4gICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgICBjb25zdCBibG9jayA9IG1lc3NhZ2UubWVzc2FnZS5jb250ZW50WzBdXG4gICAgICAgIGlmIChibG9jaz8udHlwZSA9PT0gJ3NlcnZlcl90b29sX3VzZScpIHtcbiAgICAgICAgICByZXR1cm4gbG9va3Vwcy5yZXNvbHZlZFRvb2xVc2VJRHMuaGFzKGJsb2NrLmlkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCB0b29sVXNlSUQgPSBnZXRUb29sVXNlSUQobWVzc2FnZSlcbiAgICAgIGlmICghdG9vbFVzZUlEKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICBpZiAoc3RyZWFtaW5nVG9vbFVzZUlEcy5oYXModG9vbFVzZUlEKSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGlmIChpblByb2dyZXNzVG9vbFVzZUlEcy5oYXModG9vbFVzZUlEKSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSB1bnJlc29sdmVkIFBvc3RUb29sVXNlIGhvb2tzIGZvciB0aGlzIHRvb2wgdXNlXG4gICAgICAvLyBJZiBzbywga2VlcCB0aGUgbWVzc2FnZSB0cmFuc2llbnQgc28gdGhlIEhvb2tQcm9ncmVzc01lc3NhZ2UgY2FuIHVwZGF0ZVxuICAgICAgaWYgKGhhc1VucmVzb2x2ZWRIb29rc0Zyb21Mb29rdXAodG9vbFVzZUlELCAnUG9zdFRvb2xVc2UnLCBsb29rdXBzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGV2ZXJ5KHNpYmxpbmdUb29sVXNlSURzLCBsb29rdXBzLnJlc29sdmVkVG9vbFVzZUlEcylcbiAgICB9XG4gICAgY2FzZSAnc3lzdGVtJzoge1xuICAgICAgLy8gYXBpIGVycm9ycyBhbHdheXMgcmVuZGVyIGR5bmFtaWNhbGx5LCBzaW5jZSB3ZSBoaWRlXG4gICAgICAvLyB0aGVtIGFzIHNvb24gYXMgd2Ugc2VlIGFub3RoZXIgbm9uLWVycm9yIG1lc3NhZ2UuXG4gICAgICByZXR1cm4gbWVzc2FnZS5zdWJ0eXBlICE9PSAnYXBpX2Vycm9yJ1xuICAgIH1cbiAgICBjYXNlICdncm91cGVkX3Rvb2xfdXNlJzoge1xuICAgICAgY29uc3QgYWxsUmVzb2x2ZWQgPSBtZXNzYWdlLm1lc3NhZ2VzLmV2ZXJ5KG1zZyA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBtc2cubWVzc2FnZS5jb250ZW50WzBdXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgY29udGVudD8udHlwZSA9PT0gJ3Rvb2xfdXNlJyAmJlxuICAgICAgICAgIGxvb2t1cHMucmVzb2x2ZWRUb29sVXNlSURzLmhhcyhjb250ZW50LmlkKVxuICAgICAgICApXG4gICAgICB9KVxuICAgICAgcmV0dXJuIGFsbFJlc29sdmVkXG4gICAgfVxuICAgIGNhc2UgJ2NvbGxhcHNlZF9yZWFkX3NlYXJjaCc6IHtcbiAgICAgIC8vIEluIHByb21wdCBtb2RlLCBuZXZlciBtYXJrIGFzIHN0YXRpYyB0byBwcmV2ZW50IGZsaWNrZXIgYmV0d2VlbiBBUEkgdHVybnNcbiAgICAgIC8vIChJbiB0cmFuc2NyaXB0IG1vZGUsIHdlIGFscmVhZHkgcmV0dXJuZWQgdHJ1ZSBhdCB0aGUgdG9wIG9mIHRoaXMgZnVuY3Rpb24pXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLE9BQU8sUUFBUSxZQUFZO0FBQ3BDLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLGNBQWNDLElBQUksUUFBUSxRQUFRO0FBQ2xDLGNBQWNDLFNBQVMsUUFBUSxPQUFPO0FBQ3RDLE9BQU8sS0FBS0MsS0FBSyxNQUFNLE9BQU87QUFDOUIsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxLQUFLLFFBQVEsa0JBQWtCO0FBQ3hDLFNBQVNDLGVBQWUsUUFBUSx1QkFBdUI7QUFDdkQsY0FBY0MsT0FBTyxRQUFRLGdCQUFnQjtBQUM3QyxTQUFTQyxZQUFZLFFBQVEseUJBQXlCO0FBQ3RELFNBQVNDLGVBQWUsUUFBUSw2QkFBNkI7QUFDN0QsY0FBY0MsZUFBZSxRQUFRLGdDQUFnQztBQUNyRSxTQUFTQyx1QkFBdUIsUUFBUSxtQ0FBbUM7QUFDM0UsU0FBU0MsR0FBRyxFQUFFQyxJQUFJLFFBQVEsV0FBVztBQUNyQyxTQUFTQyxrQkFBa0IsUUFBUSxzQ0FBc0M7QUFDekUsY0FBY0MsTUFBTSxRQUFRLG9CQUFvQjtBQUNoRCxjQUFjQyxLQUFLLFFBQVEsWUFBWTtBQUN2QyxTQUFTQyxjQUFjLFFBQVEsWUFBWTtBQUMzQyxjQUFjQyxzQkFBc0IsUUFBUSxxQ0FBcUM7QUFDakYsY0FDRUMsT0FBTyxJQUFJQyxXQUFXLEVBQ3RCQyxpQkFBaUIsRUFDakJDLGVBQWUsSUFBSUMsbUJBQW1CLEVBQ3RDQyxpQkFBaUIsUUFDWixxQkFBcUI7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
|
|
@@ -445,4 +445,3 @@ function getDefaultEffortLevelForOption(value?: string): EffortLevel {
|
|
|
445
445
|
const defaultValue = getDefaultEffortForModel(resolved);
|
|
446
446
|
return defaultValue !== undefined ? convertEffortValueToLevel(defaultValue) : 'high';
|
|
447
447
|
}
|
|
448
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjYXBpdGFsaXplIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncyIsIkFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMiLCJsb2dFdmVudCIsIkZBU1RfTU9ERV9NT0RFTF9ESVNQTEFZIiwiaXNGYXN0TW9kZUF2YWlsYWJsZSIsImlzRmFzdE1vZGVDb29sZG93biIsImlzRmFzdE1vZGVFbmFibGVkIiwiQm94IiwiVGV4dCIsInVzZUtleWJpbmRpbmdzIiwidXNlQXBwU3RhdGUiLCJ1c2VTZXRBcHBTdGF0ZSIsImNvbnZlcnRFZmZvcnRWYWx1ZVRvTGV2ZWwiLCJFZmZvcnRMZXZlbCIsImdldERlZmF1bHRFZmZvcnRGb3JNb2RlbCIsIm1vZGVsU3VwcG9ydHNFZmZvcnQiLCJtb2RlbFN1cHBvcnRzTWF4RWZmb3J0IiwicmVzb2x2ZVBpY2tlckVmZm9ydFBlcnNpc3RlbmNlIiwidG9QZXJzaXN0YWJsZUVmZm9ydCIsImdldERlZmF1bHRNYWluTG9vcE1vZGVsIiwiTW9kZWxTZXR0aW5nIiwibW9kZWxEaXNwbGF5U3RyaW5nIiwicGFyc2VVc2VyU3BlY2lmaWVkTW9kZWwiLCJnZXRNb2RlbE9wdGlvbnMiLCJnZXRTZXR0aW5nc0ZvclNvdXJjZSIsInVwZGF0ZVNldHRpbmdzRm9yU291cmNlIiwiQ29uZmlndXJhYmxlU2hvcnRjdXRIaW50IiwiU2VsZWN0IiwiQnlsaW5lIiwiS2V5Ym9hcmRTaG9ydGN1dEhpbnQiLCJQYW5lIiwiZWZmb3J0TGV2ZWxUb1N5bWJvbCIsIlByb3BzIiwiaW5pdGlhbCIsInNlc3Npb25Nb2RlbCIsIm9uU2VsZWN0IiwibW9kZWwiLCJlZmZvcnQiLCJvbkNhbmNlbCIsImlzU3RhbmRhbG9uZUNvbW1hbmQiLCJzaG93RmFzdE1vZGVOb3RpY2UiLCJoZWFkZXJUZXh0Iiwic2tpcFNldHRpbmdzV3JpdGUiLCJOT19QUkVGRVJFTkNFIiwiTW9kZWxQaWNrZXIiLCJ0MCIsIiQiLCJfYyIsInNldEFwcFN0YXRlIiwiZXhpdFN0YXRlIiwiaW5pdGlhbFZhbHVlIiwiZm9jdXNlZFZhbHVlIiwic2V0Rm9jdXNlZFZhbHVlIiwiaXNGYXN0TW9kZSIsIl90ZW1wIiwiaGFzVG9nZ2xlZEVmZm9ydCIsInNldEhhc1RvZ2dsZWRFZmZvcnQiLCJlZmZvcnRWYWx1ZSIsIl90ZW1wMiIsInQxIiwidW5kZWZpbmVkIiwic2V0RWZmb3J0IiwidDIiLCJ0MyIsIm1vZGVsT3B0aW9ucyIsInQ0IiwiYmIwIiwic29tZSIsIm9wdCIsInZhbHVlIiwidDUiLCJ0NiIsImxhYmVsIiwiZGVzY3JpcHRpb24iLCJ0NyIsIm9wdGlvbnNXaXRoSW5pdGlhbCIsIm1hcCIsIl90ZW1wMyIsInNlbGVjdE9wdGlvbnMiLCJfIiwiaW5pdGlhbEZvY3VzVmFsdWUiLCJ2aXNpYmxlQ291bnQiLCJNYXRoIiwibWluIiwibGVuZ3RoIiwiaGlkZGVuQ291bnQiLCJtYXgiLCJmaW5kIiwib3B0XzEiLCJmb2N1c2VkTW9kZWxOYW1lIiwiZm9jdXNlZFN1cHBvcnRzRWZmb3J0IiwidDgiLCJmb2N1c2VkTW9kZWwiLCJyZXNvbHZlT3B0aW9uTW9kZWwiLCJmb2N1c2VkU3VwcG9ydHNNYXgiLCJ0OSIsImdldERlZmF1bHRFZmZvcnRMZXZlbEZvck9wdGlvbiIsImZvY3VzZWREZWZhdWx0RWZmb3J0IiwiZGlzcGxheUVmZm9ydCIsInQxMCIsImhhbmRsZUZvY3VzIiwidDExIiwiZGlyZWN0aW9uIiwicHJldiIsImN5Y2xlRWZmb3J0TGV2ZWwiLCJoYW5kbGVDeWNsZUVmZm9ydCIsInQxMiIsIm1vZGVsUGlja2VyOmRlY3JlYXNlRWZmb3J0IiwibW9kZWxQaWNrZXI6aW5jcmVhc2VFZmZvcnQiLCJ0MTMiLCJTeW1ib2wiLCJmb3IiLCJjb250ZXh0IiwidDE0IiwiaGFuZGxlU2VsZWN0IiwidmFsdWVfMCIsImVmZm9ydExldmVsIiwicGVyc2lzdGFibGUiLCJwcmV2XzAiLCJzZWxlY3RlZE1vZGVsIiwic2VsZWN0ZWRFZmZvcnQiLCJ0MTUiLCJ0MTYiLCJ0MTciLCJ0MTgiLCJ0MTkiLCJ0MjAiLCJfdGVtcDQiLCJ0MjEiLCJ0MjIiLCJ0MjMiLCJ0MjQiLCJ0MjUiLCJ0MjYiLCJ0MjciLCJwZW5kaW5nIiwia2V5TmFtZSIsInQyOCIsImNvbnRlbnQiLCJ0MjkiLCJvcHRfMCIsInNfMCIsInMiLCJmYXN0TW9kZSIsIkVmZm9ydExldmVsSW5kaWNhdG9yIiwiY3VycmVudCIsImluY2x1ZGVNYXgiLCJsZXZlbHMiLCJpZHgiLCJpbmRleE9mIiwiY3VycmVudEluZGV4IiwicmVzb2x2ZWQiLCJkZWZhdWx0VmFsdWUiXSwic291cmNlcyI6WyJNb2RlbFBpY2tlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNhcGl0YWxpemUgZnJvbSAnbG9kYXNoLWVzL2NhcGl0YWxpemUuanMnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzIH0gZnJvbSAnc3JjL2hvb2tzL3VzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncy5qcydcbmltcG9ydCB7XG4gIHR5cGUgQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyxcbiAgbG9nRXZlbnQsXG59IGZyb20gJ3NyYy9zZXJ2aWNlcy9hbmFseXRpY3MvaW5kZXguanMnXG5pbXBvcnQge1xuICBGQVNUX01PREVfTU9ERUxfRElTUExBWSxcbiAgaXNGYXN0TW9kZUF2YWlsYWJsZSxcbiAgaXNGYXN0TW9kZUNvb2xkb3duLFxuICBpc0Zhc3RNb2RlRW5hYmxlZCxcbn0gZnJvbSAnc3JjL3V0aWxzL2Zhc3RNb2RlLmpzJ1xuaW1wb3J0IHsgQm94LCBUZXh0IH0gZnJvbSAnLi4vaW5rLmpzJ1xuaW1wb3J0IHsgdXNlS2V5YmluZGluZ3MgfSBmcm9tICcuLi9rZXliaW5kaW5ncy91c2VLZXliaW5kaW5nLmpzJ1xuaW1wb3J0IHsgdXNlQXBwU3RhdGUsIHVzZVNldEFwcFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUvQXBwU3RhdGUuanMnXG5pbXBvcnQge1xuICBjb252ZXJ0RWZmb3J0VmFsdWVUb0xldmVsLFxuICB0eXBlIEVmZm9ydExldmVsLFxuICBnZXREZWZhdWx0RWZmb3J0Rm9yTW9kZWwsXG4gIG1vZGVsU3VwcG9ydHNFZmZvcnQsXG4gIG1vZGVsU3VwcG9ydHNNYXhFZmZvcnQsXG4gIHJlc29sdmVQaWNrZXJFZmZvcnRQZXJzaXN0ZW5jZSxcbiAgdG9QZXJzaXN0YWJsZUVmZm9ydCxcbn0gZnJvbSAnLi4vdXRpbHMvZWZmb3J0LmpzJ1xuaW1wb3J0IHtcbiAgZ2V0RGVmYXVsdE1haW5Mb29wTW9kZWwsXG4gIHR5cGUgTW9kZWxTZXR0aW5nLFxuICBtb2RlbERpc3BsYXlTdHJpbmcsXG4gIHBhcnNlVXNlclNwZWNpZmllZE1vZGVsLFxufSBmcm9tICcuLi91dGlscy9tb2RlbC9tb2RlbC5qcydcbmltcG9ydCB7IGdldE1vZGVsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL21vZGVsL21vZGVsT3B0aW9ucy5qcydcbmltcG9ydCB7XG4gIGdldFNldHRpbmdzRm9yU291cmNlLFxuICB1cGRhdGVTZXR0aW5nc0ZvclNvdXJjZSxcbn0gZnJvbSAnLi4vdXRpbHMvc2V0dGluZ3Mvc2V0dGluZ3MuanMnXG5pbXBvcnQgeyBDb25maWd1cmFibGVTaG9ydGN1dEhpbnQgfSBmcm9tICcuL0NvbmZpZ3VyYWJsZVNob3J0Y3V0SGludC5qcydcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4vQ3VzdG9tU2VsZWN0L2luZGV4LmpzJ1xuaW1wb3J0IHsgQnlsaW5lIH0gZnJvbSAnLi9kZXNpZ24tc3lzdGVtL0J5bGluZS5qcydcbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRIaW50IH0gZnJvbSAnLi9kZXNpZ24tc3lzdGVtL0tleWJvYXJkU2hvcnRjdXRIaW50LmpzJ1xuaW1wb3J0IHsgUGFuZSB9IGZyb20gJy4vZGVzaWduLXN5c3RlbS9QYW5lLmpzJ1xuaW1wb3J0IHsgZWZmb3J0TGV2ZWxUb1N5bWJvbCB9IGZyb20gJy4vRWZmb3J0SW5kaWNhdG9yLmpzJ1xuXG5leHBvcnQgdHlwZSBQcm9wcyA9IHtcbiAgaW5pdGlhbDogc3RyaW5nIHwgbnVsbFxuICBzZXNzaW9uTW9kZWw/OiBNb2RlbFNldHRpbmdcbiAgb25TZWxlY3Q6IChtb2RlbDogc3RyaW5nIHwgbnVsbCwgZWZmb3J0OiBFZmZvcnRMZXZlbCB8IHVuZGVmaW5lZCkgPT4gdm9pZFxuICBvbkNhbmNlbD86ICgpID0+IHZvaWRcbiAgaXNTdGFuZGFsb25lQ29tbWFuZD86IGJvb2xlYW5cbiAgc2hvd0Zhc3RNb2RlTm90aWNlPzogYm9vbGVhblxuICAvKiogT3ZlcnJpZGVzIHRoZSBkaW0gaGVhZGVyIGxpbmUgYmVsb3cgXCJTZWxlY3QgbW9kZWxcIi4gKi9cbiAgaGVhZGVyVGV4dD86IHN0cmluZ1xuICAvKipcbiAgICogV2hlbiB0cnVlLCBza2lwIHdyaXRpbmcgZWZmb3J0TGV2ZWwgdG8gdXNlclNldHRpbmdzIG9uIHNlbGVjdGlvbi5cbiAgICogVXNlZCBieSB0aGUgYXNzaXN0YW50IGluc3RhbGxlciB3aXphcmQgd2hlcmUgdGhlIG1vZGVsIGNob2ljZSBpc1xuICAgKiBwcm9qZWN0LXNjb3BlZCAod3JpdHRlbiB0byB0aGUgYXNzaXN0YW50J3MgLmNsYXVkZS9zZXR0aW5ncy5qc29uIHZpYVxuICAgKiBpbnN0YWxsLnRzKSBhbmQgc2hvdWxkIG5vdCBsZWFrIHRvIHRoZSB1c2VyJ3MgZ2xvYmFsIH4vLmNsYXVkZS9zZXR0aW5ncy5cbiAgICovXG4gIHNraXBTZXR0aW5nc1dyaXRlPzogYm9vbGVhblxufVxuXG5jb25zdCBOT19QUkVGRVJFTkNFID0gJ19fTk9fUFJFRkVSRU5DRV9fJ1xuXG5leHBvcnQgZnVuY3Rpb24gTW9kZWxQaWNrZXIoe1xuICBpbml0aWFsLFxuICBzZXNzaW9uTW9kZWwsXG4gIG9uU2VsZWN0LFxuICBvbkNhbmNlbCxcbiAgaXNTdGFuZGFsb25lQ29tbWFuZCxcbiAgc2hvd0Zhc3RNb2RlTm90aWNlLFxuICBoZWFkZXJUZXh0LFxuICBza2lwU2V0dGluZ3NXcml0ZSxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3Qgc2V0QXBwU3RhdGUgPSB1c2VTZXRBcHBTdGF0ZSgpXG4gIGNvbnN0IGV4aXRTdGF0ZSA9IHVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncygpXG4gIGNvbnN0IG1heFZpc2libGUgPSAxMFxuXG4gIGNvbnN0IGluaXRpYWxWYWx1ZSA9IGluaXRpYWwgPT09IG51bGwgPyBOT19QUkVGRVJFTkNFIDogaW5pdGlhbFxuICBjb25zdCBbZm9jdXNlZFZhbHVlLCBzZXRGb2N1c2VkVmFsdWVdID0gdXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgICBpbml0aWFsVmFsdWUsXG4gIClcblxuICBjb25zdCBpc0Zhc3RNb2RlID0gdXNlQXBwU3RhdGUocyA9PlxuICAgIGlzRmFzdE1vZGVFbmFibGVkKCkgPyBzLmZhc3RNb2RlIDogZmFsc2UsXG4gIClcblxuICBjb25zdCBbaGFzVG9nZ2xlZEVmZm9ydCwgc2V0SGFzVG9nZ2xlZEVmZm9ydF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgZWZmb3J0VmFsdWUgPSB1c2VBcHBTdGF0ZShzID0+IHMuZWZmb3J0VmFsdWUpXG4gIGNvbnN0IFtlZmZvcnQsIHNldEVmZm9ydF0gPSB1c2VTdGF0ZTxFZmZvcnRMZXZlbCB8IHVuZGVmaW5lZD4oXG4gICAgZWZmb3J0VmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgPyBjb252ZXJ0RWZmb3J0VmFsdWVUb0xldmVsKGVmZm9ydFZhbHVlKVxuICAgICAgOiB1bmRlZmluZWQsXG4gIClcblxuICAvLyBNZW1vaXplIGFsbCBkZXJpdmVkIHZhbHVlcyB0byBwcmV2ZW50IHJlLXJlbmRlcnNcbiAgY29uc3QgbW9kZWxPcHRpb25zID0gdXNlTWVtbyhcbiAgICAoKSA9PiBnZXRNb2RlbE9wdGlvbnMoaXNGYXN0TW9kZSA/PyBmYWxzZSksXG4gICAgW2lzRmFzdE1vZGVdLFxuICApXG5cbiAgLy8gRW5zdXJlIHRoZSBpbml0aWFsIHZhbHVlIGlzIGluIHRoZSBvcHRpb25zIGxpc3RcbiAgLy8gVGhpcyBoYW5kbGVzIGVkZ2UgY2FzZXMgd2hlcmUgdGhlIHVzZXIncyBjdXJyZW50IG1vZGVsIChlLmcuLCAnaGFpa3UnIGZvciAzUCB1c2VycylcbiAgLy8gaXMgbm90IGluIHRoZSBiYXNlIG9wdGlvbnMgYnV0IHNob3VsZCBzdGlsbCBiZSBzZWxlY3RhYmxlIGFuZCBzaG93biBhcyBzZWxlY3RlZFxuICBjb25zdCBvcHRpb25zV2l0aEluaXRpYWwgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaW5pdGlhbCAhPT0gbnVsbCAmJiAhbW9kZWxPcHRpb25zLnNvbWUob3B0ID0+IG9wdC52YWx1ZSA9PT0gaW5pdGlhbCkpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLm1vZGVsT3B0aW9ucyxcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiBpbml0aWFsLFxuICAgICAgICAgIGxhYmVsOiBtb2RlbERpc3BsYXlTdHJpbmcoaW5pdGlhbCksXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdDdXJyZW50IG1vZGVsJyxcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9XG4gICAgcmV0dXJuIG1vZGVsT3B0aW9uc1xuICB9LCBbbW9kZWxPcHRpb25zLCBpbml0aWFsXSlcblxuICBjb25zdCBzZWxlY3RPcHRpb25zID0gdXNlTWVtbyhcbiAgICAoKSA9PlxuICAgICAgb3B0aW9uc1dpdGhJbml0aWFsLm1hcChvcHQgPT4gKHtcbiAgICAgICAgLi4ub3B0LFxuICAgICAgICB2YWx1ZTogb3B0LnZhbHVlID09PSBudWxsID8gTk9fUFJFRkVSRU5DRSA6IG9wdC52YWx1ZSxcbiAgICAgIH0pKSxcbiAgICBbb3B0aW9uc1dpdGhJbml0aWFsXSxcbiAgKVxuICBjb25zdCBpbml0aWFsRm9jdXNWYWx1ZSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHNlbGVjdE9wdGlvbnMuc29tZShfID0+IF8udmFsdWUgPT09IGluaXRpYWxWYWx1ZSlcbiAgICAgICAgPyBpbml0aWFsVmFsdWVcbiAgICAgICAgOiAoc2VsZWN0T3B0aW9uc1swXT8udmFsdWUgPz8gdW5kZWZpbmVkKSxcbiAgICBbc2VsZWN0T3B0aW9ucywgaW5pdGlhbFZhbHVlXSxcbiAgKVxuICBjb25zdCB2aXNpYmxlQ291bnQgPSBNYXRoLm1pbihtYXhWaXNpYmxlLCBzZWxlY3RPcHRpb25zLmxlbmd0aClcbiAgY29uc3QgaGlkZGVuQ291bnQgPSBNYXRoLm1heCgwLCBzZWxlY3RPcHRpb25zLmxlbmd0aCAtIHZpc2libGVDb3VudClcblxuICBjb25zdCBmb2N1c2VkTW9kZWxOYW1lID0gc2VsZWN0T3B0aW9ucy5maW5kKFxuICAgIG9wdCA9PiBvcHQudmFsdWUgPT09IGZvY3VzZWRWYWx1ZSxcbiAgKT8ubGFiZWxcbiAgY29uc3QgZm9jdXNlZE1vZGVsID0gcmVzb2x2ZU9wdGlvbk1vZGVsKGZvY3VzZWRWYWx1ZSlcbiAgY29uc3QgZm9jdXNlZFN1cHBvcnRzRWZmb3J0ID0gZm9jdXNlZE1vZGVsXG4gICAgPyBtb2RlbFN1cHBvcnRzRWZmb3J0KGZvY3VzZWRNb2RlbClcbiAgICA6IGZhbHNlXG4gIGNvbnN0IGZvY3VzZWRTdXBwb3J0c01heCA9IGZvY3VzZWRNb2RlbFxuICAgID8gbW9kZWxTdXBwb3J0c01heEVmZm9ydChmb2N1c2VkTW9kZWwpXG4gICAgOiBmYWxzZVxuICBjb25zdCBmb2N1c2VkRGVmYXVsdEVmZm9ydCA9IGdldERlZmF1bHRFZmZvcnRMZXZlbEZvck9wdGlvbihmb2N1c2VkVmFsdWUpXG4gIC8vIENsYW1wIGRpc3BsYXkgd2hlbiAnbWF4JyBpcyBzZWxlY3RlZCBidXQgdGhlIGZvY3VzZWQgbW9kZWwgZG9lc24ndCBzdXBwb3J0IGl0LlxuICAvLyByZXNvbHZlQXBwbGllZEVmZm9ydCgpIGRvZXMgdGhlIHNhbWUgZG93bmdyYWRlIGF0IEFQSS1zZW5kIHRpbWUuXG4gIGNvbnN0IGRpc3BsYXlFZmZvcnQgPVxuICAgIGVmZm9ydCA9PT0gJ21heCcgJiYgIWZvY3VzZWRTdXBwb3J0c01heCA/ICdoaWdoJyA6IGVmZm9ydFxuXG4gIGNvbnN0IGhhbmRsZUZvY3VzID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgIHNldEZvY3VzZWRWYWx1ZSh2YWx1ZSlcbiAgICAgIGlmICghaGFzVG9nZ2xlZEVmZm9ydCAmJiBlZmZvcnRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldEVmZm9ydChnZXREZWZhdWx0RWZmb3J0TGV2ZWxGb3JPcHRpb24odmFsdWUpKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2hhc1RvZ2dsZWRFZmZvcnQsIGVmZm9ydFZhbHVlXSxcbiAgKVxuXG4gIC8vIEVmZm9ydCBsZXZlbCBjeWNsaW5nIGtleWJpbmRpbmdzXG4gIGNvbnN0IGhhbmRsZUN5Y2xlRWZmb3J0ID0gdXNlQ2FsbGJhY2soXG4gICAgKGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JykgPT4ge1xuICAgICAgaWYgKCFmb2N1c2VkU3VwcG9ydHNFZmZvcnQpIHJldHVyblxuICAgICAgc2V0RWZmb3J0KHByZXYgPT5cbiAgICAgICAgY3ljbGVFZmZvcnRMZXZlbChcbiAgICAgICAgICBwcmV2ID8/IGZvY3VzZWREZWZhdWx0RWZmb3J0LFxuICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICBmb2N1c2VkU3VwcG9ydHNNYXgsXG4gICAgICAgICksXG4gICAgICApXG4gICAgICBzZXRIYXNUb2dnbGVkRWZmb3J0KHRydWUpXG4gICAgfSxcbiAgICBbZm9jdXNlZFN1cHBvcnRzRWZmb3J0LCBmb2N1c2VkU3VwcG9ydHNNYXgsIGZvY3VzZWREZWZhdWx0RWZmb3J0XSxcbiAgKVxuXG4gIHVzZUtleWJpbmRpbmdzKFxuICAgIHtcbiAgICAgICdtb2RlbFBpY2tlcjpkZWNyZWFzZUVmZm9ydCc6ICgpID0+IGhhbmRsZUN5Y2xlRWZmb3J0KCdsZWZ0JyksXG4gICAgICAnbW9kZWxQaWNrZXI6aW5jcmVhc2VFZmZvcnQnOiAoKSA9PiBoYW5kbGVDeWNsZUVmZm9ydCgncmlnaHQnKSxcbiAgICB9LFxuICAgIHsgY29udGV4dDogJ01vZGVsUGlja2VyJyB9LFxuICApXG5cbiAgZnVuY3Rpb24gaGFuZGxlU2VsZWN0KHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsb2dFdmVudCgndGVuZ3VfbW9kZWxfY29tbWFuZF9tZW51X2VmZm9ydCcsIHtcbiAgICAgIGVmZm9ydDpcbiAgICAgICAgZWZmb3J0IGFzIEFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMsXG4gICAgfSlcbiAgICBpZiAoIXNraXBTZXR0aW5nc1dyaXRlKSB7XG4gICAgICAvLyBQcmlvciBjb21lcyBmcm9tIHVzZXJTZXR0aW5ncyBvbiBkaXNrIOKAlCBOT1QgbWVyZ2VkIHNldHRpbmdzICh3aGljaFxuICAgICAgLy8gaW5jbHVkZXMgcHJvamVjdC9wb2xpY3kgbGF5ZXJzIHRoYXQgbXVzdCBub3QgbGVhayBpbnRvIHRoZSB1c2VyJ3NcbiAgICAgIC8vIGdsb2JhbCB+Ly5jbGF1ZGUvc2V0dGluZ3MuanNvbiksIGFuZCBOT1QgQXBwU3RhdGUuZWZmb3J0VmFsdWUgKHdoaWNoXG4gICAgICAvLyBpbmNsdWRlcyBzZXNzaW9uLWVwaGVtZXJhbCBzb3VyY2VzIGxpa2UgLS1lZmZvcnQgQ0xJIGZsYWcpLlxuICAgICAgLy8gU2VlIHJlc29sdmVQaWNrZXJFZmZvcnRQZXJzaXN0ZW5jZSBKU0RvYy5cbiAgICAgIGNvbnN0IGVmZm9ydExldmVsID0gcmVzb2x2ZVBpY2tlckVmZm9ydFBlcnNpc3RlbmNlKFxuICAgICAgICBlZmZvcnQsXG4gICAgICAgIGdldERlZmF1bHRFZmZvcnRMZXZlbEZvck9wdGlvbih2YWx1ZSksXG4gICAgICAgIGdldFNldHRpbmdzRm9yU291cmNlKCd1c2VyU2V0dGluZ3MnKT8uZWZmb3J0TGV2ZWwsXG4gICAgICAgIGhhc1RvZ2dsZWRFZmZvcnQsXG4gICAgICApXG4gICAgICBjb25zdCBwZXJzaXN0YWJsZSA9IHRvUGVyc2lzdGFibGVFZmZvcnQoZWZmb3J0TGV2ZWwpXG4gICAgICBpZiAocGVyc2lzdGFibGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB1cGRhdGVTZXR0aW5nc0ZvclNvdXJjZSgndXNlclNldHRpbmdzJywgeyBlZmZvcnRMZXZlbDogcGVyc2lzdGFibGUgfSlcbiAgICAgIH1cbiAgICAgIHNldEFwcFN0YXRlKHByZXYgPT4gKHsgLi4ucHJldiwgZWZmb3J0VmFsdWU6IGVmZm9ydExldmVsIH0pKVxuICAgIH1cblxuICAgIGNvbnN0IHNlbGVjdGVkTW9kZWwgPSByZXNvbHZlT3B0aW9uTW9kZWwodmFsdWUpXG4gICAgY29uc3Qgc2VsZWN0ZWRFZmZvcnQgPVxuICAgICAgaGFzVG9nZ2xlZEVmZm9ydCAmJiBzZWxlY3RlZE1vZGVsICYmIG1vZGVsU3VwcG9ydHNFZmZvcnQoc2VsZWN0ZWRNb2RlbClcbiAgICAgICAgPyBlZmZvcnRcbiAgICAgICAgOiB1bmRlZmluZWRcbiAgICBpZiAodmFsdWUgPT09IE5PX1BSRUZFUkVOQ0UpIHtcbiAgICAgIG9uU2VsZWN0KG51bGwsIHNlbGVjdGVkRWZmb3J0KVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIG9uU2VsZWN0KHZhbHVlLCBzZWxlY3RlZEVmZm9ydClcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCI+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgPEJveCBtYXJnaW5Cb3R0b209ezF9IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInJlbWVtYmVyXCIgYm9sZD5cbiAgICAgICAgICAgIFNlbGVjdCBtb2RlbFxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICAgIHtoZWFkZXJUZXh0ID8/XG4gICAgICAgICAgICAgICdTd2l0Y2ggYmV0d2VlbiBDbGF1ZGUgbW9kZWxzLiBBcHBsaWVzIHRvIHRoaXMgc2Vzc2lvbiBhbmQgZnV0dXJlIENsYXVkZSBDb2RlIHNlc3Npb25zLiBGb3Igb3RoZXIvcHJldmlvdXMgbW9kZWwgbmFtZXMsIHNwZWNpZnkgd2l0aCAtLW1vZGVsLid9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIHtzZXNzaW9uTW9kZWwgJiYgKFxuICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgIEN1cnJlbnRseSB1c2luZyB7bW9kZWxEaXNwbGF5U3RyaW5nKHNlc3Npb25Nb2RlbCl9IGZvciB0aGlzXG4gICAgICAgICAgICAgIHNlc3Npb24gKHNldCBieSBwbGFuIG1vZGUpLiBTZWxlY3RpbmcgYSBtb2RlbCB3aWxsIHVuZG8gdGhpcy5cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICApfVxuICAgICAgICA8L0JveD5cblxuICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBtYXJnaW5Cb3R0b209ezF9PlxuICAgICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2luaXRpYWxWYWx1ZX1cbiAgICAgICAgICAgICAgZGVmYXVsdEZvY3VzVmFsdWU9e2luaXRpYWxGb2N1c1ZhbHVlfVxuICAgICAgICAgICAgICBvcHRpb25zPXtzZWxlY3RPcHRpb25zfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlU2VsZWN0fVxuICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgb25DYW5jZWw9e29uQ2FuY2VsID8/ICgoKSA9PiB7fSl9XG4gICAgICAgICAgICAgIHZpc2libGVPcHRpb25Db3VudD17dmlzaWJsZUNvdW50fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICB7aGlkZGVuQ291bnQgPiAwICYmIChcbiAgICAgICAgICAgIDxCb3ggcGFkZGluZ0xlZnQ9ezN9PlxuICAgICAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5hbmQge2hpZGRlbkNvdW50fSBtb3Jl4oCmPC9UZXh0PlxuICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9Cb3g+XG5cbiAgICAgICAgPEJveCBtYXJnaW5Cb3R0b209ezF9IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAgICB7Zm9jdXNlZFN1cHBvcnRzRWZmb3J0ID8gKFxuICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgIDxFZmZvcnRMZXZlbEluZGljYXRvciBlZmZvcnQ9e2Rpc3BsYXlFZmZvcnR9IC8+eycgJ31cbiAgICAgICAgICAgICAge2NhcGl0YWxpemUoZGlzcGxheUVmZm9ydCl9IGVmZm9ydFxuICAgICAgICAgICAgICB7ZGlzcGxheUVmZm9ydCA9PT0gZm9jdXNlZERlZmF1bHRFZmZvcnQgPyBgIChkZWZhdWx0KWAgOiBgYH17JyAnfVxuICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cInN1YnRsZVwiPuKGkCDihpIgdG8gYWRqdXN0PC9UZXh0PlxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VGV4dCBjb2xvcj1cInN1YnRsZVwiPlxuICAgICAgICAgICAgICA8RWZmb3J0TGV2ZWxJbmRpY2F0b3IgZWZmb3J0PXt1bmRlZmluZWR9IC8+IEVmZm9ydCBub3Qgc3VwcG9ydGVkXG4gICAgICAgICAgICAgIHtmb2N1c2VkTW9kZWxOYW1lID8gYCBmb3IgJHtmb2N1c2VkTW9kZWxOYW1lfWAgOiAnJ31cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICApfVxuICAgICAgICA8L0JveD5cblxuICAgICAgICB7aXNGYXN0TW9kZUVuYWJsZWQoKSA/IChcbiAgICAgICAgICBzaG93RmFzdE1vZGVOb3RpY2UgPyAoXG4gICAgICAgICAgICA8Qm94IG1hcmdpbkJvdHRvbT17MX0+XG4gICAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPlxuICAgICAgICAgICAgICAgIEZhc3QgbW9kZSBpcyA8VGV4dCBib2xkPk9OPC9UZXh0PiBhbmQgYXZhaWxhYmxlIHdpdGh7JyAnfVxuICAgICAgICAgICAgICAgIHtGQVNUX01PREVfTU9ERUxfRElTUExBWX0gb25seSAoL2Zhc3QpLiBTd2l0Y2hpbmcgdG8gb3RoZXJcbiAgICAgICAgICAgICAgICBtb2RlbHMgdHVybiBvZmYgZmFzdCBtb2RlLlxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICApIDogaXNGYXN0TW9kZUF2YWlsYWJsZSgpICYmICFpc0Zhc3RNb2RlQ29vbGRvd24oKSA/IChcbiAgICAgICAgICAgIDxCb3ggbWFyZ2luQm90dG9tPXsxfT5cbiAgICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgICAgVXNlIDxUZXh0IGJvbGQ+L2Zhc3Q8L1RleHQ+IHRvIHR1cm4gb24gRmFzdCBtb2RlIChcbiAgICAgICAgICAgICAgICB7RkFTVF9NT0RFX01PREVMX0RJU1BMQVl9IG9ubHkpLlxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICApIDogbnVsbFxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvQm94PlxuXG4gICAgICB7aXNTdGFuZGFsb25lQ29tbWFuZCAmJiAoXG4gICAgICAgIDxUZXh0IGRpbUNvbG9yIGl0YWxpYz5cbiAgICAgICAgICB7ZXhpdFN0YXRlLnBlbmRpbmcgPyAoXG4gICAgICAgICAgICA8PlByZXNzIHtleGl0U3RhdGUua2V5TmFtZX0gYWdhaW4gdG8gZXhpdDwvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8QnlsaW5lPlxuICAgICAgICAgICAgICA8S2V5Ym9hcmRTaG9ydGN1dEhpbnQgc2hvcnRjdXQ9XCJFbnRlclwiIGFjdGlvbj1cImNvbmZpcm1cIiAvPlxuICAgICAgICAgICAgICA8Q29uZmlndXJhYmxlU2hvcnRjdXRIaW50XG4gICAgICAgICAgICAgICAgYWN0aW9uPVwic2VsZWN0OmNhbmNlbFwiXG4gICAgICAgICAgICAgICAgY29udGV4dD1cIlNlbGVjdFwiXG4gICAgICAgICAgICAgICAgZmFsbGJhY2s9XCJFc2NcIlxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwiZXhpdFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L0J5bGluZT5cbiAgICAgICAgICApfVxuICAgICAgICA8L1RleHQ+XG4gICAgICApfVxuICAgIDwvQm94PlxuICApXG5cbiAgaWYgKCFpc1N0YW5kYWxvbmVDb21tYW5kKSB7XG4gICAgcmV0dXJuIGNvbnRlbnRcbiAgfVxuXG4gIHJldHVybiA8UGFuZSBjb2xvcj1cInBlcm1pc3Npb25cIj57Y29udGVudH08L1BhbmU+XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVPcHRpb25Nb2RlbCh2YWx1ZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmICghdmFsdWUpIHJldHVybiB1bmRlZmluZWRcbiAgcmV0dXJuIHZhbHVlID09PSBOT19QUkVGRVJFTkNFXG4gICAgPyBnZXREZWZhdWx0TWFpbkxvb3BNb2RlbCgpXG4gICAgOiBwYXJzZVVzZXJTcGVjaWZpZWRNb2RlbCh2YWx1ZSlcbn1cblxuZnVuY3Rpb24gRWZmb3J0TGV2ZWxJbmRpY2F0b3Ioe1xuICBlZmZvcnQsXG59OiB7XG4gIGVmZm9ydD86IEVmZm9ydExldmVsXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgcmV0dXJuIChcbiAgICA8VGV4dCBjb2xvcj17ZWZmb3J0ID8gJ2NsYXVkZScgOiAnc3VidGxlJ30+XG4gICAgICB7ZWZmb3J0TGV2ZWxUb1N5bWJvbChlZmZvcnQgPz8gJ2xvdycpfVxuICAgIDwvVGV4dD5cbiAgKVxufVxuXG5mdW5jdGlvbiBjeWNsZUVmZm9ydExldmVsKFxuICBjdXJyZW50OiBFZmZvcnRMZXZlbCxcbiAgZGlyZWN0aW9uOiAnbGVmdCcgfCAncmlnaHQnLFxuICBpbmNsdWRlTWF4OiBib29sZWFuLFxuKTogRWZmb3J0TGV2ZWwge1xuICBjb25zdCBsZXZlbHM6IEVmZm9ydExldmVsW10gPSBpbmNsdWRlTWF4XG4gICAgPyBbJ2xvdycsICdtZWRpdW0nLCAnaGlnaCcsICdtYXgnXVxuICAgIDogWydsb3cnLCAnbWVkaXVtJywgJ2hpZ2gnXVxuICAvLyBJZiB0aGUgY3VycmVudCBsZXZlbCBpc24ndCBpbiB0aGUgY3ljbGUgKGUuZy4gJ21heCcgYWZ0ZXIgc3dpdGNoaW5nIHRvIGFcbiAgLy8gbm9uLU9wdXMgbW9kZWwpLCBjbGFtcCB0byAnaGlnaCcuXG4gIGNvbnN0IGlkeCA9IGxldmVscy5pbmRleE9mKGN1cnJlbnQpXG4gIGNvbnN0IGN1cnJlbnRJbmRleCA9IGlkeCAhPT0gLTEgPyBpZHggOiBsZXZlbHMuaW5kZXhPZignaGlnaCcpXG4gIGlmIChkaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcbiAgICByZXR1cm4gbGV2ZWxzWyhjdXJyZW50SW5kZXggKyAxKSAlIGxldmVscy5sZW5ndGhdIVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBsZXZlbHNbKGN1cnJlbnRJbmRleCAtIDEgKyBsZXZlbHMubGVuZ3RoKSAlIGxldmVscy5sZW5ndGhdIVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldERlZmF1bHRFZmZvcnRMZXZlbEZvck9wdGlvbih2YWx1ZT86IHN0cmluZyk6IEVmZm9ydExldmVsIHtcbiAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlT3B0aW9uTW9kZWwodmFsdWUpID8/IGdldERlZmF1bHRNYWluTG9vcE1vZGVsKClcbiAgY29uc3QgZGVmYXVsdFZhbHVlID0gZ2V0RGVmYXVsdEVmZm9ydEZvck1vZGVsKHJlc29sdmVkKVxuICByZXR1cm4gZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWRcbiAgICA/IGNvbnZlcnRFZmZvcnRWYWx1ZVRvTGV2ZWwoZGVmYXVsdFZhbHVlKVxuICAgIDogJ2hpZ2gnXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxVQUFVLE1BQU0seUJBQXlCO0FBQ2hELE9BQU8sS0FBS0MsS0FBSyxNQUFNLE9BQU87QUFDOUIsU0FBU0MsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3RELFNBQVNDLDhCQUE4QixRQUFRLDZDQUE2QztBQUM1RixTQUNFLEtBQUtDLDBEQUEwRCxFQUMvREMsUUFBUSxRQUNILGlDQUFpQztBQUN4QyxTQUNFQyx1QkFBdUIsRUFDdkJDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxpQkFBaUIsUUFDWix1QkFBdUI7QUFDOUIsU0FBU0MsR0FBRyxFQUFFQyxJQUFJLFFBQVEsV0FBVztBQUNyQyxTQUFTQyxjQUFjLFFBQVEsaUNBQWlDO0FBQ2hFLFNBQVNDLFdBQVcsRUFBRUMsY0FBYyxRQUFRLHNCQUFzQjtBQUNsRSxTQUNFQyx5QkFBeUIsRUFDekIsS0FBS0MsV0FBVyxFQUNoQkMsd0JBQXdCLEVBQ3hCQyxtQkFBbUIsRUFDbkJDLHNCQUFzQixFQUN0QkMsOEJBQThCLEVBQzlCQyxtQkFBbUIsUUFDZCxvQkFBb0I7QUFDM0IsU0FDRUMsdUJBQXVCLEVBQ3ZCLEtBQUtDLFlBQVksRUFDakJDLGtCQUFrQixFQUNsQkMsdUJBQXVCLFFBQ2xCLHlCQUF5QjtBQUNoQyxTQUFTQyxlQUFlLFFBQVEsZ0NBQWdDO0FBQ2hFLFNBQ0VDLG9CQUFvQixFQUNwQkMsdUJBQXVCLFFBQ2xCLCtCQUErQjtBQUN0QyxTQUFTQyx3QkFBd0IsUUFBUSwrQkFBK0I7QUFDeEUsU0FBU0MsTUFBTSxRQUFRLHlCQUF5QjtBQUNoRCxTQUFTQyxNQUFNLFFBQVEsMkJBQTJCO0FBQ2xELFNBQVNDLG9CQUFvQixRQUFRLHlDQUF5QztBQUM5RSxTQUFTQyxJQUFJLFFBQVEseUJBQXlCO0FBQzlDLFNBQVNDLG1CQUFtQixRQUFRLHNCQUFzQjtBQUUxRCxPQUFPLEtBQUtDLEtBQUssR0FBRztFQUNsQkMsT0FBTyxFQUFFLE1BQU0sR0FBRyxJQUFJO0VBQ3RCQyxZQUFZLENBQUMsRUFBRWQsWUFBWTtFQUMzQmUsUUFBUSxFQUFFLENBQUNDLEtBQUssRUFBRSxNQUFNLEdBQUcsSUFBSSxFQUFFQyxNQUFNLEVBQUV4QixXQUFXLEdBQUcsU0FBUyxFQUFFLEdBQUcsSUFBSTtFQUN6RXlCLFFBQVEsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJO0VBQ3JCQyxtQkFBbUIsQ0FBQyxFQUFFLE9BQU87RUFDN0JDLGtCQUFrQixDQUFDLEVBQUUsT0FBTztFQUM1QjtFQUNBQyxVQUFVLENBQUMsRUFBRSxNQUFNO0VBQ25CO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFQyxpQkFBaUIsQ0FBQyxFQUFFLE9BQU87QUFDN0IsQ0FBQztBQUVELE1BQU1DLGFBQWEsR0FBRyxtQkFBbUI7QUFFekMsT0FBTyxTQUFBQyxZQUFBQyxFQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQXFCO0lBQUFkLE9BQUE7SUFBQUMsWUFBQTtJQUFBQyxRQUFBO0lBQUFHLFFBQUE7SUFBQUMsbUJBQUE7SUFBQUMsa0JBQUE7SUFBQUMsVUFBQTtJQUFBQztFQUFBLElBQUFHLEVBU3BCO0VBQ04sTUFBQUcsV0FBQSxHQUFvQnJDLGNBQWMsQ0FBQyxDQUFDO0VBQ3BDLE1BQUFzQyxTQUFBLEdBQWtCakQsOEJBQThCLENBQUMsQ0FBQztFQUdsRCxNQUFBa0QsWUFBQSxHQUFxQmpCLE9BQU8sS0FBSyxJQUE4QixHQUExQ1UsYUFBMEMsR0FBMUNWLE9BQTBDO0VBQy9ELE9BQUFrQixZQUFBLEVBQUFDLGVBQUEsSUFBd0NyRCxRQUFRLENBQzlDbUQsWUFDRixDQUFDO0VBRUQsTUFBQUcsVUFBQSxHQUFtQjNDLFdBQVcsQ0FBQzRDLEtBRS9CLENBQUM7RUFFRCxPQUFBQyxnQkFBQSxFQUFBQyxtQkFBQSxJQUFnRHpELFFBQVEsQ0FBQyxLQUFLLENBQUM7RUFDL0QsTUFBQTBELFdBQUEsR0FBb0IvQyxXQUFXLENBQUNnRCxNQUFrQixDQUFDO0VBQUEsSUFBQUMsRUFBQTtFQUFBLElBQUFiLENBQUEsUUFBQVcsV0FBQTtJQUVqREUsRUFBQSxHQUFBRixXQUFXLEtBQUtHLFNBRUgsR0FEVGhELHlCQUF5QixDQUFDNkMsV0FDbEIsQ0FBQyxHQUZiRyxTQUVhO0lBQUFkLENBQUEsTUFBQVcsV0FBQTtJQUFBWCxDQUFBLE1BQUFhLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFiLENBQUE7RUFBQTtFQUhmLE9BQUFULE1BQUEsRUFBQXdCLFNBQUEsSUFBNEI5RCxRQUFRLENBQ2xDNEQsRUFHRixDQUFDO0VBSXVCLE1BQUFHLEVBQUEsR0FBQVQsVUFBbUIsSUFBbkIsS0FBbUI7RUFBQSxJQUFBVSxFQUFBO0VBQUEsSUFBQWpCLENBQUEsUUFBQWdCLEVBQUE7SUFBbkNDLEVBQUEsR0FBQXhDLGVBQWUsQ0FBQ3VDLEVBQW1CLENBQUM7SUFBQWhCLENBQUEsTUFBQWdCLEVBQUE7SUFBQWhCLENBQUEsTUFBQWlCLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFqQixDQUFBO0VBQUE7RUFENUMsTUFBQWtCLFlBQUEsR0FDUUQsRUFBb0M7RUFFM0MsSUFBQUUsRUFBQTtFQUFBQyxHQUFBO0lBTUMsSUFBSWpDLE9BQU8sS0FBSyxJQUF3RCxJQUFwRSxDQUFxQitCLFlBQVksQ0FBQUcsSUFBSyxDQUFDQyxHQUFBLElBQU9BLEdBQUcsQ0FBQUMsS0FBTSxLQUFLcEMsT0FBTyxDQUFDO01BQUEsSUFBQXFDLEVBQUE7TUFBQSxJQUFBeEIsQ0FBQSxRQUFBYixPQUFBO1FBSzNEcUMsRUFBQSxHQUFBakQsa0JBQWtCLENBQUNZLE9BQU8sQ0FBQztRQUFBYSxDQUFBLE1BQUFiLE9BQUE7UUFBQWEsQ0FBQSxNQUFBd0IsRUFBQTtNQUFBO1FBQUFBLEVBQUEsR0FBQXhCLENBQUE7TUFBQTtNQUFBLElBQUF5QixFQUFBO01BQUEsSUFBQXpCLENBQUEsUUFBQWIsT0FBQSxJQUFBYSxDQUFBLFFBQUF3QixFQUFBO1FBRnBDQyxFQUFBO1VBQUFGLEtBQUEsRUFDU3BDLE9BQU87VUFBQXVDLEtBQUEsRUFDUEYsRUFBMkI7VUFBQUcsV0FBQSxFQUNyQjtRQUNmLENBQUM7UUFBQTNCLENBQUEsTUFBQWIsT0FBQTtRQUFBYSxDQUFBLE1BQUF3QixFQUFBO1FBQUF4QixDQUFBLE1BQUF5QixFQUFBO01BQUE7UUFBQUEsRUFBQSxHQUFBekIsQ0FBQTtNQUFBO01BQUEsSUFBQTRCLEVBQUE7TUFBQSxJQUFBNUIsQ0FBQSxRQUFBa0IsWUFBQSxJQUFBbEIsQ0FBQSxTQUFBeUIsRUFBQTtRQU5JRyxFQUFBLE9BQ0ZWLFlBQVksRUFDZk8sRUFJQyxDQUNGO1FBQUF6QixDQUFBLE1BQUFrQixZQUFBO1FBQUFsQixDQUFBLE9BQUF5QixFQUFBO1FBQUF6QixDQUFBLE9BQUE0QixFQUFBO01BQUE7UUFBQUEsRUFBQSxHQUFBNUIsQ0FBQTtNQUFBO01BUERtQixFQUFBLEdBQU9TLEVBT047TUFQRCxNQUFBUixHQUFBO0lBT0M7SUFFSEQsRUFBQSxHQUFPRCxZQUFZO0VBQUE7RUFYckIsTUFBQVcsa0JBQUEsR0FBMkJWLEVBWUE7RUFBQSxJQUFBSyxFQUFBO0VBQUEsSUFBQXhCLENBQUEsU0FBQTZCLGtCQUFBO0lBSXZCTCxFQUFBLEdBQUFLLGtCQUFrQixDQUFBQyxHQUFJLENBQUNDLE1BR3JCLENBQUM7SUFBQS9CLENBQUEsT0FBQTZCLGtCQUFBO0lBQUE3QixDQUFBLE9BQUF3QixFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBeEIsQ0FBQTtFQUFBO0VBTFAsTUFBQWdDLGFBQUEsR0FFSVIsRUFHRztFQUVOLElBQUFDLEVBQUE7RUFBQSxJQUFBekIsQ0FBQSxTQUFBSSxZQUFBLElBQUFKLENBQUEsU0FBQWdDLGFBQUE7SUFHR1AsRUFBQSxHQUFBTyxhQUFhLENBQUFYLElBQUssQ0FBQ1ksQ0FBQSxJQUFLQSxDQUFDLENBQUFWLEtBQU0sS0FBS25CLFlBRUssQ0FBQyxHQUYxQ0EsWUFFMEMsR0FBckM0QixhQUFhLEdBQVUsRUFBQVQsS0FBYSxJQUFwQ1QsU0FBcUM7SUFBQWQsQ0FBQSxPQUFBSSxZQUFBO0lBQUFKLENBQUEsT0FBQWdDLGFBQUE7SUFBQWhDLENBQUEsT0FBQXlCLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUF6QixDQUFBO0VBQUE7RUFKOUMsTUFBQWtDLGlCQUFBLEdBRUlULEVBRTBDO0VBRzlDLE1BQUFVLFlBQUEsR0FBcUJDLElBQUksQ0FBQUMsR0FBSSxDQXpEVixFQUFFLEVBeURxQkwsYUFBYSxDQUFBTSxNQUFPLENBQUM7RUFDL0QsTUFBQUMsV0FBQSxHQUFvQkgsSUFBSSxDQUFBSSxHQUFJLENBQUMsQ0FBQyxFQUFFUixhQUFhLENBQUFNLE1BQU8sR0FBR0gsWUFBWSxDQUFDO0VBQUEsSUFBQVAsRUFBQTtFQUFBLElBQUE1QixDQUFBLFNBQUFLLFlBQUEsSUFBQUwsQ0FBQSxTQUFBZ0MsYUFBQTtJQUUzQ0osRUFBQSxHQUFBSSxhQUFhLENBQUFTLElBQUssQ0FDekNDLEtBQUEsSUFBT3BCLEtBQUcsQ0FBQUMsS0FBTSxLQUFLbEIsWUFDaEIsQ0FBQyxFQUFBcUIsS0FBQTtJQUFBMUIsQ0FBQSxPQUFBSyxZQUFBO0lBQUFMLENBQUEsT0FBQWdDLGFBQUE7SUFBQWhDLENBQUEsT0FBQTRCLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUE1QixDQUFBO0VBQUE7RUFGUixNQUFBMkMsZ0JBQUEsR0FBeUJmLEVBRWpCO0VBQUEsSUFBQWdCLHFCQUFBO0VBQUEsSUFBQUMsRUFBQTtFQUFBLElBQUE3QyxDQUFBLFNBQUFLLFlBQUE7SUFDUixNQUFBeUMsWUFBQSxHQUFxQkMsa0JBQWtCLENBQUMxQyxZQUFZLENBQUM7SUFDckR1QyxxQkFBQSxHQUE4QkUsWUFBWSxHQUN0QzdFLG1CQUFtQixDQUFDNkUsWUFDaEIsQ0FBQyxHQUZxQixLQUVyQjtJQUNrQkQsRUFBQSxHQUFBQyxZQUFZLEdBQ25DNUUsc0JBQXNCLENBQUM0RSxZQUNuQixDQUFDLEdBRmtCLEtBRWxCO0lBQUE5QyxDQUFBLE9BQUFLLFlBQUE7SUFBQUwsQ0FBQSxPQUFBNEMscUJBQUE7SUFBQTVDLENBQUEsT0FBQTZDLEVBQUE7RUFBQTtJQUFBRCxxQkFBQSxHQUFBNUMsQ0FBQTtJQUFBNkMsRUFBQSxHQUFBN0MsQ0FBQTtFQUFBO0VBRlQsTUFBQWdELGtCQUFBLEdBQTJCSCxFQUVsQjtFQUFBLElBQUFJLEVBQUE7RUFBQSxJQUFBakQsQ0FBQSxTQUFBSyxZQUFBO0lBQ29CNEMsRUFBQSxHQUFBQyw4QkFBOEIsQ0FBQzdDLFlBQVksQ0FBQztJQUFBTCxDQUFBLE9BQUFLLFlBQUE7SUFBQUwsQ0FBQSxPQUFBaUQsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQWpELENBQUE7RUFBQTtFQUF6RSxNQUFBbUQsb0JBQUEsR0FBNkJGLEVBQTRDO0VBR3pFLE1BQUFHLGFBQUEsR0FDRTdELE1BQU0sS0FBSyxLQUE0QixJQUF2QyxDQUFxQnlELGtCQUFvQyxHQUF6RCxNQUF5RCxHQUF6RHpELE1BQXlEO0VBQUEsSUFBQThELEdBQUE7RUFBQSxJQUFBckQsQ0FBQSxTQUFBVyxXQUFBLElBQUFYLENBQUEsU0FBQVMsZ0JBQUE7SUFHekQ0QyxHQUFBLEdBQUE5QixLQUFBO01BQ0VqQixlQUFlLENBQUNpQixLQUFLLENBQUM7TUFDdEIsSUFBSSxDQUFDZCxnQkFBNkMsSUFBekJFLFdBQVcsS0FBS0csU0FBUztRQUNoREMsU0FBUyxDQUFDbUMsOEJBQThCLENBQUMzQixLQUFLLENBQUMsQ0FBQztNQUFBO0lBQ2pELENBQ0Y7SUFBQXZCLENBQUEsT0FBQVcsV0FBQTtJQUFBWCxDQUFBLE9BQUFTLGdCQUFBO0lBQUFULENBQUEsT0FBQXFELEdBQUE7RUFBQTtJQUFBQSxHQUFBLEdBQUFyRCxDQUFBO0VBQUE7RUFOSCxNQUFBc0QsV0FBQSxHQUFvQkQsR0FRbkI7RUFBQSxJQUFBRSxHQUFBO0VBQUEsSUFBQXZELENBQUEsU0FBQW1ELG9CQUFBLElBQUFuRCxDQUFBLFNBQUE0QyxxQkFBQSxJQUFBNUMsQ0FBQSxTQUFBZ0Qsa0JBQUE7SUFJQ08sR0FBQSxHQUFBQyxTQUFBO01BQ0UsSUFBSSxDQUFDWixxQkFBcUI7UUFBQTtNQUFBO01BQzFCN0IsU0FBUyxDQUFDMEMsSUFBQSxJQUNSQyxnQkFBZ0IsQ0FDZEQsSUFBNEIsSUFBNUJOLG9CQUE0QixFQUM1QkssU0FBUyxFQUNUUixrQkFDRixDQUNGLENBQUM7TUFDRHRDLG1CQUFtQixDQUFDLElBQUksQ0FBQztJQUFBLENBQzFCO0lBQUFWLENBQUEsT0FBQW1ELG9CQUFBO0lBQUFuRCxDQUFBLE9BQUE0QyxxQkFBQTtJQUFBNUMsQ0FBQSxPQUFBZ0Qsa0JBQUE7SUFBQWhELENBQUEsT0FBQXVELEdBQUE7RUFBQTtJQUFBQSxHQUFBLEdBQUF2RCxDQUFBO0VBQUE7RUFYSCxNQUFBMkQsaUJBQUEsR0FBMEJKLEdBYXpCO0VBQUEsSUFBQUssR0FBQTtFQUFBLElBQUE1RCxDQUFBLFNBQUEyRCxpQkFBQTtJQUdDQyxHQUFBO01BQUEsOEJBQ2dDQyxDQUFBLEtBQU1GLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztNQUFBLDhCQUMvQkcsQ0FBQSxLQUFNSCxpQkFBaUIsQ0FBQyxPQUFPO0lBQy9ELENBQUM7SUFBQTNELENBQUEsT0FBQTJELGlCQUFBO0lBQUEzRCxDQUFBLE9BQUE0RCxHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBNUQsQ0FBQTtFQUFBO0VBQUEsSUFBQStELEdBQUE7RUFBQSxJQUFBL0QsQ0FBQSxTQUFBZ0UsTUFBQSxDQUFBQyxHQUFBO0lBQ0RGLEdBQUE7TUFBQUcsT0FBQSxFQUFXO0lBQWMsQ0FBQztJQUFBbEUsQ0FBQSxPQUFBK0QsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQS9ELENBQUE7RUFBQTtFQUw1QnJDLGNBQWMsQ0FDWmlHLEdBR0MsRUFDREcsR0FDRixDQUFDO0VBQUEsSUFBQUksR0FBQTtFQUFBLElBQUFuRSxDQUFBLFNBQUFULE1BQUEsSUFBQVMsQ0FBQSxTQUFBUyxnQkFBQSxJQUFBVCxDQUFBLFNBQUFYLFFBQUEsSUFBQVcsQ0FBQSxTQUFBRSxXQUFBLElBQUFGLENBQUEsU0FBQUosaUJBQUE7SUFFRHVFLEdBQUEsWUFBQUMsYUFBQUMsT0FBQTtNQUNFakgsUUFBUSxDQUFDLGlDQUFpQyxFQUFFO1FBQUFtQyxNQUFBLEVBRXhDQSxNQUFNLElBQUlwQztNQUNkLENBQUMsQ0FBQztNQUNGLElBQUksQ0FBQ3lDLGlCQUFpQjtRQU1wQixNQUFBMEUsV0FBQSxHQUFvQm5HLDhCQUE4QixDQUNoRG9CLE1BQU0sRUFDTjJELDhCQUE4QixDQUFDM0IsT0FBSyxDQUFDLEVBQ3JDN0Msb0JBQW9CLENBQUMsY0FBMkIsQ0FBQyxFQUFBNEYsV0FBQSxFQUNqRDdELGdCQUNGLENBQUM7UUFDRCxNQUFBOEQsV0FBQSxHQUFvQm5HLG1CQUFtQixDQUFDa0csV0FBVyxDQUFDO1FBQ3BELElBQUlDLFdBQVcsS0FBS3pELFNBQVM7VUFDM0JuQyx1QkFBdUIsQ0FBQyxjQUFjLEVBQUU7WUFBQTJGLFdBQUEsRUFBZUM7VUFBWSxDQUFDLENBQUM7UUFBQTtRQUV2RXJFLFdBQVcsQ0FBQ3NFLE1BQUEsS0FBUztVQUFBLEdBQUtmLE1BQUk7VUFBQTlDLFdBQUEsRUFBZTJEO1FBQVksQ0FBQyxDQUFDLENBQUM7TUFBQTtNQUc5RCxNQUFBRyxhQUFBLEdBQXNCMUIsa0JBQWtCLENBQUN4QixPQUFLLENBQUM7TUFDL0MsTUFBQW1ELGNBQUEsR0FDRWpFLGdCQUFpQyxJQUFqQ2dFLGFBQXVFLElBQWxDeEcsbUJBQW1CLENBQUN3RyxhQUFhLENBRXpELEdBRmJsRixNQUVhLEdBRmJ1QixTQUVhO01BQ2YsSUFBSVMsT0FBSyxLQUFLMUIsYUFBYTtRQUN6QlIsUUFBUSxDQUFDLElBQUksRUFBRXFGLGNBQWMsQ0FBQztRQUFBO01BQUE7TUFHaENyRixRQUFRLENBQUNrQyxPQUFLLEVBQUVtRCxjQUFjLENBQUM7SUFBQSxDQUNoQztJQUFBMUUsQ0FBQSxPQUFBVCxNQUFBO0lBQUFTLENBQUEsT0FBQVMsZ0JBQUE7SUFBQVQsQ0FBQSxPQUFBWCxRQUFBO0lBQUFXLENBQUEsT0FBQUUsV0FBQTtJQUFBRixDQUFBLE9BQUFKLGlCQUFBO0lBQUFJLENBQUEsT0FBQW1FLEdBQUE7RUFBQTtJQUFBQSxHQUFBLEdBQUFuRSxDQUFBO0VBQUE7RUFsQ0QsTUFBQW9FLFlBQUEsR0FBQUQsR0FrQ0M7RUFBQSxJQUFBUSxHQUFBO0VBQUEsSUFBQTNFLENBQUEsU0FBQWdFLE1BQUEsQ0FBQUMsR0FBQTtJQU1PVSxHQUFBLElBQUMsSUFBSSxDQUFPLEtBQVUsQ0FBVixVQUFVLENBQUMsSUFBSSxDQUFKLEtBQUcsQ0FBQyxDQUFDLFlBRTVCLEVBRkMsSUFBSSxDQUVFO0lBQUEzRSxDQUFBLE9BQUEyRSxHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBM0UsQ0FBQTtFQUFBO0VBRUosTUFBQTRFLEdBQUEsR0FBQWpGLFVBQytJLElBRC9JLDhJQUMrSTtFQUFBLElBQUFrRixHQUFBO0VBQUEsSUFBQTdFLENBQUEsU0FBQTRFLEdBQUE7SUFGbEpDLEdBQUEsSUFBQyxJQUFJLENBQUMsUUFBUSxDQUFSLEtBQU8sQ0FBQyxDQUNYLENBQUFELEdBQzhJLENBQ2pKLEVBSEMsSUFBSSxDQUdFO0lBQUE1RSxDQUFBLE9BQUE0RSxHQUFBO0lBQUE1RSxDQUFBLE9BQUE2RSxHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBN0UsQ0FBQTtFQUFBO0VBQUEsSUFBQThFLEdBQUE7RUFBQSxJQUFBOUUsQ0FBQSxTQUFBWixZQUFBO0lBQ04wRixHQUFBLEdBQUExRixZQUtBLElBSkMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFSLEtBQU8sQ0FBQyxDQUFDLGdCQUNJLENBQUFiLGtCQUFrQixDQUFDYSxZQUFZLEVBQUUsdUVBRXBELEVBSEMsSUFBSSxDQUlOO0lBQUFZLENBQUEsT0FBQVosWUFBQTtJQUFBWSxDQUFBLE9BQUE4RSxHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBOUUsQ0FBQTtFQUFBO0VBQUEsSUFBQStFLEdBQUE7RUFBQSxJQUFBL0UsQ0FBQSxTQUFBNkUsR0FBQSxJQUFBN0UsQ0FBQSxTQUFBOEUsR0FBQTtJQWJIQyxHQUFBLElBQUMsR0FBRyxDQUFlLFlBQUMsQ0FBRCxHQUFDLENBQWdCLGFBQVEsQ0FBUixRQUFRLENBQzFDLENBQUFKLEdBRU0sQ0FDTixDQUFBRSxHQUdNLENBQ0wsQ0FBQUMsR0FLRCxDQUNGLEVBZEMsR0FBRyxDQWNFO0lBQUE5RSxDQUFBLE9BQUE2RSxHQUFBO0lBQUE3RSxDQUFBLE9BQUE4RSxHQUFBO0lBQUE5RSxDQUFBLE9BQUErRSxHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBL0UsQ0FBQTtFQUFBO0VBVVUsTUFBQWdGLEdBQUEsR0FBQXhGLFFBQXNCLElBQXRCeUYsTUFBc0I7RUFBQSxJQUFBQyxHQUFBO0VBQUEsSUFBQWxGLENBQUEsU0FBQXNELFdBQUEsSUFBQXRELENBQUEsU0FBQW9FLFlBQUEsSUFBQXBFLENBQUEsU0FBQWtDLGlCQUFBLElBQUFsQyxDQUFBLFNBQUFJLFlBQUEsSUFBQUosQ0FBQSxTQUFBZ0MsYUFBQSxJQUFBaEMsQ0FBQSxTQUFBZ0YsR0FBQSxJQUFBaEYsQ0FBQSxTQUFBbUMsWUFBQTtJQVBwQytDLEdBQUEsSUFBQyxHQUFHLENBQWUsYUFBUSxDQUFSLFFBQVEsQ0FDekIsQ0FBQyxNQUFNLENBQ1M5RSxZQUFZLENBQVpBLGFBQVcsQ0FBQyxDQUNQOEIsaUJBQWlCLENBQWpCQSxrQkFBZ0IsQ0FBQyxDQUMzQkYsT0FBYSxDQUFiQSxjQUFZLENBQUMsQ0FDWm9DLFFBQVksQ0FBWkEsYUFBVyxDQUFDLENBQ2JkLE9BQVcsQ0FBWEEsWUFBVSxDQUFDLENBQ1YsUUFBc0IsQ0FBdEIsQ0FBQTBCLEdBQXFCLENBQUMsQ0FDWjdDLGtCQUFZLENBQVpBLGFBQVcsQ0FBQyxHQUVwQyxFQVZDLEdBQUcsQ0FVRTtJQUFBbkMsQ0FBQSxPQUFBc0QsV0FBQTtJQUFBdEQsQ0FBQSxPQUFBb0UsWUFBQTtJQUFBcEUsQ0FBQSxPQUFBa0MsaUJBQUE7SUFBQWxDLENBQUEsT0FBQUksWUFBQTtJQUFBSixDQUFBLE9BQUFnQyxhQUFBO0lBQUFoQyxDQUFBLE9BQUFnRixHQUFBO0lBQUFoRixDQUFBLE9BQUFtQyxZQUFBO0lBQUFuQyxDQUFBLE9BQUFrRixHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBbEYsQ0FBQTtFQUFBO0VBQUEsSUFBQW1GLEdBQUE7RUFBQSxJQUFBbkYsQ0FBQSxTQUFBdUMsV0FBQTtJQUNMNEMsR0FBQSxHQUFBNUMsV0FBVyxHQUFHLENBSWQsSUFIQyxDQUFDLEdBQUcsQ0FBYyxXQUFDLENBQUQsR0FBQyxDQUNqQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQVIsS0FBTyxDQUFDLENBQUMsSUFBS0EsWUFBVSxDQUFFLE1BQU0sRUFBckMsSUFBSSxDQUNQLEVBRkMsR0FBRyxDQUdMO0lBQUF2QyxDQUFBLE9BQUF1QyxXQUFBO0lBQUF2QyxDQUFBLE9BQUFtRixHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBbkYsQ0FBQTtFQUFBO0VBQUEsSUFBQW9GLEdBQUE7RUFBQSxJQUFBcEYsQ0FBQSxTQUFBa0YsR0FBQSxJQUFBbEYsQ0FBQSxTQUFBbUYsR0FBQTtJQWhCSEMsR0FBQSxJQUFDLEdBQUcsQ0FBZSxhQUFRLENBQVIsUUFBUSxDQUFlLFlBQUMsQ0FBRCxHQUFDLENBQ3pDLENBQUFGLEdBVUssQ0FDSixDQUFBQyxHQUlELENBQ0YsRUFqQkMsR0FBRyxDQWlCRTtJQUFBbkYsQ0FBQSxPQUFBa0YsR0FBQTtJQUFBbEYsQ0FBQSxPQUFBbUYsR0FBQTtJQUFBbkYsQ0FBQSxPQUFBb0YsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQXBGLENBQUE7RUFBQTtFQUFBLElBQUFxRixHQUFBO0VBQUEsSUFBQXJGLENBQUEsU0FBQW9ELGFBQUEsSUFBQXBELENBQUEsU0FBQW1ELG9CQUFBLElBQUFuRCxDQUFBLFNBQUEyQyxnQkFBQSxJQUFBM0MsQ0FBQSxTQUFBNEMscUJBQUE7SUFFTnlDLEdBQUEsSUFBQyxHQUFHLENBQWUsWUFBQyxDQUFELEdBQUMsQ0FBZ0IsYUFBUSxDQUFSLFFBQVEsQ0FDekMsQ0FBQXpDLHFCQUFxQixHQUNwQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQVIsS0FBTyxDQUFDLENBQ1osQ0FBQyxvQkFBb0IsQ0FBU1EsTUFBYSxDQUFiQSxjQUFZLENBQUMsR0FBSyxJQUFFLENBQ2pELENBQUF2RyxVQUFVLENBQUN1RyxhQUFhLEVBQUUsT0FDMUIsQ0FBQUEsYUFBYSxLQUFLRCxvQkFBd0MsR0FBMUQsWUFBMEQsR0FBMUQsRUFBeUQsQ0FBRyxJQUFFLENBQy9ELENBQUMsSUFBSSxDQUFPLEtBQVEsQ0FBUixRQUFRLENBQUMsYUFBYSxFQUFqQyxJQUFJLENBQ1AsRUFMQyxJQUFJLENBV04sR0FKQyxDQUFDLElBQUksQ0FBTyxLQUFRLENBQVIsUUFBUSxDQUNsQixDQUFDLG9CQUFvQixDQUFTckMsTUFBUyxDQUFUQSxVQUFRLENBQUMsR0FBSSxxQkFDMUMsQ0FBQTZCLGdCQUFnQixHQUFoQixRQUEyQkEsZ0JBQWdCLEVBQU8sR0FBbEQsRUFBaUQsQ0FDcEQsRUFIQyxJQUFJLENBSVAsQ0FDRixFQWRDLEdBQUcsQ0FjRTtJQUFBM0MsQ0FBQSxPQUFBb0QsYUFBQTtJQUFBcEQsQ0FBQSxPQUFBbUQsb0JBQUE7SUFBQW5ELENBQUEsT0FBQTJDLGdCQUFBO0lBQUEzQyxDQUFBLE9BQUE0QyxxQkFBQTtJQUFBNUMsQ0FBQSxPQUFBcUYsR0FBQTtFQUFBO0lBQUFBLEdBQUEsR0FBQXJGLENBQUE7RUFBQTtFQUFBLElBQUFzRixHQUFBO0VBQUEsSUFBQXRGLENBQUEsU0FBQU4sa0JBQUE7SUFFTDRGLEdBQUEsR0FBQTlILGlCQUFpQixDQWlCWCxDQUFDLEdBaEJOa0Msa0JBQWtCLEdBQ2hCLENBQUMsR0FBRyxDQUFlLFlBQUMsQ0FBRCxHQUFDLENBQ2xCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBUixLQUFPLENBQUMsQ0FBQyxhQUNBLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSixLQUFHLENBQUMsQ0FBQyxFQUFFLEVBQVosSUFBSSxDQUFlLG1CQUFvQixJQUFFLENBQ3REckMsd0JBQXNCLENBQUUsNERBRTNCLEVBSkMsSUFBSSxDQUtQLEVBTkMsR0FBRyxDQWNFLEdBUEpDLG1CQUFtQixDQUEwQixDQUFDLElBQTlDLENBQTBCQyxrQkFBa0IsQ0FBQyxDQU96QyxHQU5OLENBQUMsR0FBRyxDQUFlLFlBQUMsQ0FBRCxHQUFDLENBQ2xCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBUixLQUFPLENBQUMsQ0FBQyxJQUNULENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSixLQUFHLENBQUMsQ0FBQyxLQUFLLEVBQWYsSUFBSSxDQUFrQix1QkFDMUJGLHdCQUFzQixDQUFFLE9BQzNCLEVBSEMsSUFBSSxDQUlQLEVBTEMsR0FBRyxDQU1FLEdBUEosSUFRRSxHQWpCUCxJQWlCTztJQUFBMkMsQ0FBQSxPQUFBTixrQkFBQTtJQUFBTSxDQUFBLE9BQUFzRixHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBdEYsQ0FBQTtFQUFBO0VBQUEsSUFBQXVGLEdBQUE7RUFBQSxJQUFBdkYsQ0FBQSxTQUFBK0UsR0FBQSxJQUFBL0UsQ0FBQSxTQUFBb0YsR0FBQSxJQUFBcEYsQ0FBQSxTQUFBcUYsR0FBQSxJQUFBckYsQ0FBQSxTQUFBc0YsR0FBQTtJQXJFVkMsR0FBQSxJQUFDLEdBQUcsQ0FBZSxhQUFRLENBQVIsUUFBUSxDQUN6QixDQUFBUixHQWNLLENBRUwsQ0FBQUssR0FpQkssQ0FFTCxDQUFBQyxHQWNLLENBRUosQ0FBQUMsR0FpQk0sQ0FDVCxFQXRFQyxHQUFHLENBc0VFO0lBQUF0RixDQUFBLE9BQUErRSxHQUFBO0lBQUEvRSxDQUFBLE9BQUFvRixHQUFBO0lBQUFwRixDQUFBLE9BQUFxRixHQUFBO0lBQUFyRixDQUFBLE9BQUFzRixHQUFBO0lBQUF0RixDQUFBLE9BQUF1RixHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBdkYsQ0FBQTtFQUFBO0VBQUEsSUFBQXdGLEdBQUE7RUFBQSxJQUFBeEYsQ0FBQSxTQUFBRyxTQUFBLElBQUFILENBQUEsU0FBQVAsbUJBQUE7SUFFTCtGLEdBQUEsR0FBQS9GLG1CQWdCQSxJQWZDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBUixLQUFPLENBQUMsQ0FBQyxNQUFNLENBQU4sS0FBSyxDQUFDLENBQ2xCLENBQUFVLFNBQVMsQ0FBQXNGLE9BWVQsR0FaQSxFQUNHLE1BQU8sQ0FBQXRGLFNBQVMsQ0FBQXVGLE9BQU8sQ0FBRSxjQUFjLEdBVzFDLEdBVEMsQ0FBQyxNQUFNLENBQ0wsQ0FBQyxvQkFBb0IsQ0FBVSxRQUFPLENBQVAsT0FBTyxDQUFRLE1BQVMsQ0FBVCxTQUFTLEdBQ3ZELENBQUMsd0JBQXdCLENBQ2hCLE1BQWUsQ0FBZixlQUFlLENBQ2QsT0FBUSxDQUFSLFFBQVEsQ0FDUCxRQUFLLENBQUwsS0FBSyxDQUNGLFdBQU0sQ0FBTixNQUFNLEdBRXRCLEVBUkMsTUFBTSxDQVNULENBQ0YsRUFkQyxJQUFJLENBZU47SUFBQTFGLENBQUEsT0FBQUcsU0FBQTtJQUFBSCxDQUFBLE9BQUFQLG1CQUFBO0lBQUFPLENBQUEsT0FBQXdGLEdBQUE7RUFBQTtJQUFBQSxHQUFBLEdBQUF4RixDQUFBO0VBQUE7RUFBQSxJQUFBMkYsR0FBQTtFQUFBLElBQUEzRixDQUFBLFNBQUF1RixHQUFBLElBQUF2RixDQUFBLFNBQUF3RixHQUFBO0lBekZIRyxHQUFBLElBQUMsR0FBRyxDQUFlLGFBQVEsQ0FBUixRQUFRLENBQ3pCLENBQUFKLEdBc0VLLENBRUosQ0FBQUMsR0FnQkQsQ0FDRixFQTFGQyxHQUFHLENBMEZFO0lBQUF4RixDQUFBLE9BQUF1RixHQUFBO0lBQUF2RixDQUFBLE9BQUF3RixHQUFBO0lBQUF4RixDQUFBLE9BQUEyRixHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBM0YsQ0FBQTtFQUFBO0VBM0ZSLE1BQUE0RixPQUFBLEdBQ0VELEdBMEZNO0VBR1IsSUFBSSxDQUFDbEcsbUJBQW1CO0lBQUEsT0FDZm1HLE9BQU87RUFBQTtFQUNmLElBQUFDLEdBQUE7RUFBQSxJQUFBN0YsQ0FBQSxTQUFBNEYsT0FBQTtJQUVNQyxHQUFBLElBQUMsSUFBSSxDQUFPLEtBQVksQ0FBWixZQUFZLENBQUVELFFBQU0sQ0FBRSxFQUFqQyxJQUFJLENBQW9DO0lBQUE1RixDQUFBLE9BQUE0RixPQUFBO0lBQUE1RixDQUFBLE9BQUE2RixHQUFBO0VBQUE7SUFBQUEsR0FBQSxHQUFBN0YsQ0FBQTtFQUFBO0VBQUEsT0FBekM2RixHQUF5QztBQUFBO0FBaFEzQyxTQUFBWixPQUFBO0FBQUEsU0FBQWxELE9BQUErRCxLQUFBO0VBQUEsT0F3RDhCO0lBQUEsR0FDMUJ4RSxLQUFHO0lBQUFDLEtBQUEsRUFDQ0QsS0FBRyxDQUFBQyxLQUFNLEtBQUssSUFBZ0MsR0FBOUMxQixhQUE4QyxHQUFUeUIsS0FBRyxDQUFBQztFQUNqRCxDQUFDO0FBQUE7QUEzREEsU0FBQVgsT0FBQW1GLEdBQUE7RUFBQSxPQXdCZ0NDLEdBQUMsQ0FBQXJGLFdBQVk7QUFBQTtBQXhCN0MsU0FBQUgsTUFBQXdGLENBQUE7RUFBQSxPQW9CSHhJLGlCQUFpQixDQUFzQixDQUFDLEdBQWxCd0ksQ0FBQyxDQUFBQyxRQUFpQixHQUF4QyxLQUF3QztBQUFBO0FBK081QyxTQUFTbEQsa0JBQWtCQSxDQUFDeEIsS0FBYyxDQUFSLEVBQUUsTUFBTSxDQUFDLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztFQUM5RCxJQUFJLENBQUNBLEtBQUssRUFBRSxPQUFPVCxTQUFTO0VBQzVCLE9BQU9TLEtBQUssS0FBSzFCLGFBQWEsR0FDMUJ4Qix1QkFBdUIsQ0FBQyxDQUFDLEdBQ3pCRyx1QkFBdUIsQ0FBQytDLEtBQUssQ0FBQztBQUNwQztBQUVBLFNBQUEyRSxxQkFBQW5HLEVBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFBOEI7SUFBQVY7RUFBQSxJQUFBUSxFQUk3QjtFQUVnQixNQUFBYyxFQUFBLEdBQUF0QixNQUFNLEdBQU4sUUFBNEIsR0FBNUIsUUFBNEI7RUFDbEIsTUFBQXlCLEVBQUEsR0FBQXpCLE1BQWUsSUFBZixLQUFlO0VBQUEsSUFBQTBCLEVBQUE7RUFBQSxJQUFBakIsQ0FBQSxRQUFBZ0IsRUFBQTtJQUFuQ0MsRUFBQSxHQUFBaEMsbUJBQW1CLENBQUMrQixFQUFlLENBQUM7SUFBQWhCLENBQUEsTUFBQWdCLEVBQUE7SUFBQWhCLENBQUEsTUFBQWlCLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFqQixDQUFBO0VBQUE7RUFBQSxJQUFBbUIsRUFBQTtFQUFBLElBQUFuQixDQUFBLFFBQUFhLEVBQUEsSUFBQWIsQ0FBQSxRQUFBaUIsRUFBQTtJQUR2Q0UsRUFBQSxJQUFDLElBQUksQ0FBUSxLQUE0QixDQUE1QixDQUFBTixFQUEyQixDQUFDLENBQ3RDLENBQUFJLEVBQW1DLENBQ3RDLEVBRkMsSUFBSSxDQUVFO0lBQUFqQixDQUFBLE1BQUFhLEVBQUE7SUFBQWIsQ0FBQSxNQUFBaUIsRUFBQTtJQUFBakIsQ0FBQSxNQUFBbUIsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQW5CLENBQUE7RUFBQTtFQUFBLE9BRlBtQixFQUVPO0FBQUE7QUFJWCxTQUFTdUMsZ0JBQWdCQSxDQUN2QnlDLE9BQU8sRUFBRXBJLFdBQVcsRUFDcEJ5RixTQUFTLEVBQUUsTUFBTSxHQUFHLE9BQU8sRUFDM0I0QyxVQUFVLEVBQUUsT0FBTyxDQUNwQixFQUFFckksV0FBVyxDQUFDO0VBQ2IsTUFBTXNJLE1BQU0sRUFBRXRJLFdBQVcsRUFBRSxHQUFHcUksVUFBVSxHQUNwQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUNoQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDO0VBQzdCO0VBQ0E7RUFDQSxNQUFNRSxHQUFHLEdBQUdELE1BQU0sQ0FBQ0UsT0FBTyxDQUFDSixPQUFPLENBQUM7RUFDbkMsTUFBTUssWUFBWSxHQUFHRixHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUdBLEdBQUcsR0FBR0QsTUFBTSxDQUFDRSxPQUFPLENBQUMsTUFBTSxDQUFDO0VBQzlELElBQUkvQyxTQUFTLEtBQUssT0FBTyxFQUFFO0lBQ3pCLE9BQU82QyxNQUFNLENBQUMsQ0FBQ0csWUFBWSxHQUFHLENBQUMsSUFBSUgsTUFBTSxDQUFDL0QsTUFBTSxDQUFDLENBQUM7RUFDcEQsQ0FBQyxNQUFNO0lBQ0wsT0FBTytELE1BQU0sQ0FBQyxDQUFDRyxZQUFZLEdBQUcsQ0FBQyxHQUFHSCxNQUFNLENBQUMvRCxNQUFNLElBQUkrRCxNQUFNLENBQUMvRCxNQUFNLENBQUMsQ0FBQztFQUNwRTtBQUNGO0FBRUEsU0FBU1ksOEJBQThCQSxDQUFDM0IsS0FBYyxDQUFSLEVBQUUsTUFBTSxDQUFDLEVBQUV4RCxXQUFXLENBQUM7RUFDbkUsTUFBTTBJLFFBQVEsR0FBRzFELGtCQUFrQixDQUFDeEIsS0FBSyxDQUFDLElBQUlsRCx1QkFBdUIsQ0FBQyxDQUFDO0VBQ3ZFLE1BQU1xSSxZQUFZLEdBQUcxSSx3QkFBd0IsQ0FBQ3lJLFFBQVEsQ0FBQztFQUN2RCxPQUFPQyxZQUFZLEtBQUs1RixTQUFTLEdBQzdCaEQseUJBQXlCLENBQUM0SSxZQUFZLENBQUMsR0FDdkMsTUFBTTtBQUNaIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -189,5 +189,4 @@ export function NativeAutoUpdater({
|
|
|
189
189
|
<Text bold>claude rollback --safe</Text> to downgrade
|
|
190
190
|
</Text>}
|
|
191
191
|
</Box>;
|
|
192
|
-
}
|
|
193
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZVN0YXRlIiwibG9nRXZlbnQiLCJsb2dGb3JEZWJ1Z2dpbmciLCJsb2dFcnJvciIsInVzZUludGVydmFsIiwidXNlVXBkYXRlTm90aWZpY2F0aW9uIiwiQm94IiwiVGV4dCIsIkF1dG9VcGRhdGVyUmVzdWx0IiwiZ2V0TWF4VmVyc2lvbiIsImdldE1heFZlcnNpb25NZXNzYWdlIiwiaXNBdXRvVXBkYXRlckRpc2FibGVkIiwiaW5zdGFsbExhdGVzdCIsImd0IiwiZ2V0SW5pdGlhbFNldHRpbmdzIiwiZ2V0RXJyb3JUeXBlIiwiZXJyb3JNZXNzYWdlIiwiaW5jbHVkZXMiLCJQcm9wcyIsImlzVXBkYXRpbmciLCJvbkNoYW5nZUlzVXBkYXRpbmciLCJvbkF1dG9VcGRhdGVyUmVzdWx0IiwiYXV0b1VwZGF0ZXJSZXN1bHQiLCJzaG93U3VjY2Vzc01lc3NhZ2UiLCJ2ZXJib3NlIiwiTmF0aXZlQXV0b1VwZGF0ZXIiLCJSZWFjdE5vZGUiLCJ2ZXJzaW9ucyIsInNldFZlcnNpb25zIiwiY3VycmVudCIsImxhdGVzdCIsIm1heFZlcnNpb25Jc3N1ZSIsInNldE1heFZlcnNpb25Jc3N1ZSIsInVwZGF0ZVNlbXZlciIsInZlcnNpb24iLCJjaGFubmVsIiwiYXV0b1VwZGF0ZXNDaGFubmVsIiwiaXNVcGRhdGluZ1JlZiIsImNoZWNrRm9yVXBkYXRlcyIsInVzZUNhbGxiYWNrIiwic3RhcnRUaW1lIiwiRGF0ZSIsIm5vdyIsIm1heFZlcnNpb24iLCJNQUNSTyIsIlZFUlNJT04iLCJtc2ciLCJyZXN1bHQiLCJjdXJyZW50VmVyc2lvbiIsImxhdGVuY3lNcyIsImxvY2tGYWlsZWQiLCJsYXRlbmN5X21zIiwibGF0ZXN0VmVyc2lvbiIsIndhc1VwZGF0ZWQiLCJzdGF0dXMiLCJlcnJvciIsIkVycm9yIiwibWVzc2FnZSIsIlN0cmluZyIsImVycm9yVHlwZSIsImVycm9yX3RpbWVvdXQiLCJlcnJvcl9jaGVja3N1bSIsImVycm9yX25vdF9mb3VuZCIsImVycm9yX3Blcm1pc3Npb24iLCJlcnJvcl9kaXNrX2Z1bGwiLCJlcnJvcl9ucG0iLCJlcnJvcl9uZXR3b3JrIiwiaGFzVXBkYXRlUmVzdWx0IiwiaGFzVmVyc2lvbkluZm8iLCJzaG91bGRSZW5kZXIiXSwic291cmNlcyI6WyJOYXRpdmVBdXRvVXBkYXRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGxvZ0V2ZW50IH0gZnJvbSAnc3JjL3NlcnZpY2VzL2FuYWx5dGljcy9pbmRleC5qcydcbmltcG9ydCB7IGxvZ0ZvckRlYnVnZ2luZyB9IGZyb20gJ3NyYy91dGlscy9kZWJ1Zy5qcydcbmltcG9ydCB7IGxvZ0Vycm9yIH0gZnJvbSAnc3JjL3V0aWxzL2xvZy5qcydcbmltcG9ydCB7IHVzZUludGVydmFsIH0gZnJvbSAndXNlaG9va3MtdHMnXG5pbXBvcnQgeyB1c2VVcGRhdGVOb3RpZmljYXRpb24gfSBmcm9tICcuLi9ob29rcy91c2VVcGRhdGVOb3RpZmljYXRpb24uanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5pbXBvcnQgdHlwZSB7IEF1dG9VcGRhdGVyUmVzdWx0IH0gZnJvbSAnLi4vdXRpbHMvYXV0b1VwZGF0ZXIuanMnXG5pbXBvcnQgeyBnZXRNYXhWZXJzaW9uLCBnZXRNYXhWZXJzaW9uTWVzc2FnZSB9IGZyb20gJy4uL3V0aWxzL2F1dG9VcGRhdGVyLmpzJ1xuaW1wb3J0IHsgaXNBdXRvVXBkYXRlckRpc2FibGVkIH0gZnJvbSAnLi4vdXRpbHMvY29uZmlnLmpzJ1xuaW1wb3J0IHsgaW5zdGFsbExhdGVzdCB9IGZyb20gJy4uL3V0aWxzL25hdGl2ZUluc3RhbGxlci9pbmRleC5qcydcbmltcG9ydCB7IGd0IH0gZnJvbSAnLi4vdXRpbHMvc2VtdmVyLmpzJ1xuaW1wb3J0IHsgZ2V0SW5pdGlhbFNldHRpbmdzIH0gZnJvbSAnLi4vdXRpbHMvc2V0dGluZ3Mvc2V0dGluZ3MuanMnXG5cbi8qKlxuICogQ2F0ZWdvcml6ZSBlcnJvciBtZXNzYWdlcyBmb3IgYW5hbHl0aWNzXG4gKi9cbmZ1bmN0aW9uIGdldEVycm9yVHlwZShlcnJvck1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ3RpbWVvdXQnKSkge1xuICAgIHJldHVybiAndGltZW91dCdcbiAgfVxuICBpZiAoZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCdDaGVja3N1bSBtaXNtYXRjaCcpKSB7XG4gICAgcmV0dXJuICdjaGVja3N1bV9taXNtYXRjaCdcbiAgfVxuICBpZiAoZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCdFTk9FTlQnKSB8fCBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ25vdCBmb3VuZCcpKSB7XG4gICAgcmV0dXJuICdub3RfZm91bmQnXG4gIH1cbiAgaWYgKGVycm9yTWVzc2FnZS5pbmNsdWRlcygnRUFDQ0VTJykgfHwgZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCdwZXJtaXNzaW9uJykpIHtcbiAgICByZXR1cm4gJ3Blcm1pc3Npb25fZGVuaWVkJ1xuICB9XG4gIGlmIChlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ0VOT1NQQycpKSB7XG4gICAgcmV0dXJuICdkaXNrX2Z1bGwnXG4gIH1cbiAgaWYgKGVycm9yTWVzc2FnZS5pbmNsdWRlcygnbnBtJykpIHtcbiAgICByZXR1cm4gJ25wbV9lcnJvcidcbiAgfVxuICBpZiAoXG4gICAgZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCduZXR3b3JrJykgfHxcbiAgICBlcnJvck1lc3NhZ2UuaW5jbHVkZXMoJ0VDT05OUkVGVVNFRCcpIHx8XG4gICAgZXJyb3JNZXNzYWdlLmluY2x1ZGVzKCdFTk9URk9VTkQnKVxuICApIHtcbiAgICByZXR1cm4gJ25ldHdvcmtfZXJyb3InXG4gIH1cbiAgcmV0dXJuICd1bmtub3duJ1xufVxuXG50eXBlIFByb3BzID0ge1xuICBpc1VwZGF0aW5nOiBib29sZWFuXG4gIG9uQ2hhbmdlSXNVcGRhdGluZzogKGlzVXBkYXRpbmc6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25BdXRvVXBkYXRlclJlc3VsdDogKGF1dG9VcGRhdGVyUmVzdWx0OiBBdXRvVXBkYXRlclJlc3VsdCkgPT4gdm9pZFxuICBhdXRvVXBkYXRlclJlc3VsdDogQXV0b1VwZGF0ZXJSZXN1bHQgfCBudWxsXG4gIHNob3dTdWNjZXNzTWVzc2FnZTogYm9vbGVhblxuICB2ZXJib3NlOiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBOYXRpdmVBdXRvVXBkYXRlcih7XG4gIGlzVXBkYXRpbmcsXG4gIG9uQ2hhbmdlSXNVcGRhdGluZyxcbiAgb25BdXRvVXBkYXRlclJlc3VsdCxcbiAgYXV0b1VwZGF0ZXJSZXN1bHQsXG4gIHNob3dTdWNjZXNzTWVzc2FnZSxcbiAgdmVyYm9zZSxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW3ZlcnNpb25zLCBzZXRWZXJzaW9uc10gPSB1c2VTdGF0ZTx7XG4gICAgY3VycmVudD86IHN0cmluZyB8IG51bGxcbiAgICBsYXRlc3Q/OiBzdHJpbmcgfCBudWxsXG4gIH0+KHt9KVxuICBjb25zdCBbbWF4VmVyc2lvbklzc3VlLCBzZXRNYXhWZXJzaW9uSXNzdWVdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcbiAgY29uc3QgdXBkYXRlU2VtdmVyID0gdXNlVXBkYXRlTm90aWZpY2F0aW9uKGF1dG9VcGRhdGVyUmVzdWx0Py52ZXJzaW9uKVxuICBjb25zdCBjaGFubmVsID0gZ2V0SW5pdGlhbFNldHRpbmdzKCk/LmF1dG9VcGRhdGVzQ2hhbm5lbCA/PyAnbGF0ZXN0J1xuXG4gIC8vIFRyYWNrIGxhdGVzdCBpc1VwZGF0aW5nIHZhbHVlIGluIGEgcmVmIHNvIHRoZSBtZW1vaXplZCBjaGVja0ZvclVwZGF0ZXNcbiAgLy8gY2FsbGJhY2sgYWx3YXlzIHNlZXMgdGhlIGN1cnJlbnQgdmFsdWUgd2l0aG91dCBjaGFuZ2luZyBjYWxsYmFjayBpZGVudGl0eVxuICAvLyAod2hpY2ggd291bGQgcmUtdHJpZ2dlciB0aGUgaW5pdGlhbC1jaGVjayB1c2VFZmZlY3QgYmVsb3cgYW5kIGNhdXNlXG4gIC8vIHJlcGVhdGVkIGRvd25sb2FkcyBvbiByZW1vdW50IOKAlCB0aGUgdXBzdHJlYW0gdHJpZ2dlciBmb3IgIzIyNDEzKS5cbiAgY29uc3QgaXNVcGRhdGluZ1JlZiA9IHVzZVJlZihpc1VwZGF0aW5nKVxuICBpc1VwZGF0aW5nUmVmLmN1cnJlbnQgPSBpc1VwZGF0aW5nXG5cbiAgY29uc3QgY2hlY2tGb3JVcGRhdGVzID0gUmVhY3QudXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGlmIChpc1VwZGF0aW5nUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChcbiAgICAgIFwicHJvZHVjdGlvblwiID09PSAndGVzdCcgfHxcbiAgICAgIFwicHJvZHVjdGlvblwiID09PSAnZGV2ZWxvcG1lbnQnXG4gICAgKSB7XG4gICAgICBsb2dGb3JEZWJ1Z2dpbmcoXG4gICAgICAgICdOYXRpdmVBdXRvVXBkYXRlcjogU2tpcHBpbmcgdXBkYXRlIGNoZWNrIGluIHRlc3QvZGV2IGVudmlyb25tZW50JyxcbiAgICAgIClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpc0F1dG9VcGRhdGVyRGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgb25DaGFuZ2VJc1VwZGF0aW5nKHRydWUpXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKVxuXG4gICAgLy8gTG9nIHRoZSBzdGFydCBvZiBhbiBhdXRvLXVwZGF0ZSBjaGVjayBmb3IgZnVubmVsIGFuYWx5c2lzXG4gICAgbG9nRXZlbnQoJ3Rlbmd1X25hdGl2ZV9hdXRvX3VwZGF0ZXJfc3RhcnQnLCB7fSlcblxuICAgIHRyeSB7XG4gICAgICAvLyBDaGVjayBpZiBjdXJyZW50IHZlcnNpb24gaXMgYWJvdmUgdGhlIG1heCBhbGxvd2VkIHZlcnNpb25cbiAgICAgIGNvbnN0IG1heFZlcnNpb24gPSBhd2FpdCBnZXRNYXhWZXJzaW9uKClcbiAgICAgIGlmIChtYXhWZXJzaW9uICYmIGd0KE1BQ1JPLlZFUlNJT04sIG1heFZlcnNpb24pKSB7XG4gICAgICAgIGNvbnN0IG1zZyA9IGF3YWl0IGdldE1heFZlcnNpb25NZXNzYWdlKClcbiAgICAgICAgc2V0TWF4VmVyc2lvbklzc3VlKG1zZyA/PyAnYWZmZWN0cyB5b3VyIHZlcnNpb24nKVxuICAgICAgfVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbnN0YWxsTGF0ZXN0KGNoYW5uZWwpXG4gICAgICBjb25zdCBjdXJyZW50VmVyc2lvbiA9IE1BQ1JPLlZFUlNJT05cbiAgICAgIGNvbnN0IGxhdGVuY3lNcyA9IERhdGUubm93KCkgLSBzdGFydFRpbWVcblxuICAgICAgLy8gSGFuZGxlIGxvY2sgY29udGVudGlvbiBncmFjZWZ1bGx5IC0ganVzdCByZXR1cm4gd2l0aG91dCB0cmVhdGluZyBhcyBlcnJvclxuICAgICAgaWYgKHJlc3VsdC5sb2NrRmFpbGVkKSB7XG4gICAgICAgIGxvZ0V2ZW50KCd0ZW5ndV9uYXRpdmVfYXV0b191cGRhdGVyX2xvY2tfY29udGVudGlvbicsIHtcbiAgICAgICAgICBsYXRlbmN5X21zOiBsYXRlbmN5TXMsXG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiAvLyBTaWxlbnRseSBza2lwIHRoaXMgdXBkYXRlIGNoZWNrLCB3aWxsIHRyeSBhZ2FpbiBsYXRlclxuICAgICAgfVxuXG4gICAgICAvLyBVcGRhdGUgdmVyc2lvbnMgZm9yIGRpc3BsYXlcbiAgICAgIHNldFZlcnNpb25zKHsgY3VycmVudDogY3VycmVudFZlcnNpb24sIGxhdGVzdDogcmVzdWx0LmxhdGVzdFZlcnNpb24gfSlcblxuICAgICAgaWYgKHJlc3VsdC53YXNVcGRhdGVkKSB7XG4gICAgICAgIGxvZ0V2ZW50KCd0ZW5ndV9uYXRpdmVfYXV0b191cGRhdGVyX3N1Y2Nlc3MnLCB7XG4gICAgICAgICAgbGF0ZW5jeV9tczogbGF0ZW5jeU1zLFxuICAgICAgICB9KVxuXG4gICAgICAgIG9uQXV0b1VwZGF0ZXJSZXN1bHQoe1xuICAgICAgICAgIHZlcnNpb246IHJlc3VsdC5sYXRlc3RWZXJzaW9uLFxuICAgICAgICAgIHN0YXR1czogJ3N1Y2Nlc3MnLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQWxyZWFkeSB1cCB0byBkYXRlXG4gICAgICAgIGxvZ0V2ZW50KCd0ZW5ndV9uYXRpdmVfYXV0b191cGRhdGVyX3VwX3RvX2RhdGUnLCB7XG4gICAgICAgICAgbGF0ZW5jeV9tczogbGF0ZW5jeU1zLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zdCBsYXRlbmN5TXMgPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPVxuICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcilcbiAgICAgIGxvZ0Vycm9yKGVycm9yKVxuXG4gICAgICBjb25zdCBlcnJvclR5cGUgPSBnZXRFcnJvclR5cGUoZXJyb3JNZXNzYWdlKVxuICAgICAgbG9nRXZlbnQoJ3Rlbmd1X25hdGl2ZV9hdXRvX3VwZGF0ZXJfZmFpbCcsIHtcbiAgICAgICAgbGF0ZW5jeV9tczogbGF0ZW5jeU1zLFxuICAgICAgICBlcnJvcl90aW1lb3V0OiBlcnJvclR5cGUgPT09ICd0aW1lb3V0JyxcbiAgICAgICAgZXJyb3JfY2hlY2tzdW06IGVycm9yVHlwZSA9PT0gJ2NoZWNrc3VtX21pc21hdGNoJyxcbiAgICAgICAgZXJyb3Jfbm90X2ZvdW5kOiBlcnJvclR5cGUgPT09ICdub3RfZm91bmQnLFxuICAgICAgICBlcnJvcl9wZXJtaXNzaW9uOiBlcnJvclR5cGUgPT09ICdwZXJtaXNzaW9uX2RlbmllZCcsXG4gICAgICAgIGVycm9yX2Rpc2tfZnVsbDogZXJyb3JUeXBlID09PSAnZGlza19mdWxsJyxcbiAgICAgICAgZXJyb3JfbnBtOiBlcnJvclR5cGUgPT09ICducG1fZXJyb3InLFxuICAgICAgICBlcnJvcl9uZXR3b3JrOiBlcnJvclR5cGUgPT09ICduZXR3b3JrX2Vycm9yJyxcbiAgICAgIH0pXG5cbiAgICAgIG9uQXV0b1VwZGF0ZXJSZXN1bHQoe1xuICAgICAgICB2ZXJzaW9uOiBudWxsLFxuICAgICAgICBzdGF0dXM6ICdpbnN0YWxsX2ZhaWxlZCcsXG4gICAgICB9KVxuICAgIH0gZmluYWxseSB7XG4gICAgICBvbkNoYW5nZUlzVXBkYXRpbmcoZmFsc2UpXG4gICAgfVxuICAgIC8vIGlzVXBkYXRpbmcgaW50ZW50aW9uYWxseSBvbWl0dGVkIGZyb20gZGVwczsgd2UgcmVhZCBpc1VwZGF0aW5nUmVmXG4gICAgLy8gaW5zdGVhZCBzbyB0aGUgZ3VhcmQgaXMgYWx3YXlzIGN1cnJlbnQgd2l0aG91dCBjaGFuZ2luZyBjYWxsYmFja1xuICAgIC8vIGlkZW50aXR5ICh3aGljaCB3b3VsZCByZS10cmlnZ2VyIHRoZSBpbml0aWFsLWNoZWNrIHVzZUVmZmVjdCBiZWxvdykuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L2NvcnJlY3RuZXNzL3VzZUV4aGF1c3RpdmVEZXBlbmRlbmNpZXM6IGlzVXBkYXRpbmcgcmVhZCB2aWEgcmVmXG4gIH0sIFtvbkF1dG9VcGRhdGVyUmVzdWx0LCBjaGFubmVsXSlcblxuICAvLyBJbml0aWFsIGNoZWNrXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgdm9pZCBjaGVja0ZvclVwZGF0ZXMoKVxuICB9LCBbY2hlY2tGb3JVcGRhdGVzXSlcblxuICAvLyBDaGVjayBldmVyeSAzMCBtaW51dGVzXG4gIHVzZUludGVydmFsKGNoZWNrRm9yVXBkYXRlcywgMzAgKiA2MCAqIDEwMDApXG5cbiAgY29uc3QgaGFzVXBkYXRlUmVzdWx0ID0gISFhdXRvVXBkYXRlclJlc3VsdD8udmVyc2lvblxuICBjb25zdCBoYXNWZXJzaW9uSW5mbyA9ICEhdmVyc2lvbnMuY3VycmVudCAmJiAhIXZlcnNpb25zLmxhdGVzdFxuICAvLyBTaG93IHRoZSBjb21wb25lbnQgd2hlbjpcbiAgLy8gLSB3YXJuaW5nIGJhbm5lciBuZWVkZWQgKGFib3ZlIG1heCB2ZXJzaW9uKSwgb3JcbiAgLy8gLSB0aGVyZSdzIGFuIHVwZGF0ZSByZXN1bHQgdG8gZGlzcGxheSAoc3VjY2Vzcy9lcnJvciksIG9yXG4gIC8vIC0gYWN0aXZlbHkgY2hlY2tpbmcgYW5kIHdlIGhhdmUgdmVyc2lvbiBpbmZvIHRvIHNob3dcbiAgY29uc3Qgc2hvdWxkUmVuZGVyID1cbiAgICAhIW1heFZlcnNpb25Jc3N1ZSB8fCBoYXNVcGRhdGVSZXN1bHQgfHwgKGlzVXBkYXRpbmcgJiYgaGFzVmVyc2lvbkluZm8pXG5cbiAgaWYgKCFzaG91bGRSZW5kZXIpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJyb3dcIiBnYXA9ezF9PlxuICAgICAge3ZlcmJvc2UgJiYgKFxuICAgICAgICA8VGV4dCBkaW1Db2xvciB3cmFwPVwidHJ1bmNhdGVcIj5cbiAgICAgICAgICBjdXJyZW50OiB7dmVyc2lvbnMuY3VycmVudH0gJm1pZGRvdDsge2NoYW5uZWx9OiB7dmVyc2lvbnMubGF0ZXN0fVxuICAgICAgICA8L1RleHQ+XG4gICAgICApfVxuICAgICAge2lzVXBkYXRpbmcgPyAoXG4gICAgICAgIDxCb3g+XG4gICAgICAgICAgPFRleHQgZGltQ29sb3Igd3JhcD1cInRydW5jYXRlXCI+XG4gICAgICAgICAgICBDaGVja2luZyBmb3IgdXBkYXRlc1xuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgPC9Cb3g+XG4gICAgICApIDogKFxuICAgICAgICBhdXRvVXBkYXRlclJlc3VsdD8uc3RhdHVzID09PSAnc3VjY2VzcycgJiZcbiAgICAgICAgc2hvd1N1Y2Nlc3NNZXNzYWdlICYmXG4gICAgICAgIHVwZGF0ZVNlbXZlciAmJiAoXG4gICAgICAgICAgPFRleHQgY29sb3I9XCJzdWNjZXNzXCIgd3JhcD1cInRydW5jYXRlXCI+XG4gICAgICAgICAgICDinJMgVXBkYXRlIGluc3RhbGxlZCDCtyBSZXN0YXJ0IHRvIHVwZGF0ZVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgKVxuICAgICAgKX1cbiAgICAgIHthdXRvVXBkYXRlclJlc3VsdD8uc3RhdHVzID09PSAnaW5zdGFsbF9mYWlsZWQnICYmIChcbiAgICAgICAgPFRleHQgY29sb3I9XCJlcnJvclwiIHdyYXA9XCJ0cnVuY2F0ZVwiPlxuICAgICAgICAgIOKclyBBdXRvLXVwZGF0ZSBmYWlsZWQgJm1pZGRvdDsgVHJ5IDxUZXh0IGJvbGQ+L3N0YXR1czwvVGV4dD5cbiAgICAgICAgPC9UZXh0PlxuICAgICAgKX1cbiAgICAgIHttYXhWZXJzaW9uSXNzdWUgJiYgXCJleHRlcm5hbFwiID09PSAnYW50JyAmJiAoXG4gICAgICAgIDxUZXh0IGNvbG9yPVwid2FybmluZ1wiPlxuICAgICAgICAgIOKaoCBLbm93biBpc3N1ZToge21heFZlcnNpb25Jc3N1ZX0gJm1pZGRvdDsgUnVueycgJ31cbiAgICAgICAgICA8VGV4dCBib2xkPmNsYXVkZSByb2xsYmFjayAtLXNhZmU8L1RleHQ+IHRvIGRvd25ncmFkZVxuICAgICAgICA8L1RleHQ+XG4gICAgICApfVxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFDOUIsU0FBU0MsU0FBUyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ25ELFNBQVNDLFFBQVEsUUFBUSxpQ0FBaUM7QUFDMUQsU0FBU0MsZUFBZSxRQUFRLG9CQUFvQjtBQUNwRCxTQUFTQyxRQUFRLFFBQVEsa0JBQWtCO0FBQzNDLFNBQVNDLFdBQVcsUUFBUSxhQUFhO0FBQ3pDLFNBQVNDLHFCQUFxQixRQUFRLG1DQUFtQztBQUN6RSxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxXQUFXO0FBQ3JDLGNBQWNDLGlCQUFpQixRQUFRLHlCQUF5QjtBQUNoRSxTQUFTQyxhQUFhLEVBQUVDLG9CQUFvQixRQUFRLHlCQUF5QjtBQUM3RSxTQUFTQyxxQkFBcUIsUUFBUSxvQkFBb0I7QUFDMUQsU0FBU0MsYUFBYSxRQUFRLG1DQUFtQztBQUNqRSxTQUFTQyxFQUFFLFFBQVEsb0JBQW9CO0FBQ3ZDLFNBQVNDLGtCQUFrQixRQUFRLCtCQUErQjs7QUFFbEU7QUFDQTtBQUNBO0FBQ0EsU0FBU0MsWUFBWUEsQ0FBQ0MsWUFBWSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztFQUNsRCxJQUFJQSxZQUFZLENBQUNDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtJQUNwQyxPQUFPLFNBQVM7RUFDbEI7RUFDQSxJQUFJRCxZQUFZLENBQUNDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO0lBQzlDLE9BQU8sbUJBQW1CO0VBQzVCO0VBQ0EsSUFBSUQsWUFBWSxDQUFDQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUlELFlBQVksQ0FBQ0MsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO0lBQ3pFLE9BQU8sV0FBVztFQUNwQjtFQUNBLElBQUlELFlBQVksQ0FBQ0MsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJRCxZQUFZLENBQUNDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRTtJQUMxRSxPQUFPLG1CQUFtQjtFQUM1QjtFQUNBLElBQUlELFlBQVksQ0FBQ0MsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO0lBQ25DLE9BQU8sV0FBVztFQUNwQjtFQUNBLElBQUlELFlBQVksQ0FBQ0MsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO0lBQ2hDLE9BQU8sV0FBVztFQUNwQjtFQUNBLElBQ0VELFlBQVksQ0FBQ0MsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUNoQ0QsWUFBWSxDQUFDQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQ3JDRCxZQUFZLENBQUNDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFDbEM7SUFDQSxPQUFPLGVBQWU7RUFDeEI7RUFDQSxPQUFPLFNBQVM7QUFDbEI7QUFFQSxLQUFLQyxLQUFLLEdBQUc7RUFDWEMsVUFBVSxFQUFFLE9BQU87RUFDbkJDLGtCQUFrQixFQUFFLENBQUNELFVBQVUsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJO0VBQ2pERSxtQkFBbUIsRUFBRSxDQUFDQyxpQkFBaUIsRUFBRWQsaUJBQWlCLEVBQUUsR0FBRyxJQUFJO0VBQ25FYyxpQkFBaUIsRUFBRWQsaUJBQWlCLEdBQUcsSUFBSTtFQUMzQ2Usa0JBQWtCLEVBQUUsT0FBTztFQUMzQkMsT0FBTyxFQUFFLE9BQU87QUFDbEIsQ0FBQztBQUVELE9BQU8sU0FBU0MsaUJBQWlCQSxDQUFDO0VBQ2hDTixVQUFVO0VBQ1ZDLGtCQUFrQjtFQUNsQkMsbUJBQW1CO0VBQ25CQyxpQkFBaUI7RUFDakJDLGtCQUFrQjtFQUNsQkM7QUFDSyxDQUFOLEVBQUVOLEtBQUssQ0FBQyxFQUFFckIsS0FBSyxDQUFDNkIsU0FBUyxDQUFDO0VBQ3pCLE1BQU0sQ0FBQ0MsUUFBUSxFQUFFQyxXQUFXLENBQUMsR0FBRzVCLFFBQVEsQ0FBQztJQUN2QzZCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sR0FBRyxJQUFJO0lBQ3ZCQyxNQUFNLENBQUMsRUFBRSxNQUFNLEdBQUcsSUFBSTtFQUN4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNOLE1BQU0sQ0FBQ0MsZUFBZSxFQUFFQyxrQkFBa0IsQ0FBQyxHQUFHaEMsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7RUFDM0UsTUFBTWlDLFlBQVksR0FBRzVCLHFCQUFxQixDQUFDaUIsaUJBQWlCLEVBQUVZLE9BQU8sQ0FBQztFQUN0RSxNQUFNQyxPQUFPLEdBQUdyQixrQkFBa0IsQ0FBQyxDQUFDLEVBQUVzQixrQkFBa0IsSUFBSSxRQUFROztFQUVwRTtFQUNBO0VBQ0E7RUFDQTtFQUNBLE1BQU1DLGFBQWEsR0FBR3RDLE1BQU0sQ0FBQ29CLFVBQVUsQ0FBQztFQUN4Q2tCLGFBQWEsQ0FBQ1IsT0FBTyxHQUFHVixVQUFVO0VBRWxDLE1BQU1tQixlQUFlLEdBQUd6QyxLQUFLLENBQUMwQyxXQUFXLENBQUMsWUFBWTtJQUNwRCxJQUFJRixhQUFhLENBQUNSLE9BQU8sRUFBRTtNQUN6QjtJQUNGO0lBRUEsSUFDRSxZQUFZLEtBQUssTUFBTSxJQUN2QixZQUFZLEtBQUssYUFBYSxFQUM5QjtNQUNBM0IsZUFBZSxDQUNiLGtFQUNGLENBQUM7TUFDRDtJQUNGO0lBRUEsSUFBSVMscUJBQXFCLENBQUMsQ0FBQyxFQUFFO01BQzNCO0lBQ0Y7SUFFQVMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO0lBQ3hCLE1BQU1vQixTQUFTLEdBQUdDLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUM7O0lBRTVCO0lBQ0F6QyxRQUFRLENBQUMsaUNBQWlDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0MsSUFBSTtNQUNGO01BQ0EsTUFBTTBDLFVBQVUsR0FBRyxNQUFNbEMsYUFBYSxDQUFDLENBQUM7TUFDeEMsSUFBSWtDLFVBQVUsSUFBSTlCLEVBQUUsQ0FBQytCLEtBQUssQ0FBQ0MsT0FBTyxFQUFFRixVQUFVLENBQUMsRUFBRTtRQUMvQyxNQUFNRyxHQUFHLEdBQUcsTUFBTXBDLG9CQUFvQixDQUFDLENBQUM7UUFDeENzQixrQkFBa0IsQ0FBQ2MsR0FBRyxJQUFJLHNCQUFzQixDQUFDO01BQ25EO01BRUEsTUFBTUMsTUFBTSxHQUFHLE1BQU1uQyxhQUFhLENBQUN1QixPQUFPLENBQUM7TUFDM0MsTUFBTWEsY0FBYyxHQUFHSixLQUFLLENBQUNDLE9BQU87TUFDcEMsTUFBTUksU0FBUyxHQUFHUixJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEdBQUdGLFNBQVM7O01BRXhDO01BQ0EsSUFBSU8sTUFBTSxDQUFDRyxVQUFVLEVBQUU7UUFDckJqRCxRQUFRLENBQUMsMkNBQTJDLEVBQUU7VUFDcERrRCxVQUFVLEVBQUVGO1FBQ2QsQ0FBQyxDQUFDO1FBQ0YsT0FBTSxDQUFDO01BQ1Q7O01BRUE7TUFDQXJCLFdBQVcsQ0FBQztRQUFFQyxPQUFPLEVBQUVtQixjQUFjO1FBQUVsQixNQUFNLEVBQUVpQixNQUFNLENBQUNLO01BQWMsQ0FBQyxDQUFDO01BRXRFLElBQUlMLE1BQU0sQ0FBQ00sVUFBVSxFQUFFO1FBQ3JCcEQsUUFBUSxDQUFDLG1DQUFtQyxFQUFFO1VBQzVDa0QsVUFBVSxFQUFFRjtRQUNkLENBQUMsQ0FBQztRQUVGNUIsbUJBQW1CLENBQUM7VUFDbEJhLE9BQU8sRUFBRWEsTUFBTSxDQUFDSyxhQUFhO1VBQzdCRSxNQUFNLEVBQUU7UUFDVixDQUFDLENBQUM7TUFDSixDQUFDLE1BQU07UUFDTDtRQUNBckQsUUFBUSxDQUFDLHNDQUFzQyxFQUFFO1VBQy9Da0QsVUFBVSxFQUFFRjtRQUNkLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxDQUFDLE9BQU9NLEtBQUssRUFBRTtNQUNkLE1BQU1OLFNBQVMsR0FBR1IsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxHQUFHRixTQUFTO01BQ3hDLE1BQU14QixZQUFZLEdBQ2hCdUMsS0FBSyxZQUFZQyxLQUFLLEdBQUdELEtBQUssQ0FBQ0UsT0FBTyxHQUFHQyxNQUFNLENBQUNILEtBQUssQ0FBQztNQUN4RHBELFFBQVEsQ0FBQ29ELEtBQUssQ0FBQztNQUVmLE1BQU1JLFNBQVMsR0FBRzVDLFlBQVksQ0FBQ0MsWUFBWSxDQUFDO01BQzVDZixRQUFRLENBQUMsZ0NBQWdDLEVBQUU7UUFDekNrRCxVQUFVLEVBQUVGLFNBQVM7UUFDckJXLGFBQWEsRUFBRUQsU0FBUyxLQUFLLFNBQVM7UUFDdENFLGNBQWMsRUFBRUYsU0FBUyxLQUFLLG1CQUFtQjtRQUNqREcsZUFBZSxFQUFFSCxTQUFTLEtBQUssV0FBVztRQUMxQ0ksZ0JBQWdCLEVBQUVKLFNBQVMsS0FBSyxtQkFBbUI7UUFDbkRLLGVBQWUsRUFBRUwsU0FBUyxLQUFLLFdBQVc7UUFDMUNNLFNBQVMsRUFBRU4sU0FBUyxLQUFLLFdBQVc7UUFDcENPLGFBQWEsRUFBRVAsU0FBUyxLQUFLO01BQy9CLENBQUMsQ0FBQztNQUVGdEMsbUJBQW1CLENBQUM7UUFDbEJhLE9BQU8sRUFBRSxJQUFJO1FBQ2JvQixNQUFNLEVBQUU7TUFDVixDQUFDLENBQUM7SUFDSixDQUFDLFNBQVM7TUFDUmxDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztJQUMzQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7RUFDRixDQUFDLEVBQUUsQ0FBQ0MsbUJBQW1CLEVBQUVjLE9BQU8sQ0FBQyxDQUFDOztFQUVsQztFQUNBckMsU0FBUyxDQUFDLE1BQU07SUFDZCxLQUFLd0MsZUFBZSxDQUFDLENBQUM7RUFDeEIsQ0FBQyxFQUFFLENBQUNBLGVBQWUsQ0FBQyxDQUFDOztFQUVyQjtFQUNBbEMsV0FBVyxDQUFDa0MsZUFBZSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0VBRTVDLE1BQU02QixlQUFlLEdBQUcsQ0FBQyxDQUFDN0MsaUJBQWlCLEVBQUVZLE9BQU87RUFDcEQsTUFBTWtDLGNBQWMsR0FBRyxDQUFDLENBQUN6QyxRQUFRLENBQUNFLE9BQU8sSUFBSSxDQUFDLENBQUNGLFFBQVEsQ0FBQ0csTUFBTTtFQUM5RDtFQUNBO0VBQ0E7RUFDQTtFQUNBLE1BQU11QyxZQUFZLEdBQ2hCLENBQUMsQ0FBQ3RDLGVBQWUsSUFBSW9DLGVBQWUsSUFBS2hELFVBQVUsSUFBSWlELGNBQWU7RUFFeEUsSUFBSSxDQUFDQyxZQUFZLEVBQUU7SUFDakIsT0FBTyxJQUFJO0VBQ2I7RUFFQSxPQUNFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sQ0FBQzdDLE9BQU8sSUFDTixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVU7QUFDdEMsbUJBQW1CLENBQUNHLFFBQVEsQ0FBQ0UsT0FBTyxDQUFDLFVBQVUsQ0FBQ00sT0FBTyxDQUFDLEVBQUUsQ0FBQ1IsUUFBUSxDQUFDRyxNQUFNO0FBQzFFLFFBQVEsRUFBRSxJQUFJLENBQ1A7QUFDUCxNQUFNLENBQUNYLFVBQVUsR0FDVCxDQUFDLEdBQUc7QUFDWixVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVTtBQUN4QztBQUNBLFVBQVUsRUFBRSxJQUFJO0FBQ2hCLFFBQVEsRUFBRSxHQUFHLENBQUMsR0FFTkcsaUJBQWlCLEVBQUVnQyxNQUFNLEtBQUssU0FBUyxJQUN2Qy9CLGtCQUFrQixJQUNsQlUsWUFBWSxJQUNWLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVU7QUFDL0M7QUFDQSxVQUFVLEVBQUUsSUFBSSxDQUVUO0FBQ1AsTUFBTSxDQUFDWCxpQkFBaUIsRUFBRWdDLE1BQU0sS0FBSyxnQkFBZ0IsSUFDN0MsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVTtBQUMzQyw0Q0FBNEMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJO0FBQ3BFLFFBQVEsRUFBRSxJQUFJLENBQ1A7QUFDUCxNQUFNLENBQUN2QixlQUFlLElBQUksVUFBVSxLQUFLLEtBQUssSUFDdEMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7QUFDN0IseUJBQXlCLENBQUNBLGVBQWUsQ0FBQyxhQUFhLENBQUMsR0FBRztBQUMzRCxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUM7QUFDbEQsUUFBUSxFQUFFLElBQUksQ0FDUDtBQUNQLElBQUksRUFBRSxHQUFHLENBQUM7QUFFViIsImlnbm9yZUxpc3QiOltdfQ==
|
|
192
|
+
}
|
|
@@ -88,5 +88,4 @@ export function NotebookEditToolUseRejectedMessage(t0) {
|
|
|
88
88
|
t8 = $[19];
|
|
89
89
|
}
|
|
90
90
|
return t8;
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWxhdGl2ZSIsIlJlYWN0IiwiZ2V0Q3dkIiwiQm94IiwiVGV4dCIsIkhpZ2hsaWdodGVkQ29kZSIsIk1lc3NhZ2VSZXNwb25zZSIsIlByb3BzIiwibm90ZWJvb2tfcGF0aCIsImNlbGxfaWQiLCJuZXdfc291cmNlIiwiY2VsbF90eXBlIiwiZWRpdF9tb2RlIiwidmVyYm9zZSIsIk5vdGVib29rRWRpdFRvb2xVc2VSZWplY3RlZE1lc3NhZ2UiLCJ0MCIsIiQiLCJfYyIsInQxIiwidW5kZWZpbmVkIiwib3BlcmF0aW9uIiwidDIiLCJ0MyIsInQ0IiwidDUiLCJ0NiIsInQ3IiwidDgiXSwic291cmNlcyI6WyJOb3RlYm9va0VkaXRUb29sVXNlUmVqZWN0ZWRNZXNzYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWxhdGl2ZSB9IGZyb20gJ3BhdGgnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGdldEN3ZCB9IGZyb20gJ3NyYy91dGlscy9jd2QuanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5pbXBvcnQgeyBIaWdobGlnaHRlZENvZGUgfSBmcm9tICcuL0hpZ2hsaWdodGVkQ29kZS5qcydcbmltcG9ydCB7IE1lc3NhZ2VSZXNwb25zZSB9IGZyb20gJy4vTWVzc2FnZVJlc3BvbnNlLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBub3RlYm9va19wYXRoOiBzdHJpbmdcbiAgY2VsbF9pZDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIG5ld19zb3VyY2U6IHN0cmluZ1xuICBjZWxsX3R5cGU/OiAnY29kZScgfCAnbWFya2Rvd24nXG4gIGVkaXRfbW9kZT86ICdyZXBsYWNlJyB8ICdpbnNlcnQnIHwgJ2RlbGV0ZSdcbiAgdmVyYm9zZTogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gTm90ZWJvb2tFZGl0VG9vbFVzZVJlamVjdGVkTWVzc2FnZSh7XG4gIG5vdGVib29rX3BhdGgsXG4gIGNlbGxfaWQsXG4gIG5ld19zb3VyY2UsXG4gIGNlbGxfdHlwZSxcbiAgZWRpdF9tb2RlID0gJ3JlcGxhY2UnLFxuICB2ZXJib3NlLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBvcGVyYXRpb24gPSBlZGl0X21vZGUgPT09ICdkZWxldGUnID8gJ2RlbGV0ZScgOiBgJHtlZGl0X21vZGV9IGNlbGwgaW5gXG5cbiAgcmV0dXJuIChcbiAgICA8TWVzc2FnZVJlc3BvbnNlPlxuICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCI+XG4gICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICAgIDxUZXh0IGNvbG9yPVwic3VidGxlXCI+VXNlciByZWplY3RlZCB7b3BlcmF0aW9ufSA8L1RleHQ+XG4gICAgICAgICAgPFRleHQgYm9sZCBjb2xvcj1cInN1YnRsZVwiPlxuICAgICAgICAgICAge3ZlcmJvc2UgPyBub3RlYm9va19wYXRoIDogcmVsYXRpdmUoZ2V0Q3dkKCksIG5vdGVib29rX3BhdGgpfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8VGV4dCBjb2xvcj1cInN1YnRsZVwiPiBhdCBjZWxsIHtjZWxsX2lkfTwvVGV4dD5cbiAgICAgICAgPC9Cb3g+XG4gICAgICAgIHtlZGl0X21vZGUgIT09ICdkZWxldGUnICYmIChcbiAgICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0gZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgPEhpZ2hsaWdodGVkQ29kZVxuICAgICAgICAgICAgICBjb2RlPXtuZXdfc291cmNlfVxuICAgICAgICAgICAgICBmaWxlUGF0aD17Y2VsbF90eXBlID09PSAnbWFya2Rvd24nID8gJ2ZpbGUubWQnIDogJ2ZpbGUucHknfVxuICAgICAgICAgICAgICBkaW1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICl9XG4gICAgICA8L0JveD5cbiAgICA8L01lc3NhZ2VSZXNwb25zZT5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsUUFBUSxRQUFRLE1BQU07QUFDL0IsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxNQUFNLFFBQVEsa0JBQWtCO0FBQ3pDLFNBQVNDLEdBQUcsRUFBRUMsSUFBSSxRQUFRLFdBQVc7QUFDckMsU0FBU0MsZUFBZSxRQUFRLHNCQUFzQjtBQUN0RCxTQUFTQyxlQUFlLFFBQVEsc0JBQXNCO0FBRXRELEtBQUtDLEtBQUssR0FBRztFQUNYQyxhQUFhLEVBQUUsTUFBTTtFQUNyQkMsT0FBTyxFQUFFLE1BQU0sR0FBRyxTQUFTO0VBQzNCQyxVQUFVLEVBQUUsTUFBTTtFQUNsQkMsU0FBUyxDQUFDLEVBQUUsTUFBTSxHQUFHLFVBQVU7RUFDL0JDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsR0FBRyxRQUFRLEdBQUcsUUFBUTtFQUMzQ0MsT0FBTyxFQUFFLE9BQU87QUFDbEIsQ0FBQztBQUVELE9BQU8sU0FBQUMsbUNBQUFDLEVBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFBNEM7SUFBQVQsYUFBQTtJQUFBQyxPQUFBO0lBQUFDLFVBQUE7SUFBQUMsU0FBQTtJQUFBQyxTQUFBLEVBQUFNLEVBQUE7SUFBQUw7RUFBQSxJQUFBRSxFQU8zQztFQUZOLE1BQUFILFNBQUEsR0FBQU0sRUFBcUIsS0FBckJDLFNBQXFCLEdBQXJCLFNBQXFCLEdBQXJCRCxFQUFxQjtFQUdyQixNQUFBRSxTQUFBLEdBQWtCUixTQUFTLEtBQUssUUFBNEMsR0FBMUQsUUFBMEQsR0FBMUQsR0FBdUNBLFNBQVMsVUFBVTtFQUFBLElBQUFTLEVBQUE7RUFBQSxJQUFBTCxDQUFBLFFBQUFJLFNBQUE7SUFNcEVDLEVBQUEsSUFBQyxJQUFJLENBQU8sS0FBUSxDQUFSLFFBQVEsQ0FBQyxjQUFlRCxVQUFRLENBQUUsQ0FBQyxFQUE5QyxJQUFJLENBQWlEO0lBQUFKLENBQUEsTUFBQUksU0FBQTtJQUFBSixDQUFBLE1BQUFLLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFMLENBQUE7RUFBQTtFQUFBLElBQUFNLEVBQUE7RUFBQSxJQUFBTixDQUFBLFFBQUFSLGFBQUEsSUFBQVEsQ0FBQSxRQUFBSCxPQUFBO0lBRW5EUyxFQUFBLEdBQUFULE9BQU8sR0FBUEwsYUFBMkQsR0FBakNSLFFBQVEsQ0FBQ0UsTUFBTSxDQUFDLENBQUMsRUFBRU0sYUFBYSxDQUFDO0lBQUFRLENBQUEsTUFBQVIsYUFBQTtJQUFBUSxDQUFBLE1BQUFILE9BQUE7SUFBQUcsQ0FBQSxNQUFBTSxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBTixDQUFBO0VBQUE7RUFBQSxJQUFBTyxFQUFBO0VBQUEsSUFBQVAsQ0FBQSxRQUFBTSxFQUFBO0lBRDlEQyxFQUFBLElBQUMsSUFBSSxDQUFDLElBQUksQ0FBSixLQUFHLENBQUMsQ0FBTyxLQUFRLENBQVIsUUFBUSxDQUN0QixDQUFBRCxFQUEwRCxDQUM3RCxFQUZDLElBQUksQ0FFRTtJQUFBTixDQUFBLE1BQUFNLEVBQUE7SUFBQU4sQ0FBQSxNQUFBTyxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBUCxDQUFBO0VBQUE7RUFBQSxJQUFBUSxFQUFBO0VBQUEsSUFBQVIsQ0FBQSxRQUFBUCxPQUFBO0lBQ1BlLEVBQUEsSUFBQyxJQUFJLENBQU8sS0FBUSxDQUFSLFFBQVEsQ0FBQyxTQUFVZixRQUFNLENBQUUsRUFBdEMsSUFBSSxDQUF5QztJQUFBTyxDQUFBLE1BQUFQLE9BQUE7SUFBQU8sQ0FBQSxNQUFBUSxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBUixDQUFBO0VBQUE7RUFBQSxJQUFBUyxFQUFBO0VBQUEsSUFBQVQsQ0FBQSxRQUFBSyxFQUFBLElBQUFMLENBQUEsU0FBQU8sRUFBQSxJQUFBUCxDQUFBLFNBQUFRLEVBQUE7SUFMaERDLEVBQUEsSUFBQyxHQUFHLENBQWUsYUFBSyxDQUFMLEtBQUssQ0FDdEIsQ0FBQUosRUFBcUQsQ0FDckQsQ0FBQUUsRUFFTSxDQUNOLENBQUFDLEVBQTZDLENBQy9DLEVBTkMsR0FBRyxDQU1FO0lBQUFSLENBQUEsTUFBQUssRUFBQTtJQUFBTCxDQUFBLE9BQUFPLEVBQUE7SUFBQVAsQ0FBQSxPQUFBUSxFQUFBO0lBQUFSLENBQUEsT0FBQVMsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQVQsQ0FBQTtFQUFBO0VBQUEsSUFBQVUsRUFBQTtFQUFBLElBQUFWLENBQUEsU0FBQUwsU0FBQSxJQUFBSyxDQUFBLFNBQUFKLFNBQUEsSUFBQUksQ0FBQSxTQUFBTixVQUFBO0lBQ0xnQixFQUFBLEdBQUFkLFNBQVMsS0FBSyxRQVFkLElBUEMsQ0FBQyxHQUFHLENBQVksU0FBQyxDQUFELEdBQUMsQ0FBZ0IsYUFBUSxDQUFSLFFBQVEsQ0FDdkMsQ0FBQyxlQUFlLENBQ1JGLElBQVUsQ0FBVkEsV0FBUyxDQUFDLENBQ04sUUFBZ0QsQ0FBaEQsQ0FBQUMsU0FBUyxLQUFLLFVBQWtDLEdBQWhELFNBQWdELEdBQWhELFNBQStDLENBQUMsQ0FDMUQsR0FBRyxDQUFILEtBQUUsQ0FBQyxHQUVQLEVBTkMsR0FBRyxDQU9MO0lBQUFLLENBQUEsT0FBQUwsU0FBQTtJQUFBSyxDQUFBLE9BQUFKLFNBQUE7SUFBQUksQ0FBQSxPQUFBTixVQUFBO0lBQUFNLENBQUEsT0FBQVUsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQVYsQ0FBQTtFQUFBO0VBQUEsSUFBQVcsRUFBQTtFQUFBLElBQUFYLENBQUEsU0FBQVMsRUFBQSxJQUFBVCxDQUFBLFNBQUFVLEVBQUE7SUFqQkxDLEVBQUEsSUFBQyxlQUFlLENBQ2QsQ0FBQyxHQUFHLENBQWUsYUFBUSxDQUFSLFFBQVEsQ0FDekIsQ0FBQUYsRUFNSyxDQUNKLENBQUFDLEVBUUQsQ0FDRixFQWpCQyxHQUFHLENBa0JOLEVBbkJDLGVBQWUsQ0FtQkU7SUFBQVYsQ0FBQSxPQUFBUyxFQUFBO0lBQUFULENBQUEsT0FBQVUsRUFBQTtJQUFBVixDQUFBLE9BQUFXLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFYLENBQUE7RUFBQTtFQUFBLE9BbkJsQlcsRUFtQmtCO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
91
|
+
}
|
|
@@ -40,5 +40,4 @@ export function OffscreenFreeze({
|
|
|
40
40
|
cached.current = children;
|
|
41
41
|
}
|
|
42
42
|
return <Box ref={ref}>{cached.current}</Box>;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNvbnRleHQiLCJ1c2VSZWYiLCJ1c2VUZXJtaW5hbFZpZXdwb3J0IiwiQm94IiwiSW5WaXJ0dWFsTGlzdENvbnRleHQiLCJQcm9wcyIsImNoaWxkcmVuIiwiUmVhY3ROb2RlIiwiT2Zmc2NyZWVuRnJlZXplIiwiaW5WaXJ0dWFsTGlzdCIsInJlZiIsImlzVmlzaWJsZSIsImNhY2hlZCIsImN1cnJlbnQiXSwic291cmNlcyI6WyJPZmZzY3JlZW5GcmVlemUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRlcm1pbmFsVmlld3BvcnQgfSBmcm9tICcuLi9pbmsvaG9va3MvdXNlLXRlcm1pbmFsLXZpZXdwb3J0LmpzJ1xuaW1wb3J0IHsgQm94IH0gZnJvbSAnLi4vaW5rLmpzJ1xuaW1wb3J0IHsgSW5WaXJ0dWFsTGlzdENvbnRleHQgfSBmcm9tICcuL21lc3NhZ2VBY3Rpb25zLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59XG5cbi8qKlxuICogRnJlZXplcyBjaGlsZHJlbiB3aGVuIHRoZXkgc2Nyb2xsIGFib3ZlIHRoZSB0ZXJtaW5hbCB2aWV3cG9ydCAoaW50byBzY3JvbGxiYWNrKS5cbiAqXG4gKiBBbnkgY29udGVudCBjaGFuZ2UgYWJvdmUgdGhlIHZpZXdwb3J0IGZvcmNlcyBsb2ctdXBkYXRlLnRzIGludG8gYSBmdWxsIHRlcm1pbmFsXG4gKiByZXNldCAoaXQgY2Fubm90IHBhcnRpYWxseSB1cGRhdGUgcm93cyB0aGF0IGhhdmUgc2Nyb2xsZWQgb3V0KS4gRm9yIGNvbnRlbnQgdGhhdFxuICogdXBkYXRlcyBvbiBhIHRpbWVyIOKAlCBzcGlubmVycywgZWxhcHNlZCBjb3VudGVycyDigJQgdGhpcyBwcm9kdWNlcyBhIHJlc2V0IHBlciB0aWNrLlxuICpcbiAqIFdoZW4gb2Zmc2NyZWVuLCByZXR1cm5zIHRoZSBzYW1lIFJlYWN0RWxlbWVudCByZWZlcmVuY2UgdGhhdCB3YXMgY2FjaGVkIGR1cmluZ1xuICogdGhlIGxhc3QgdmlzaWJsZSByZW5kZXIuIFJlYWN0J3MgcmVjb25jaWxlciBiYWlscyBvbiBpZGVudGljYWwgZWxlbWVudCByZWZzLCBzb1xuICogdGhlIHN1YnRyZWUgbmV2ZXIgcmUtcmVuZGVycywgcHJvZHVjaW5nIHplcm8gZGlmZi5cbiAqXG4gKiBUaGUgY2FjaGUgaXMgb25lIHNsb3QgZGVlcDogdGhlIGZpcnN0IHJlLXJlbmRlciBhZnRlciBzY3JvbGxpbmcgYmFjayBpbnRvIHZpZXdcbiAqIHBpY2tzIHVwIHRoZSBsaXZlIGNoaWxkcmVuLiBDb250ZW50IHN0aWxsIHVwZGF0ZXMgbm9ybWFsbHkgd2hpbGUgdmlzaWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE9mZnNjcmVlbkZyZWV6ZSh7IGNoaWxkcmVuIH06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgLy8gUmVhY3QgQ29tcGlsZXI6IHJlYWRpbmcgY2FjaGVkLmN1cnJlbnQgaW4gdGhlIHJldHVybiBpcyB0aGUgZW50aXJlXG4gIC8vIGZyZWV6ZSBtZWNoYW5pc20g4oCUIG1lbW9pemluZyB0aGlzIGNvbXBvbmVudCB3b3VsZCBkZWZlYXQgaXQuIE9wdCBvdXQuXG4gICd1c2Ugbm8gbWVtbydcbiAgY29uc3QgaW5WaXJ0dWFsTGlzdCA9IHVzZUNvbnRleHQoSW5WaXJ0dWFsTGlzdENvbnRleHQpXG4gIGNvbnN0IFtyZWYsIHsgaXNWaXNpYmxlIH1dID0gdXNlVGVybWluYWxWaWV3cG9ydCgpXG4gIGNvbnN0IGNhY2hlZCA9IHVzZVJlZihjaGlsZHJlbilcbiAgLy8gVmlydHVhbCBsaXN0IGhhcyBubyB0ZXJtaW5hbCBzY3JvbGxiYWNrIOKAlCB0aGUgU2Nyb2xsQm94IGNsaXBzIGluc2lkZSB0aGVcbiAgLy8gdmlld3BvcnQsIHNvIHRoZXJlJ3Mgbm90aGluZyB0byBmcmVlemUuIEZyZWV6aW5nIHRoZXJlIGFsc28gYmxvY2tzXG4gIC8vIGNsaWNrLXRvLWV4cGFuZCBzaW5jZSB1c2VUZXJtaW5hbFZpZXdwb3J0J3MgdmlzaWJpbGl0eSBjYWxjIGNhbiBkaXNhZ3JlZVxuICAvLyB3aXRoIHRoZSBTY3JvbGxCb3gncyB2aXJ0dWFsIHNjcm9sbCBwb3NpdGlvbi5cbiAgaWYgKGlzVmlzaWJsZSB8fCBpblZpcnR1YWxMaXN0KSB7XG4gICAgY2FjaGVkLmN1cnJlbnQgPSBjaGlsZHJlblxuICB9XG4gIHJldHVybiA8Qm94IHJlZj17cmVmfT57Y2FjaGVkLmN1cnJlbnR9PC9Cb3g+XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLEtBQUssSUFBSUMsVUFBVSxFQUFFQyxNQUFNLFFBQVEsT0FBTztBQUNqRCxTQUFTQyxtQkFBbUIsUUFBUSx1Q0FBdUM7QUFDM0UsU0FBU0MsR0FBRyxRQUFRLFdBQVc7QUFDL0IsU0FBU0Msb0JBQW9CLFFBQVEscUJBQXFCO0FBRTFELEtBQUtDLEtBQUssR0FBRztFQUNYQyxRQUFRLEVBQUVQLEtBQUssQ0FBQ1EsU0FBUztBQUMzQixDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNDLGVBQWVBLENBQUM7RUFBRUY7QUFBZ0IsQ0FBTixFQUFFRCxLQUFLLENBQUMsRUFBRU4sS0FBSyxDQUFDUSxTQUFTLENBQUM7RUFDcEU7RUFDQTtFQUNBLGFBQWE7O0VBQ2IsTUFBTUUsYUFBYSxHQUFHVCxVQUFVLENBQUNJLG9CQUFvQixDQUFDO0VBQ3RELE1BQU0sQ0FBQ00sR0FBRyxFQUFFO0lBQUVDO0VBQVUsQ0FBQyxDQUFDLEdBQUdULG1CQUFtQixDQUFDLENBQUM7RUFDbEQsTUFBTVUsTUFBTSxHQUFHWCxNQUFNLENBQUNLLFFBQVEsQ0FBQztFQUMvQjtFQUNBO0VBQ0E7RUFDQTtFQUNBLElBQUlLLFNBQVMsSUFBSUYsYUFBYSxFQUFFO0lBQzlCRyxNQUFNLENBQUNDLE9BQU8sR0FBR1AsUUFBUTtFQUMzQjtFQUNBLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUNJLEdBQUcsQ0FBQyxDQUFDLENBQUNFLE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLEVBQUUsR0FBRyxDQUFDO0FBQzlDIiwiaWdub3JlTGlzdCI6W119
|
|
43
|
+
}
|
|
@@ -5,7 +5,7 @@ import { setupTerminal, shouldOfferTerminalSetup } from '../commands/terminalSet
|
|
|
5
5
|
import { useExitOnCtrlCDWithKeybindings } from '../hooks/useExitOnCtrlCDWithKeybindings.js';
|
|
6
6
|
import { Box, Link, Newline, Text, useTheme } from '../ink.js';
|
|
7
7
|
import { useKeybindings } from '../keybindings/useKeybinding.js';
|
|
8
|
-
import {
|
|
8
|
+
import { isFriendliAuthEnabled } from '../utils/auth.js';
|
|
9
9
|
import { normalizeApiKeyForConfig } from '../utils/authPortable.js';
|
|
10
10
|
import { getCustomApiKeyStatus } from '../utils/config.js';
|
|
11
11
|
import { env } from '../utils/env.js';
|
|
@@ -32,7 +32,7 @@ export function Onboarding({
|
|
|
32
32
|
}: Props): React.ReactNode {
|
|
33
33
|
const [currentStepIndex, setCurrentStepIndex] = useState(0);
|
|
34
34
|
const [skipOAuth, setSkipOAuth] = useState(false);
|
|
35
|
-
const [oauthEnabled] = useState(() =>
|
|
35
|
+
const [oauthEnabled] = useState(() => isFriendliAuthEnabled());
|
|
36
36
|
const [theme, setTheme] = useTheme();
|
|
37
37
|
useEffect(() => {
|
|
38
38
|
logEvent('tengu_began_setup', {
|
|
@@ -241,4 +241,3 @@ export function SkippableStep(t0) {
|
|
|
241
241
|
}
|
|
242
242
|
return children;
|
|
243
243
|
}
|
|
244
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyIsImxvZ0V2ZW50Iiwic2V0dXBUZXJtaW5hbCIsInNob3VsZE9mZmVyVGVybWluYWxTZXR1cCIsInVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncyIsIkJveCIsIkxpbmsiLCJOZXdsaW5lIiwiVGV4dCIsInVzZVRoZW1lIiwidXNlS2V5YmluZGluZ3MiLCJpc0FudGhyb3BpY0F1dGhFbmFibGVkIiwibm9ybWFsaXplQXBpS2V5Rm9yQ29uZmlnIiwiZ2V0Q3VzdG9tQXBpS2V5U3RhdHVzIiwiZW52IiwiaXNSdW5uaW5nT25Ib21lc3BhY2UiLCJQcmVmbGlnaHRTdGVwIiwiVGhlbWVTZXR0aW5nIiwiQXBwcm92ZUFwaUtleSIsIkNvbnNvbGVPQXV0aEZsb3ciLCJTZWxlY3QiLCJXZWxjb21lVjIiLCJQcmVzc0VudGVyVG9Db250aW51ZSIsIlRoZW1lUGlja2VyIiwiT3JkZXJlZExpc3QiLCJTdGVwSWQiLCJPbmJvYXJkaW5nU3RlcCIsImlkIiwiY29tcG9uZW50IiwiUmVhY3ROb2RlIiwiUHJvcHMiLCJvbkRvbmUiLCJPbmJvYXJkaW5nIiwiY3VycmVudFN0ZXBJbmRleCIsInNldEN1cnJlbnRTdGVwSW5kZXgiLCJza2lwT0F1dGgiLCJzZXRTa2lwT0F1dGgiLCJvYXV0aEVuYWJsZWQiLCJ0aGVtZSIsInNldFRoZW1lIiwiZ29Ub05leHRTdGVwIiwic3RlcHMiLCJsZW5ndGgiLCJuZXh0SW5kZXgiLCJzdGVwSWQiLCJoYW5kbGVUaGVtZVNlbGVjdGlvbiIsIm5ld1RoZW1lIiwiZXhpdFN0YXRlIiwidGhlbWVTdGVwIiwic2VjdXJpdHlTdGVwIiwicHJlZmxpZ2h0U3RlcCIsImFwaUtleU5lZWRpbmdBcHByb3ZhbCIsInByb2Nlc3MiLCJBTlRIUk9QSUNfQVBJX0tFWSIsImN1c3RvbUFwaUtleVRydW5jYXRlZCIsImhhbmRsZUFwaUtleURvbmUiLCJhcHByb3ZlZCIsInB1c2giLCJ0ZXJtaW5hbCIsImxhYmVsIiwidmFsdWUiLCJjYXRjaCIsImZpbmFsbHkiLCJwZW5kaW5nIiwia2V5TmFtZSIsImN1cnJlbnRTdGVwIiwiaGFuZGxlU2VjdXJpdHlDb250aW51ZSIsImhhbmRsZVRlcm1pbmFsU2V0dXBTa2lwIiwiY29udGV4dCIsImlzQWN0aXZlIiwiU2tpcHBhYmxlU3RlcCIsInQwIiwiJCIsIl9jIiwic2tpcCIsIm9uU2tpcCIsImNoaWxkcmVuIiwidDEiLCJ0MiJdLCJzb3VyY2VzIjpbIk9uYm9hcmRpbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgdHlwZSBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICBsb2dFdmVudCxcbn0gZnJvbSAnc3JjL3NlcnZpY2VzL2FuYWx5dGljcy9pbmRleC5qcydcbmltcG9ydCB7XG4gIHNldHVwVGVybWluYWwsXG4gIHNob3VsZE9mZmVyVGVybWluYWxTZXR1cCxcbn0gZnJvbSAnLi4vY29tbWFuZHMvdGVybWluYWxTZXR1cC90ZXJtaW5hbFNldHVwLmpzJ1xuaW1wb3J0IHsgdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzIH0gZnJvbSAnLi4vaG9va3MvdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzLmpzJ1xuaW1wb3J0IHsgQm94LCBMaW5rLCBOZXdsaW5lLCBUZXh0LCB1c2VUaGVtZSB9IGZyb20gJy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmdzIH0gZnJvbSAnLi4va2V5YmluZGluZ3MvdXNlS2V5YmluZGluZy5qcydcbmltcG9ydCB7IGlzQW50aHJvcGljQXV0aEVuYWJsZWQgfSBmcm9tICcuLi91dGlscy9hdXRoLmpzJ1xuaW1wb3J0IHsgbm9ybWFsaXplQXBpS2V5Rm9yQ29uZmlnIH0gZnJvbSAnLi4vdXRpbHMvYXV0aFBvcnRhYmxlLmpzJ1xuaW1wb3J0IHsgZ2V0Q3VzdG9tQXBpS2V5U3RhdHVzIH0gZnJvbSAnLi4vdXRpbHMvY29uZmlnLmpzJ1xuaW1wb3J0IHsgZW52IH0gZnJvbSAnLi4vdXRpbHMvZW52LmpzJ1xuaW1wb3J0IHsgaXNSdW5uaW5nT25Ib21lc3BhY2UgfSBmcm9tICcuLi91dGlscy9lbnZVdGlscy5qcydcbmltcG9ydCB7IFByZWZsaWdodFN0ZXAgfSBmcm9tICcuLi91dGlscy9wcmVmbGlnaHRDaGVja3MuanMnXG5pbXBvcnQgdHlwZSB7IFRoZW1lU2V0dGluZyB9IGZyb20gJy4uL3V0aWxzL3RoZW1lLmpzJ1xuaW1wb3J0IHsgQXBwcm92ZUFwaUtleSB9IGZyb20gJy4vQXBwcm92ZUFwaUtleS5qcydcbmltcG9ydCB7IENvbnNvbGVPQXV0aEZsb3cgfSBmcm9tICcuL0NvbnNvbGVPQXV0aEZsb3cuanMnXG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICcuL0N1c3RvbVNlbGVjdC9zZWxlY3QuanMnXG5pbXBvcnQgeyBXZWxjb21lVjIgfSBmcm9tICcuL0xvZ29WMi9XZWxjb21lVjIuanMnXG5pbXBvcnQgeyBQcmVzc0VudGVyVG9Db250aW51ZSB9IGZyb20gJy4vUHJlc3NFbnRlclRvQ29udGludWUuanMnXG5pbXBvcnQgeyBUaGVtZVBpY2tlciB9IGZyb20gJy4vVGhlbWVQaWNrZXIuanMnXG5pbXBvcnQgeyBPcmRlcmVkTGlzdCB9IGZyb20gJy4vdWkvT3JkZXJlZExpc3QuanMnXG5cbnR5cGUgU3RlcElkID1cbiAgfCAncHJlZmxpZ2h0J1xuICB8ICd0aGVtZSdcbiAgfCAnb2F1dGgnXG4gIHwgJ2FwaS1rZXknXG4gIHwgJ3NlY3VyaXR5J1xuICB8ICd0ZXJtaW5hbC1zZXR1cCdcblxuaW50ZXJmYWNlIE9uYm9hcmRpbmdTdGVwIHtcbiAgaWQ6IFN0ZXBJZFxuICBjb21wb25lbnQ6IFJlYWN0LlJlYWN0Tm9kZVxufVxuXG50eXBlIFByb3BzID0ge1xuICBvbkRvbmUoKTogdm9pZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gT25ib2FyZGluZyh7IG9uRG9uZSB9OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IFtjdXJyZW50U3RlcEluZGV4LCBzZXRDdXJyZW50U3RlcEluZGV4XSA9IHVzZVN0YXRlKDApXG4gIGNvbnN0IFtza2lwT0F1dGgsIHNldFNraXBPQXV0aF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW29hdXRoRW5hYmxlZF0gPSB1c2VTdGF0ZSgoKSA9PiBpc0FudGhyb3BpY0F1dGhFbmFibGVkKCkpXG4gIGNvbnN0IFt0aGVtZSwgc2V0VGhlbWVdID0gdXNlVGhlbWUoKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbG9nRXZlbnQoJ3Rlbmd1X2JlZ2FuX3NldHVwJywge1xuICAgICAgb2F1dGhFbmFibGVkLFxuICAgIH0pXG4gIH0sIFtvYXV0aEVuYWJsZWRdKVxuXG4gIGZ1bmN0aW9uIGdvVG9OZXh0U3RlcCgpIHtcbiAgICBpZiAoY3VycmVudFN0ZXBJbmRleCA8IHN0ZXBzLmxlbmd0aCAtIDEpIHtcbiAgICAgIGNvbnN0IG5leHRJbmRleCA9IGN1cnJlbnRTdGVwSW5kZXggKyAxXG4gICAgICBzZXRDdXJyZW50U3RlcEluZGV4KG5leHRJbmRleClcblxuICAgICAgbG9nRXZlbnQoJ3Rlbmd1X29uYm9hcmRpbmdfc3RlcCcsIHtcbiAgICAgICAgb2F1dGhFbmFibGVkLFxuICAgICAgICBzdGVwSWQ6IHN0ZXBzW25leHRJbmRleF1cbiAgICAgICAgICA/LmlkIGFzIEFuYWx5dGljc01ldGFkYXRhX0lfVkVSSUZJRURfVEhJU19JU19OT1RfQ09ERV9PUl9GSUxFUEFUSFMsXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBvbkRvbmUoKVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZVRoZW1lU2VsZWN0aW9uKG5ld1RoZW1lOiBUaGVtZVNldHRpbmcpIHtcbiAgICBzZXRUaGVtZShuZXdUaGVtZSlcbiAgICBnb1RvTmV4dFN0ZXAoKVxuICB9XG5cbiAgY29uc3QgZXhpdFN0YXRlID0gdXNlRXhpdE9uQ3RybENEV2l0aEtleWJpbmRpbmdzKClcblxuICAvLyBEZWZpbmUgYWxsIG9uYm9hcmRpbmcgc3RlcHNcbiAgY29uc3QgdGhlbWVTdGVwID0gKFxuICAgIDxCb3ggbWFyZ2luWD17MX0+XG4gICAgICA8VGhlbWVQaWNrZXJcbiAgICAgICAgb25UaGVtZVNlbGVjdD17aGFuZGxlVGhlbWVTZWxlY3Rpb259XG4gICAgICAgIHNob3dJbnRyb1RleHQ9e3RydWV9XG4gICAgICAgIGhlbHBUZXh0PVwiVG8gY2hhbmdlIHRoaXMgbGF0ZXIsIHJ1biAvdGhlbWVcIlxuICAgICAgICBoaWRlRXNjVG9DYW5jZWw9e3RydWV9XG4gICAgICAgIHNraXBFeGl0SGFuZGxpbmc9e3RydWV9IC8vIFNraXAgZXhpdCBoYW5kbGluZyBhcyBPbmJvYXJkaW5nIGFscmVhZHkgaGFuZGxlcyBpdFxuICAgICAgLz5cbiAgICA8L0JveD5cbiAgKVxuXG4gIGNvbnN0IHNlY3VyaXR5U3RlcCA9IChcbiAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBnYXA9ezF9IHBhZGRpbmdMZWZ0PXsxfT5cbiAgICAgIDxUZXh0IGJvbGQ+U2VjdXJpdHkgbm90ZXM6PC9UZXh0PlxuICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgd2lkdGg9ezcwfT5cbiAgICAgICAgey8qKlxuICAgICAgICAgKiBPcmRlcmVkTGlzdCBtaXNudW1iZXJzIGl0ZW1zIHdoZW4gcmVuZGVyaW5nIGNvbmRpdGlvbmFsbHksXG4gICAgICAgICAqIHNvIHB1dCBhbGwgaXRlbXMgaW4gdGhlIGlmL2Vsc2VcbiAgICAgICAgICovfVxuICAgICAgICA8T3JkZXJlZExpc3Q+XG4gICAgICAgICAgPE9yZGVyZWRMaXN0Lkl0ZW0+XG4gICAgICAgICAgICA8VGV4dD5DbGF1ZGUgY2FuIG1ha2UgbWlzdGFrZXM8L1RleHQ+XG4gICAgICAgICAgICA8VGV4dCBkaW1Db2xvciB3cmFwPVwid3JhcFwiPlxuICAgICAgICAgICAgICBZb3Ugc2hvdWxkIGFsd2F5cyByZXZpZXcgQ2xhdWRlJmFwb3M7cyByZXNwb25zZXMsIGVzcGVjaWFsbHkgd2hlblxuICAgICAgICAgICAgICA8TmV3bGluZSAvPlxuICAgICAgICAgICAgICBydW5uaW5nIGNvZGUuXG4gICAgICAgICAgICAgIDxOZXdsaW5lIC8+XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9PcmRlcmVkTGlzdC5JdGVtPlxuICAgICAgICAgIDxPcmRlcmVkTGlzdC5JdGVtPlxuICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgIER1ZSB0byBwcm9tcHQgaW5qZWN0aW9uIHJpc2tzLCBvbmx5IHVzZSBpdCB3aXRoIGNvZGUgeW91IHRydXN0XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8VGV4dCBkaW1Db2xvciB3cmFwPVwid3JhcFwiPlxuICAgICAgICAgICAgICBGb3IgbW9yZSBkZXRhaWxzIHNlZTpcbiAgICAgICAgICAgICAgPE5ld2xpbmUgLz5cbiAgICAgICAgICAgICAgPExpbmsgdXJsPVwiaHR0cHM6Ly9jb2RlLmNsYXVkZS5jb20vZG9jcy9lbi9zZWN1cml0eVwiIC8+XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9PcmRlcmVkTGlzdC5JdGVtPlxuICAgICAgICA8L09yZGVyZWRMaXN0PlxuICAgICAgPC9Cb3g+XG4gICAgICA8UHJlc3NFbnRlclRvQ29udGludWUgLz5cbiAgICA8L0JveD5cbiAgKVxuXG4gIGNvbnN0IHByZWZsaWdodFN0ZXAgPSA8UHJlZmxpZ2h0U3RlcCBvblN1Y2Nlc3M9e2dvVG9OZXh0U3RlcH0gLz5cbiAgLy8gQ3JlYXRlIHRoZSBzdGVwcyBhcnJheSAtIGRldGVybWluZSB3aGljaCBzdGVwcyB0byBpbmNsdWRlIGJhc2VkIG9uIHJlQXV0aCBhbmQgb2F1dGhFbmFibGVkXG4gIGNvbnN0IGFwaUtleU5lZWRpbmdBcHByb3ZhbCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8vIEFkZCBBUEkga2V5IHN0ZXAgaWYgbmVlZGVkXG4gICAgLy8gT24gaG9tZXNwYWNlLCBBTlRIUk9QSUNfQVBJX0tFWSBpcyBwcmVzZXJ2ZWQgaW4gcHJvY2Vzcy5lbnYgZm9yIGNoaWxkXG4gICAgLy8gcHJvY2Vzc2VzIGJ1dCBpZ25vcmVkIGJ5IENsYXVkZSBDb2RlIGl0c2VsZiAoc2VlIGF1dGgudHMpLlxuICAgIGlmICghcHJvY2Vzcy5lbnYuQU5USFJPUElDX0FQSV9LRVkgfHwgaXNSdW5uaW5nT25Ib21lc3BhY2UoKSkge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICAgIGNvbnN0IGN1c3RvbUFwaUtleVRydW5jYXRlZCA9IG5vcm1hbGl6ZUFwaUtleUZvckNvbmZpZyhcbiAgICAgIHByb2Nlc3MuZW52LkFOVEhST1BJQ19BUElfS0VZLFxuICAgIClcbiAgICBpZiAoZ2V0Q3VzdG9tQXBpS2V5U3RhdHVzKGN1c3RvbUFwaUtleVRydW5jYXRlZCkgPT09ICduZXcnKSB7XG4gICAgICByZXR1cm4gY3VzdG9tQXBpS2V5VHJ1bmNhdGVkXG4gICAgfVxuICB9LCBbXSlcblxuICBmdW5jdGlvbiBoYW5kbGVBcGlLZXlEb25lKGFwcHJvdmVkOiBib29sZWFuKSB7XG4gICAgaWYgKGFwcHJvdmVkKSB7XG4gICAgICBzZXRTa2lwT0F1dGgodHJ1ZSlcbiAgICB9XG4gICAgZ29Ub05leHRTdGVwKClcbiAgfVxuXG4gIGNvbnN0IHN0ZXBzOiBPbmJvYXJkaW5nU3RlcFtdID0gW11cbiAgaWYgKG9hdXRoRW5hYmxlZCkge1xuICAgIHN0ZXBzLnB1c2goeyBpZDogJ3ByZWZsaWdodCcsIGNvbXBvbmVudDogcHJlZmxpZ2h0U3RlcCB9KVxuICB9XG4gIHN0ZXBzLnB1c2goeyBpZDogJ3RoZW1lJywgY29tcG9uZW50OiB0aGVtZVN0ZXAgfSlcblxuICBpZiAoYXBpS2V5TmVlZGluZ0FwcHJvdmFsKSB7XG4gICAgc3RlcHMucHVzaCh7XG4gICAgICBpZDogJ2FwaS1rZXknLFxuICAgICAgY29tcG9uZW50OiAoXG4gICAgICAgIDxBcHByb3ZlQXBpS2V5XG4gICAgICAgICAgY3VzdG9tQXBpS2V5VHJ1bmNhdGVkPXthcGlLZXlOZWVkaW5nQXBwcm92YWx9XG4gICAgICAgICAgb25Eb25lPXtoYW5kbGVBcGlLZXlEb25lfVxuICAgICAgICAvPlxuICAgICAgKSxcbiAgICB9KVxuICB9XG5cbiAgaWYgKG9hdXRoRW5hYmxlZCkge1xuICAgIHN0ZXBzLnB1c2goe1xuICAgICAgaWQ6ICdvYXV0aCcsXG4gICAgICBjb21wb25lbnQ6IChcbiAgICAgICAgPFNraXBwYWJsZVN0ZXAgc2tpcD17c2tpcE9BdXRofSBvblNraXA9e2dvVG9OZXh0U3RlcH0+XG4gICAgICAgICAgPENvbnNvbGVPQXV0aEZsb3cgb25Eb25lPXtnb1RvTmV4dFN0ZXB9IC8+XG4gICAgICAgIDwvU2tpcHBhYmxlU3RlcD5cbiAgICAgICksXG4gICAgfSlcbiAgfVxuXG4gIHN0ZXBzLnB1c2goeyBpZDogJ3NlY3VyaXR5JywgY29tcG9uZW50OiBzZWN1cml0eVN0ZXAgfSlcblxuICBpZiAoc2hvdWxkT2ZmZXJUZXJtaW5hbFNldHVwKCkpIHtcbiAgICBzdGVwcy5wdXNoKHtcbiAgICAgIGlkOiAndGVybWluYWwtc2V0dXAnLFxuICAgICAgY29tcG9uZW50OiAoXG4gICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGdhcD17MX0gcGFkZGluZ0xlZnQ9ezF9PlxuICAgICAgICAgIDxUZXh0IGJvbGQ+VXNlIENsYXVkZSBDb2RlJmFwb3M7cyB0ZXJtaW5hbCBzZXR1cD88L1RleHQ+XG4gICAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgd2lkdGg9ezcwfSBnYXA9ezF9PlxuICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgIEZvciB0aGUgb3B0aW1hbCBjb2RpbmcgZXhwZXJpZW5jZSwgZW5hYmxlIHRoZSByZWNvbW1lbmRlZCBzZXR0aW5nc1xuICAgICAgICAgICAgICA8TmV3bGluZSAvPlxuICAgICAgICAgICAgICBmb3IgeW91ciB0ZXJtaW5hbDp7JyAnfVxuICAgICAgICAgICAgICB7ZW52LnRlcm1pbmFsID09PSAnQXBwbGVfVGVybWluYWwnXG4gICAgICAgICAgICAgICAgPyAnT3B0aW9uK0VudGVyIGZvciBuZXdsaW5lcyBhbmQgdmlzdWFsIGJlbGwnXG4gICAgICAgICAgICAgICAgOiAnU2hpZnQrRW50ZXIgZm9yIG5ld2xpbmVzJ31cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgIDxTZWxlY3RcbiAgICAgICAgICAgICAgb3B0aW9ucz17W1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnWWVzLCB1c2UgcmVjb21tZW5kZWQgc2V0dGluZ3MnLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICdpbnN0YWxsJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnTm8sIG1heWJlIGxhdGVyIHdpdGggL3Rlcm1pbmFsLXNldHVwJyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiAnbm8nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF19XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSAnaW5zdGFsbCcpIHtcbiAgICAgICAgICAgICAgICAgIC8vIEVycm9ycyBhbHJlYWR5IGxvZ2dlZCBpbiBzZXR1cFRlcm1pbmFsLCBqdXN0IHN3YWxsb3cgYW5kIHByb2NlZWRcbiAgICAgICAgICAgICAgICAgIHZvaWQgc2V0dXBUZXJtaW5hbCh0aGVtZSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KVxuICAgICAgICAgICAgICAgICAgICAuZmluYWxseShnb1RvTmV4dFN0ZXApXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGdvVG9OZXh0U3RlcCgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbkNhbmNlbD17KCkgPT4gZ29Ub05leHRTdGVwKCl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+XG4gICAgICAgICAgICAgIHtleGl0U3RhdGUucGVuZGluZyA/IChcbiAgICAgICAgICAgICAgICA8PlByZXNzIHtleGl0U3RhdGUua2V5TmFtZX0gYWdhaW4gdG8gZXhpdDwvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDw+RW50ZXIgdG8gY29uZmlybSDCtyBFc2MgdG8gc2tpcDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICA8L0JveD5cbiAgICAgICksXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRTdGVwID0gc3RlcHNbY3VycmVudFN0ZXBJbmRleF1cblxuICAvLyBIYW5kbGUgRW50ZXIgb24gc2VjdXJpdHkgc3RlcCBhbmQgRXNjYXBlIG9uIHRlcm1pbmFsLXNldHVwIHN0ZXBcbiAgLy8gRGVwZW5kZW5jaWVzIG1hdGNoIHdoYXQgZ29Ub05leHRTdGVwIHVzZXMgaW50ZXJuYWxseVxuICBjb25zdCBoYW5kbGVTZWN1cml0eUNvbnRpbnVlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChjdXJyZW50U3RlcEluZGV4ID09PSBzdGVwcy5sZW5ndGggLSAxKSB7XG4gICAgICBvbkRvbmUoKVxuICAgIH0gZWxzZSB7XG4gICAgICBnb1RvTmV4dFN0ZXAoKVxuICAgIH1cbiAgfSwgW2N1cnJlbnRTdGVwSW5kZXgsIHN0ZXBzLmxlbmd0aCwgb2F1dGhFbmFibGVkLCBvbkRvbmVdKVxuXG4gIGNvbnN0IGhhbmRsZVRlcm1pbmFsU2V0dXBTa2lwID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGdvVG9OZXh0U3RlcCgpXG4gIH0sIFtjdXJyZW50U3RlcEluZGV4LCBzdGVwcy5sZW5ndGgsIG9hdXRoRW5hYmxlZCwgb25Eb25lXSlcblxuICB1c2VLZXliaW5kaW5ncyhcbiAgICB7XG4gICAgICAnY29uZmlybTp5ZXMnOiBoYW5kbGVTZWN1cml0eUNvbnRpbnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgY29udGV4dDogJ0NvbmZpcm1hdGlvbicsXG4gICAgICBpc0FjdGl2ZTogY3VycmVudFN0ZXA/LmlkID09PSAnc2VjdXJpdHknLFxuICAgIH0sXG4gIClcblxuICB1c2VLZXliaW5kaW5ncyhcbiAgICB7XG4gICAgICAnY29uZmlybTpubyc6IGhhbmRsZVRlcm1pbmFsU2V0dXBTa2lwLFxuICAgIH0sXG4gICAge1xuICAgICAgY29udGV4dDogJ0NvbmZpcm1hdGlvbicsXG4gICAgICBpc0FjdGl2ZTogY3VycmVudFN0ZXA/LmlkID09PSAndGVybWluYWwtc2V0dXAnLFxuICAgIH0sXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgPFdlbGNvbWVWMiAvPlxuICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgbWFyZ2luVG9wPXsxfT5cbiAgICAgICAge2N1cnJlbnRTdGVwPy5jb21wb25lbnR9XG4gICAgICAgIHtleGl0U3RhdGUucGVuZGluZyAmJiAoXG4gICAgICAgICAgPEJveCBwYWRkaW5nPXsxfT5cbiAgICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPlByZXNzIHtleGl0U3RhdGUua2V5TmFtZX0gYWdhaW4gdG8gZXhpdDwvVGV4dD5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgKX1cbiAgICAgIDwvQm94PlxuICAgIDwvQm94PlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBTa2lwcGFibGVTdGVwKHtcbiAgc2tpcCxcbiAgb25Ta2lwLFxuICBjaGlsZHJlbixcbn06IHtcbiAgc2tpcDogYm9vbGVhblxuICBvblNraXAoKTogdm9pZFxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2tpcCkge1xuICAgICAgb25Ta2lwKClcbiAgICB9XG4gIH0sIFtza2lwLCBvblNraXBdKVxuICBpZiAoc2tpcCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIGNoaWxkcmVuXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3hFLFNBQ0UsS0FBS0MsMERBQTBELEVBQy9EQyxRQUFRLFFBQ0gsaUNBQWlDO0FBQ3hDLFNBQ0VDLGFBQWEsRUFDYkMsd0JBQXdCLFFBQ25CLDRDQUE0QztBQUNuRCxTQUFTQyw4QkFBOEIsUUFBUSw0Q0FBNEM7QUFDM0YsU0FBU0MsR0FBRyxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFQyxRQUFRLFFBQVEsV0FBVztBQUM5RCxTQUFTQyxjQUFjLFFBQVEsaUNBQWlDO0FBQ2hFLFNBQVNDLHNCQUFzQixRQUFRLGtCQUFrQjtBQUN6RCxTQUFTQyx3QkFBd0IsUUFBUSwwQkFBMEI7QUFDbkUsU0FBU0MscUJBQXFCLFFBQVEsb0JBQW9CO0FBQzFELFNBQVNDLEdBQUcsUUFBUSxpQkFBaUI7QUFDckMsU0FBU0Msb0JBQW9CLFFBQVEsc0JBQXNCO0FBQzNELFNBQVNDLGFBQWEsUUFBUSw2QkFBNkI7QUFDM0QsY0FBY0MsWUFBWSxRQUFRLG1CQUFtQjtBQUNyRCxTQUFTQyxhQUFhLFFBQVEsb0JBQW9CO0FBQ2xELFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQUN4RCxTQUFTQyxNQUFNLFFBQVEsMEJBQTBCO0FBQ2pE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QyxRQUFRLEVBQUVKLFdBQVcsRUFBRXRDLEVBQUUsS0FBSztFQUNoQyxDQUNGLENBQUM7RUFFRGpCLGNBQWMsQ0FDWjtJQUNFLFlBQVksRUFBRXlEO0VBQ2hCLENBQUMsRUFDRDtJQUNFQyxPQUFPLEVBQUUsY0FBYztJQUN2QkMsUUFBUSxFQUFFSixXQUFXLEVBQUV0QyxFQUFFLEtBQUs7RUFDaEMsQ0FDRixDQUFDO0VBRUQsT0FDRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsUUFBUTtBQUMvQixNQUFNLENBQUMsU0FBUztBQUNoQixNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9DLFFBQVEsQ0FBQ3NDLFdBQVcsRUFBRXJDLFNBQVM7QUFDL0IsUUFBUSxDQUFDbUIsU0FBUyxDQUFDZ0IsT0FBTyxJQUNoQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDaEIsU0FBUyxDQUFDaUIsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJO0FBQ3hFLFVBQVUsRUFBRSxHQUFHLENBQ047QUFDVCxNQUFNLEVBQUUsR0FBRztBQUNYLElBQUksRUFBRSxHQUFHLENBQUM7QUFFVjtBQUVBLE9BQU8sU0FBQU0sY0FBQUMsRUFBQTtFQUFBLE1BQUFDLENBQUEsR0FBQUMsRUFBQTtFQUF1QjtJQUFBQyxJQUFBO0lBQUFDLE1BQUE7SUFBQUM7RUFBQSxJQUFBTCxFQVE3QjtFQUFBLElBQUFNLEVBQUE7RUFBQSxJQUFBQyxFQUFBO0VBQUEsSUFBQU4sQ0FBQSxRQUFBRyxNQUFBLElBQUFILENBQUEsUUFBQUUsSUFBQTtJQUNXRyxFQUFBLEdBQUFBLENBQUE7TUFDUixJQUFJSCxJQUFJO1FBQ05DLE1BQU0sQ0FBQyxDQUFDO01BQUE7SUFDVCxDQUNGO0lBQUVHLEVBQUEsSUFBQ0osSUFBSSxFQUFFQyxNQUFNLENBQUM7SUFBQUgsQ0FBQSxNQUFBRyxNQUFBO0lBQUFILENBQUEsTUFBQUUsSUFBQTtJQUFBRixDQUFBLE1BQUFLLEVBQUE7SUFBQUwsQ0FBQSxNQUFBTSxFQUFBO0VBQUE7SUFBQUQsRUFBQSxHQUFBTCxDQUFBO0lBQUFNLEVBQUEsR0FBQU4sQ0FBQTtFQUFBO0VBSmpCM0UsU0FBUyxDQUFDZ0YsRUFJVCxFQUFFQyxFQUFjLENBQUM7RUFDbEIsSUFBSUosSUFBSTtJQUFBLE9BQ0MsSUFBSTtFQUFBO0VBQ1osT0FDTUUsUUFBUTtBQUFBIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -109,4 +109,3 @@ export function OutputStylePicker(t0) {
|
|
|
109
109
|
}
|
|
110
110
|
return t9;
|
|
111
111
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJnZXRBbGxPdXRwdXRTdHlsZXMiLCJPVVRQVVRfU1RZTEVfQ09ORklHIiwiT3V0cHV0U3R5bGVDb25maWciLCJCb3giLCJUZXh0IiwiT3V0cHV0U3R5bGUiLCJnZXRDd2QiLCJPcHRpb25XaXRoRGVzY3JpcHRpb24iLCJTZWxlY3QiLCJEaWFsb2ciLCJERUZBVUxUX09VVFBVVF9TVFlMRV9MQUJFTCIsIkRFRkFVTFRfT1VUUFVUX1NUWUxFX0RFU0NSSVBUSU9OIiwibWFwQ29uZmlnc1RvT3B0aW9ucyIsInN0eWxlcyIsInN0eWxlTmFtZSIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJzdHlsZSIsImNvbmZpZyIsImxhYmVsIiwibmFtZSIsInZhbHVlIiwiZGVzY3JpcHRpb24iLCJPdXRwdXRTdHlsZVBpY2tlclByb3BzIiwiaW5pdGlhbFN0eWxlIiwib25Db21wbGV0ZSIsIm9uQ2FuY2VsIiwiaXNTdGFuZGFsb25lQ29tbWFuZCIsIk91dHB1dFN0eWxlUGlja2VyIiwidDAiLCIkIiwiX2MiLCJ0MSIsIlN5bWJvbCIsImZvciIsInN0eWxlT3B0aW9ucyIsInNldFN0eWxlT3B0aW9ucyIsImlzTG9hZGluZyIsInNldElzTG9hZGluZyIsInQyIiwidDMiLCJ0aGVuIiwiYWxsU3R5bGVzIiwib3B0aW9ucyIsImNhdGNoIiwiYnVpbHRJbk9wdGlvbnMiLCJ0NCIsIm91dHB1dFN0eWxlIiwiaGFuZGxlU3R5bGVTZWxlY3QiLCJ0NSIsInQ2IiwidDciLCJ0OCIsInQ5Il0sInNvdXJjZXMiOlsiT3V0cHV0U3R5bGVQaWNrZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGdldEFsbE91dHB1dFN0eWxlcyxcbiAgT1VUUFVUX1NUWUxFX0NPTkZJRyxcbiAgdHlwZSBPdXRwdXRTdHlsZUNvbmZpZyxcbn0gZnJvbSAnLi4vY29uc3RhbnRzL291dHB1dFN0eWxlcy5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uL2luay5qcydcbmltcG9ydCB0eXBlIHsgT3V0cHV0U3R5bGUgfSBmcm9tICcuLi91dGlscy9jb25maWcuanMnXG5pbXBvcnQgeyBnZXRDd2QgfSBmcm9tICcuLi91dGlscy9jd2QuanMnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbldpdGhEZXNjcmlwdGlvbiB9IGZyb20gJy4vQ3VzdG9tU2VsZWN0L3NlbGVjdC5qcydcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4vQ3VzdG9tU2VsZWN0L3NlbGVjdC5qcydcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4vZGVzaWduLXN5c3RlbS9EaWFsb2cuanMnXG5cbmNvbnN0IERFRkFVTFRfT1VUUFVUX1NUWUxFX0xBQkVMID0gJ0RlZmF1bHQnXG5jb25zdCBERUZBVUxUX09VVFBVVF9TVFlMRV9ERVNDUklQVElPTiA9XG4gICdDbGF1ZGUgY29tcGxldGVzIGNvZGluZyB0YXNrcyBlZmZpY2llbnRseSBhbmQgcHJvdmlkZXMgY29uY2lzZSByZXNwb25zZXMnXG5cbmZ1bmN0aW9uIG1hcENvbmZpZ3NUb09wdGlvbnMoc3R5bGVzOiB7XG4gIFtzdHlsZU5hbWU6IHN0cmluZ106IE91dHB1dFN0eWxlQ29uZmlnIHwgbnVsbFxufSk6IE9wdGlvbldpdGhEZXNjcmlwdGlvbltdIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHN0eWxlcykubWFwKChbc3R5bGUsIGNvbmZpZ10pID0+ICh7XG4gICAgbGFiZWw6IGNvbmZpZz8ubmFtZSA/PyBERUZBVUxUX09VVFBVVF9TVFlMRV9MQUJFTCxcbiAgICB2YWx1ZTogc3R5bGUsXG4gICAgZGVzY3JpcHRpb246IGNvbmZpZz8uZGVzY3JpcHRpb24gPz8gREVGQVVMVF9PVVRQVVRfU1RZTEVfREVTQ1JJUFRJT04sXG4gIH0pKVxufVxuXG5leHBvcnQgdHlwZSBPdXRwdXRTdHlsZVBpY2tlclByb3BzID0ge1xuICBpbml0aWFsU3R5bGU6IE91dHB1dFN0eWxlXG4gIG9uQ29tcGxldGU6IChzdHlsZTogT3V0cHV0U3R5bGUpID0+IHZvaWRcbiAgb25DYW5jZWw6ICgpID0+IHZvaWRcbiAgaXNTdGFuZGFsb25lQ29tbWFuZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE91dHB1dFN0eWxlUGlja2VyKHtcbiAgaW5pdGlhbFN0eWxlLFxuICBvbkNvbXBsZXRlLFxuICBvbkNhbmNlbCxcbiAgaXNTdGFuZGFsb25lQ29tbWFuZCxcbn06IE91dHB1dFN0eWxlUGlja2VyUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbc3R5bGVPcHRpb25zLCBzZXRTdHlsZU9wdGlvbnNdID0gdXNlU3RhdGU8T3B0aW9uV2l0aERlc2NyaXB0aW9uW10+KFtdKVxuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIExvYWQgYWxsIG91dHB1dCBzdHlsZXMgaW5jbHVkaW5nIGN1c3RvbSBvbmVzXG4gICAgZ2V0QWxsT3V0cHV0U3R5bGVzKGdldEN3ZCgpKVxuICAgICAgLnRoZW4oYWxsU3R5bGVzID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IG1hcENvbmZpZ3NUb09wdGlvbnMoYWxsU3R5bGVzKVxuICAgICAgICBzZXRTdHlsZU9wdGlvbnMob3B0aW9ucylcbiAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKVxuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIC8vIE9uIGVycm9yLCBmYWxsIGJhY2sgdG8gYnVpbHQtaW4gc3R5bGVzIG9ubHlcbiAgICAgICAgY29uc3QgYnVpbHRJbk9wdGlvbnMgPSBtYXBDb25maWdzVG9PcHRpb25zKE9VVFBVVF9TVFlMRV9DT05GSUcpXG4gICAgICAgIHNldFN0eWxlT3B0aW9ucyhidWlsdEluT3B0aW9ucylcbiAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKVxuICAgICAgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgaGFuZGxlU3R5bGVTZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAoc3R5bGU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3Qgb3V0cHV0U3R5bGUgPSBzdHlsZSBhcyBPdXRwdXRTdHlsZVxuICAgICAgb25Db21wbGV0ZShvdXRwdXRTdHlsZSlcbiAgICB9LFxuICAgIFtvbkNvbXBsZXRlXSxcbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ1xuICAgICAgdGl0bGU9XCJQcmVmZXJyZWQgb3V0cHV0IHN0eWxlXCJcbiAgICAgIG9uQ2FuY2VsPXtvbkNhbmNlbH1cbiAgICAgIGhpZGVJbnB1dEd1aWRlPXshaXNTdGFuZGFsb25lQ29tbWFuZH1cbiAgICAgIGhpZGVCb3JkZXI9eyFpc1N0YW5kYWxvbmVDb21tYW5kfVxuICAgID5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGdhcD17MX0+XG4gICAgICAgIDxCb3ggbWFyZ2luVG9wPXsxfT5cbiAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5cbiAgICAgICAgICAgIFRoaXMgY2hhbmdlcyBob3cgQ2xhdWRlIENvZGUgY29tbXVuaWNhdGVzIHdpdGggeW91XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0JveD5cbiAgICAgICAge2lzTG9hZGluZyA/IChcbiAgICAgICAgICA8VGV4dCBkaW1Db2xvcj5Mb2FkaW5nIG91dHB1dCBzdHlsZXPigKY8L1RleHQ+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgb3B0aW9ucz17c3R5bGVPcHRpb25zfVxuICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVN0eWxlU2VsZWN0fVxuICAgICAgICAgICAgdmlzaWJsZU9wdGlvbkNvdW50PXsxMH1cbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17aW5pdGlhbFN0eWxlfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L0JveD5cbiAgICA8L0RpYWxvZz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxLQUFLQSxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDeEQsU0FDRUMsa0JBQWtCLEVBQ2xCQyxtQkFBbUIsRUFDbkIsS0FBS0MsaUJBQWlCLFFBQ2pCLDhCQUE4QjtBQUNyQyxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxXQUFXO0FBQ3JDLGNBQWNDLFdBQVcsUUFBUSxvQkFBb0I7QUFDckQsU0FBU0MsTUFBTSxRQUFRLGlCQUFpQjtBQUN4QyxjQUFjQyxxQkFBcUIsUUFBUSwwQkFBMEI7QUFDckUsU0FBU0MsTUFBTSxRQUFRLDBCQUEwQjtBQUNqRCxTQUFTQyxNQUFNLFFBQVEsMkJBQTJCO0FBRWxELE1BQU1DLDBCQUEwQixHQUFHLFNBQVM7QUFDNUMsTUFBTUMsZ0NBQWdDLEdBQ3BDLDBFQUEwRTtBQUU1RSxTQUFTQyxtQkFBbUJBLENBQUNDLE1BQU0sRUFBRTtFQUNuQyxDQUFDQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEVBQUVaLGlCQUFpQixHQUFHLElBQUk7QUFDL0MsQ0FBQyxDQUFDLEVBQUVLLHFCQUFxQixFQUFFLENBQUM7RUFDMUIsT0FBT1EsTUFBTSxDQUFDQyxPQUFPLENBQUNILE1BQU0sQ0FBQyxDQUFDSSxHQUFHLENBQUMsQ0FBQyxDQUFDQyxLQUFLLEVBQUVDLE1BQU0sQ0FBQyxNQUFNO0lBQ3REQyxLQUFLLEVBQUVELE1BQU0sRUFBRUUsSUFBSSxJQUFJWCwwQkFBMEI7SUFDakRZLEtBQUssRUFBRUosS0FBSztJQUNaSyxXQUFXLEVBQUVKLE1BQU0sRUFBRUksV0FBVyxJQUFJWjtFQUN0QyxDQUFDLENBQUMsQ0FBQztBQUNMO0FBRUEsT0FBTyxLQUFLYSxzQkFBc0IsR0FBRztFQUNuQ0MsWUFBWSxFQUFF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
|
|
@@ -101,4 +101,3 @@ export function PackageManagerAutoUpdater(t0) {
|
|
|
101
101
|
}
|
|
102
102
|
return t6;
|
|
103
103
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZVN0YXRlIiwidXNlSW50ZXJ2YWwiLCJUZXh0IiwiQXV0b1VwZGF0ZXJSZXN1bHQiLCJnZXRMYXRlc3RWZXJzaW9uRnJvbUdjcyIsImdldE1heFZlcnNpb24iLCJzaG91bGRTa2lwVmVyc2lvbiIsImlzQXV0b1VwZGF0ZXJEaXNhYmxlZCIsImxvZ0ZvckRlYnVnZ2luZyIsImdldFBhY2thZ2VNYW5hZ2VyIiwiUGFja2FnZU1hbmFnZXIiLCJndCIsImd0ZSIsImdldEluaXRpYWxTZXR0aW5ncyIsIlByb3BzIiwiaXNVcGRhdGluZyIsIm9uQ2hhbmdlSXNVcGRhdGluZyIsIm9uQXV0b1VwZGF0ZXJSZXN1bHQiLCJhdXRvVXBkYXRlclJlc3VsdCIsInNob3dTdWNjZXNzTWVzc2FnZSIsInZlcmJvc2UiLCJQYWNrYWdlTWFuYWdlckF1dG9VcGRhdGVyIiwidDAiLCIkIiwiX2MiLCJ1cGRhdGVBdmFpbGFibGUiLCJzZXRVcGRhdGVBdmFpbGFibGUiLCJwYWNrYWdlTWFuYWdlciIsInNldFBhY2thZ2VNYW5hZ2VyIiwidDEiLCJTeW1ib2wiLCJmb3IiLCJjaGFubmVsIiwicG0iLCJQcm9taXNlIiwiYWxsIiwicmVzb2x2ZSIsImF1dG9VcGRhdGVzQ2hhbm5lbCIsImxhdGVzdCIsIm1heFZlcnNpb24iLCJNQUNSTyIsIlZFUlNJT04iLCJoYXNVcGRhdGUiLCJjaGVja0ZvclVwZGF0ZXMiLCJ0MiIsInQzIiwidXNlRWZmZWN0IiwidXBkYXRlQ29tbWFuZCIsInQ0IiwidDUiLCJ0NiJdLCJzb3VyY2VzIjpbIlBhY2thZ2VNYW5hZ2VyQXV0b1VwZGF0ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUludGVydmFsIH0gZnJvbSAndXNlaG9va3MtdHMnXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vaW5rLmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBBdXRvVXBkYXRlclJlc3VsdCxcbiAgZ2V0TGF0ZXN0VmVyc2lvbkZyb21HY3MsXG4gIGdldE1heFZlcnNpb24sXG4gIHNob3VsZFNraXBWZXJzaW9uLFxufSBmcm9tICcuLi91dGlscy9hdXRvVXBkYXRlci5qcydcbmltcG9ydCB7IGlzQXV0b1VwZGF0ZXJEaXNhYmxlZCB9IGZyb20gJy4uL3V0aWxzL2NvbmZpZy5qcydcbmltcG9ydCB7IGxvZ0ZvckRlYnVnZ2luZyB9IGZyb20gJy4uL3V0aWxzL2RlYnVnLmpzJ1xuaW1wb3J0IHtcbiAgZ2V0UGFja2FnZU1hbmFnZXIsXG4gIHR5cGUgUGFja2FnZU1hbmFnZXIsXG59IGZyb20gJy4uL3V0aWxzL25hdGl2ZUluc3RhbGxlci9wYWNrYWdlTWFuYWdlcnMuanMnXG5pbXBvcnQgeyBndCwgZ3RlIH0gZnJvbSAnLi4vdXRpbHMvc2VtdmVyLmpzJ1xuaW1wb3J0IHsgZ2V0SW5pdGlhbFNldHRpbmdzIH0gZnJvbSAnLi4vdXRpbHMvc2V0dGluZ3Mvc2V0dGluZ3MuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGlzVXBkYXRpbmc6IGJvb2xlYW5cbiAgb25DaGFuZ2VJc1VwZGF0aW5nOiAoaXNVcGRhdGluZzogYm9vbGVhbikgPT4gdm9pZFxuICBvbkF1dG9VcGRhdGVyUmVzdWx0OiAoYXV0b1VwZGF0ZXJSZXN1bHQ6IEF1dG9VcGRhdGVyUmVzdWx0KSA9PiB2b2lkXG4gIGF1dG9VcGRhdGVyUmVzdWx0OiBBdXRvVXBkYXRlclJlc3VsdCB8IG51bGxcbiAgc2hvd1N1Y2Nlc3NNZXNzYWdlOiBib29sZWFuXG4gIHZlcmJvc2U6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFBhY2thZ2VNYW5hZ2VyQXV0b1VwZGF0ZXIoeyB2ZXJib3NlIH06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW3VwZGF0ZUF2YWlsYWJsZSwgc2V0VXBkYXRlQXZhaWxhYmxlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbcGFja2FnZU1hbmFnZXIsIHNldFBhY2thZ2VNYW5hZ2VyXSA9XG4gICAgdXNlU3RhdGU8UGFja2FnZU1hbmFnZXI+KCd1bmtub3duJylcblxuICBjb25zdCBjaGVja0ZvclVwZGF0ZXMgPSBSZWFjdC51c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgXCJwcm9kdWN0aW9uXCIgPT09ICd0ZXN0JyB8fFxuICAgICAgXCJwcm9kdWN0aW9uXCIgPT09ICdkZXZlbG9wbWVudCdcbiAgICApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpc0F1dG9VcGRhdGVyRGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgW2NoYW5uZWwsIHBtXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIFByb21pc2UucmVzb2x2ZShnZXRJbml0aWFsU2V0dGluZ3MoKT8uYXV0b1VwZGF0ZXNDaGFubmVsID8/ICdsYXRlc3QnKSxcbiAgICAgIGdldFBhY2thZ2VNYW5hZ2VyKCksXG4gICAgXSlcbiAgICBzZXRQYWNrYWdlTWFuYWdlcihwbSlcblxuICAgIGxldCBsYXRlc3QgPSBhd2FpdCBnZXRMYXRlc3RWZXJzaW9uRnJvbUdjcyhjaGFubmVsKVxuXG4gICAgLy8gQ2hlY2sgaWYgbWF4IHZlcnNpb24gaXMgc2V0IChzZXJ2ZXItc2lkZSBraWxsIHN3aXRjaCBmb3IgYXV0by11cGRhdGVzKVxuICAgIGNvbnN0IG1heFZlcnNpb24gPSBhd2FpdCBnZXRNYXhWZXJzaW9uKClcblxuICAgIGlmIChtYXhWZXJzaW9uICYmIGxhdGVzdCAmJiBndChsYXRlc3QsIG1heFZlcnNpb24pKSB7XG4gICAgICBsb2dGb3JEZWJ1Z2dpbmcoXG4gICAgICAgIGBQYWNrYWdlTWFuYWdlckF1dG9VcGRhdGVyOiBtYXhWZXJzaW9uICR7bWF4VmVyc2lvbn0gaXMgc2V0LCBjYXBwaW5nIHVwZGF0ZSBmcm9tICR7bGF0ZXN0fSB0byAke21heFZlcnNpb259YCxcbiAgICAgIClcbiAgICAgIGlmIChndGUoTUFDUk8uVkVSU0lPTiwgbWF4VmVyc2lvbikpIHtcbiAgICAgICAgbG9nRm9yRGVidWdnaW5nKFxuICAgICAgICAgIGBQYWNrYWdlTWFuYWdlckF1dG9VcGRhdGVyOiBjdXJyZW50IHZlcnNpb24gJHtNQUNSTy5WRVJTSU9OfSBpcyBhbHJlYWR5IGF0IG9yIGFib3ZlIG1heFZlcnNpb24gJHttYXhWZXJzaW9ufSwgc2tpcHBpbmcgdXBkYXRlYCxcbiAgICAgICAgKVxuICAgICAgICBzZXRVcGRhdGVBdmFpbGFibGUoZmFsc2UpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgbGF0ZXN0ID0gbWF4VmVyc2lvblxuICAgIH1cblxuICAgIGNvbnN0IGhhc1VwZGF0ZSA9XG4gICAgICBsYXRlc3QgJiYgIWd0ZShNQUNSTy5WRVJTSU9OLCBsYXRlc3QpICYmICFzaG91bGRTa2lwVmVyc2lvbihsYXRlc3QpXG5cbiAgICBzZXRVcGRhdGVBdmFpbGFibGUoISFoYXNVcGRhdGUpXG5cbiAgICBpZiAoaGFzVXBkYXRlKSB7XG4gICAgICBsb2dGb3JEZWJ1Z2dpbmcoXG4gICAgICAgIGBQYWNrYWdlTWFuYWdlckF1dG9VcGRhdGVyOiBVcGRhdGUgYXZhaWxhYmxlICR7TUFDUk8uVkVSU0lPTn0gLT4gJHtsYXRlc3R9YCxcbiAgICAgIClcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8vIEluaXRpYWwgY2hlY2tcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICB2b2lkIGNoZWNrRm9yVXBkYXRlcygpXG4gIH0sIFtjaGVja0ZvclVwZGF0ZXNdKVxuXG4gIC8vIENoZWNrIGV2ZXJ5IDMwIG1pbnV0ZXNcbiAgdXNlSW50ZXJ2YWwoY2hlY2tGb3JVcGRhdGVzLCAzMCAqIDYwICogMTAwMClcblxuICBpZiAoIXVwZGF0ZUF2YWlsYWJsZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBwYWNtYW4sIGRlYiwgYW5kIHJwbSBkb24ndCBnZXQgc3BlY2lmaWMgY29tbWFuZHMgYmVjYXVzZSB0aGV5IGVhY2ggaGF2ZVxuICAvLyBtdWx0aXBsZSBmcm9udGVuZHMgKHBhY21hbjogeWF5L3BhcnUvbWFrZXBrZywgZGViOiBhcHQvYXB0LWdldC9hcHRpdHVkZS9uYWxhLFxuICAvLyBycG06IGRuZi95dW0venlwcGVyKVxuICBjb25zdCB1cGRhdGVDb21tYW5kID1cbiAgICBwYWNrYWdlTWFuYWdlciA9PT0gJ2hvbWVicmV3J1xuICAgICAgPyAnYnJldyB1cGdyYWRlIGNsYXVkZS1jb2RlJ1xuICAgICAgOiBwYWNrYWdlTWFuYWdlciA9PT0gJ3dpbmdldCdcbiAgICAgICAgPyAnd2luZ2V0IHVwZ3JhZGUgQW50aHJvcGljLkNsYXVkZUNvZGUnXG4gICAgICAgIDogcGFja2FnZU1hbmFnZXIgPT09ICdhcGsnXG4gICAgICAgICAgPyAnYXBrIHVwZ3JhZGUgY2xhdWRlLWNvZGUnXG4gICAgICAgICAgOiAneW91ciBwYWNrYWdlIG1hbmFnZXIgdXBkYXRlIGNvbW1hbmQnXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge3ZlcmJvc2UgJiYgKFxuICAgICAgICA8VGV4dCBkaW1Db2xvciB3cmFwPVwidHJ1bmNhdGVcIj5cbiAgICAgICAgICBjdXJyZW50VmVyc2lvbjoge01BQ1JPLlZFUlNJT059XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICl9XG4gICAgICA8VGV4dCBjb2xvcj1cIndhcm5pbmdcIiB3cmFwPVwidHJ1bmNhdGVcIj5cbiAgICAgICAgVXBkYXRlIGF2YWlsYWJsZSEgUnVuOiA8VGV4dCBib2xkPnt1cGRhdGVDb21tYW5kfTwvVGV4dD5cbiAgICAgIDwvVGV4dD5cbiAgICA8Lz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxLQUFLQSxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxRQUFRLFFBQVEsT0FBTztBQUNoQyxTQUFTQyxXQUFXLFFBQVEsYUFBYTtBQUN6QyxTQUFTQyxJQUFJLFFBQVEsV0FBVztBQUNoQyxTQUNFLEtBQUtDLGlC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
|