mumucc 0.4.2 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +297 -0
- package/bin/mumucc +3 -8
- package/bun.lock +44 -141
- package/defaults/mcp-servers.json +0 -6
- package/mumucc-0.4.3.tgz +0 -0
- package/package.json +3 -3
- package/shims/bun-bundle.ts +0 -3
- package/shims/globals.d.ts +15 -0
- package/shims/globals.ts +1 -1
- package/src/QueryEngine.ts +1 -0
- package/src/assistant/gate.ts +4 -1
- package/src/assistant/index.ts +29 -1
- package/src/assistant/sessionDiscovery.ts +10 -1
- package/src/bootstrap/state.ts +6 -1
- package/src/buddy/CompanionSprite.tsx +1 -0
- package/src/buddy/observer.ts +6 -0
- package/src/buddy/useBuddyNotification.tsx +1 -0
- package/src/cli/handlers/util.tsx +1 -0
- package/src/cli/print.ts +4 -1
- package/src/cli/structuredIO.ts +6 -1
- package/src/commands/add-dir/add-dir.tsx +1 -0
- package/src/commands/branch/branch.ts +1 -0
- package/src/commands/bridge/bridge.tsx +2 -1
- package/src/commands/btw/btw.tsx +1 -0
- package/src/commands/buddy/index.ts +2 -1
- package/src/commands/chrome/chrome.tsx +1 -0
- package/src/commands/clear/caches.ts +1 -0
- package/src/commands/compact/compact.ts +1 -0
- package/src/commands/context/context-noninteractive.ts +1 -0
- package/src/commands/context/context.tsx +1 -0
- package/src/commands/copy/copy.tsx +2 -1
- package/src/commands/effort/effort.tsx +1 -0
- package/src/commands/extra-usage/extra-usage.tsx +1 -0
- package/src/commands/fast/fast.tsx +1 -0
- package/src/commands/fork/index.ts +2 -1
- package/src/commands/ide/ide.tsx +2 -1
- package/src/commands/insights.ts +1 -0
- package/src/commands/install-github-app/ApiKeyStep.tsx +1 -0
- package/src/commands/install-github-app/CheckExistingSecretStep.tsx +1 -0
- package/src/commands/install-github-app/ChooseRepoStep.tsx +1 -0
- package/src/commands/install-github-app/CreatingStep.tsx +1 -0
- package/src/commands/install-github-app/ErrorStep.tsx +1 -0
- package/src/commands/install-github-app/ExistingWorkflowStep.tsx +1 -0
- package/src/commands/install-github-app/InstallAppStep.tsx +1 -0
- package/src/commands/install-github-app/OAuthFlowStep.tsx +1 -0
- package/src/commands/install-github-app/SuccessStep.tsx +1 -0
- package/src/commands/install-github-app/WarningsStep.tsx +1 -0
- package/src/commands/install-github-app/install-github-app.tsx +2 -1
- package/src/commands/install.tsx +1 -0
- package/src/commands/login/CodexLogin.tsx +39 -12
- package/src/commands/login/CustomProviderLogin.tsx +45 -9
- package/src/commands/login/ThirdPartyLogin.tsx +24 -6
- package/src/commands/login/login.tsx +37 -10
- package/src/commands/login/profileDefaults.ts +25 -0
- package/src/commands/mcp/mcp.tsx +1 -0
- package/src/commands/mobile/mobile.tsx +1 -0
- package/src/commands/model/model.tsx +14 -3
- package/src/commands/peers/index.ts +2 -1
- package/src/commands/permissions/permissions.tsx +1 -0
- package/src/commands/plan/plan.tsx +1 -0
- package/src/commands/plugin/DiscoverPlugins.tsx +1 -0
- package/src/commands/plugin/ManageMarketplaces.tsx +1 -0
- package/src/commands/plugin/ManagePlugins.tsx +1 -0
- package/src/commands/plugin/PluginOptionsDialog.tsx +1 -0
- package/src/commands/plugin/PluginSettings.tsx +2 -1
- package/src/commands/plugin/UnifiedInstalledCell.tsx +1 -0
- package/src/commands/plugin/ValidatePlugin.tsx +1 -0
- package/src/commands/plugin/pluginDetailsHelpers.tsx +1 -0
- package/src/commands/rate-limit-options/rate-limit-options.tsx +1 -0
- package/src/commands/remote-setup/remote-setup.tsx +1 -0
- package/src/commands/resume/resume.tsx +1 -0
- package/src/commands/review/UltrareviewOverageDialog.tsx +1 -0
- package/src/commands/review/ultrareviewCommand.tsx +1 -0
- package/src/commands/session/session.tsx +1 -0
- package/src/commands/tag/tag.tsx +1 -0
- package/src/commands/terminalSetup/terminalSetup.tsx +1 -0
- package/src/commands/theme/theme.tsx +1 -0
- package/src/commands/thinkback/thinkback.tsx +2 -1
- package/src/commands/ultraplan.tsx +11 -1
- package/src/commands/upgrade/upgrade.tsx +1 -0
- package/src/commands/workflows/index.ts +2 -1
- package/src/components/AgentProgressLine.tsx +1 -0
- package/src/components/App.tsx +1 -0
- package/src/components/ApproveApiKey.tsx +1 -0
- package/src/components/AutoModeOptInDialog.tsx +1 -0
- package/src/components/AutoUpdater.tsx +1 -0
- package/src/components/AutoUpdaterWrapper.tsx +1 -0
- package/src/components/AwsAuthStatusBox.tsx +1 -0
- package/src/components/BaseTextInput.tsx +1 -0
- package/src/components/BashModeProgress.tsx +1 -0
- package/src/components/BridgeDialog.tsx +2 -1
- package/src/components/BypassPermissionsModeDialog.tsx +1 -0
- package/src/components/ChannelDowngradeDialog.tsx +1 -0
- package/src/components/ClaudeInChromeOnboarding.tsx +1 -0
- package/src/components/ClaudeMdExternalIncludesDialog.tsx +1 -0
- package/src/components/ClickableImageRef.tsx +1 -0
- package/src/components/CompactSummary.tsx +1 -0
- package/src/components/ConfigurableShortcutHint.tsx +1 -0
- package/src/components/ConsoleOAuthFlow.tsx +1 -0
- package/src/components/ContextSuggestions.tsx +1 -0
- package/src/components/ContextVisualization.tsx +2 -1
- package/src/components/CoordinatorAgentStatus.tsx +3 -4
- package/src/components/CostThresholdDialog.tsx +1 -0
- package/src/components/CtrlOToExpand.tsx +1 -0
- package/src/components/CustomSelect/SelectMulti.tsx +1 -0
- package/src/components/CustomSelect/select-input-option.tsx +1 -0
- package/src/components/CustomSelect/select-option.tsx +1 -0
- package/src/components/CustomSelect/select.tsx +2 -1
- package/src/components/CustomSelect/use-multi-select-state.ts +1 -0
- package/src/components/DesktopHandoff.tsx +1 -0
- package/src/components/DesktopUpsell/DesktopUpsellStartup.tsx +1 -0
- package/src/components/DevBar.tsx +1 -0
- package/src/components/DevChannelsDialog.tsx +1 -0
- package/src/components/DiagnosticsDisplay.tsx +1 -0
- package/src/components/EffortCallout.tsx +1 -0
- package/src/components/ExitFlow.tsx +1 -0
- package/src/components/FallbackToolUseErrorMessage.tsx +1 -0
- package/src/components/FastIcon.tsx +1 -0
- package/src/components/Feedback.tsx +1 -0
- package/src/components/FeedbackSurvey/FeedbackSurvey.tsx +1 -0
- package/src/components/FeedbackSurvey/FeedbackSurveyView.tsx +1 -0
- package/src/components/FeedbackSurvey/TranscriptSharePrompt.tsx +1 -0
- package/src/components/FeedbackSurvey/useFrustrationDetection.ts +6 -1
- package/src/components/FeedbackSurvey/useMemorySurvey.tsx +1 -0
- package/src/components/FeedbackSurvey/usePostCompactSurvey.tsx +2 -1
- package/src/components/FileEditToolDiff.tsx +1 -0
- package/src/components/FileEditToolUpdatedMessage.tsx +1 -0
- package/src/components/FileEditToolUseRejectedMessage.tsx +1 -0
- package/src/components/FilePathLink.tsx +1 -0
- package/src/components/FullscreenLayout.tsx +1 -0
- package/src/components/GlobalSearchDialog.tsx +2 -1
- package/src/components/HelpV2/Commands.tsx +1 -0
- package/src/components/HelpV2/HelpV2.tsx +1 -0
- package/src/components/HighlightedCode/Fallback.tsx +1 -0
- package/src/components/HighlightedCode.tsx +1 -0
- package/src/components/HistorySearchDialog.tsx +1 -0
- package/src/components/IdeAutoConnectDialog.tsx +1 -0
- package/src/components/IdeOnboardingDialog.tsx +1 -0
- package/src/components/IdeStatusIndicator.tsx +1 -0
- package/src/components/IdleReturnDialog.tsx +1 -0
- package/src/components/InvalidConfigDialog.tsx +1 -0
- package/src/components/InvalidSettingsDialog.tsx +1 -0
- package/src/components/KeybindingWarnings.tsx +1 -0
- package/src/components/LanguagePicker.tsx +1 -0
- package/src/components/LogSelector.tsx +2 -1
- package/src/components/LogoV2/ChannelsNotice.tsx +6 -5
- package/src/components/LogoV2/Clawd.tsx +1 -0
- package/src/components/LogoV2/CondensedLogo.tsx +1 -0
- package/src/components/LogoV2/Feed.tsx +1 -0
- package/src/components/LogoV2/FeedColumn.tsx +1 -0
- package/src/components/LogoV2/LogoV2.tsx +2 -1
- package/src/components/LogoV2/OverageCreditUpsell.tsx +1 -0
- package/src/components/LogoV2/WelcomeV2.tsx +1 -0
- package/src/components/LogoV2/feedConfigs.tsx +1 -0
- package/src/components/MCPServerApprovalDialog.tsx +1 -0
- package/src/components/MCPServerDesktopImportDialog.tsx +1 -0
- package/src/components/MCPServerMultiselectDialog.tsx +1 -0
- package/src/components/ManagedSettingsSecurityDialog/ManagedSettingsSecurityDialog.tsx +1 -0
- package/src/components/Markdown.tsx +1 -0
- package/src/components/MemoryUsageIndicator.tsx +1 -0
- package/src/components/Message.tsx +2 -1
- package/src/components/MessageModel.tsx +1 -0
- package/src/components/MessageResponse.tsx +1 -0
- package/src/components/MessageRow.tsx +1 -0
- package/src/components/MessageSelector.tsx +2 -1
- package/src/components/MessageTimestamp.tsx +1 -0
- package/src/components/Messages.tsx +1 -0
- package/src/components/ModelPicker.tsx +4 -3
- package/src/components/NativeAutoUpdater.tsx +1 -0
- package/src/components/NotebookEditToolUseRejectedMessage.tsx +1 -0
- package/src/components/Onboarding.tsx +1 -0
- package/src/components/OutputStylePicker.tsx +1 -0
- package/src/components/PackageManagerAutoUpdater.tsx +1 -0
- package/src/components/PrBadge.tsx +1 -0
- package/src/components/PromptInput/HistorySearchInput.tsx +1 -0
- package/src/components/PromptInput/Notifications.tsx +1 -0
- package/src/components/PromptInput/PromptInput.tsx +10 -8
- package/src/components/PromptInput/PromptInputFooter.tsx +1 -0
- package/src/components/PromptInput/PromptInputFooterLeftSide.tsx +1 -0
- package/src/components/PromptInput/PromptInputFooterSuggestions.tsx +1 -0
- package/src/components/PromptInput/PromptInputHelpMenu.tsx +1 -0
- package/src/components/PromptInput/PromptInputModeIndicator.tsx +1 -0
- package/src/components/PromptInput/PromptInputStashNotice.tsx +1 -0
- package/src/components/PromptInput/SandboxPromptFooterHint.tsx +1 -0
- package/src/components/PromptInput/ShimmeredInput.tsx +1 -0
- package/src/components/PromptInput/VoiceIndicator.tsx +1 -0
- package/src/components/QuickOpenDialog.tsx +2 -1
- package/src/components/RemoteEnvironmentDialog.tsx +2 -1
- package/src/components/ResumeTask.tsx +1 -0
- package/src/components/SandboxViolationExpandedView.tsx +1 -0
- package/src/components/SearchBox.tsx +1 -0
- package/src/components/SessionBackgroundHint.tsx +1 -0
- package/src/components/SessionPreview.tsx +1 -0
- package/src/components/Settings/Config.tsx +1 -0
- package/src/components/Settings/Settings.tsx +1 -0
- package/src/components/Settings/Status.tsx +2 -1
- package/src/components/Settings/Usage.tsx +1 -0
- package/src/components/ShowInIDEPrompt.tsx +1 -0
- package/src/components/SkillImprovementSurvey.tsx +1 -0
- package/src/components/Spinner/FlashingChar.tsx +1 -0
- package/src/components/Spinner/GlimmerMessage.tsx +1 -0
- package/src/components/Spinner/ShimmerChar.tsx +1 -0
- package/src/components/Spinner/SpinnerAnimationRow.tsx +1 -0
- package/src/components/Spinner/SpinnerGlyph.tsx +1 -0
- package/src/components/Spinner/TeammateSpinnerTree.tsx +1 -0
- package/src/components/Spinner/utils.ts +1 -0
- package/src/components/Spinner.tsx +2 -1
- package/src/components/Stats.tsx +2 -1
- package/src/components/StatusNotices.tsx +1 -0
- package/src/components/StructuredDiff/Fallback.tsx +1 -0
- package/src/components/StructuredDiff.tsx +2 -1
- package/src/components/StructuredDiffList.tsx +1 -0
- package/src/components/TaskListV2.tsx +1 -0
- package/src/components/TeammateViewHeader.tsx +1 -0
- package/src/components/TeleportError.tsx +1 -0
- package/src/components/TeleportProgress.tsx +1 -0
- package/src/components/TeleportRepoMismatchDialog.tsx +1 -0
- package/src/components/TeleportResumeWrapper.tsx +1 -0
- package/src/components/TextInput.tsx +1 -0
- package/src/components/ThemePicker.tsx +1 -0
- package/src/components/ThinkingToggle.tsx +1 -0
- package/src/components/TokenWarning.tsx +1 -0
- package/src/components/ToolUseLoader.tsx +1 -0
- package/src/components/TrustDialog/TrustDialog.tsx +1 -0
- package/src/components/ValidationErrorsList.tsx +1 -0
- package/src/components/VimTextInput.tsx +1 -0
- package/src/components/VirtualMessageList.tsx +1 -0
- package/src/components/WorkflowMultiselectDialog.tsx +1 -0
- package/src/components/agents/AgentDetail.tsx +1 -0
- package/src/components/agents/AgentEditor.tsx +1 -0
- package/src/components/agents/AgentNavigationFooter.tsx +1 -0
- package/src/components/agents/AgentsList.tsx +2 -1
- package/src/components/agents/AgentsMenu.tsx +2 -1
- package/src/components/agents/ColorPicker.tsx +1 -0
- package/src/components/agents/ModelSelector.tsx +1 -0
- package/src/components/agents/ToolSelector.tsx +2 -1
- package/src/components/agents/generateAgent.ts +1 -0
- package/src/components/agents/new-agent-creation/CreateAgentWizard.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/ColorStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/ConfirmStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/DescriptionStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/LocationStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/MemoryStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/MethodStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/ModelStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/PromptStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/ToolsStep.tsx +1 -0
- package/src/components/agents/new-agent-creation/wizard-steps/TypeStep.tsx +1 -0
- package/src/components/design-system/Byline.tsx +1 -0
- package/src/components/design-system/Dialog.tsx +1 -0
- package/src/components/design-system/Divider.tsx +1 -0
- package/src/components/design-system/FuzzyPicker.tsx +1 -0
- package/src/components/design-system/KeyboardShortcutHint.tsx +1 -0
- package/src/components/design-system/ListItem.tsx +1 -0
- package/src/components/design-system/LoadingState.tsx +1 -0
- package/src/components/design-system/Pane.tsx +1 -0
- package/src/components/design-system/ProgressBar.tsx +1 -0
- package/src/components/design-system/Ratchet.tsx +1 -0
- package/src/components/design-system/StatusIcon.tsx +1 -0
- package/src/components/design-system/Tabs.tsx +2 -1
- package/src/components/design-system/ThemeProvider.tsx +1 -0
- package/src/components/design-system/ThemedBox.tsx +1 -0
- package/src/components/design-system/ThemedText.tsx +1 -0
- package/src/components/diff/DiffDetailView.tsx +1 -0
- package/src/components/diff/DiffDialog.tsx +1 -0
- package/src/components/diff/DiffFileList.tsx +1 -0
- package/src/components/grove/Grove.tsx +2 -1
- package/src/components/hooks/HooksConfigMenu.tsx +2 -1
- package/src/components/hooks/PromptDialog.tsx +1 -0
- package/src/components/hooks/SelectEventMode.tsx +1 -0
- package/src/components/hooks/SelectHookMode.tsx +1 -0
- package/src/components/hooks/SelectMatcherMode.tsx +1 -0
- package/src/components/hooks/ViewHookMode.tsx +1 -0
- package/src/components/mcp/CapabilitiesSection.tsx +1 -0
- package/src/components/mcp/ElicitationDialog.tsx +1 -0
- package/src/components/mcp/MCPAgentServerMenu.tsx +1 -0
- package/src/components/mcp/MCPListPanel.tsx +2 -1
- package/src/components/mcp/MCPReconnect.tsx +1 -0
- package/src/components/mcp/MCPRemoteServerMenu.tsx +1 -0
- package/src/components/mcp/MCPSettings.tsx +2 -1
- package/src/components/mcp/MCPStdioServerMenu.tsx +1 -0
- package/src/components/mcp/MCPToolDetailView.tsx +1 -0
- package/src/components/mcp/MCPToolListView.tsx +1 -0
- package/src/components/mcp/McpParsingWarnings.tsx +1 -0
- package/src/components/memory/MemoryFileSelector.tsx +2 -1
- package/src/components/memory/MemoryUpdateNotification.tsx +1 -0
- package/src/components/messageActions.tsx +1 -0
- package/src/components/messages/AdvisorMessage.tsx +1 -0
- package/src/components/messages/AssistantRedactedThinkingMessage.tsx +1 -0
- package/src/components/messages/AssistantTextMessage.tsx +1 -0
- package/src/components/messages/AssistantThinkingMessage.tsx +1 -0
- package/src/components/messages/AssistantToolUseMessage.tsx +1 -0
- package/src/components/messages/AttachmentMessage.tsx +2 -1
- package/src/components/messages/CollapsedReadSearchContent.tsx +2 -1
- package/src/components/messages/GroupedToolUseContent.tsx +1 -0
- package/src/components/messages/HighlightedThinkingText.tsx +1 -0
- package/src/components/messages/HookProgressMessage.tsx +1 -0
- package/src/components/messages/PlanApprovalMessage.tsx +1 -0
- package/src/components/messages/RateLimitMessage.tsx +1 -0
- package/src/components/messages/ShutdownMessage.tsx +1 -0
- package/src/components/messages/SystemAPIErrorMessage.tsx +1 -0
- package/src/components/messages/SystemTextMessage.tsx +2 -1
- package/src/components/messages/TaskAssignmentMessage.tsx +1 -0
- package/src/components/messages/UserAgentNotificationMessage.tsx +1 -0
- package/src/components/messages/UserBashInputMessage.tsx +1 -0
- package/src/components/messages/UserBashOutputMessage.tsx +1 -0
- package/src/components/messages/UserChannelMessage.tsx +1 -0
- package/src/components/messages/UserCommandMessage.tsx +1 -0
- package/src/components/messages/UserImageMessage.tsx +1 -0
- package/src/components/messages/UserLocalCommandOutputMessage.tsx +1 -0
- package/src/components/messages/UserMemoryInputMessage.tsx +1 -0
- package/src/components/messages/UserPlanMessage.tsx +1 -0
- package/src/components/messages/UserResourceUpdateMessage.tsx +1 -0
- package/src/components/messages/UserTeammateMessage.tsx +1 -0
- package/src/components/messages/UserTextMessage.tsx +1 -0
- package/src/components/messages/UserToolResultMessage/RejectedPlanMessage.tsx +1 -0
- package/src/components/messages/UserToolResultMessage/UserToolErrorMessage.tsx +1 -0
- package/src/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx +1 -0
- package/src/components/messages/UserToolResultMessage/UserToolResultMessage.tsx +1 -0
- package/src/components/messages/UserToolResultMessage/utils.tsx +1 -0
- package/src/components/messages/nullRenderingAttachments.ts +1 -0
- package/src/components/messages/teamMemCollapsed.tsx +1 -0
- package/src/components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx +2 -1
- package/src/components/permissions/AskUserQuestionPermissionRequest/PreviewBox.tsx +1 -0
- package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx +2 -1
- package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx +2 -1
- package/src/components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.tsx +1 -0
- package/src/components/permissions/BashPermissionRequest/BashPermissionRequest.tsx +1 -0
- package/src/components/permissions/BashPermissionRequest/bashToolUseOptions.tsx +1 -0
- package/src/components/permissions/ComputerUseApproval/ComputerUseApproval.tsx +2 -1
- package/src/components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.tsx +1 -0
- package/src/components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.tsx +1 -0
- package/src/components/permissions/FallbackPermissionRequest.tsx +1 -0
- package/src/components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx +1 -0
- package/src/components/permissions/FilePermissionDialog/FilePermissionDialog.tsx +1 -0
- package/src/components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx +1 -0
- package/src/components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx +1 -0
- package/src/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx +1 -0
- package/src/components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx +1 -0
- package/src/components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx +2 -1
- package/src/components/permissions/PermissionDecisionDebugInfo.tsx +2 -1
- package/src/components/permissions/PermissionDialog.tsx +1 -0
- package/src/components/permissions/PermissionExplanation.tsx +2 -1
- package/src/components/permissions/PermissionPrompt.tsx +2 -1
- package/src/components/permissions/PermissionRequest.tsx +1 -0
- package/src/components/permissions/PermissionRequestTitle.tsx +1 -0
- package/src/components/permissions/PermissionRuleExplanation.tsx +1 -0
- package/src/components/permissions/SandboxPermissionRequest.tsx +1 -0
- package/src/components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx +1 -0
- package/src/components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx +1 -0
- package/src/components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx +1 -0
- package/src/components/permissions/WorkerBadge.tsx +1 -0
- package/src/components/permissions/WorkerPendingPermission.tsx +1 -0
- package/src/components/permissions/rules/AddPermissionRules.tsx +1 -0
- package/src/components/permissions/rules/AddWorkspaceDirectory.tsx +2 -1
- package/src/components/permissions/rules/PermissionRuleDescription.tsx +1 -0
- package/src/components/permissions/rules/PermissionRuleInput.tsx +1 -0
- package/src/components/permissions/rules/PermissionRuleList.tsx +2 -1
- package/src/components/permissions/rules/RecentDenialsTab.tsx +1 -0
- package/src/components/permissions/rules/RemoveWorkspaceDirectory.tsx +1 -0
- package/src/components/permissions/rules/WorkspaceTab.tsx +1 -0
- package/src/components/sandbox/SandboxConfigTab.tsx +1 -0
- package/src/components/sandbox/SandboxDependenciesTab.tsx +1 -0
- package/src/components/sandbox/SandboxDoctorSection.tsx +1 -0
- package/src/components/sandbox/SandboxOverridesTab.tsx +1 -0
- package/src/components/sandbox/SandboxSettings.tsx +1 -0
- package/src/components/shell/ExpandShellOutputContext.tsx +1 -0
- package/src/components/shell/OutputLine.tsx +1 -0
- package/src/components/shell/ShellProgressMessage.tsx +1 -0
- package/src/components/shell/ShellTimeDisplay.tsx +1 -0
- package/src/components/skills/SkillsMenu.tsx +1 -0
- package/src/components/tasks/AsyncAgentDetailDialog.tsx +1 -0
- package/src/components/tasks/BackgroundTask.tsx +1 -0
- package/src/components/tasks/BackgroundTaskStatus.tsx +2 -1
- package/src/components/tasks/BackgroundTasksDialog.tsx +2 -1
- package/src/components/tasks/DreamDetailDialog.tsx +1 -0
- package/src/components/tasks/InProcessTeammateDetailDialog.tsx +1 -0
- package/src/components/tasks/RemoteSessionDetailDialog.tsx +2 -1
- package/src/components/tasks/RemoteSessionProgress.tsx +1 -0
- package/src/components/tasks/ShellDetailDialog.tsx +2 -1
- package/src/components/tasks/ShellProgress.tsx +1 -0
- package/src/components/tasks/taskStatusUtils.tsx +1 -0
- package/src/components/teams/TeamStatus.tsx +1 -0
- package/src/components/teams/TeamsDialog.tsx +2 -1
- package/src/components/ui/OrderedList.tsx +1 -0
- package/src/components/ui/OrderedListItem.tsx +1 -0
- package/src/components/ui/TreeSelect.tsx +2 -1
- package/src/components/wizard/WizardDialogLayout.tsx +1 -0
- package/src/components/wizard/WizardProvider.tsx +2 -1
- package/src/components/wizard/useWizard.ts +1 -0
- package/src/constants/betas.ts +1 -0
- package/src/constants/prompts.ts +1 -0
- package/src/context/QueuedMessageContext.tsx +1 -0
- package/src/context/fpsMetrics.tsx +1 -0
- package/src/context/mailbox.tsx +1 -0
- package/src/context/modalContext.tsx +1 -0
- package/src/context/overlayContext.tsx +1 -0
- package/src/context/promptOverlayContext.tsx +1 -0
- package/src/context/stats.tsx +1 -0
- package/src/context/voice.tsx +1 -0
- package/src/cost-tracker.ts +1 -0
- package/src/dialogLaunchers.tsx +1 -0
- package/src/entrypoints/agentSdkTypes.ts +4 -17
- package/src/entrypoints/cli.tsx +1 -0
- package/src/entrypoints/sdk/controlTypes.ts +86 -10
- package/src/entrypoints/sdk/coreTypes.generated.ts +99 -2
- package/src/entrypoints/sdk/runtimeTypes.ts +53 -18
- package/src/entrypoints/sdk/settingsTypes.generated.ts +2 -1
- package/src/hooks/notifs/useAntOrgWarningNotification.ts +1 -1
- package/src/hooks/notifs/useCanSwitchToExistingSubscription.tsx +1 -0
- package/src/hooks/notifs/useDeprecationWarningNotification.tsx +1 -0
- package/src/hooks/notifs/useFastModeNotification.tsx +1 -0
- package/src/hooks/notifs/useIDEStatusIndicator.tsx +1 -0
- package/src/hooks/notifs/useInstallMessages.tsx +1 -0
- package/src/hooks/notifs/useLspInitializationNotification.tsx +1 -0
- package/src/hooks/notifs/useMcpConnectivityStatus.tsx +1 -0
- package/src/hooks/notifs/useNpmDeprecationNotification.tsx +1 -0
- package/src/hooks/notifs/usePluginAutoupdateNotification.tsx +1 -0
- package/src/hooks/notifs/usePluginInstallationStatus.tsx +1 -0
- package/src/hooks/notifs/useRateLimitWarningNotification.tsx +1 -0
- package/src/hooks/useCanUseTool.tsx +2 -1
- package/src/hooks/useChromeExtensionNotification.tsx +1 -0
- package/src/hooks/useClaudeCodeHintRecommendation.tsx +1 -0
- package/src/hooks/useCommandKeybindings.tsx +1 -0
- package/src/hooks/useDiffData.ts +1 -0
- package/src/hooks/useIDEIntegration.tsx +1 -0
- package/src/hooks/useLspPluginRecommendation.tsx +1 -0
- package/src/hooks/useOfficialMarketplaceNotification.tsx +1 -0
- package/src/hooks/usePluginRecommendationBase.tsx +1 -0
- package/src/hooks/usePromptsFromClaudeInChrome.tsx +1 -0
- package/src/hooks/useRemoteSession.ts +1 -0
- package/src/hooks/useReplBridge.tsx +1 -0
- package/src/hooks/useSSHSession.ts +1 -0
- package/src/hooks/useTeleportResume.tsx +1 -0
- package/src/hooks/useTurnDiffs.ts +1 -0
- package/src/hooks/useTypeahead.tsx +1 -0
- package/src/hooks/useVoiceIntegration.tsx +1 -0
- package/src/ink/Ansi.tsx +1 -0
- package/src/ink/bidi.ts +1 -0
- package/src/ink/components/AlternateScreen.tsx +1 -0
- package/src/ink/components/Box.tsx +1 -0
- package/src/ink/components/Button.tsx +1 -0
- package/src/ink/components/ClockContext.tsx +1 -0
- package/src/ink/components/Link.tsx +1 -0
- package/src/ink/components/Newline.tsx +1 -0
- package/src/ink/components/NoSelect.tsx +1 -0
- package/src/ink/components/RawAnsi.tsx +1 -0
- package/src/ink/components/ScrollBox.tsx +1 -0
- package/src/ink/components/TerminalFocusContext.tsx +1 -0
- package/src/ink/components/Text.tsx +1 -0
- package/src/ink/ink.tsx +1 -0
- package/src/ink/reconciler.ts +1 -0
- package/src/ink/render-to-screen.ts +1 -0
- package/src/interactiveHelpers.tsx +4 -4
- package/src/keybindings/KeybindingContext.tsx +2 -1
- package/src/keybindings/KeybindingProviderSetup.tsx +1 -0
- package/src/keybindings/parser.ts +1 -0
- package/src/keybindings/template.ts +1 -0
- package/src/keybindings/validate.ts +1 -0
- package/src/main.tsx +5 -7
- package/src/memdir/findRelevantMemories.ts +1 -0
- package/src/native-ts/color-diff/index.ts +1 -0
- package/src/proactive/index.ts +26 -1
- package/src/proactive/useProactive.ts +13 -1
- package/src/query/stopHooks.ts +1 -0
- package/src/query.ts +1 -0
- package/src/remote/SessionsWebSocket.ts +1 -0
- package/src/screens/Doctor.tsx +2 -1
- package/src/screens/REPL.tsx +13 -6
- package/src/screens/ResumeConversation.tsx +1 -0
- package/src/services/AgentSummary/agentSummary.ts +1 -0
- package/src/services/PromptSuggestion/promptSuggestion.ts +1 -0
- package/src/services/api/claude.ts +33 -31
- package/src/services/api/client.ts +34 -31
- package/src/services/api/errors.ts +1 -0
- package/src/services/api/logging.ts +1 -0
- package/src/services/api/openaiShim.ts +35 -8
- package/src/services/api/withRetry.ts +1 -0
- package/src/services/autoDream/autoDream.ts +1 -0
- package/src/services/claudeAiLimits.ts +1 -0
- package/src/services/compact/autoCompact.ts +1 -0
- package/src/services/compact/cachedMicrocompact.ts +56 -4
- package/src/services/compact/compact.ts +1 -0
- package/src/services/compact/microCompact.ts +1 -0
- package/src/services/compact/postCompactCleanup.ts +1 -0
- package/src/services/compact/reactiveCompact.ts +16 -1
- package/src/services/compact/sessionMemoryCompact.ts +1 -0
- package/src/services/compact/snipCompact.ts +18 -1
- package/src/services/compact/snipProjection.ts +6 -1
- package/src/services/contextCollapse/index.ts +33 -1
- package/src/services/extractMemories/extractMemories.ts +1 -0
- package/src/services/mcp/MCPConnectionManager.tsx +1 -0
- package/src/services/mcp/channelAllowlist.ts +1 -1
- package/src/services/mcp/channelNotification.ts +90 -4
- package/src/services/mcp/channelPermissions.ts +1 -1
- package/src/services/mcp/client.ts +1 -0
- package/src/services/mcp/useManageMCPConnections.ts +5 -3
- package/src/services/notifier.ts +1 -0
- package/src/services/rateLimitMocking.ts +1 -0
- package/src/services/skillSearch/localSearch.ts +1 -1
- package/src/services/skillSearch/prefetch.ts +10 -1
- package/src/services/tips/tipRegistry.ts +1 -0
- package/src/services/toolUseSummary/toolUseSummaryGenerator.ts +1 -0
- package/src/services/tools/StreamingToolExecutor.ts +1 -0
- package/src/services/tools/toolOrchestration.ts +1 -0
- package/src/services/vcr.ts +1 -0
- package/src/services/voice.ts +1 -0
- package/src/setup.ts +1 -0
- package/src/skills/bundled/claudeInChrome.ts +1 -0
- package/src/skills/bundled/keybindings.ts +1 -0
- package/src/skills/bundled/skillify.ts +1 -0
- package/src/state/AppState.tsx +10 -7
- package/src/tasks/LocalMainSessionTask.ts +1 -0
- package/src/tasks/LocalShellTask/LocalShellTask.tsx +1 -0
- package/src/tasks/LocalShellTask/killShellTasks.ts +1 -0
- package/src/tasks/RemoteAgentTask/RemoteAgentTask.tsx +1 -0
- package/src/tools/AgentTool/AgentTool.tsx +30 -3
- package/src/tools/AgentTool/UI.tsx +2 -1
- package/src/tools/AgentTool/agentToolUtils.ts +1 -0
- package/src/tools/AgentTool/builtInAgents.ts +1 -0
- package/src/tools/AgentTool/forkSubagent.ts +1 -0
- package/src/tools/AgentTool/loadAgentsDir.ts +9 -0
- package/src/tools/AgentTool/runAgent.ts +2 -0
- package/src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx +1 -0
- package/src/tools/BashTool/BashTool.tsx +1 -0
- package/src/tools/BashTool/BashToolResultMessage.tsx +1 -0
- package/src/tools/BashTool/UI.tsx +1 -0
- package/src/tools/BriefTool/UI.tsx +1 -0
- package/src/tools/FileEditTool/UI.tsx +1 -0
- package/src/tools/FileEditTool/utils.ts +1 -0
- package/src/tools/FileReadTool/FileReadTool.ts +1 -0
- package/src/tools/FileReadTool/imageProcessor.ts +1 -0
- package/src/tools/FileWriteTool/UI.tsx +2 -1
- package/src/tools/GrepTool/UI.tsx +1 -0
- package/src/tools/LSPTool/UI.tsx +1 -0
- package/src/tools/MCPTool/UI.tsx +1 -0
- package/src/tools/NotebookEditTool/NotebookEditTool.ts +1 -0
- package/src/tools/NotebookEditTool/UI.tsx +1 -0
- package/src/tools/PowerShellTool/PowerShellTool.tsx +1 -0
- package/src/tools/SendMessageTool/SendMessageTool.ts +1 -0
- package/src/tools/SkillTool/SkillTool.ts +1 -0
- package/src/tools/TaskOutputTool/TaskOutputTool.tsx +1 -0
- package/src/tools/TaskStopTool/UI.tsx +1 -0
- package/src/tools/ToolSearchTool/prompt.ts +1 -0
- package/src/tools/TungstenTool/TungstenLiveMonitor.ts +3 -0
- package/src/tools/WebBrowserTool/WebBrowserPanel.ts +3 -1
- package/src/tools/WebFetchTool/utils.ts +1 -0
- package/src/tools/WebSearchTool/WebSearchTool.ts +1 -0
- package/src/tools/WorkflowTool/createWorkflowCommand.ts +3 -1
- package/src/tools/testing/TestingPermissionTool.tsx +1 -0
- package/src/tools/utils.ts +1 -0
- package/src/types/commands-js.d.ts +13 -0
- package/src/types/diff.d.ts +1 -0
- package/src/types/hooks.ts +1 -0
- package/src/types/macro.d.ts +15 -0
- package/src/types/markdown.d.ts +4 -0
- package/src/types/message.ts +56 -107
- package/src/types/react-compiler-runtime.d.ts +4 -0
- package/src/types/utils.ts +3 -3
- package/src/utils/advisor.ts +1 -0
- package/src/utils/asciicast.ts +1 -0
- package/src/utils/attachments.ts +1 -0
- package/src/utils/attribution.ts +1 -0
- package/src/utils/autoRunIssue.tsx +1 -0
- package/src/utils/claudeInChrome/mcpServer.ts +1 -0
- package/src/utils/claudeInChrome/setup.ts +1 -0
- package/src/utils/claudemd.ts +1 -0
- package/src/utils/cleanup.ts +1 -0
- package/src/utils/cliHighlight.ts +1 -0
- package/src/utils/collapseReadSearch.ts +1 -0
- package/src/utils/computerUse/executor.ts +1 -0
- package/src/utils/computerUse/gates.ts +1 -0
- package/src/utils/computerUse/hostAdapter.ts +1 -0
- package/src/utils/computerUse/inputLoader.ts +1 -0
- package/src/utils/computerUse/mcpServer.ts +1 -0
- package/src/utils/computerUse/setup.ts +1 -0
- package/src/utils/computerUse/swiftLoader.ts +1 -0
- package/src/utils/computerUse/wrapper.tsx +2 -1
- package/src/utils/context.ts +1 -0
- package/src/utils/contextAnalysis.ts +1 -0
- package/src/utils/conversationRecovery.ts +1 -0
- package/src/utils/deepLink/protocolHandler.ts +1 -0
- package/src/utils/diff.ts +1 -0
- package/src/utils/effort.ts +1 -0
- package/src/utils/envUtils.ts +1 -0
- package/src/utils/execFileNoThrowPortable.ts +1 -0
- package/src/utils/fileHistory.ts +1 -0
- package/src/utils/filePersistence/filePersistence.ts +1 -0
- package/src/utils/filePersistence/outputsScanner.ts +1 -0
- package/src/utils/gitDiff.ts +1 -0
- package/src/utils/groupToolUses.ts +1 -0
- package/src/utils/hooks/hooksConfigManager.ts +1 -0
- package/src/utils/hooks/skillImprovement.ts +1 -0
- package/src/utils/hooks.ts +1 -0
- package/src/utils/imagePaste.ts +1 -0
- package/src/utils/log.ts +1 -0
- package/src/utils/logoV2Utils.ts +6 -6
- package/src/utils/messageQueueManager.ts +1 -0
- package/src/utils/messages.ts +122 -100
- package/src/utils/model/agent.ts +43 -2
- package/src/utils/model/configs.ts +1 -1
- package/src/utils/model/deprecation.ts +1 -0
- package/src/utils/model/fetchModels.ts +11 -1
- package/src/utils/model/model.ts +31 -0
- package/src/utils/model/modelCapabilities.ts +1 -0
- package/src/utils/model/modelOptions.ts +68 -14
- package/src/utils/model/modelStrings.ts +1 -0
- package/src/utils/model/platformProfiles.ts +524 -0
- package/src/utils/model/thirdPartyProviders.ts +158 -15
- package/src/utils/modelCost.ts +1 -0
- package/src/utils/notebook.ts +1 -0
- package/src/utils/permissions/classifierDecision.ts +1 -0
- package/src/utils/permissions/pathValidation.ts +1 -0
- package/src/utils/permissions/permissionExplainer.ts +1 -0
- package/src/utils/plugins/loadPluginHooks.ts +1 -0
- package/src/utils/plugins/lspPluginIntegration.ts +1 -0
- package/src/utils/plugins/pluginLoader.ts +1 -0
- package/src/utils/preflightChecks.tsx +2 -1
- package/src/utils/processUserInput/processSlashCommand.tsx +13 -3
- package/src/utils/queryHelpers.ts +1 -0
- package/src/utils/readFileInRange.ts +1 -0
- package/src/utils/sandbox/sandbox-adapter.ts +24 -22
- package/src/utils/sessionFileAccessHooks.ts +1 -0
- package/src/utils/sessionRestore.ts +1 -0
- package/src/utils/sessionStorage.ts +84 -46
- package/src/utils/settings/types.ts +72 -0
- package/src/utils/shell/prefix.ts +1 -0
- package/src/utils/sideQuery.ts +1 -0
- package/src/utils/sliceAnsi.ts +1 -0
- package/src/utils/staticRender.tsx +1 -0
- package/src/utils/stats.ts +1 -0
- package/src/utils/status.tsx +1 -0
- package/src/utils/swarm/It2SetupPrompt.tsx +2 -1
- package/src/utils/swarm/teammateModel.ts +1 -0
- package/src/utils/taskSummary.ts +6 -1
- package/src/utils/textHighlighting.ts +1 -0
- package/src/utils/thinking.ts +1 -0
- package/src/utils/toolResultStorage.ts +1 -0
- package/src/utils/transcriptSearch.ts +1 -0
- package/src/utils/worktree.ts +1 -0
- package/stubs/@anthropic-ai/mcpb/index.d.ts +23 -1
- package/stubs/@anthropic-ai/sandbox-runtime/index.d.ts +39 -1
- package/.gitignore.bak +0 -11
- package/bin/mumuclaw +0 -154
- package/bin/opencc +0 -50
- package/src/channels/heartbeat-channel.mjs +0 -280
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
1
2
|
import { c as _c } from "react/compiler-runtime";
|
|
2
3
|
import type { Base64ImageSource, ImageBlockParam } from '@anthropic-ai/sdk/resources/messages.mjs';
|
|
3
4
|
import React, { Suspense, use, useCallback, useMemo, useRef, useState } from 'react';
|
|
@@ -642,4 +643,4 @@ async function convertImagesToBlocks(images: PastedContent[]): Promise<ImageBloc
|
|
|
642
643
|
return resized.block;
|
|
643
644
|
}));
|
|
644
645
|
}
|
|
645
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlNjRJbWFnZVNvdXJjZSIsIkltYWdlQmxvY2tQYXJhbSIsIlJlYWN0IiwiU3VzcGVuc2UiLCJ1c2UiLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZVNldHRpbmdzIiwidXNlVGVybWluYWxTaXplIiwic3RyaW5nV2lkdGgiLCJ1c2VUaGVtZSIsInVzZUtleWJpbmRpbmdzIiwiQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyIsImxvZ0V2ZW50IiwidXNlQXBwU3RhdGUiLCJRdWVzdGlvbiIsIkFza1VzZXJRdWVzdGlvblRvb2wiLCJDbGlIaWdobGlnaHQiLCJnZXRDbGlIaWdobGlnaHRQcm9taXNlIiwiUGFzdGVkQ29udGVudCIsIkltYWdlRGltZW5zaW9ucyIsIm1heWJlUmVzaXplQW5kRG93bnNhbXBsZUltYWdlQmxvY2siLCJjYWNoZUltYWdlUGF0aCIsInN0b3JlSW1hZ2UiLCJsb2dFcnJvciIsImFwcGx5TWFya2Rvd24iLCJpc1BsYW5Nb2RlSW50ZXJ2aWV3UGhhc2VFbmFibGVkIiwiZ2V0UGxhbkZpbGVQYXRoIiwiUGVybWlzc2lvblJlcXVlc3RQcm9wcyIsIlF1ZXN0aW9uVmlldyIsIlN1Ym1pdFF1ZXN0aW9uc1ZpZXciLCJ1c2VNdWx0aXBsZUNob2ljZVN0YXRlIiwiTUlOX0NPTlRFTlRfSEVJR0hUIiwiTUlOX0NPTlRFTlRfV0lEVEgiLCJDT05URU5UX0NIUk9NRV9PVkVSSEVBRCIsIkFza1VzZXJRdWVzdGlvblBlcm1pc3Npb25SZXF1ZXN0IiwicHJvcHMiLCIkIiwiX2MiLCJzZXR0aW5ncyIsInN5bnRheEhpZ2hsaWdodGluZ0Rpc2FibGVkIiwidDAiLCJBc2tVc2VyUXVlc3Rpb25XaXRoSGlnaGxpZ2h0IiwiU3ltYm9sIiwiZm9yIiwiaGlnaGxpZ2h0IiwidDEiLCJBc2tVc2VyUXVlc3Rpb25QZXJtaXNzaW9uUmVxdWVzdEJvZHkiLCJ0b29sVXNlQ29uZmlybSIsIm9uRG9uZSIsIm9uUmVqZWN0IiwiaW5wdXQiLCJpbnB1dFNjaGVtYSIsInNhZmVQYXJzZSIsInJlc3VsdCIsInQyIiwiZGF0YSIsInN1Y2Nlc3MiLCJxdWVzdGlvbnMiLCJyb3dzIiwidGVybWluYWxSb3dzIiwidGhlbWUiLCJtYXhIZWlnaHQiLCJtYXhXaWR0aCIsIm1heEFsbG93ZWRIZWlnaHQiLCJNYXRoIiwibWF4IiwicSIsImhhc1ByZXZpZXciLCJvcHRpb25zIiwic29tZSIsIl90ZW1wIiwibWF4UHJldmlld0NvbnRlbnRMaW5lcyIsIm1heFByZXZpZXdCb3hIZWlnaHQiLCJvcHRfMCIsIm9wdCIsInByZXZpZXciLCJyZW5kZXJlZCIsInByZXZpZXdMaW5lcyIsInNwbGl0IiwiaXNUcnVuY2F0ZWQiLCJsZW5ndGgiLCJkaXNwbGF5ZWRMaW5lcyIsImxpbmUiLCJyaWdodFBhbmVsSGVpZ2h0IiwibGVmdFBhbmVsSGVpZ2h0Iiwic2lkZUJ5SGVpZ2h0IiwidDMiLCJtaW4iLCJ0NCIsInQ1IiwiZ2xvYmFsQ29udGVudEhlaWdodCIsImdsb2JhbENvbnRlbnRXaWR0aCIsIm1ldGFkYXRhU291cmNlIiwibWV0YWRhdGEiLCJzb3VyY2UiLCJ1bmRlZmluZWQiLCJ0NiIsInBhc3RlZENvbnRlbnRzQnlRdWVzdGlvbiIsInNldFBhc3RlZENvbnRlbnRzQnlRdWVzdGlvbiIsIm5leHRQYXN0ZUlkUmVmIiwidDciLCJvbkltYWdlUGFzdGUiLCJxdWVzdGlvblRleHQiLCJiYXNlNjRJbWFnZSIsIm1lZGlhVHlwZSIsImZpbGVuYW1lIiwiZGltZW5zaW9ucyIsIl9zb3VyY2VQYXRoIiwiY3VycmVudCIsInBhc3RlSWQiLCJuZXdDb250ZW50IiwiaWQiLCJ0eXBlIiwiY29udGVudCIsInByZXYiLCJ0OCIsInF1ZXN0aW9uVGV4dF8wIiwicHJldl8wIiwicXVlc3Rpb25Db250ZW50cyIsIm9uUmVtb3ZlSW1hZ2UiLCJ0OSIsIk9iamVjdCIsInZhbHVlcyIsImZsYXRNYXAiLCJfdGVtcDIiLCJmaWx0ZXIiLCJfdGVtcDMiLCJhbGxJbWFnZUF0dGFjaG1lbnRzIiwidG9vbFBlcm1pc3Npb25Db250ZXh0TW9kZSIsIl90ZW1wNCIsImlzSW5QbGFuTW9kZSIsInQxMCIsInBsYW5GaWxlUGF0aCIsInN0YXRlIiwiY3VycmVudFF1ZXN0aW9uSW5kZXgiLCJhbnN3ZXJzIiwicXVlc3Rpb25TdGF0ZXMiLCJpc0luVGV4dElucHV0IiwibmV4dFF1ZXN0aW9uIiwicHJldlF1ZXN0aW9uIiwidXBkYXRlUXVlc3Rpb25TdGF0ZSIsInNldEFuc3dlciIsInNldFRleHRJbnB1dE1vZGUiLCJjdXJyZW50UXVlc3Rpb24iLCJpc0luU3VibWl0VmlldyIsInQxMSIsImV2ZXJ5IiwicV8wIiwicXVlc3Rpb24iLCJhbGxRdWVzdGlvbnNBbnN3ZXJlZCIsImhpZGVTdWJtaXRUYWIiLCJtdWx0aVNlbGVjdCIsInQxMiIsInF1ZXN0aW9uQ291bnQiLCJpbnRlcnZpZXdQaGFzZUVuYWJsZWQiLCJoYW5kbGVDYW5jZWwiLCJ0MTMiLCJxdWVzdGlvbnNXaXRoQW5zd2VycyIsIm1hcCIsInFfMSIsImFuc3dlciIsImpvaW4iLCJmZWVkYmFjayIsImltYWdlQmxvY2tzIiwiY29udmVydEltYWdlc1RvQmxvY2tzIiwiaGFuZGxlUmVzcG9uZFRvQ2xhdWRlIiwidDE0IiwicXVlc3Rpb25zV2l0aEFuc3dlcnNfMCIsInFfMiIsImFuc3dlcl8wIiwiZmVlZGJhY2tfMCIsImltYWdlQmxvY2tzXzAiLCJoYW5kbGVGaW5pc2hQbGFuSW50ZXJ2aWV3IiwidDE1IiwiYW5zd2Vyc1RvU3VibWl0IiwiYW5zd2VyQ291bnQiLCJrZXlzIiwiYW5ub3RhdGlvbnMiLCJxXzMiLCJhbnN3ZXJfMSIsIm5vdGVzIiwidGV4dElucHV0VmFsdWUiLCJzZWxlY3RlZE9wdGlvbiIsImZpbmQiLCJvcHRfMSIsImxhYmVsIiwidHJpbSIsInVwZGF0ZWRJbnB1dCIsImNvbnRlbnRCbG9ja3MiLCJvbkFsbG93Iiwic3VibWl0QW5zd2VycyIsInQxNiIsInF1ZXN0aW9uVGV4dF8xIiwidGV4dElucHV0IiwidDE3Iiwic2hvdWxkQWR2YW5jZSIsImlzTXVsdGlTZWxlY3QiLCJBcnJheSIsImlzQXJyYXkiLCJxdWVzdGlvbkltYWdlcyIsIl90ZW1wNSIsInF1ZXN0aW9uSW1hZ2VzXzAiLCJfdGVtcDYiLCJpc1NpbmdsZVF1ZXN0aW9uIiwidXBkYXRlZEFuc3dlcnMiLCJjYXRjaCIsImhhbmRsZVF1ZXN0aW9uQW5zd2VyIiwiaGFuZGxlRmluYWxSZXNwb25zZSIsInZhbHVlIiwibWF4SW5kZXgiLCJ0MTgiLCJoYW5kbGVUYWJQcmV2IiwidDE5IiwiaGFuZGxlVGFiTmV4dCIsInQyMCIsInQyMSIsInQyMiIsImNvbnRleHQiLCJpc0FjdGl2ZSIsInQyMyIsImJhc2U2NCIsIm1lZGlhVHlwZV8wIiwiZmlsZW5hbWVfMCIsImRpbXMiLCJwYXRoIiwidDI0IiwidDI1IiwiaWRfMCIsInQyNiIsInBlcm1pc3Npb25SZXN1bHQiLCJjXzEiLCJjIiwiY18wIiwicyIsInRvb2xQZXJtaXNzaW9uQ29udGV4dCIsIm1vZGUiLCJjb250ZW50cyIsImltYWdlcyIsIlByb21pc2UiLCJhbGwiLCJpbWciLCJibG9jayIsIm1lZGlhX3R5cGUiLCJyZXNpemVkIl0sInNvdXJjZXMiOlsiQXNrVXNlclF1ZXN0aW9uUGVybWlzc2lvblJlcXVlc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQmFzZTY0SW1hZ2VTb3VyY2UsXG4gIEltYWdlQmxvY2tQYXJhbSxcbn0gZnJvbSAnQGFudGhyb3BpYy1haS9zZGsvcmVzb3VyY2VzL21lc3NhZ2VzLm1qcydcbmltcG9ydCBSZWFjdCwge1xuICBTdXNwZW5zZSxcbiAgdXNlLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VTZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNldHRpbmdzLmpzJ1xuaW1wb3J0IHsgdXNlVGVybWluYWxTaXplIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVGVybWluYWxTaXplLmpzJ1xuaW1wb3J0IHsgc3RyaW5nV2lkdGggfSBmcm9tICcuLi8uLi8uLi9pbmsvc3RyaW5nV2lkdGguanMnXG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uLy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmdzIH0gZnJvbSAnLi4vLi4vLi4va2V5YmluZGluZ3MvdXNlS2V5YmluZGluZy5qcydcbmltcG9ydCB7XG4gIHR5cGUgQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyxcbiAgbG9nRXZlbnQsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FuYWx5dGljcy9pbmRleC5qcydcbmltcG9ydCB7IHVzZUFwcFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc3RhdGUvQXBwU3RhdGUuanMnXG5pbXBvcnQgdHlwZSB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvQXNrVXNlclF1ZXN0aW9uVG9vbC9Bc2tVc2VyUXVlc3Rpb25Ub29sLmpzJ1xuaW1wb3J0IHsgQXNrVXNlclF1ZXN0aW9uVG9vbCB9IGZyb20gJy4uLy4uLy4uL3Rvb2xzL0Fza1VzZXJRdWVzdGlvblRvb2wvQXNrVXNlclF1ZXN0aW9uVG9vbC5qcydcbmltcG9ydCB7XG4gIHR5cGUgQ2xpSGlnaGxpZ2h0LFxuICBnZXRDbGlIaWdobGlnaHRQcm9taXNlLFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGlIaWdobGlnaHQuanMnXG5pbXBvcnQgdHlwZSB7IFBhc3RlZENvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb25maWcuanMnXG5pbXBvcnQgdHlwZSB7IEltYWdlRGltZW5zaW9ucyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ltYWdlUmVzaXplci5qcydcbmltcG9ydCB7IG1heWJlUmVzaXplQW5kRG93bnNhbXBsZUltYWdlQmxvY2sgfSBmcm9tICcuLi8uLi8uLi91dGlscy9pbWFnZVJlc2l6ZXIuanMnXG5pbXBvcnQgeyBjYWNoZUltYWdlUGF0aCwgc3RvcmVJbWFnZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ltYWdlU3RvcmUuanMnXG5pbXBvcnQgeyBsb2dFcnJvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2xvZy5qcydcbmltcG9ydCB7IGFwcGx5TWFya2Rvd24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9tYXJrZG93bi5qcydcbmltcG9ydCB7IGlzUGxhbk1vZGVJbnRlcnZpZXdQaGFzZUVuYWJsZWQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wbGFuTW9kZVYyLmpzJ1xuaW1wb3J0IHsgZ2V0UGxhbkZpbGVQYXRoIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcGxhbnMuanMnXG5pbXBvcnQgdHlwZSB7IFBlcm1pc3Npb25SZXF1ZXN0UHJvcHMgfSBmcm9tICcuLi9QZXJtaXNzaW9uUmVxdWVzdC5qcydcbmltcG9ydCB7IFF1ZXN0aW9uVmlldyB9IGZyb20gJy4vUXVlc3Rpb25WaWV3LmpzJ1xuaW1wb3J0IHsgU3VibWl0UXVlc3Rpb25zVmlldyB9IGZyb20gJy4vU3VibWl0UXVlc3Rpb25zVmlldy5qcydcbmltcG9ydCB7IHVzZU11bHRpcGxlQ2hvaWNlU3RhdGUgfSBmcm9tICcuL3VzZS1tdWx0aXBsZS1jaG9pY2Utc3RhdGUuanMnXG5cbmNvbnN0IE1JTl9DT05URU5UX0hFSUdIVCA9IDEyXG5jb25zdCBNSU5fQ09OVEVOVF9XSURUSCA9IDQwXG4vLyBMaW5lcyB1c2VkIGJ5IGNocm9tZSBhcm91bmQgdGhlIGNvbnRlbnQgYXJlYSAobmF2IGJhciwgdGl0bGUsIGZvb3RlciwgaGVscCB0ZXh0LCBldGMuKVxuY29uc3QgQ09OVEVOVF9DSFJPTUVfT1ZFUkhFQUQgPSAxNVxuXG5leHBvcnQgZnVuY3Rpb24gQXNrVXNlclF1ZXN0aW9uUGVybWlzc2lvblJlcXVlc3QoXG4gIHByb3BzOiBQZXJtaXNzaW9uUmVxdWVzdFByb3BzLFxuKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSB1c2VTZXR0aW5ncygpXG4gIGlmIChzZXR0aW5ncy5zeW50YXhIaWdobGlnaHRpbmdEaXNhYmxlZCkge1xuICAgIHJldHVybiA8QXNrVXNlclF1ZXN0aW9uUGVybWlzc2lvblJlcXVlc3RCb2R5IHsuLi5wcm9wc30gaGlnaGxpZ2h0PXtudWxsfSAvPlxuICB9XG4gIHJldHVybiAoXG4gICAgPFN1c3BlbnNlXG4gICAgICBmYWxsYmFjaz17XG4gICAgICAgIDxBc2tVc2VyUXVlc3Rpb25QZXJtaXNzaW9uUmVxdWVzdEJvZHkgey4uLnByb3BzfSBoaWdobGlnaHQ9e251bGx9IC8+XG4gICAgICB9XG4gICAgPlxuICAgICAgPEFza1VzZXJRdWVzdGlvbldpdGhIaWdobGlnaHQgey4uLnByb3BzfSAvPlxuICAgIDwvU3VzcGVuc2U+XG4gIClcbn1cblxuZnVuY3Rpb24gQXNrVXNlclF1ZXN0aW9uV2l0aEhpZ2hsaWdodChcbiAgcHJvcHM6IFBlcm1pc3Npb25SZXF1ZXN0UHJvcHMsXG4pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBoaWdobGlnaHQgPSB1c2UoZ2V0Q2xpSGlnaGxpZ2h0UHJvbWlzZSgpKVxuICByZXR1cm4gKFxuICAgIDxBc2tVc2VyUXVlc3Rpb25QZXJtaXNzaW9uUmVxdWVzdEJvZHkgey4uLnByb3BzfSBoaWdobGlnaHQ9e2hpZ2hsaWdodH0gLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBBc2tVc2VyUXVlc3Rpb25QZXJtaXNzaW9uUmVxdWVzdEJvZHkoe1xuICB0b29sVXNlQ29uZmlybSxcbiAgb25Eb25lLFxuICBvblJlamVjdCxcbiAgaGlnaGxpZ2h0LFxufTogUGVybWlzc2lvblJlcXVlc3RQcm9wcyAmIHtcbiAgaGlnaGxpZ2h0OiBDbGlIaWdobGlnaHQgfCBudWxsXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgLy8gTWVtb2l6ZSBwYXJzZSByZXN1bHQ6IHNhZmVQYXJzZSByZXR1cm5zIGEgbmV3IG9iamVjdCAoYW5kIG5ldyBgcXVlc3Rpb25zYFxuICAvLyBhcnJheSkgb24gZXZlcnkgY2FsbC4gV2l0aG91dCB0aGlzLCB0aGUgcmVuZGVyLWJvZHkgcmVmIHdyaXRlcyBiZWxvdyBtYWtlXG4gIC8vIFJlYWN0IENvbXBpbGVyIGJhaWwgb3V0IG9uIHRoaXMgY29tcG9uZW50LCBzbyBub3RoaW5nIGlzIGF1dG8tbWVtb2l6ZWQg4oCUXG4gIC8vIGBxdWVzdGlvbnNgIGNoYW5nZXMgaWRlbnRpdHkgZXZlcnkgcmVuZGVyLCBhbmQgdGhlIGBnbG9iYWxDb250ZW50SGVpZ2h0YFxuICAvLyB1c2VNZW1vICh3aGljaCBydW5zIGFwcGx5TWFya2Rvd24gb3ZlciBldmVyeSBwcmV2aWV3KSBuZXZlciBoaXRzIGl0cyBjYWNoZS5cbiAgLy8gYHRvb2xVc2VDb25maXJtLmlucHV0YCBpcyBzdGFibGUgZm9yIHRoZSBkaWFsb2cncyBsaWZldGltZSAodGhpcyB0b29sXG4gIC8vIHJldHVybnMgYGJlaGF2aW9yOiAnYXNrJ2AgZGlyZWN0bHkgYW5kIG5ldmVyIGdvZXMgdGhyb3VnaCB0aGUgY2xhc3NpZmllcikuXG4gIGNvbnN0IHJlc3VsdCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gQXNrVXNlclF1ZXN0aW9uVG9vbC5pbnB1dFNjaGVtYS5zYWZlUGFyc2UodG9vbFVzZUNvbmZpcm0uaW5wdXQpLFxuICAgIFt0b29sVXNlQ29uZmlybS5pbnB1dF0sXG4gIClcbiAgY29uc3QgcXVlc3Rpb25zID0gcmVzdWx0LnN1Y2Nlc3MgPyByZXN1bHQuZGF0YS5xdWVzdGlvbnMgfHwgW10gOiBbXVxuICBjb25zdCB7IHJvd3M6IHRlcm1pbmFsUm93cyB9ID0gdXNlVGVybWluYWxTaXplKClcbiAgY29uc3QgW3RoZW1lXSA9IHVzZVRoZW1lKClcblxuICAvLyBDYWxjdWxhdGUgY29uc2lzdGVudCBjb250ZW50IGRpbWVuc2lvbnMgYWNyb3NzIGFsbCBxdWVzdGlvbnMgdG8gcHJldmVudCBsYXlvdXQgc2hpZnRzLlxuICAvLyBnbG9iYWxDb250ZW50SGVpZ2h0IHJlcHJlc2VudHMgdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgY29udGVudCBhcmVhIGJlbG93IHRoZSBuYXYvdGl0bGUsXG4gIC8vIElOQ0xVRElORyBmb290ZXIgYW5kIGhlbHAgdGV4dCwgc28gYWxsIHZpZXdzIChxdWVzdGlvbnMsIHByZXZpZXdzLCBzdWJtaXQpIG1hdGNoLlxuICBjb25zdCB7IGdsb2JhbENvbnRlbnRIZWlnaHQsIGdsb2JhbENvbnRlbnRXaWR0aCB9ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgbGV0IG1heEhlaWdodCA9IDBcbiAgICBsZXQgbWF4V2lkdGggPSAwXG5cbiAgICAvLyBGb290ZXIgKGRpdmlkZXIgKyBcIkNoYXQgYWJvdXQgdGhpc1wiICsgb3B0aW9uYWwgcGxhbikgKyBoZWxwIHRleHQg4omIIDcgbGluZXNcbiAgICBjb25zdCBGT09URVJfSEVMUF9MSU5FUyA9IDdcblxuICAgIC8vIENhcCBhdCB0ZXJtaW5hbCBoZWlnaHQgbWludXMgY2hyb21lIG92ZXJoZWFkLCBidXQgZW5zdXJlIGF0IGxlYXN0IE1JTl9DT05URU5UX0hFSUdIVFxuICAgIGNvbnN0IG1heEFsbG93ZWRIZWlnaHQgPSBNYXRoLm1heChcbiAgICAgIE1JTl9DT05URU5UX0hFSUdIVCxcbiAgICAgIHRlcm1pbmFsUm93cyAtIENPTlRFTlRfQ0hST01FX09WRVJIRUFELFxuICAgIClcblxuICAgIC8vIFBSRVZJRVdfT1ZFUkhFQUQgbWF0Y2hlcyB0aGUgY29uc3RhbnQgaW4gUHJldmlld1F1ZXN0aW9uVmlldy50c3gg4oCUIGxpbmVzXG4gICAgLy8gdXNlZCBieSBub24tcHJldmlldyBlbGVtZW50cyB3aXRoaW4gdGhlIGNvbnRlbnQgYXJlYSAobWFyZ2lucywgYm9yZGVycyxcbiAgICAvLyBub3RlcywgZm9vdGVyLCBoZWxwIHRleHQpLiBVc2VkIGhlcmUgdG8gY2FwIHByZXZpZXcgY29udGVudCBzbyB0aGF0XG4gICAgLy8gZ2xvYmFsQ29udGVudEhlaWdodCByZWZsZWN0cyB0aGUgKnRydW5jYXRlZCogaGVpZ2h0LCBub3QgdGhlIHJhdyBoZWlnaHQuXG4gICAgY29uc3QgUFJFVklFV19PVkVSSEVBRCA9IDExXG5cbiAgICBmb3IgKGNvbnN0IHEgb2YgcXVlc3Rpb25zKSB7XG4gICAgICBjb25zdCBoYXNQcmV2aWV3ID0gcS5vcHRpb25zLnNvbWUob3B0ID0+IG9wdC5wcmV2aWV3KVxuXG4gICAgICBpZiAoaGFzUHJldmlldykge1xuICAgICAgICAvLyBDb21wdXRlIHRoZSBtYXggcHJldmlldyBjb250ZW50IGxpbmVzIHRoYXQgd291bGQgYWN0dWFsbHkgZGlzcGxheVxuICAgICAgICAvLyBhZnRlciB0cnVuY2F0aW9uLCBtYXRjaGluZyB0aGUgbG9naWMgaW4gUHJldmlld1F1ZXN0aW9uVmlldy5cbiAgICAgICAgY29uc3QgbWF4UHJldmlld0NvbnRlbnRMaW5lcyA9IE1hdGgubWF4KFxuICAgICAgICAgIDEsXG4gICAgICAgICAgbWF4QWxsb3dlZEhlaWdodCAtIFBSRVZJRVdfT1ZFUkhFQUQsXG4gICAgICAgIClcblxuICAgICAgICAvLyBGb3IgcHJldmlldyBxdWVzdGlvbnMsIHRvdGFsID0gc2lkZS1ieS1zaWRlIGhlaWdodCArIGZvb3Rlci9oZWxwXG4gICAgICAgIC8vIFNpZGUtYnktc2lkZSA9IG1heChsZWZ0IHBhbmVsLCByaWdodCBwYW5lbClcbiAgICAgICAgLy8gUmlnaHQgcGFuZWwgPSBwcmV2aWV3IGJveCAoY29udGVudCArIGJvcmRlcnMgKyB0cnVuY2F0aW9uIGluZGljYXRvcikgKyBub3Rlc1xuICAgICAgICBsZXQgbWF4UHJldmlld0JveEhlaWdodCA9IDBcbiAgICAgICAgZm9yIChjb25zdCBvcHQgb2YgcS5vcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdC5wcmV2aWV3KSB7XG4gICAgICAgICAgICAvLyBNZWFzdXJlIHRoZSAqcmVuZGVyZWQqIG1hcmtkb3duIChzYW1lIHRyYW5zZm9ybSBhcyBQcmV2aWV3Qm94KSBzb1xuICAgICAgICAgICAgLy8gdGhhdCBsaW5lIGNvdW50cyBhbmQgd2lkdGhzIG1hdGNoIHdoYXQgd2lsbCBhY3R1YWxseSBiZSBkaXNwbGF5ZWQuXG4gICAgICAgICAgICAvLyBhcHBseU1hcmtkb3duIHJlbW92ZXMgY29kZSBmZW5jZSBtYXJrZXJzLCBib2xkL2l0YWxpYyBzeW50YXgsIGV0Yy5cbiAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVkID0gYXBwbHlNYXJrZG93bihvcHQucHJldmlldywgdGhlbWUsIGhpZ2hsaWdodClcbiAgICAgICAgICAgIGNvbnN0IHByZXZpZXdMaW5lcyA9IHJlbmRlcmVkLnNwbGl0KCdcXG4nKVxuICAgICAgICAgICAgY29uc3QgaXNUcnVuY2F0ZWQgPSBwcmV2aWV3TGluZXMubGVuZ3RoID4gbWF4UHJldmlld0NvbnRlbnRMaW5lc1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheWVkTGluZXMgPSBpc1RydW5jYXRlZFxuICAgICAgICAgICAgICA/IG1heFByZXZpZXdDb250ZW50TGluZXNcbiAgICAgICAgICAgICAgOiBwcmV2aWV3TGluZXMubGVuZ3RoXG4gICAgICAgICAgICAvLyBQcmV2aWV3IGJveDogZGlzcGxheWVkIGNvbnRlbnQgKyB0cnVuY2F0aW9uIGluZGljYXRvciArIDIgYm9yZGVyc1xuICAgICAgICAgICAgbWF4UHJldmlld0JveEhlaWdodCA9IE1hdGgubWF4KFxuICAgICAgICAgICAgICBtYXhQcmV2aWV3Qm94SGVpZ2h0LFxuICAgICAgICAgICAgICBkaXNwbGF5ZWRMaW5lcyArIChpc1RydW5jYXRlZCA/IDEgOiAwKSArIDIsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgcHJldmlld0xpbmVzKSB7XG4gICAgICAgICAgICAgIG1heFdpZHRoID0gTWF0aC5tYXgobWF4V2lkdGgsIHN0cmluZ1dpZHRoKGxpbmUpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBSaWdodCBwYW5lbDogcHJldmlldyBib3ggKyBub3RlcyAoMiBsaW5lcyB3aXRoIG1hcmdpbilcbiAgICAgICAgY29uc3QgcmlnaHRQYW5lbEhlaWdodCA9IG1heFByZXZpZXdCb3hIZWlnaHQgKyAyXG4gICAgICAgIC8vIExlZnQgcGFuZWw6IG9wdGlvbnMgKyBkZXNjcmlwdGlvblxuICAgICAgICBjb25zdCBsZWZ0UGFuZWxIZWlnaHQgPSBxLm9wdGlvbnMubGVuZ3RoICsgMlxuICAgICAgICBjb25zdCBzaWRlQnlIZWlnaHQgPSBNYXRoLm1heChsZWZ0UGFuZWxIZWlnaHQsIHJpZ2h0UGFuZWxIZWlnaHQpXG4gICAgICAgIG1heEhlaWdodCA9IE1hdGgubWF4KG1heEhlaWdodCwgc2lkZUJ5SGVpZ2h0ICsgRk9PVEVSX0hFTFBfTElORVMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb3IgcmVndWxhciBxdWVzdGlvbnM6IG9wdGlvbnMgKyBcIk90aGVyXCIgKyBmb290ZXIvaGVscFxuICAgICAgICBtYXhIZWlnaHQgPSBNYXRoLm1heChcbiAgICAgICAgICBtYXhIZWlnaHQsXG4gICAgICAgICAgcS5vcHRpb25zLmxlbmd0aCArIDMgKyBGT09URVJfSEVMUF9MSU5FUyxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBnbG9iYWxDb250ZW50SGVpZ2h0OiBNYXRoLm1pbihcbiAgICAgICAgTWF0aC5tYXgobWF4SGVpZ2h0LCBNSU5fQ09OVEVOVF9IRUlHSFQpLFxuICAgICAgICBtYXhBbGxvd2VkSGVpZ2h0LFxuICAgICAgKSxcbiAgICAgIGdsb2JhbENvbnRlbnRXaWR0aDogTWF0aC5tYXgobWF4V2lkdGgsIE1JTl9DT05URU5UX1dJRFRIKSxcbiAgICB9XG4gIH0sIFtxdWVzdGlvbnMsIHRlcm1pbmFsUm93cywgdGhlbWUsIGhpZ2hsaWdodF0pXG4gIGNvbnN0IG1ldGFkYXRhU291cmNlID0gcmVzdWx0LnN1Y2Nlc3NcbiAgICA/IHJlc3VsdC5kYXRhLm1ldGFkYXRhPy5zb3VyY2VcbiAgICA6IHVuZGVmaW5lZFxuXG4gIGNvbnN0IFtwYXN0ZWRDb250ZW50c0J5UXVlc3Rpb24sIHNldFBhc3RlZENvbnRlbnRzQnlRdWVzdGlvbl0gPSB1c2VTdGF0ZTxcbiAgICBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8bnVtYmVyLCBQYXN0ZWRDb250ZW50Pj5cbiAgPih7fSlcbiAgY29uc3QgbmV4dFBhc3RlSWRSZWYgPSB1c2VSZWYoMClcblxuICBmdW5jdGlvbiBvbkltYWdlUGFzdGUoXG4gICAgcXVlc3Rpb25UZXh0OiBzdHJpbmcsXG4gICAgYmFzZTY0SW1hZ2U6IHN0cmluZyxcbiAgICBtZWRpYVR5cGU/OiBzdHJpbmcsXG4gICAgZmlsZW5hbWU/OiBzdHJpbmcsXG4gICAgZGltZW5zaW9ucz86IEltYWdlRGltZW5zaW9ucyxcbiAgICBfc291cmNlUGF0aD86IHN0cmluZyxcbiAgKSB7XG4gICAgY29uc3QgcGFzdGVJZCA9IG5leHRQYXN0ZUlkUmVmLmN1cnJlbnQrK1xuICAgIGNvbnN0IG5ld0NvbnRlbnQ6IFBhc3RlZENvbnRlbnQgPSB7XG4gICAgICBpZDogcGFzdGVJZCxcbiAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICBjb250ZW50OiBiYXNlNjRJbWFnZSxcbiAgICAgIG1lZGlhVHlwZTogbWVkaWFUeXBlIHx8ICdpbWFnZS9wbmcnLFxuICAgICAgZmlsZW5hbWU6IGZpbGVuYW1lIHx8ICdQYXN0ZWQgaW1hZ2UnLFxuICAgICAgZGltZW5zaW9ucyxcbiAgICB9XG4gICAgY2FjaGVJbWFnZVBhdGgobmV3Q29udGVudClcbiAgICB2b2lkIHN0b3JlSW1hZ2UobmV3Q29udGVudClcbiAgICBzZXRQYXN0ZWRDb250ZW50c0J5UXVlc3Rpb24ocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtxdWVzdGlvblRleHRdOiB7IC4uLihwcmV2W3F1ZXN0aW9uVGV4dF0gPz8ge30pLCBbcGFzdGVJZF06IG5ld0NvbnRlbnQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IG9uUmVtb3ZlSW1hZ2UgPSB1c2VDYWxsYmFjaygocXVlc3Rpb25UZXh0OiBzdHJpbmcsIGlkOiBudW1iZXIpID0+IHtcbiAgICBzZXRQYXN0ZWRDb250ZW50c0J5UXVlc3Rpb24ocHJldiA9PiB7XG4gICAgICBjb25zdCBxdWVzdGlvbkNvbnRlbnRzID0geyAuLi4ocHJldltxdWVzdGlvblRleHRdID8/IHt9KSB9XG4gICAgICBkZWxldGUgcXVlc3Rpb25Db250ZW50c1tpZF1cbiAgICAgIHJldHVybiB7IC4uLnByZXYsIFtxdWVzdGlvblRleHRdOiBxdWVzdGlvbkNvbnRlbnRzIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBhbGxJbWFnZUF0dGFjaG1lbnRzID0gT2JqZWN0LnZhbHVlcyhwYXN0ZWRDb250ZW50c0J5UXVlc3Rpb24pXG4gICAgLmZsYXRNYXAoY29udGVudHMgPT4gT2JqZWN0LnZhbHVlcyhjb250ZW50cykpXG4gICAgLmZpbHRlcihjID0+IGMudHlwZSA9PT0gJ2ltYWdlJylcblxuICBjb25zdCB0b29sUGVybWlzc2lvbkNvbnRleHRNb2RlID0gdXNlQXBwU3RhdGUoXG4gICAgcyA9PiBzLnRvb2xQZXJtaXNzaW9uQ29udGV4dC5tb2RlLFxuICApXG4gIGNvbnN0IGlzSW5QbGFuTW9kZSA9IHRvb2xQZXJtaXNzaW9uQ29udGV4dE1vZGUgPT09ICdwbGFuJ1xuICBjb25zdCBwbGFuRmlsZVBhdGggPSBpc0luUGxhbk1vZGUgPyBnZXRQbGFuRmlsZVBhdGgoKSA6IHVuZGVmaW5lZFxuXG4gIGNvbnN0IHN0YXRlID0gdXNlTXVsdGlwbGVDaG9pY2VTdGF0ZSgpXG4gIGNvbnN0IHtcbiAgICBjdXJyZW50UXVlc3Rpb25JbmRleCxcbiAgICBhbnN3ZXJzLFxuICAgIHF1ZXN0aW9uU3RhdGVzLFxuICAgIGlzSW5UZXh0SW5wdXQsXG4gICAgbmV4dFF1ZXN0aW9uLFxuICAgIHByZXZRdWVzdGlvbixcbiAgICB1cGRhdGVRdWVzdGlvblN0YXRlLFxuICAgIHNldEFuc3dlcixcbiAgICBzZXRUZXh0SW5wdXRNb2RlLFxuICB9ID0gc3RhdGVcblxuICBjb25zdCBjdXJyZW50UXVlc3Rpb24gPVxuICAgIGN1cnJlbnRRdWVzdGlvbkluZGV4IDwgKHF1ZXN0aW9ucz8ubGVuZ3RoIHx8IDApXG4gICAgICA/IHF1ZXN0aW9ucz8uW2N1cnJlbnRRdWVzdGlvbkluZGV4XVxuICAgICAgOiBudWxsXG5cbiAgY29uc3QgaXNJblN1Ym1pdFZpZXcgPSBjdXJyZW50UXVlc3Rpb25JbmRleCA9PT0gKHF1ZXN0aW9ucz8ubGVuZ3RoIHx8IDApXG4gIGNvbnN0IGFsbFF1ZXN0aW9uc0Fuc3dlcmVkID1cbiAgICBxdWVzdGlvbnM/LmV2ZXJ5KChxOiBRdWVzdGlvbikgPT4gcT8ucXVlc3Rpb24gJiYgISFhbnN3ZXJzW3EucXVlc3Rpb25dKSA/P1xuICAgIGZhbHNlXG5cbiAgLy8gSGlkZSBzdWJtaXQgdGFiIHdoZW4gdGhlcmUncyBvbmx5IG9uZSBxdWVzdGlvbiBhbmQgaXQncyBzaW5nbGUtc2VsZWN0IChhdXRvLXN1Ym1pdCBzY2VuYXJpbylcbiAgY29uc3QgaGlkZVN1Ym1pdFRhYiA9IHF1ZXN0aW9ucy5sZW5ndGggPT09IDEgJiYgIXF1ZXN0aW9uc1swXT8ubXVsdGlTZWxlY3RcblxuICBjb25zdCBoYW5kbGVDYW5jZWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gTG9nIHJlamVjdGlvbiB3aXRoIG1ldGFkYXRhIHNvdXJjZSBpZiBwcmVzZW50XG4gICAgaWYgKG1ldGFkYXRhU291cmNlKSB7XG4gICAgICBsb2dFdmVudCgndGVuZ3VfYXNrX3VzZXJfcXVlc3Rpb25fcmVqZWN0ZWQnLCB7XG4gICAgICAgIHNvdXJjZTpcbiAgICAgICAgICBtZXRhZGF0YVNvdXJjZSBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgICBxdWVzdGlvbkNvdW50OiBxdWVzdGlvbnMubGVuZ3RoLFxuICAgICAgICBpc0luUGxhbk1vZGUsXG4gICAgICAgIGludGVydmlld1BoYXNlRW5hYmxlZDpcbiAgICAgICAgICBpc0luUGxhbk1vZGUgJiYgaXNQbGFuTW9kZUludGVydmlld1BoYXNlRW5hYmxlZCgpLFxuICAgICAgfSlcbiAgICB9XG4gICAgb25Eb25lKClcbiAgICBvblJlamVjdCgpXG4gICAgdG9vbFVzZUNvbmZpcm0ub25SZWplY3QoKVxuICB9LCBbXG4gICAgb25Eb25lLFxuICAgIG9uUmVqZWN0LFxuICAgIHRvb2xVc2VDb25maXJtLFxuICAgIG1ldGFkYXRhU291cmNlLFxuICAgIHF1ZXN0aW9ucy5sZW5ndGgsXG4gICAgaXNJblBsYW5Nb2RlLFxuICBdKVxuXG4gIGNvbnN0IGhhbmRsZVJlc3BvbmRUb0NsYXVkZSA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBxdWVzdGlvbnNXaXRoQW5zd2VycyA9IHF1ZXN0aW9uc1xuICAgICAgLm1hcCgocTogUXVlc3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgYW5zd2VyID0gYW5zd2Vyc1txLnF1ZXN0aW9uXVxuICAgICAgICBpZiAoYW5zd2VyKSB7XG4gICAgICAgICAgcmV0dXJuIGAtIFwiJHtxLnF1ZXN0aW9ufVwiXFxuICBBbnN3ZXI6ICR7YW5zd2VyfWBcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYC0gXCIke3EucXVlc3Rpb259XCJcXG4gIChObyBhbnN3ZXIgcHJvdmlkZWQpYFxuICAgICAgfSlcbiAgICAgIC5qb2luKCdcXG4nKVxuXG4gICAgY29uc3QgZmVlZGJhY2sgPSBgVGhlIHVzZXIgd2FudHMgdG8gY2xhcmlmeSB0aGVzZSBxdWVzdGlvbnMuXG4gICAgVGhpcyBtZWFucyB0aGV5IG1heSBoYXZlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIGNvbnRleHQgb3IgcXVlc3Rpb25zIGZvciB5b3UuXG4gICAgVGFrZSB0aGVpciByZXNwb25zZSBpbnRvIGFjY291bnQgYW5kIHRoZW4gcmVmb3JtdWxhdGUgdGhlIHF1ZXN0aW9ucyBpZiBhcHByb3ByaWF0ZS5cbiAgICBTdGFydCBieSBhc2tpbmcgdGhlbSB3aGF0IHRoZXkgd291bGQgbGlrZSB0byBjbGFyaWZ5LlxuXG4gICAgUXVlc3Rpb25zIGFza2VkOlxcbiR7cXVlc3Rpb25zV2l0aEFuc3dlcnN9YFxuXG4gICAgaWYgKG1ldGFkYXRhU291cmNlKSB7XG4gICAgICBsb2dFdmVudCgndGVuZ3VfYXNrX3VzZXJfcXVlc3Rpb25fcmVzcG9uZF90b19jbGF1ZGUnLCB7XG4gICAgICAgIHNvdXJjZTpcbiAgICAgICAgICBtZXRhZGF0YVNvdXJjZSBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgICBxdWVzdGlvbkNvdW50OiBxdWVzdGlvbnMubGVuZ3RoLFxuICAgICAgICBpc0luUGxhbk1vZGUsXG4gICAgICAgIGludGVydmlld1BoYXNlRW5hYmxlZDpcbiAgICAgICAgICBpc0luUGxhbk1vZGUgJiYgaXNQbGFuTW9kZUludGVydmlld1BoYXNlRW5hYmxlZCgpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBpbWFnZUJsb2NrcyA9IGF3YWl0IGNvbnZlcnRJbWFnZXNUb0Jsb2NrcyhhbGxJbWFnZUF0dGFjaG1lbnRzKVxuXG4gICAgb25Eb25lKClcbiAgICB0b29sVXNlQ29uZmlybS5vblJlamVjdChcbiAgICAgIGZlZWRiYWNrLFxuICAgICAgaW1hZ2VCbG9ja3MgJiYgaW1hZ2VCbG9ja3MubGVuZ3RoID4gMCA/IGltYWdlQmxvY2tzIDogdW5kZWZpbmVkLFxuICAgIClcbiAgfSwgW1xuICAgIHF1ZXN0aW9ucyxcbiAgICBhbnN3ZXJzLFxuICAgIG9uRG9uZSxcbiAgICB0b29sVXNlQ29uZmlybSxcbiAgICBtZXRhZGF0YVNvdXJjZSxcbiAgICBpc0luUGxhbk1vZGUsXG4gICAgYWxsSW1hZ2VBdHRhY2htZW50cyxcbiAgXSlcblxuICBjb25zdCBoYW5kbGVGaW5pc2hQbGFuSW50ZXJ2aWV3ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHF1ZXN0aW9uc1dpdGhBbnN3ZXJzID0gcXVlc3Rpb25zXG4gICAgICAubWFwKChxOiBRdWVzdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBhbnN3ZXIgPSBhbnN3ZXJzW3EucXVlc3Rpb25dXG4gICAgICAgIGlmIChhbnN3ZXIpIHtcbiAgICAgICAgICByZXR1cm4gYC0gXCIke3EucXVlc3Rpb259XCJcXG4gIEFuc3dlcjogJHthbnN3ZXJ9YFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgLSBcIiR7cS5xdWVzdGlvbn1cIlxcbiAgKE5vIGFuc3dlciBwcm92aWRlZClgXG4gICAgICB9KVxuICAgICAgLmpvaW4oJ1xcbicpXG5cbiAgICBjb25zdCBmZWVkYmFjayA9IGBUaGUgdXNlciBoYXMgaW5kaWNhdGVkIHRoZXkgaGF2ZSBwcm92aWRlZCBlbm91Z2ggYW5zd2VycyBmb3IgdGhlIHBsYW4gaW50ZXJ2aWV3LlxuU3RvcCBhc2tpbmcgY2xhcmlmeWluZyBxdWVzdGlvbnMgYW5kIHByb2NlZWQgdG8gZmluaXNoIHRoZSBwbGFuIHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSBoYXZlLlxuXG5RdWVzdGlvbnMgYXNrZWQgYW5kIGFuc3dlcnMgcHJvdmlkZWQ6XFxuJHtxdWVzdGlvbnNXaXRoQW5zd2Vyc31gXG5cbiAgICBpZiAobWV0YWRhdGFTb3VyY2UpIHtcbiAgICAgIGxvZ0V2ZW50KCd0ZW5ndV9hc2tfdXNlcl9xdWVzdGlvbl9maW5pc2hfcGxhbl9pbnRlcnZpZXcnLCB7XG4gICAgICAgIHNvdXJjZTpcbiAgICAgICAgICBtZXRhZGF0YVNvdXJjZSBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgICBxdWVzdGlvbkNvdW50OiBxdWVzdGlvbnMubGVuZ3RoLFxuICAgICAgICBpc0luUGxhbk1vZGUsXG4gICAgICAgIGludGVydmlld1BoYXNlRW5hYmxlZDpcbiAgICAgICAgICBpc0luUGxhbk1vZGUgJiYgaXNQbGFuTW9kZUludGVydmlld1BoYXNlRW5hYmxlZCgpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBpbWFnZUJsb2NrcyA9IGF3YWl0IGNvbnZlcnRJbWFnZXNUb0Jsb2NrcyhhbGxJbWFnZUF0dGFjaG1lbnRzKVxuXG4gICAgb25Eb25lKClcbiAgICB0b29sVXNlQ29uZmlybS5vblJlamVjdChcbiAgICAgIGZlZWRiYWNrLFxuICAgICAgaW1hZ2VCbG9ja3MgJiYgaW1hZ2VCbG9ja3MubGVuZ3RoID4gMCA/IGltYWdlQmxvY2tzIDogdW5kZWZpbmVkLFxuICAgIClcbiAgfSwgW1xuICAgIHF1ZXN0aW9ucyxcbiAgICBhbnN3ZXJzLFxuICAgIG9uRG9uZSxcbiAgICB0b29sVXNlQ29uZmlybSxcbiAgICBtZXRhZGF0YVNvdXJjZSxcbiAgICBpc0luUGxhbk1vZGUsXG4gICAgYWxsSW1hZ2VBdHRhY2htZW50cyxcbiAgXSlcblxuICBjb25zdCBzdWJtaXRBbnN3ZXJzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGFuc3dlcnNUb1N1Ym1pdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICAgICAgLy8gTG9nIGFjY2VwdGFuY2Ugd2l0aCBtZXRhZGF0YSBzb3VyY2UgaWYgcHJlc2VudFxuICAgICAgaWYgKG1ldGFkYXRhU291cmNlKSB7XG4gICAgICAgIGxvZ0V2ZW50KCd0ZW5ndV9hc2tfdXNlcl9xdWVzdGlvbl9hY2NlcHRlZCcsIHtcbiAgICAgICAgICBzb3VyY2U6XG4gICAgICAgICAgICBtZXRhZGF0YVNvdXJjZSBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgICAgIHF1ZXN0aW9uQ291bnQ6IHF1ZXN0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgYW5zd2VyQ291bnQ6IE9iamVjdC5rZXlzKGFuc3dlcnNUb1N1Ym1pdCkubGVuZ3RoLFxuICAgICAgICAgIGlzSW5QbGFuTW9kZSxcbiAgICAgICAgICBpbnRlcnZpZXdQaGFzZUVuYWJsZWQ6XG4gICAgICAgICAgICBpc0luUGxhbk1vZGUgJiYgaXNQbGFuTW9kZUludGVydmlld1BoYXNlRW5hYmxlZCgpLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgLy8gQnVpbGQgYW5ub3RhdGlvbnMgZnJvbSBxdWVzdGlvblN0YXRlcyAoZS5nLiwgc2VsZWN0ZWQgcHJldmlldywgdXNlciBub3RlcylcbiAgICAgIGNvbnN0IGFubm90YXRpb25zOiBSZWNvcmQ8c3RyaW5nLCB7IHByZXZpZXc/OiBzdHJpbmc7IG5vdGVzPzogc3RyaW5nIH0+ID1cbiAgICAgICAge31cbiAgICAgIGZvciAoY29uc3QgcSBvZiBxdWVzdGlvbnMpIHtcbiAgICAgICAgY29uc3QgYW5zd2VyID0gYW5zd2Vyc1RvU3VibWl0W3EucXVlc3Rpb25dXG4gICAgICAgIGNvbnN0IG5vdGVzID0gcXVlc3Rpb25TdGF0ZXNbcS5xdWVzdGlvbl0/LnRleHRJbnB1dFZhbHVlXG4gICAgICAgIC8vIEZpbmQgdGhlIHNlbGVjdGVkIG9wdGlvbidzIHByZXZpZXcgY29udGVudFxuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGFuc3dlclxuICAgICAgICAgID8gcS5vcHRpb25zLmZpbmQob3B0ID0+IG9wdC5sYWJlbCA9PT0gYW5zd2VyKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIGNvbnN0IHByZXZpZXcgPSBzZWxlY3RlZE9wdGlvbj8ucHJldmlld1xuICAgICAgICBpZiAocHJldmlldyB8fCBub3Rlcz8udHJpbSgpKSB7XG4gICAgICAgICAgYW5ub3RhdGlvbnNbcS5xdWVzdGlvbl0gPSB7XG4gICAgICAgICAgICAuLi4ocHJldmlldyAmJiB7IHByZXZpZXcgfSksXG4gICAgICAgICAgICAuLi4obm90ZXM/LnRyaW0oKSAmJiB7IG5vdGVzOiBub3Rlcy50cmltKCkgfSksXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWRJbnB1dCA9IHtcbiAgICAgICAgLi4udG9vbFVzZUNvbmZpcm0uaW5wdXQsXG4gICAgICAgIGFuc3dlcnM6IGFuc3dlcnNUb1N1Ym1pdCxcbiAgICAgICAgLi4uKE9iamVjdC5rZXlzKGFubm90YXRpb25zKS5sZW5ndGggPiAwICYmIHsgYW5ub3RhdGlvbnMgfSksXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRlbnRCbG9ja3MgPSBhd2FpdCBjb252ZXJ0SW1hZ2VzVG9CbG9ja3MoYWxsSW1hZ2VBdHRhY2htZW50cylcblxuICAgICAgb25Eb25lKClcbiAgICAgIHRvb2xVc2VDb25maXJtLm9uQWxsb3coXG4gICAgICAgIHVwZGF0ZWRJbnB1dCxcbiAgICAgICAgW10sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgY29udGVudEJsb2NrcyAmJiBjb250ZW50QmxvY2tzLmxlbmd0aCA+IDAgPyBjb250ZW50QmxvY2tzIDogdW5kZWZpbmVkLFxuICAgICAgKVxuICAgIH0sXG4gICAgW1xuICAgICAgdG9vbFVzZUNvbmZpcm0sXG4gICAgICBvbkRvbmUsXG4gICAgICBtZXRhZGF0YVNvdXJjZSxcbiAgICAgIHF1ZXN0aW9ucyxcbiAgICAgIHF1ZXN0aW9uU3RhdGVzLFxuICAgICAgaXNJblBsYW5Nb2RlLFxuICAgICAgYWxsSW1hZ2VBdHRhY2htZW50cyxcbiAgICBdLFxuICApXG5cbiAgY29uc3QgaGFuZGxlUXVlc3Rpb25BbnN3ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBxdWVzdGlvblRleHQ6IHN0cmluZyxcbiAgICAgIGxhYmVsOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICAgIHRleHRJbnB1dD86IHN0cmluZyxcbiAgICAgIHNob3VsZEFkdmFuY2U6IGJvb2xlYW4gPSB0cnVlLFxuICAgICkgPT4ge1xuICAgICAgbGV0IGFuc3dlcjogc3RyaW5nXG4gICAgICBjb25zdCBpc011bHRpU2VsZWN0ID0gQXJyYXkuaXNBcnJheShsYWJlbClcbiAgICAgIGlmIChpc011bHRpU2VsZWN0KSB7XG4gICAgICAgIGFuc3dlciA9IGxhYmVsLmpvaW4oJywgJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0ZXh0SW5wdXQpIHtcbiAgICAgICAgICBjb25zdCBxdWVzdGlvbkltYWdlcyA9IE9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICBwYXN0ZWRDb250ZW50c0J5UXVlc3Rpb25bcXVlc3Rpb25UZXh0XSA/PyB7fSxcbiAgICAgICAgICApLmZpbHRlcihjID0+IGMudHlwZSA9PT0gJ2ltYWdlJylcbiAgICAgICAgICBhbnN3ZXIgPVxuICAgICAgICAgICAgcXVlc3Rpb25JbWFnZXMubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/IGAke3RleHRJbnB1dH0gKEltYWdlIGF0dGFjaGVkKWBcbiAgICAgICAgICAgICAgOiB0ZXh0SW5wdXRcbiAgICAgICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ19fb3RoZXJfXycpIHtcbiAgICAgICAgICAvLyBJbWFnZS1vbmx5IHN1Ym1pc3Npb24g4oCUIGNoZWNrIGlmIHRoaXMgcXVlc3Rpb24gaGFzIGltYWdlc1xuICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uSW1hZ2VzID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgIHBhc3RlZENvbnRlbnRzQnlRdWVzdGlvbltxdWVzdGlvblRleHRdID8/IHt9LFxuICAgICAgICAgICkuZmlsdGVyKGMgPT4gYy50eXBlID09PSAnaW1hZ2UnKVxuICAgICAgICAgIGFuc3dlciA9IHF1ZXN0aW9uSW1hZ2VzLmxlbmd0aCA+IDAgPyAnKEltYWdlIGF0dGFjaGVkKScgOiBsYWJlbFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFuc3dlciA9IGxhYmVsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gRm9yIHNpbmdsZS1zZWxlY3Qgd2l0aCBvbmx5IG9uZSBxdWVzdGlvbiwgYXV0by1zdWJtaXQgaW5zdGVhZCBvZiBzaG93aW5nIHJldmlldyBzY3JlZW5cbiAgICAgIGNvbnN0IGlzU2luZ2xlUXVlc3Rpb24gPSBxdWVzdGlvbnMubGVuZ3RoID09PSAxXG4gICAgICBpZiAoIWlzTXVsdGlTZWxlY3QgJiYgaXNTaW5nbGVRdWVzdGlvbiAmJiBzaG91bGRBZHZhbmNlKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRBbnN3ZXJzID0ge1xuICAgICAgICAgIC4uLmFuc3dlcnMsXG4gICAgICAgICAgW3F1ZXN0aW9uVGV4dF06IGFuc3dlcixcbiAgICAgICAgfVxuICAgICAgICB2b2lkIHN1Ym1pdEFuc3dlcnModXBkYXRlZEFuc3dlcnMpLmNhdGNoKGxvZ0Vycm9yKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgc2V0QW5zd2VyKHF1ZXN0aW9uVGV4dCwgYW5zd2VyLCBzaG91bGRBZHZhbmNlKVxuICAgIH0sXG4gICAgW1xuICAgICAgc2V0QW5zd2VyLFxuICAgICAgcXVlc3Rpb25zLmxlbmd0aCxcbiAgICAgIGFuc3dlcnMsXG4gICAgICBzdWJtaXRBbnN3ZXJzLFxuICAgICAgcGFzdGVkQ29udGVudHNCeVF1ZXN0aW9uLFxuICAgIF0sXG4gIClcblxuICBmdW5jdGlvbiBoYW5kbGVGaW5hbFJlc3BvbnNlKHZhbHVlOiAnc3VibWl0JyB8ICdjYW5jZWwnKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlID09PSAnY2FuY2VsJykge1xuICAgICAgaGFuZGxlQ2FuY2VsKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gJ3N1Ym1pdCcpIHtcbiAgICAgIHZvaWQgc3VibWl0QW5zd2VycyhhbnN3ZXJzKS5jYXRjaChsb2dFcnJvcilcbiAgICB9XG4gIH1cblxuICAvLyBXaGVuIHN1Ym1pdCB0YWIgaXMgaGlkZGVuLCBkb24ndCBhbGxvdyBuYXZpZ2F0aW5nIHBhc3QgdGhlIGxhc3QgcXVlc3Rpb25cbiAgY29uc3QgbWF4SW5kZXggPSBoaWRlU3VibWl0VGFiXG4gICAgPyAocXVlc3Rpb25zPy5sZW5ndGggfHwgMSkgLSAxXG4gICAgOiBxdWVzdGlvbnM/Lmxlbmd0aCB8fCAwXG5cbiAgLy8gQm91bmRlZCBuYXZpZ2F0aW9uIGNhbGxiYWNrcyBmb3IgcXVlc3Rpb24gdGFic1xuICBjb25zdCBoYW5kbGVUYWJQcmV2ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChjdXJyZW50UXVlc3Rpb25JbmRleCA+IDApIHtcbiAgICAgIHByZXZRdWVzdGlvbigpXG4gICAgfVxuICB9LCBbY3VycmVudFF1ZXN0aW9uSW5kZXgsIHByZXZRdWVzdGlvbl0pXG5cbiAgY29uc3QgaGFuZGxlVGFiTmV4dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9uSW5kZXggPCBtYXhJbmRleCkge1xuICAgICAgbmV4dFF1ZXN0aW9uKClcbiAgICB9XG4gIH0sIFtjdXJyZW50UXVlc3Rpb25JbmRleCwgbWF4SW5kZXgsIG5leHRRdWVzdGlvbl0pXG5cbiAgLy8gVXNlIGtleWJpbmRpbmdzIHN5c3RlbSBmb3IgcXVlc3Rpb24gbmF2aWdhdGlvbiAobGVmdC9yaWdodCBhcnJvd3MsIHRhYi9zaGlmdCt0YWIpXG4gIC8vIFJhdyB1c2VJbnB1dCBkb2Vzbid0IHdvcmsgYmVjYXVzZSB0aGUga2V5YmluZGluZyBzeXN0ZW0gcmVzb2x2ZXMgbGVmdC9yaWdodCBhcnJvd3NcbiAgLy8gdG8gdGFiczpuZXh0L3RhYnM6cHJldmlvdXMgYW5kIG1heSBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24gYmVmb3JlIHVzZUlucHV0IGZpcmVzLlxuICAvLyBDaGlsZCBjb21wb25lbnRzIChlLmcuLCBQcmV2aWV3UXVlc3Rpb25WaWV3KSBhbHNvIHJlZ2lzdGVyIHRoZWlyIG93biB0YWJzOm5leHQvdGFiczpwcmV2aW91c1xuICAvLyBrZXliaW5kaW5ncyB0byBlbnN1cmUgcmVsaWFibGUgaGFuZGxpbmcgcmVnYXJkbGVzcyBvZiBsaXN0ZW5lciBvcmRlcmluZy5cbiAgdXNlS2V5YmluZGluZ3MoXG4gICAge1xuICAgICAgJ3RhYnM6cHJldmlvdXMnOiBoYW5kbGVUYWJQcmV2LFxuICAgICAgJ3RhYnM6bmV4dCc6IGhhbmRsZVRhYk5leHQsXG4gICAgfSxcbiAgICB7IGNvbnRleHQ6ICdUYWJzJywgaXNBY3RpdmU6ICEoaXNJblRleHRJbnB1dCAmJiAhaXNJblN1Ym1pdFZpZXcpIH0sXG4gIClcblxuICBpZiAoY3VycmVudFF1ZXN0aW9uKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxRdWVzdGlvblZpZXdcbiAgICAgICAgICBxdWVzdGlvbj17Y3VycmVudFF1ZXN0aW9ufVxuICAgICAgICAgIHF1ZXN0aW9ucz17cXVlc3Rpb25zfVxuICAgICAgICAgIGN1cnJlbnRRdWVzdGlvbkluZGV4PXtjdXJyZW50UXVlc3Rpb25JbmRleH1cbiAgICAgICAgICBhbnN3ZXJzPXthbnN3ZXJzfVxuICAgICAgICAgIHF1ZXN0aW9uU3RhdGVzPXtxdWVzdGlvblN0YXRlc31cbiAgICAgICAgICBoaWRlU3VibWl0VGFiPXtoaWRlU3VibWl0VGFifVxuICAgICAgICAgIG1pbkNvbnRlbnRIZWlnaHQ9e2dsb2JhbENvbnRlbnRIZWlnaHR9XG4gICAgICAgICAgbWluQ29udGVudFdpZHRoPXtnbG9iYWxDb250ZW50V2lkdGh9XG4gICAgICAgICAgcGxhbkZpbGVQYXRoPXtwbGFuRmlsZVBhdGh9XG4gICAgICAgICAgb25VcGRhdGVRdWVzdGlvblN0YXRlPXt1cGRhdGVRdWVzdGlvblN0YXRlfVxuICAgICAgICAgIG9uQW5zd2VyPXtoYW5kbGVRdWVzdGlvbkFuc3dlcn1cbiAgICAgICAgICBvblRleHRJbnB1dEZvY3VzPXtzZXRUZXh0SW5wdXRNb2RlfVxuICAgICAgICAgIG9uQ2FuY2VsPXtoYW5kbGVDYW5jZWx9XG4gICAgICAgICAgb25TdWJtaXQ9e25leHRRdWVzdGlvbn1cbiAgICAgICAgICBvblRhYlByZXY9e2hhbmRsZVRhYlByZXZ9XG4gICAgICAgICAgb25UYWJOZXh0PXtoYW5kbGVUYWJOZXh0fVxuICAgICAgICAgIG9uUmVzcG9uZFRvQ2xhdWRlPXtoYW5kbGVSZXNwb25kVG9DbGF1ZGV9XG4gICAgICAgICAgb25GaW5pc2hQbGFuSW50ZXJ2aWV3PXtoYW5kbGVGaW5pc2hQbGFuSW50ZXJ2aWV3fVxuICAgICAgICAgIG9uSW1hZ2VQYXN0ZT17KGJhc2U2NCwgbWVkaWFUeXBlLCBmaWxlbmFtZSwgZGltcywgcGF0aCkgPT5cbiAgICAgICAgICAgIG9uSW1hZ2VQYXN0ZShcbiAgICAgICAgICAgICAgY3VycmVudFF1ZXN0aW9uLnF1ZXN0aW9uLFxuICAgICAgICAgICAgICBiYXNlNjQsXG4gICAgICAgICAgICAgIG1lZGlhVHlwZSxcbiAgICAgICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgICAgIGRpbXMsXG4gICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICAgIHBhc3RlZENvbnRlbnRzPXtcbiAgICAgICAgICAgIHBhc3RlZENvbnRlbnRzQnlRdWVzdGlvbltjdXJyZW50UXVlc3Rpb24ucXVlc3Rpb25dID8/IHt9XG4gICAgICAgICAgfVxuICAgICAgICAgIG9uUmVtb3ZlSW1hZ2U9e2lkID0+IG9uUmVtb3ZlSW1hZ2UoY3VycmVudFF1ZXN0aW9uLnF1ZXN0aW9uLCBpZCl9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICBpZiAoaXNJblN1Ym1pdFZpZXcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPFN1Ym1pdFF1ZXN0aW9uc1ZpZXdcbiAgICAgICAgICBxdWVzdGlvbnM9e3F1ZXN0aW9uc31cbiAgICAgICAgICBjdXJyZW50UXVlc3Rpb25JbmRleD17Y3VycmVudFF1ZXN0aW9uSW5kZXh9XG4gICAgICAgICAgYW5zd2Vycz17YW5zd2Vyc31cbiAgICAgICAgICBhbGxRdWVzdGlvbnNBbnN3ZXJlZD17YWxsUXVlc3Rpb25zQW5zd2VyZWR9XG4gICAgICAgICAgcGVybWlzc2lvblJlc3VsdD17dG9vbFVzZUNvbmZpcm0ucGVybWlzc2lvblJlc3VsdH1cbiAgICAgICAgICBtaW5Db250ZW50SGVpZ2h0PXtnbG9iYWxDb250ZW50SGVpZ2h0fVxuICAgICAgICAgIG9uRmluYWxSZXNwb25zZT17aGFuZGxlRmluYWxSZXNwb25zZX1cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWRcbiAgcmV0dXJuIG51bGxcbn1cblxuYXN5bmMgZnVuY3Rpb24gY29udmVydEltYWdlc1RvQmxvY2tzKFxuICBpbWFnZXM6IFBhc3RlZENvbnRlbnRbXSxcbik6IFByb21pc2U8SW1hZ2VCbG9ja1BhcmFtW10gfCB1bmRlZmluZWQ+IHtcbiAgaWYgKGltYWdlcy5sZW5ndGggPT09IDApIHJldHVybiB1bmRlZmluZWRcbiAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgIGltYWdlcy5tYXAoYXN5bmMgaW1nID0+IHtcbiAgICAgIGNvbnN0IGJsb2NrOiBJbWFnZUJsb2NrUGFyYW0gPSB7XG4gICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgIHNvdXJjZToge1xuICAgICAgICAgIHR5cGU6ICdiYXNlNjQnLFxuICAgICAgICAgIG1lZGlhX3R5cGU6IChpbWcubWVkaWFUeXBlIHx8XG4gICAgICAgICAgICAnaW1hZ2UvcG5nJykgYXMgQmFzZTY0SW1hZ2VTb3VyY2VbJ21lZGlhX3R5cGUnXSxcbiAgICAgICAgICBkYXRhOiBpbWcuY29udGVudCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc2l6ZWQgPSBhd2FpdCBtYXliZVJlc2l6ZUFuZERvd25zYW1wbGVJbWFnZUJsb2NrKGJsb2NrKVxuICAgICAgcmV0dXJuIHJlc2l6ZWQuYmxvY2tcbiAgICB9KSxcbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsY0FDRUEsaUJBQWlCLEVBQ2pCQyxlQUFlLFFBQ1YsMENBQTBDO0FBQ2pELE9BQU9DLEtB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
|
|
646
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCYXNlNjRJbWFnZVNvdXJjZSIsIkltYWdlQmxvY2tQYXJhbSIsIlJlYWN0IiwiU3VzcGVuc2UiLCJ1c2UiLCJ1c2VDYWxsYmFjayIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZVNldHRpbmdzIiwidXNlVGVybWluYWxTaXplIiwic3RyaW5nV2lkdGgiLCJ1c2VUaGVtZSIsInVzZUtleWJpbmRpbmdzIiwiQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyIsImxvZ0V2ZW50IiwidXNlQXBwU3RhdGUiLCJRdWVzdGlvbiIsIkFza1VzZXJRdWVzdGlvblRvb2wiLCJDbGlIaWdobGlnaHQiLCJnZXRDbGlIaWdobGlnaHRQcm9taXNlIiwiUGFzdGVkQ29udGVudCIsIkltYWdlRGltZW5zaW9ucyIsIm1heWJlUmVzaXplQW5kRG93bnNhbXBsZUltYWdlQmxvY2siLCJjYWNoZUltYWdlUGF0aCIsInN0b3JlSW1hZ2UiLCJsb2dFcnJvciIsImFwcGx5TWFya2Rvd24iLCJpc1BsYW5Nb2RlSW50ZXJ2aWV3UGhhc2VFbmFibGVkIiwiZ2V0UGxhbkZpbGVQYXRoIiwiUGVybWlzc2lvblJlcXVlc3RQcm9wcyIsIlF1ZXN0aW9uVmlldyIsIlN1Ym1pdFF1ZXN0aW9uc1ZpZXciLCJ1c2VNdWx0aXBsZUNob2ljZVN0YXRlIiwiTUlOX0NPTlRFTlRfSEVJR0hUIiwiTUlOX0NPTlRFTlRfV0lEVEgiLCJDT05URU5UX0NIUk9NRV9PVkVSSEVBRCIsIkFza1VzZXJRdWVzdGlvblBlcm1pc3Npb25SZXF1ZXN0IiwicHJvcHMiLCIkIiwiX2MiLCJzZXR0aW5ncyIsInN5bnRheEhpZ2hsaWdodGluZ0Rpc2FibGVkIiwidDAiLCJBc2tVc2VyUXVlc3Rpb25XaXRoSGlnaGxpZ2h0IiwiU3ltYm9sIiwiZm9yIiwiaGlnaGxpZ2h0IiwidDEiLCJBc2tVc2VyUXVlc3Rpb25QZXJtaXNzaW9uUmVxdWVzdEJvZHkiLCJ0b29sVXNlQ29uZmlybSIsIm9uRG9uZSIsIm9uUmVqZWN0IiwiaW5wdXQiLCJpbnB1dFNjaGVtYSIsInNhZmVQYXJzZSIsInJlc3VsdCIsInQyIiwiZGF0YSIsInN1Y2Nlc3MiLCJxdWVzdGlvbnMiLCJyb3dzIiwidGVybWluYWxSb3dzIiwidGhlbWUiLCJtYXhIZWlnaHQiLCJtYXhXaWR0aCIsIm1heEFsbG93ZWRIZWlnaHQiLCJNYXRoIiwibWF4IiwicSIsImhhc1ByZXZpZXciLCJvcHRpb25zIiwic29tZSIsIl90ZW1wIiwibWF4UHJldmlld0NvbnRlbnRMaW5lcyIsIm1heFByZXZpZXdCb3hIZWlnaHQiLCJvcHRfMCIsIm9wdCIsInByZXZpZXciLCJyZW5kZXJlZCIsInByZXZpZXdMaW5lcyIsInNwbGl0IiwiaXNUcnVuY2F0ZWQiLCJsZW5ndGgiLCJkaXNwbGF5ZWRMaW5lcyIsImxpbmUiLCJyaWdodFBhbmVsSGVpZ2h0IiwibGVmdFBhbmVsSGVpZ2h0Iiwic2lkZUJ5SGVpZ2h0IiwidDMiLCJtaW4iLCJ0NCIsInQ1IiwiZ2xvYmFsQ29udGVudEhlaWdodCIsImdsb2JhbENvbnRlbnRXaWR0aCIsIm1ldGFkYXRhU291cmNlIiwibWV0YWRhdGEiLCJzb3VyY2UiLCJ1bmRlZmluZWQiLCJ0NiIsInBhc3RlZENvbnRlbnRzQnlRdWVzdGlvbiIsInNldFBhc3RlZENvbnRlbnRzQnlRdWVzdGlvbiIsIm5leHRQYXN0ZUlkUmVmIiwidDciLCJvbkltYWdlUGFzdGUiLCJxdWVzdGlvblRleHQiLCJiYXNlNjRJbWFnZSIsIm1lZGlhVHlwZSIsImZpbGVuYW1lIiwiZGltZW5zaW9ucyIsIl9zb3VyY2VQYXRoIiwiY3VycmVudCIsInBhc3RlSWQiLCJuZXdDb250ZW50IiwiaWQiLCJ0eXBlIiwiY29udGVudCIsInByZXYiLCJ0OCIsInF1ZXN0aW9uVGV4dF8wIiwicHJldl8wIiwicXVlc3Rpb25Db250ZW50cyIsIm9uUmVtb3ZlSW1hZ2UiLCJ0OSIsIk9iamVjdCIsInZhbHVlcyIsImZsYXRNYXAiLCJfdGVtcDIiLCJmaWx0ZXIiLCJfdGVtcDMiLCJhbGxJbWFnZUF0dGFjaG1lbnRzIiwidG9vbFBlcm1pc3Npb25Db250ZXh0TW9kZSIsIl90ZW1wNCIsImlzSW5QbGFuTW9kZSIsInQxMCIsInBsYW5GaWxlUGF0aCIsInN0YXRlIiwiY3VycmVudFF1ZXN0aW9uSW5kZXgiLCJhbnN3ZXJzIiwicXVlc3Rpb25TdGF0ZXMiLCJpc0luVGV4dElucHV0IiwibmV4dFF1ZXN0aW9uIiwicHJldlF1ZXN0aW9uIiwidXBkYXRlUXVlc3Rpb25TdGF0ZSIsInNldEFuc3dlciIsInNldFRleHRJbnB1dE1vZGUiLCJjdXJyZW50UXVlc3Rpb24iLCJpc0luU3VibWl0VmlldyIsInQxMSIsImV2ZXJ5IiwicV8wIiwicXVlc3Rpb24iLCJhbGxRdWVzdGlvbnNBbnN3ZXJlZCIsImhpZGVTdWJtaXRUYWIiLCJtdWx0aVNlbGVjdCIsInQxMiIsInF1ZXN0aW9uQ291bnQiLCJpbnRlcnZpZXdQaGFzZUVuYWJsZWQiLCJoYW5kbGVDYW5jZWwiLCJ0MTMiLCJxdWVzdGlvbnNXaXRoQW5zd2VycyIsIm1hcCIsInFfMSIsImFuc3dlciIsImpvaW4iLCJmZWVkYmFjayIsImltYWdlQmxvY2tzIiwiY29udmVydEltYWdlc1RvQmxvY2tzIiwiaGFuZGxlUmVzcG9uZFRvQ2xhdWRlIiwidDE0IiwicXVlc3Rpb25zV2l0aEFuc3dlcnNfMCIsInFfMiIsImFuc3dlcl8wIiwiZmVlZGJhY2tfMCIsImltYWdlQmxvY2tzXzAiLCJoYW5kbGVGaW5pc2hQbGFuSW50ZXJ2aWV3IiwidDE1IiwiYW5zd2Vyc1RvU3VibWl0IiwiYW5zd2VyQ291bnQiLCJrZXlzIiwiYW5ub3RhdGlvbnMiLCJxXzMiLCJhbnN3ZXJfMSIsIm5vdGVzIiwidGV4dElucHV0VmFsdWUiLCJzZWxlY3RlZE9wdGlvbiIsImZpbmQiLCJvcHRfMSIsImxhYmVsIiwidHJpbSIsInVwZGF0ZWRJbnB1dCIsImNvbnRlbnRCbG9ja3MiLCJvbkFsbG93Iiwic3VibWl0QW5zd2VycyIsInQxNiIsInF1ZXN0aW9uVGV4dF8xIiwidGV4dElucHV0IiwidDE3Iiwic2hvdWxkQWR2YW5jZSIsImlzTXVsdGlTZWxlY3QiLCJBcnJheSIsImlzQXJyYXkiLCJxdWVzdGlvbkltYWdlcyIsIl90ZW1wNSIsInF1ZXN0aW9uSW1hZ2VzXzAiLCJfdGVtcDYiLCJpc1NpbmdsZVF1ZXN0aW9uIiwidXBkYXRlZEFuc3dlcnMiLCJjYXRjaCIsImhhbmRsZVF1ZXN0aW9uQW5zd2VyIiwiaGFuZGxlRmluYWxSZXNwb25zZSIsInZhbHVlIiwibWF4SW5kZXgiLCJ0MTgiLCJoYW5kbGVUYWJQcmV2IiwidDE5IiwiaGFuZGxlVGFiTmV4dCIsInQyMCIsInQyMSIsInQyMiIsImNvbnRleHQiLCJpc0FjdGl2ZSIsInQyMyIsImJhc2U2NCIsIm1lZGlhVHlwZV8wIiwiZmlsZW5hbWVfMCIsImRpbXMiLCJwYXRoIiwidDI0IiwidDI1IiwiaWRfMCIsInQyNiIsInBlcm1pc3Npb25SZXN1bHQiLCJjXzEiLCJjIiwiY18wIiwicyIsInRvb2xQZXJtaXNzaW9uQ29udGV4dCIsIm1vZGUiLCJjb250ZW50cyIsImltYWdlcyIsIlByb21pc2UiLCJhbGwiLCJpbWciLCJibG9jayIsIm1lZGlhX3R5cGUiLCJyZXNpemVkIl0sInNvdXJjZXMiOlsiQXNrVXNlclF1ZXN0aW9uUGVybWlzc2lvblJlcXVlc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQmFzZTY0SW1hZ2VTb3VyY2UsXG4gIEltYWdlQmxvY2tQYXJhbSxcbn0gZnJvbSAnQGFudGhyb3BpYy1haS9zZGsvcmVzb3VyY2VzL21lc3NhZ2VzLm1qcydcbmltcG9ydCBSZWFjdCwge1xuICBTdXNwZW5zZSxcbiAgdXNlLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VTZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL2hvb2tzL3VzZVNldHRpbmdzLmpzJ1xuaW1wb3J0IHsgdXNlVGVybWluYWxTaXplIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVGVybWluYWxTaXplLmpzJ1xuaW1wb3J0IHsgc3RyaW5nV2lkdGggfSBmcm9tICcuLi8uLi8uLi9pbmsvc3RyaW5nV2lkdGguanMnXG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uLy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmdzIH0gZnJvbSAnLi4vLi4vLi4va2V5YmluZGluZ3MvdXNlS2V5YmluZGluZy5qcydcbmltcG9ydCB7XG4gIHR5cGUgQW5hbHl0aWNzTWV0YWRhdGFfSV9WRVJJRklFRF9USElTX0lTX05PVF9DT0RFX09SX0ZJTEVQQVRIUyxcbiAgbG9nRXZlbnQsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FuYWx5dGljcy9pbmRleC5qcydcbmltcG9ydCB7IHVzZUFwcFN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vc3RhdGUvQXBwU3RhdGUuanMnXG5pbXBvcnQgdHlwZSB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvQXNrVXNlclF1ZXN0aW9uVG9vbC9Bc2tVc2VyUXVlc3Rpb25Ub29sLmpzJ1xuaW1wb3J0IHsgQXNrVXNlclF1ZXN0aW9uVG9vbCB9IGZyb20gJy4uLy4uLy4uL3Rvb2xzL0Fza1VzZXJRdWVzdGlvblRvb2wvQXNrVXNlclF1ZXN0aW9uVG9vbC5qcydcbmltcG9ydCB7XG4gIHR5cGUgQ2xpSGlnaGxpZ2h0LFxuICBnZXRDbGlIaWdobGlnaHRQcm9taXNlLFxufSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGlIaWdobGlnaHQuanMnXG5pbXBvcnQgdHlwZSB7IFBhc3RlZENvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb25maWcuanMnXG5pbXBvcnQgdHlwZSB7IEltYWdlRGltZW5zaW9ucyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ltYWdlUmVzaXplci5qcydcbmltcG9ydCB7IG1heWJlUmVzaXplQW5kRG93bnNhbXBsZUltYWdlQmxvY2sgfSBmcm9tICcuLi8uLi8uLi91dGlscy9pbWFnZVJlc2l6ZXIuanMnXG5pbXBvcnQgeyBjYWNoZUltYWdlUGF0aCwgc3RvcmVJbWFnZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2ltYWdlU3RvcmUuanMnXG5pbXBvcnQgeyBsb2dFcnJvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2xvZy5qcydcbmltcG9ydCB7IGFwcGx5TWFya2Rvd24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9tYXJrZG93bi5qcydcbmltcG9ydCB7IGlzUGxhbk1vZGVJbnRlcnZpZXdQaGFzZUVuYWJsZWQgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wbGFuTW9kZVYyLmpzJ1xuaW1wb3J0IHsgZ2V0UGxhbkZpbGVQYXRoIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcGxhbnMuanMnXG5pbXBvcnQgdHlwZSB7IFBlcm1pc3Npb25SZXF1ZXN0UHJvcHMgfSBmcm9tICcuLi9QZXJtaXNzaW9uUmVxdWVzdC5qcydcbmltcG9ydCB7IFF1ZXN0aW9uVmlldyB9IGZyb20gJy4vUXVlc3Rpb25WaWV3LmpzJ1xuaW1wb3J0IHsgU3VibWl0UXVlc3Rpb25zVmlldyB9IGZyb20gJy4vU3VibWl0UXVlc3Rpb25zVmlldy5qcydcbmltcG9ydCB7IHVzZU11bHRpcGxlQ2hvaWNlU3RhdGUgfSBmcm9tICcuL3VzZS1tdWx0aXBsZS1jaG9pY2Utc3RhdGUuanMnXG5cbmNvbnN0IE1JTl9DT05URU5UX0hFSUdIVCA9IDEyXG5jb25zdCBNSU5fQ09OVEVOVF9XSURUSCA9IDQwXG4vLyBMaW5lcyB1c2VkIGJ5IGNocm9tZSBhcm91bmQgdGhlIGNvbnRlbnQgYXJlYSAobmF2IGJhciwgdGl0bGUsIGZvb3RlciwgaGVscCB0ZXh0LCBldGMuKVxuY29uc3QgQ09OVEVOVF9DSFJPTUVfT1ZFUkhFQUQgPSAxNVxuXG5leHBvcnQgZnVuY3Rpb24gQXNrVXNlclF1ZXN0aW9uUGVybWlzc2lvblJlcXVlc3QoXG4gIHByb3BzOiBQZXJtaXNzaW9uUmVxdWVzdFByb3BzLFxuKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3Qgc2V0dGluZ3MgPSB1c2VTZXR0aW5ncygpXG4gIGlmIChzZXR0aW5ncy5zeW50YXhIaWdobGlnaHRpbmdEaXNhYmxlZCkge1xuICAgIHJldHVybiA8QXNrVXNlclF1ZXN0aW9uUGVybWlzc2lvblJlcXVlc3RCb2R5IHsuLi5wcm9wc30gaGlnaGxpZ2h0PXtudWxsfSAvPlxuICB9XG4gIHJldHVybiAoXG4gICAgPFN1c3BlbnNlXG4gICAgICBmYWxsYmFjaz17XG4gICAgICAgIDxBc2tVc2VyUXVlc3Rpb25QZXJtaXNzaW9uUmVxdWVzdEJvZHkgey4uLnByb3BzfSBoaWdobGlnaHQ9e251bGx9IC8+XG4gICAgICB9XG4gICAgPlxuICAgICAgPEFza1VzZXJRdWVzdGlvbldpdGhIaWdobGlnaHQgey4uLnByb3BzfSAvPlxuICAgIDwvU3VzcGVuc2U+XG4gIClcbn1cblxuZnVuY3Rpb24gQXNrVXNlclF1ZXN0aW9uV2l0aEhpZ2hsaWdodChcbiAgcHJvcHM6IFBlcm1pc3Npb25SZXF1ZXN0UHJvcHMsXG4pOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBoaWdobGlnaHQgPSB1c2UoZ2V0Q2xpSGlnaGxpZ2h0UHJvbWlzZSgpKVxuICByZXR1cm4gKFxuICAgIDxBc2tVc2VyUXVlc3Rpb25QZXJtaXNzaW9uUmVxdWVzdEJvZHkgey4uLnByb3BzfSBoaWdobGlnaHQ9e2hpZ2hsaWdodH0gLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBBc2tVc2VyUXVlc3Rpb25QZXJtaXNzaW9uUmVxdWVzdEJvZHkoe1xuICB0b29sVXNlQ29uZmlybSxcbiAgb25Eb25lLFxuICBvblJlamVjdCxcbiAgaGlnaGxpZ2h0LFxufTogUGVybWlzc2lvblJlcXVlc3RQcm9wcyAmIHtcbiAgaGlnaGxpZ2h0OiBDbGlIaWdobGlnaHQgfCBudWxsXG59KTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgLy8gTWVtb2l6ZSBwYXJzZSByZXN1bHQ6IHNhZmVQYXJzZSByZXR1cm5zIGEgbmV3IG9iamVjdCAoYW5kIG5ldyBgcXVlc3Rpb25zYFxuICAvLyBhcnJheSkgb24gZXZlcnkgY2FsbC4gV2l0aG91dCB0aGlzLCB0aGUgcmVuZGVyLWJvZHkgcmVmIHdyaXRlcyBiZWxvdyBtYWtlXG4gIC8vIFJlYWN0IENvbXBpbGVyIGJhaWwgb3V0IG9uIHRoaXMgY29tcG9uZW50LCBzbyBub3RoaW5nIGlzIGF1dG8tbWVtb2l6ZWQg4oCUXG4gIC8vIGBxdWVzdGlvbnNgIGNoYW5nZXMgaWRlbnRpdHkgZXZlcnkgcmVuZGVyLCBhbmQgdGhlIGBnbG9iYWxDb250ZW50SGVpZ2h0YFxuICAvLyB1c2VNZW1vICh3aGljaCBydW5zIGFwcGx5TWFya2Rvd24gb3ZlciBldmVyeSBwcmV2aWV3KSBuZXZlciBoaXRzIGl0cyBjYWNoZS5cbiAgLy8gYHRvb2xVc2VDb25maXJtLmlucHV0YCBpcyBzdGFibGUgZm9yIHRoZSBkaWFsb2cncyBsaWZldGltZSAodGhpcyB0b29sXG4gIC8vIHJldHVybnMgYGJlaGF2aW9yOiAnYXNrJ2AgZGlyZWN0bHkgYW5kIG5ldmVyIGdvZXMgdGhyb3VnaCB0aGUgY2xhc3NpZmllcikuXG4gIGNvbnN0IHJlc3VsdCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gQXNrVXNlclF1ZXN0aW9uVG9vbC5pbnB1dFNjaGVtYS5zYWZlUGFyc2UodG9vbFVzZUNvbmZpcm0uaW5wdXQpLFxuICAgIFt0b29sVXNlQ29uZmlybS5pbnB1dF0sXG4gIClcbiAgY29uc3QgcXVlc3Rpb25zID0gcmVzdWx0LnN1Y2Nlc3MgPyByZXN1bHQuZGF0YS5xdWVzdGlvbnMgfHwgW10gOiBbXVxuICBjb25zdCB7IHJvd3M6IHRlcm1pbmFsUm93cyB9ID0gdXNlVGVybWluYWxTaXplKClcbiAgY29uc3QgW3RoZW1lXSA9IHVzZVRoZW1lKClcblxuICAvLyBDYWxjdWxhdGUgY29uc2lzdGVudCBjb250ZW50IGRpbWVuc2lvbnMgYWNyb3NzIGFsbCBxdWVzdGlvbnMgdG8gcHJldmVudCBsYXlvdXQgc2hpZnRzLlxuICAvLyBnbG9iYWxDb250ZW50SGVpZ2h0IHJlcHJlc2VudHMgdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgY29udGVudCBhcmVhIGJlbG93IHRoZSBuYXYvdGl0bGUsXG4gIC8vIElOQ0xVRElORyBmb290ZXIgYW5kIGhlbHAgdGV4dCwgc28gYWxsIHZpZXdzIChxdWVzdGlvbnMsIHByZXZpZXdzLCBzdWJtaXQpIG1hdGNoLlxuICBjb25zdCB7IGdsb2JhbENvbnRlbnRIZWlnaHQsIGdsb2JhbENvbnRlbnRXaWR0aCB9ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgbGV0IG1heEhlaWdodCA9IDBcbiAgICBsZXQgbWF4V2lkdGggPSAwXG5cbiAgICAvLyBGb290ZXIgKGRpdmlkZXIgKyBcIkNoYXQgYWJvdXQgdGhpc1wiICsgb3B0aW9uYWwgcGxhbikgKyBoZWxwIHRleHQg4omIIDcgbGluZXNcbiAgICBjb25zdCBGT09URVJfSEVMUF9MSU5FUyA9IDdcblxuICAgIC8vIENhcCBhdCB0ZXJtaW5hbCBoZWlnaHQgbWludXMgY2hyb21lIG92ZXJoZWFkLCBidXQgZW5zdXJlIGF0IGxlYXN0IE1JTl9DT05URU5UX0hFSUdIVFxuICAgIGNvbnN0IG1heEFsbG93ZWRIZWlnaHQgPSBNYXRoLm1heChcbiAgICAgIE1JTl9DT05URU5UX0hFSUdIVCxcbiAgICAgIHRlcm1pbmFsUm93cyAtIENPTlRFTlRfQ0hST01FX09WRVJIRUFELFxuICAgIClcblxuICAgIC8vIFBSRVZJRVdfT1ZFUkhFQUQgbWF0Y2hlcyB0aGUgY29uc3RhbnQgaW4gUHJldmlld1F1ZXN0aW9uVmlldy50c3gg4oCUIGxpbmVzXG4gICAgLy8gdXNlZCBieSBub24tcHJldmlldyBlbGVtZW50cyB3aXRoaW4gdGhlIGNvbnRlbnQgYXJlYSAobWFyZ2lucywgYm9yZGVycyxcbiAgICAvLyBub3RlcywgZm9vdGVyLCBoZWxwIHRleHQpLiBVc2VkIGhlcmUgdG8gY2FwIHByZXZpZXcgY29udGVudCBzbyB0aGF0XG4gICAgLy8gZ2xvYmFsQ29udGVudEhlaWdodCByZWZsZWN0cyB0aGUgKnRydW5jYXRlZCogaGVpZ2h0LCBub3QgdGhlIHJhdyBoZWlnaHQuXG4gICAgY29uc3QgUFJFVklFV19PVkVSSEVBRCA9IDExXG5cbiAgICBmb3IgKGNvbnN0IHEgb2YgcXVlc3Rpb25zKSB7XG4gICAgICBjb25zdCBoYXNQcmV2aWV3ID0gcS5vcHRpb25zLnNvbWUob3B0ID0+IG9wdC5wcmV2aWV3KVxuXG4gICAgICBpZiAoaGFzUHJldmlldykge1xuICAgICAgICAvLyBDb21wdXRlIHRoZSBtYXggcHJldmlldyBjb250ZW50IGxpbmVzIHRoYXQgd291bGQgYWN0dWFsbHkgZGlzcGxheVxuICAgICAgICAvLyBhZnRlciB0cnVuY2F0aW9uLCBtYXRjaGluZyB0aGUgbG9naWMgaW4gUHJldmlld1F1ZXN0aW9uVmlldy5cbiAgICAgICAgY29uc3QgbWF4UHJldmlld0NvbnRlbnRMaW5lcyA9IE1hdGgubWF4KFxuICAgICAgICAgIDEsXG4gICAgICAgICAgbWF4QWxsb3dlZEhlaWdodCAtIFBSRVZJRVdfT1ZFUkhFQUQsXG4gICAgICAgIClcblxuICAgICAgICAvLyBGb3IgcHJldmlldyBxdWVzdGlvbnMsIHRvdGFsID0gc2lkZS1ieS1zaWRlIGhlaWdodCArIGZvb3Rlci9oZWxwXG4gICAgICAgIC8vIFNpZGUtYnktc2lkZSA9IG1heChsZWZ0IHBhbmVsLCByaWdodCBwYW5lbClcbiAgICAgICAgLy8gUmlnaHQgcGFuZWwgPSBwcmV2aWV3IGJveCAoY29udGVudCArIGJvcmRlcnMgKyB0cnVuY2F0aW9uIGluZGljYXRvcikgKyBub3Rlc1xuICAgICAgICBsZXQgbWF4UHJldmlld0JveEhlaWdodCA9IDBcbiAgICAgICAgZm9yIChjb25zdCBvcHQgb2YgcS5vcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdC5wcmV2aWV3KSB7XG4gICAgICAgICAgICAvLyBNZWFzdXJlIHRoZSAqcmVuZGVyZWQqIG1hcmtkb3duIChzYW1lIHRyYW5zZm9ybSBhcyBQcmV2aWV3Qm94KSBzb1xuICAgICAgICAgICAgLy8gdGhhdCBsaW5lIGNvdW50cyBhbmQgd2lkdGhzIG1hdGNoIHdoYXQgd2lsbCBhY3R1YWxseSBiZSBkaXNwbGF5ZWQuXG4gICAgICAgICAgICAvLyBhcHBseU1hcmtkb3duIHJlbW92ZXMgY29kZSBmZW5jZSBtYXJrZXJzLCBib2xkL2l0YWxpYyBzeW50YXgsIGV0Yy5cbiAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVkID0gYXBwbHlNYXJrZG93bihvcHQucHJldmlldywgdGhlbWUsIGhpZ2hsaWdodClcbiAgICAgICAgICAgIGNvbnN0IHByZXZpZXdMaW5lcyA9IHJlbmRlcmVkLnNwbGl0KCdcXG4nKVxuICAgICAgICAgICAgY29uc3QgaXNUcnVuY2F0ZWQgPSBwcmV2aWV3TGluZXMubGVuZ3RoID4gbWF4UHJldmlld0NvbnRlbnRMaW5lc1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheWVkTGluZXMgPSBpc1RydW5jYXRlZFxuICAgICAgICAgICAgICA/IG1heFByZXZpZXdDb250ZW50TGluZXNcbiAgICAgICAgICAgICAgOiBwcmV2aWV3TGluZXMubGVuZ3RoXG4gICAgICAgICAgICAvLyBQcmV2aWV3IGJveDogZGlzcGxheWVkIGNvbnRlbnQgKyB0cnVuY2F0aW9uIGluZGljYXRvciArIDIgYm9yZGVyc1xuICAgICAgICAgICAgbWF4UHJldmlld0JveEhlaWdodCA9IE1hdGgubWF4KFxuICAgICAgICAgICAgICBtYXhQcmV2aWV3Qm94SGVpZ2h0LFxuICAgICAgICAgICAgICBkaXNwbGF5ZWRMaW5lcyArIChpc1RydW5jYXRlZCA/IDEgOiAwKSArIDIsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgcHJldmlld0xpbmVzKSB7XG4gICAgICAgICAgICAgIG1heFdpZHRoID0gTWF0aC5tYXgobWF4V2lkdGgsIHN0cmluZ1dpZHRoKGxpbmUpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBSaWdodCBwYW5lbDogcHJldmlldyBib3ggKyBub3RlcyAoMiBsaW5lcyB3aXRoIG1hcmdpbilcbiAgICAgICAgY29uc3QgcmlnaHRQYW5lbEhlaWdodCA9IG1heFByZXZpZXdCb3hIZWlnaHQgKyAyXG4gICAgICAgIC8vIExlZnQgcGFuZWw6IG9wdGlvbnMgKyBkZXNjcmlwdGlvblxuICAgICAgICBjb25zdCBsZWZ0UGFuZWxIZWlnaHQgPSBxLm9wdGlvbnMubGVuZ3RoICsgMlxuICAgICAgICBjb25zdCBzaWRlQnlIZWlnaHQgPSBNYXRoLm1heChsZWZ0UGFuZWxIZWlnaHQsIHJpZ2h0UGFuZWxIZWlnaHQpXG4gICAgICAgIG1heEhlaWdodCA9IE1hdGgubWF4KG1heEhlaWdodCwgc2lkZUJ5SGVpZ2h0ICsgRk9PVEVSX0hFTFBfTElORVMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBGb3IgcmVndWxhciBxdWVzdGlvbnM6IG9wdGlvbnMgKyBcIk90aGVyXCIgKyBmb290ZXIvaGVscFxuICAgICAgICBtYXhIZWlnaHQgPSBNYXRoLm1heChcbiAgICAgICAgICBtYXhIZWlnaHQsXG4gICAgICAgICAgcS5vcHRpb25zLmxlbmd0aCArIDMgKyBGT09URVJfSEVMUF9MSU5FUyxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBnbG9iYWxDb250ZW50SGVpZ2h0OiBNYXRoLm1pbihcbiAgICAgICAgTWF0aC5tYXgobWF4SGVpZ2h0LCBNSU5fQ09OVEVOVF9IRUlHSFQpLFxuICAgICAgICBtYXhBbGxvd2VkSGVpZ2h0LFxuICAgICAgKSxcbiAgICAgIGdsb2JhbENvbnRlbnRXaWR0aDogTWF0aC5tYXgobWF4V2lkdGgsIE1JTl9DT05URU5UX1dJRFRIKSxcbiAgICB9XG4gIH0sIFtxdWVzdGlvbnMsIHRlcm1pbmFsUm93cywgdGhlbWUsIGhpZ2hsaWdodF0pXG4gIGNvbnN0IG1ldGFkYXRhU291cmNlID0gcmVzdWx0LnN1Y2Nlc3NcbiAgICA/IHJlc3VsdC5kYXRhLm1ldGFkYXRhPy5zb3VyY2VcbiAgICA6IHVuZGVmaW5lZFxuXG4gIGNvbnN0IFtwYXN0ZWRDb250ZW50c0J5UXVlc3Rpb24sIHNldFBhc3RlZENvbnRlbnRzQnlRdWVzdGlvbl0gPSB1c2VTdGF0ZTxcbiAgICBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8bnVtYmVyLCBQYXN0ZWRDb250ZW50Pj5cbiAgPih7fSlcbiAgY29uc3QgbmV4dFBhc3RlSWRSZWYgPSB1c2VSZWYoMClcblxuICBmdW5jdGlvbiBvbkltYWdlUGFzdGUoXG4gICAgcXVlc3Rpb25UZXh0OiBzdHJpbmcsXG4gICAgYmFzZTY0SW1hZ2U6IHN0cmluZyxcbiAgICBtZWRpYVR5cGU/OiBzdHJpbmcsXG4gICAgZmlsZW5hbWU/OiBzdHJpbmcsXG4gICAgZGltZW5zaW9ucz86IEltYWdlRGltZW5zaW9ucyxcbiAgICBfc291cmNlUGF0aD86IHN0cmluZyxcbiAgKSB7XG4gICAgY29uc3QgcGFzdGVJZCA9IG5leHRQYXN0ZUlkUmVmLmN1cnJlbnQrK1xuICAgIGNvbnN0IG5ld0NvbnRlbnQ6IFBhc3RlZENvbnRlbnQgPSB7XG4gICAgICBpZDogcGFzdGVJZCxcbiAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICBjb250ZW50OiBiYXNlNjRJbWFnZSxcbiAgICAgIG1lZGlhVHlwZTogbWVkaWFUeXBlIHx8ICdpbWFnZS9wbmcnLFxuICAgICAgZmlsZW5hbWU6IGZpbGVuYW1lIHx8ICdQYXN0ZWQgaW1hZ2UnLFxuICAgICAgZGltZW5zaW9ucyxcbiAgICB9XG4gICAgY2FjaGVJbWFnZVBhdGgobmV3Q29udGVudClcbiAgICB2b2lkIHN0b3JlSW1hZ2UobmV3Q29udGVudClcbiAgICBzZXRQYXN0ZWRDb250ZW50c0J5UXVlc3Rpb24ocHJldiA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtxdWVzdGlvblRleHRdOiB7IC4uLihwcmV2W3F1ZXN0aW9uVGV4dF0gPz8ge30pLCBbcGFzdGVJZF06IG5ld0NvbnRlbnQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGNvbnN0IG9uUmVtb3ZlSW1hZ2UgPSB1c2VDYWxsYmFjaygocXVlc3Rpb25UZXh0OiBzdHJpbmcsIGlkOiBudW1iZXIpID0+IHtcbiAgICBzZXRQYXN0ZWRDb250ZW50c0J5UXVlc3Rpb24ocHJldiA9PiB7XG4gICAgICBjb25zdCBxdWVzdGlvbkNvbnRlbnRzID0geyAuLi4ocHJldltxdWVzdGlvblRleHRdID8/IHt9KSB9XG4gICAgICBkZWxldGUgcXVlc3Rpb25Db250ZW50c1tpZF1cbiAgICAgIHJldHVybiB7IC4uLnByZXYsIFtxdWVzdGlvblRleHRdOiBxdWVzdGlvbkNvbnRlbnRzIH1cbiAgICB9KVxuICB9LCBbXSlcblxuICBjb25zdCBhbGxJbWFnZUF0dGFjaG1lbnRzID0gT2JqZWN0LnZhbHVlcyhwYXN0ZWRDb250ZW50c0J5UXVlc3Rpb24pXG4gICAgLmZsYXRNYXAoY29udGVudHMgPT4gT2JqZWN0LnZhbHVlcyhjb250ZW50cykpXG4gICAgLmZpbHRlcihjID0+IGMudHlwZSA9PT0gJ2ltYWdlJylcblxuICBjb25zdCB0b29sUGVybWlzc2lvbkNvbnRleHRNb2RlID0gdXNlQXBwU3RhdGUoXG4gICAgcyA9PiBzLnRvb2xQZXJtaXNzaW9uQ29udGV4dC5tb2RlLFxuICApXG4gIGNvbnN0IGlzSW5QbGFuTW9kZSA9IHRvb2xQZXJtaXNzaW9uQ29udGV4dE1vZGUgPT09ICdwbGFuJ1xuICBjb25zdCBwbGFuRmlsZVBhdGggPSBpc0luUGxhbk1vZGUgPyBnZXRQbGFuRmlsZVBhdGgoKSA6IHVuZGVmaW5lZFxuXG4gIGNvbnN0IHN0YXRlID0gdXNlTXVsdGlwbGVDaG9pY2VTdGF0ZSgpXG4gIGNvbnN0IHtcbiAgICBjdXJyZW50UXVlc3Rpb25JbmRleCxcbiAgICBhbnN3ZXJzLFxuICAgIHF1ZXN0aW9uU3RhdGVzLFxuICAgIGlzSW5UZXh0SW5wdXQsXG4gICAgbmV4dFF1ZXN0aW9uLFxuICAgIHByZXZRdWVzdGlvbixcbiAgICB1cGRhdGVRdWVzdGlvblN0YXRlLFxuICAgIHNldEFuc3dlcixcbiAgICBzZXRUZXh0SW5wdXRNb2RlLFxuICB9ID0gc3RhdGVcblxuICBjb25zdCBjdXJyZW50UXVlc3Rpb24gPVxuICAgIGN1cnJlbnRRdWVzdGlvbkluZGV4IDwgKHF1ZXN0aW9ucz8ubGVuZ3RoIHx8IDApXG4gICAgICA/IHF1ZXN0aW9ucz8uW2N1cnJlbnRRdWVzdGlvbkluZGV4XVxuICAgICAgOiBudWxsXG5cbiAgY29uc3QgaXNJblN1Ym1pdFZpZXcgPSBjdXJyZW50UXVlc3Rpb25JbmRleCA9PT0gKHF1ZXN0aW9ucz8ubGVuZ3RoIHx8IDApXG4gIGNvbnN0IGFsbFF1ZXN0aW9uc0Fuc3dlcmVkID1cbiAgICBxdWVzdGlvbnM/LmV2ZXJ5KChxOiBRdWVzdGlvbikgPT4gcT8ucXVlc3Rpb24gJiYgISFhbnN3ZXJzW3EucXVlc3Rpb25dKSA/P1xuICAgIGZhbHNlXG5cbiAgLy8gSGlkZSBzdWJtaXQgdGFiIHdoZW4gdGhlcmUncyBvbmx5IG9uZSBxdWVzdGlvbiBhbmQgaXQncyBzaW5nbGUtc2VsZWN0IChhdXRvLXN1Ym1pdCBzY2VuYXJpbylcbiAgY29uc3QgaGlkZVN1Ym1pdFRhYiA9IHF1ZXN0aW9ucy5sZW5ndGggPT09IDEgJiYgIXF1ZXN0aW9uc1swXT8ubXVsdGlTZWxlY3RcblxuICBjb25zdCBoYW5kbGVDYW5jZWwgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgLy8gTG9nIHJlamVjdGlvbiB3aXRoIG1ldGFkYXRhIHNvdXJjZSBpZiBwcmVzZW50XG4gICAgaWYgKG1ldGFkYXRhU291cmNlKSB7XG4gICAgICBsb2dFdmVudCgndGVuZ3VfYXNrX3VzZXJfcXVlc3Rpb25fcmVqZWN0ZWQnLCB7XG4gICAgICAgIHNvdXJjZTpcbiAgICAgICAgICBtZXRhZGF0YVNvdXJjZSBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgICBxdWVzdGlvbkNvdW50OiBxdWVzdGlvbnMubGVuZ3RoLFxuICAgICAgICBpc0luUGxhbk1vZGUsXG4gICAgICAgIGludGVydmlld1BoYXNlRW5hYmxlZDpcbiAgICAgICAgICBpc0luUGxhbk1vZGUgJiYgaXNQbGFuTW9kZUludGVydmlld1BoYXNlRW5hYmxlZCgpLFxuICAgICAgfSlcbiAgICB9XG4gICAgb25Eb25lKClcbiAgICBvblJlamVjdCgpXG4gICAgdG9vbFVzZUNvbmZpcm0ub25SZWplY3QoKVxuICB9LCBbXG4gICAgb25Eb25lLFxuICAgIG9uUmVqZWN0LFxuICAgIHRvb2xVc2VDb25maXJtLFxuICAgIG1ldGFkYXRhU291cmNlLFxuICAgIHF1ZXN0aW9ucy5sZW5ndGgsXG4gICAgaXNJblBsYW5Nb2RlLFxuICBdKVxuXG4gIGNvbnN0IGhhbmRsZVJlc3BvbmRUb0NsYXVkZSA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBxdWVzdGlvbnNXaXRoQW5zd2VycyA9IHF1ZXN0aW9uc1xuICAgICAgLm1hcCgocTogUXVlc3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgYW5zd2VyID0gYW5zd2Vyc1txLnF1ZXN0aW9uXVxuICAgICAgICBpZiAoYW5zd2VyKSB7XG4gICAgICAgICAgcmV0dXJuIGAtIFwiJHtxLnF1ZXN0aW9ufVwiXFxuICBBbnN3ZXI6ICR7YW5zd2VyfWBcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYC0gXCIke3EucXVlc3Rpb259XCJcXG4gIChObyBhbnN3ZXIgcHJvdmlkZWQpYFxuICAgICAgfSlcbiAgICAgIC5qb2luKCdcXG4nKVxuXG4gICAgY29uc3QgZmVlZGJhY2sgPSBgVGhlIHVzZXIgd2FudHMgdG8gY2xhcmlmeSB0aGVzZSBxdWVzdGlvbnMuXG4gICAgVGhpcyBtZWFucyB0aGV5IG1heSBoYXZlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIGNvbnRleHQgb3IgcXVlc3Rpb25zIGZvciB5b3UuXG4gICAgVGFrZSB0aGVpciByZXNwb25zZSBpbnRvIGFjY291bnQgYW5kIHRoZW4gcmVmb3JtdWxhdGUgdGhlIHF1ZXN0aW9ucyBpZiBhcHByb3ByaWF0ZS5cbiAgICBTdGFydCBieSBhc2tpbmcgdGhlbSB3aGF0IHRoZXkgd291bGQgbGlrZSB0byBjbGFyaWZ5LlxuXG4gICAgUXVlc3Rpb25zIGFza2VkOlxcbiR7cXVlc3Rpb25zV2l0aEFuc3dlcnN9YFxuXG4gICAgaWYgKG1ldGFkYXRhU291cmNlKSB7XG4gICAgICBsb2dFdmVudCgndGVuZ3VfYXNrX3VzZXJfcXVlc3Rpb25fcmVzcG9uZF90b19jbGF1ZGUnLCB7XG4gICAgICAgIHNvdXJjZTpcbiAgICAgICAgICBtZXRhZGF0YVNvdXJjZSBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgICBxdWVzdGlvbkNvdW50OiBxdWVzdGlvbnMubGVuZ3RoLFxuICAgICAgICBpc0luUGxhbk1vZGUsXG4gICAgICAgIGludGVydmlld1BoYXNlRW5hYmxlZDpcbiAgICAgICAgICBpc0luUGxhbk1vZGUgJiYgaXNQbGFuTW9kZUludGVydmlld1BoYXNlRW5hYmxlZCgpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBpbWFnZUJsb2NrcyA9IGF3YWl0IGNvbnZlcnRJbWFnZXNUb0Jsb2NrcyhhbGxJbWFnZUF0dGFjaG1lbnRzKVxuXG4gICAgb25Eb25lKClcbiAgICB0b29sVXNlQ29uZmlybS5vblJlamVjdChcbiAgICAgIGZlZWRiYWNrLFxuICAgICAgaW1hZ2VCbG9ja3MgJiYgaW1hZ2VCbG9ja3MubGVuZ3RoID4gMCA/IGltYWdlQmxvY2tzIDogdW5kZWZpbmVkLFxuICAgIClcbiAgfSwgW1xuICAgIHF1ZXN0aW9ucyxcbiAgICBhbnN3ZXJzLFxuICAgIG9uRG9uZSxcbiAgICB0b29sVXNlQ29uZmlybSxcbiAgICBtZXRhZGF0YVNvdXJjZSxcbiAgICBpc0luUGxhbk1vZGUsXG4gICAgYWxsSW1hZ2VBdHRhY2htZW50cyxcbiAgXSlcblxuICBjb25zdCBoYW5kbGVGaW5pc2hQbGFuSW50ZXJ2aWV3ID0gdXNlQ2FsbGJhY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHF1ZXN0aW9uc1dpdGhBbnN3ZXJzID0gcXVlc3Rpb25zXG4gICAgICAubWFwKChxOiBRdWVzdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBhbnN3ZXIgPSBhbnN3ZXJzW3EucXVlc3Rpb25dXG4gICAgICAgIGlmIChhbnN3ZXIpIHtcbiAgICAgICAgICByZXR1cm4gYC0gXCIke3EucXVlc3Rpb259XCJcXG4gIEFuc3dlcjogJHthbnN3ZXJ9YFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgLSBcIiR7cS5xdWVzdGlvbn1cIlxcbiAgKE5vIGFuc3dlciBwcm92aWRlZClgXG4gICAgICB9KVxuICAgICAgLmpvaW4oJ1xcbicpXG5cbiAgICBjb25zdCBmZWVkYmFjayA9IGBUaGUgdXNlciBoYXMgaW5kaWNhdGVkIHRoZXkgaGF2ZSBwcm92aWRlZCBlbm91Z2ggYW5zd2VycyBmb3IgdGhlIHBsYW4gaW50ZXJ2aWV3LlxuU3RvcCBhc2tpbmcgY2xhcmlmeWluZyBxdWVzdGlvbnMgYW5kIHByb2NlZWQgdG8gZmluaXNoIHRoZSBwbGFuIHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSBoYXZlLlxuXG5RdWVzdGlvbnMgYXNrZWQgYW5kIGFuc3dlcnMgcHJvdmlkZWQ6XFxuJHtxdWVzdGlvbnNXaXRoQW5zd2Vyc31gXG5cbiAgICBpZiAobWV0YWRhdGFTb3VyY2UpIHtcbiAgICAgIGxvZ0V2ZW50KCd0ZW5ndV9hc2tfdXNlcl9xdWVzdGlvbl9maW5pc2hfcGxhbl9pbnRlcnZpZXcnLCB7XG4gICAgICAgIHNvdXJjZTpcbiAgICAgICAgICBtZXRhZGF0YVNvdXJjZSBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgICBxdWVzdGlvbkNvdW50OiBxdWVzdGlvbnMubGVuZ3RoLFxuICAgICAgICBpc0luUGxhbk1vZGUsXG4gICAgICAgIGludGVydmlld1BoYXNlRW5hYmxlZDpcbiAgICAgICAgICBpc0luUGxhbk1vZGUgJiYgaXNQbGFuTW9kZUludGVydmlld1BoYXNlRW5hYmxlZCgpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBpbWFnZUJsb2NrcyA9IGF3YWl0IGNvbnZlcnRJbWFnZXNUb0Jsb2NrcyhhbGxJbWFnZUF0dGFjaG1lbnRzKVxuXG4gICAgb25Eb25lKClcbiAgICB0b29sVXNlQ29uZmlybS5vblJlamVjdChcbiAgICAgIGZlZWRiYWNrLFxuICAgICAgaW1hZ2VCbG9ja3MgJiYgaW1hZ2VCbG9ja3MubGVuZ3RoID4gMCA/IGltYWdlQmxvY2tzIDogdW5kZWZpbmVkLFxuICAgIClcbiAgfSwgW1xuICAgIHF1ZXN0aW9ucyxcbiAgICBhbnN3ZXJzLFxuICAgIG9uRG9uZSxcbiAgICB0b29sVXNlQ29uZmlybSxcbiAgICBtZXRhZGF0YVNvdXJjZSxcbiAgICBpc0luUGxhbk1vZGUsXG4gICAgYWxsSW1hZ2VBdHRhY2htZW50cyxcbiAgXSlcblxuICBjb25zdCBzdWJtaXRBbnN3ZXJzID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGFuc3dlcnNUb1N1Ym1pdDogUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICAgICAgLy8gTG9nIGFjY2VwdGFuY2Ugd2l0aCBtZXRhZGF0YSBzb3VyY2UgaWYgcHJlc2VudFxuICAgICAgaWYgKG1ldGFkYXRhU291cmNlKSB7XG4gICAgICAgIGxvZ0V2ZW50KCd0ZW5ndV9hc2tfdXNlcl9xdWVzdGlvbl9hY2NlcHRlZCcsIHtcbiAgICAgICAgICBzb3VyY2U6XG4gICAgICAgICAgICBtZXRhZGF0YVNvdXJjZSBhcyBBbmFseXRpY3NNZXRhZGF0YV9JX1ZFUklGSUVEX1RISVNfSVNfTk9UX0NPREVfT1JfRklMRVBBVEhTLFxuICAgICAgICAgIHF1ZXN0aW9uQ291bnQ6IHF1ZXN0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgYW5zd2VyQ291bnQ6IE9iamVjdC5rZXlzKGFuc3dlcnNUb1N1Ym1pdCkubGVuZ3RoLFxuICAgICAgICAgIGlzSW5QbGFuTW9kZSxcbiAgICAgICAgICBpbnRlcnZpZXdQaGFzZUVuYWJsZWQ6XG4gICAgICAgICAgICBpc0luUGxhbk1vZGUgJiYgaXNQbGFuTW9kZUludGVydmlld1BoYXNlRW5hYmxlZCgpLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgLy8gQnVpbGQgYW5ub3RhdGlvbnMgZnJvbSBxdWVzdGlvblN0YXRlcyAoZS5nLiwgc2VsZWN0ZWQgcHJldmlldywgdXNlciBub3RlcylcbiAgICAgIGNvbnN0IGFubm90YXRpb25zOiBSZWNvcmQ8c3RyaW5nLCB7IHByZXZpZXc/OiBzdHJpbmc7IG5vdGVzPzogc3RyaW5nIH0+ID1cbiAgICAgICAge31cbiAgICAgIGZvciAoY29uc3QgcSBvZiBxdWVzdGlvbnMpIHtcbiAgICAgICAgY29uc3QgYW5zd2VyID0gYW5zd2Vyc1RvU3VibWl0W3EucXVlc3Rpb25dXG4gICAgICAgIGNvbnN0IG5vdGVzID0gcXVlc3Rpb25TdGF0ZXNbcS5xdWVzdGlvbl0/LnRleHRJbnB1dFZhbHVlXG4gICAgICAgIC8vIEZpbmQgdGhlIHNlbGVjdGVkIG9wdGlvbidzIHByZXZpZXcgY29udGVudFxuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGFuc3dlclxuICAgICAgICAgID8gcS5vcHRpb25zLmZpbmQob3B0ID0+IG9wdC5sYWJlbCA9PT0gYW5zd2VyKVxuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIGNvbnN0IHByZXZpZXcgPSBzZWxlY3RlZE9wdGlvbj8ucHJldmlld1xuICAgICAgICBpZiAocHJldmlldyB8fCBub3Rlcz8udHJpbSgpKSB7XG4gICAgICAgICAgYW5ub3RhdGlvbnNbcS5xdWVzdGlvbl0gPSB7XG4gICAgICAgICAgICAuLi4ocHJldmlldyAmJiB7IHByZXZpZXcgfSksXG4gICAgICAgICAgICAuLi4obm90ZXM/LnRyaW0oKSAmJiB7IG5vdGVzOiBub3Rlcy50cmltKCkgfSksXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHVwZGF0ZWRJbnB1dCA9IHtcbiAgICAgICAgLi4udG9vbFVzZUNvbmZpcm0uaW5wdXQsXG4gICAgICAgIGFuc3dlcnM6IGFuc3dlcnNUb1N1Ym1pdCxcbiAgICAgICAgLi4uKE9iamVjdC5rZXlzKGFubm90YXRpb25zKS5sZW5ndGggPiAwICYmIHsgYW5ub3RhdGlvbnMgfSksXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRlbnRCbG9ja3MgPSBhd2FpdCBjb252ZXJ0SW1hZ2VzVG9CbG9ja3MoYWxsSW1hZ2VBdHRhY2htZW50cylcblxuICAgICAgb25Eb25lKClcbiAgICAgIHRvb2xVc2VDb25maXJtLm9uQWxsb3coXG4gICAgICAgIHVwZGF0ZWRJbnB1dCxcbiAgICAgICAgW10sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgY29udGVudEJsb2NrcyAmJiBjb250ZW50QmxvY2tzLmxlbmd0aCA+IDAgPyBjb250ZW50QmxvY2tzIDogdW5kZWZpbmVkLFxuICAgICAgKVxuICAgIH0sXG4gICAgW1xuICAgICAgdG9vbFVzZUNvbmZpcm0sXG4gICAgICBvbkRvbmUsXG4gICAgICBtZXRhZGF0YVNvdXJjZSxcbiAgICAgIHF1ZXN0aW9ucyxcbiAgICAgIHF1ZXN0aW9uU3RhdGVzLFxuICAgICAgaXNJblBsYW5Nb2RlLFxuICAgICAgYWxsSW1hZ2VBdHRhY2htZW50cyxcbiAgICBdLFxuICApXG5cbiAgY29uc3QgaGFuZGxlUXVlc3Rpb25BbnN3ZXIgPSB1c2VDYWxsYmFjayhcbiAgICAoXG4gICAgICBxdWVzdGlvblRleHQ6IHN0cmluZyxcbiAgICAgIGxhYmVsOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICAgIHRleHRJbnB1dD86IHN0cmluZyxcbiAgICAgIHNob3VsZEFkdmFuY2U6IGJvb2xlYW4gPSB0cnVlLFxuICAgICkgPT4ge1xuICAgICAgbGV0IGFuc3dlcjogc3RyaW5nXG4gICAgICBjb25zdCBpc011bHRpU2VsZWN0ID0gQXJyYXkuaXNBcnJheShsYWJlbClcbiAgICAgIGlmIChpc011bHRpU2VsZWN0KSB7XG4gICAgICAgIGFuc3dlciA9IGxhYmVsLmpvaW4oJywgJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0ZXh0SW5wdXQpIHtcbiAgICAgICAgICBjb25zdCBxdWVzdGlvbkltYWdlcyA9IE9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICBwYXN0ZWRDb250ZW50c0J5UXVlc3Rpb25bcXVlc3Rpb25UZXh0XSA/PyB7fSxcbiAgICAgICAgICApLmZpbHRlcihjID0+IGMudHlwZSA9PT0gJ2ltYWdlJylcbiAgICAgICAgICBhbnN3ZXIgPVxuICAgICAgICAgICAgcXVlc3Rpb25JbWFnZXMubGVuZ3RoID4gMFxuICAgICAgICAgICAgICA/IGAke3RleHRJbnB1dH0gKEltYWdlIGF0dGFjaGVkKWBcbiAgICAgICAgICAgICAgOiB0ZXh0SW5wdXRcbiAgICAgICAgfSBlbHNlIGlmIChsYWJlbCA9PT0gJ19fb3RoZXJfXycpIHtcbiAgICAgICAgICAvLyBJbWFnZS1vbmx5IHN1Ym1pc3Npb24g4oCUIGNoZWNrIGlmIHRoaXMgcXVlc3Rpb24gaGFzIGltYWdlc1xuICAgICAgICAgIGNvbnN0IHF1ZXN0aW9uSW1hZ2VzID0gT2JqZWN0LnZhbHVlcyhcbiAgICAgICAgICAgIHBhc3RlZENvbnRlbnRzQnlRdWVzdGlvbltxdWVzdGlvblRleHRdID8/IHt9LFxuICAgICAgICAgICkuZmlsdGVyKGMgPT4gYy50eXBlID09PSAnaW1hZ2UnKVxuICAgICAgICAgIGFuc3dlciA9IHF1ZXN0aW9uSW1hZ2VzLmxlbmd0aCA+IDAgPyAnKEltYWdlIGF0dGFjaGVkKScgOiBsYWJlbFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFuc3dlciA9IGxhYmVsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gRm9yIHNpbmdsZS1zZWxlY3Qgd2l0aCBvbmx5IG9uZSBxdWVzdGlvbiwgYXV0by1zdWJtaXQgaW5zdGVhZCBvZiBzaG93aW5nIHJldmlldyBzY3JlZW5cbiAgICAgIGNvbnN0IGlzU2luZ2xlUXVlc3Rpb24gPSBxdWVzdGlvbnMubGVuZ3RoID09PSAxXG4gICAgICBpZiAoIWlzTXVsdGlTZWxlY3QgJiYgaXNTaW5nbGVRdWVzdGlvbiAmJiBzaG91bGRBZHZhbmNlKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRBbnN3ZXJzID0ge1xuICAgICAgICAgIC4uLmFuc3dlcnMsXG4gICAgICAgICAgW3F1ZXN0aW9uVGV4dF06IGFuc3dlcixcbiAgICAgICAgfVxuICAgICAgICB2b2lkIHN1Ym1pdEFuc3dlcnModXBkYXRlZEFuc3dlcnMpLmNhdGNoKGxvZ0Vycm9yKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgc2V0QW5zd2VyKHF1ZXN0aW9uVGV4dCwgYW5zd2VyLCBzaG91bGRBZHZhbmNlKVxuICAgIH0sXG4gICAgW1xuICAgICAgc2V0QW5zd2VyLFxuICAgICAgcXVlc3Rpb25zLmxlbmd0aCxcbiAgICAgIGFuc3dlcnMsXG4gICAgICBzdWJtaXRBbnN3ZXJzLFxuICAgICAgcGFzdGVkQ29udGVudHNCeVF1ZXN0aW9uLFxuICAgIF0sXG4gIClcblxuICBmdW5jdGlvbiBoYW5kbGVGaW5hbFJlc3BvbnNlKHZhbHVlOiAnc3VibWl0JyB8ICdjYW5jZWwnKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlID09PSAnY2FuY2VsJykge1xuICAgICAgaGFuZGxlQ2FuY2VsKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh2YWx1ZSA9PT0gJ3N1Ym1pdCcpIHtcbiAgICAgIHZvaWQgc3VibWl0QW5zd2VycyhhbnN3ZXJzKS5jYXRjaChsb2dFcnJvcilcbiAgICB9XG4gIH1cblxuICAvLyBXaGVuIHN1Ym1pdCB0YWIgaXMgaGlkZGVuLCBkb24ndCBhbGxvdyBuYXZpZ2F0aW5nIHBhc3QgdGhlIGxhc3QgcXVlc3Rpb25cbiAgY29uc3QgbWF4SW5kZXggPSBoaWRlU3VibWl0VGFiXG4gICAgPyAocXVlc3Rpb25zPy5sZW5ndGggfHwgMSkgLSAxXG4gICAgOiBxdWVzdGlvbnM/Lmxlbmd0aCB8fCAwXG5cbiAgLy8gQm91bmRlZCBuYXZpZ2F0aW9uIGNhbGxiYWNrcyBmb3IgcXVlc3Rpb24gdGFic1xuICBjb25zdCBoYW5kbGVUYWJQcmV2ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChjdXJyZW50UXVlc3Rpb25JbmRleCA+IDApIHtcbiAgICAgIHByZXZRdWVzdGlvbigpXG4gICAgfVxuICB9LCBbY3VycmVudFF1ZXN0aW9uSW5kZXgsIHByZXZRdWVzdGlvbl0pXG5cbiAgY29uc3QgaGFuZGxlVGFiTmV4dCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoY3VycmVudFF1ZXN0aW9uSW5kZXggPCBtYXhJbmRleCkge1xuICAgICAgbmV4dFF1ZXN0aW9uKClcbiAgICB9XG4gIH0sIFtjdXJyZW50UXVlc3Rpb25JbmRleCwgbWF4SW5kZXgsIG5leHRRdWVzdGlvbl0pXG5cbiAgLy8gVXNlIGtleWJpbmRpbmdzIHN5c3RlbSBmb3IgcXVlc3Rpb24gbmF2aWdhdGlvbiAobGVmdC9yaWdodCBhcnJvd3MsIHRhYi9zaGlmdCt0YWIpXG4gIC8vIFJhdyB1c2VJbnB1dCBkb2Vzbid0IHdvcmsgYmVjYXVzZSB0aGUga2V5YmluZGluZyBzeXN0ZW0gcmVzb2x2ZXMgbGVmdC9yaWdodCBhcnJvd3NcbiAgLy8gdG8gdGFiczpuZXh0L3RhYnM6cHJldmlvdXMgYW5kIG1heSBzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24gYmVmb3JlIHVzZUlucHV0IGZpcmVzLlxuICAvLyBDaGlsZCBjb21wb25lbnRzIChlLmcuLCBQcmV2aWV3UXVlc3Rpb25WaWV3KSBhbHNvIHJlZ2lzdGVyIHRoZWlyIG93biB0YWJzOm5leHQvdGFiczpwcmV2aW91c1xuICAvLyBrZXliaW5kaW5ncyB0byBlbnN1cmUgcmVsaWFibGUgaGFuZGxpbmcgcmVnYXJkbGVzcyBvZiBsaXN0ZW5lciBvcmRlcmluZy5cbiAgdXNlS2V5YmluZGluZ3MoXG4gICAge1xuICAgICAgJ3RhYnM6cHJldmlvdXMnOiBoYW5kbGVUYWJQcmV2LFxuICAgICAgJ3RhYnM6bmV4dCc6IGhhbmRsZVRhYk5leHQsXG4gICAgfSxcbiAgICB7IGNvbnRleHQ6ICdUYWJzJywgaXNBY3RpdmU6ICEoaXNJblRleHRJbnB1dCAmJiAhaXNJblN1Ym1pdFZpZXcpIH0sXG4gIClcblxuICBpZiAoY3VycmVudFF1ZXN0aW9uKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxRdWVzdGlvblZpZXdcbiAgICAgICAgICBxdWVzdGlvbj17Y3VycmVudFF1ZXN0aW9ufVxuICAgICAgICAgIHF1ZXN0aW9ucz17cXVlc3Rpb25zfVxuICAgICAgICAgIGN1cnJlbnRRdWVzdGlvbkluZGV4PXtjdXJyZW50UXVlc3Rpb25JbmRleH1cbiAgICAgICAgICBhbnN3ZXJzPXthbnN3ZXJzfVxuICAgICAgICAgIHF1ZXN0aW9uU3RhdGVzPXtxdWVzdGlvblN0YXRlc31cbiAgICAgICAgICBoaWRlU3VibWl0VGFiPXtoaWRlU3VibWl0VGFifVxuICAgICAgICAgIG1pbkNvbnRlbnRIZWlnaHQ9e2dsb2JhbENvbnRlbnRIZWlnaHR9XG4gICAgICAgICAgbWluQ29udGVudFdpZHRoPXtnbG9iYWxDb250ZW50V2lkdGh9XG4gICAgICAgICAgcGxhbkZpbGVQYXRoPXtwbGFuRmlsZVBhdGh9XG4gICAgICAgICAgb25VcGRhdGVRdWVzdGlvblN0YXRlPXt1cGRhdGVRdWVzdGlvblN0YXRlfVxuICAgICAgICAgIG9uQW5zd2VyPXtoYW5kbGVRdWVzdGlvbkFuc3dlcn1cbiAgICAgICAgICBvblRleHRJbnB1dEZvY3VzPXtzZXRUZXh0SW5wdXRNb2RlfVxuICAgICAgICAgIG9uQ2FuY2VsPXtoYW5kbGVDYW5jZWx9XG4gICAgICAgICAgb25TdWJtaXQ9e25leHRRdWVzdGlvbn1cbiAgICAgICAgICBvblRhYlByZXY9e2hhbmRsZVRhYlByZXZ9XG4gICAgICAgICAgb25UYWJOZXh0PXtoYW5kbGVUYWJOZXh0fVxuICAgICAgICAgIG9uUmVzcG9uZFRvQ2xhdWRlPXtoYW5kbGVSZXNwb25kVG9DbGF1ZGV9XG4gICAgICAgICAgb25GaW5pc2hQbGFuSW50ZXJ2aWV3PXtoYW5kbGVGaW5pc2hQbGFuSW50ZXJ2aWV3fVxuICAgICAgICAgIG9uSW1hZ2VQYXN0ZT17KGJhc2U2NCwgbWVkaWFUeXBlLCBmaWxlbmFtZSwgZGltcywgcGF0aCkgPT5cbiAgICAgICAgICAgIG9uSW1hZ2VQYXN0ZShcbiAgICAgICAgICAgICAgY3VycmVudFF1ZXN0aW9uLnF1ZXN0aW9uLFxuICAgICAgICAgICAgICBiYXNlNjQsXG4gICAgICAgICAgICAgIG1lZGlhVHlwZSxcbiAgICAgICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgICAgIGRpbXMsXG4gICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICAgIHBhc3RlZENvbnRlbnRzPXtcbiAgICAgICAgICAgIHBhc3RlZENvbnRlbnRzQnlRdWVzdGlvbltjdXJyZW50UXVlc3Rpb24ucXVlc3Rpb25dID8/IHt9XG4gICAgICAgICAgfVxuICAgICAgICAgIG9uUmVtb3ZlSW1hZ2U9e2lkID0+IG9uUmVtb3ZlSW1hZ2UoY3VycmVudFF1ZXN0aW9uLnF1ZXN0aW9uLCBpZCl9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApXG4gIH1cblxuICBpZiAoaXNJblN1Ym1pdFZpZXcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPFN1Ym1pdFF1ZXN0aW9uc1ZpZXdcbiAgICAgICAgICBxdWVzdGlvbnM9e3F1ZXN0aW9uc31cbiAgICAgICAgICBjdXJyZW50UXVlc3Rpb25JbmRleD17Y3VycmVudFF1ZXN0aW9uSW5kZXh9XG4gICAgICAgICAgYW5zd2Vycz17YW5zd2Vyc31cbiAgICAgICAgICBhbGxRdWVzdGlvbnNBbnN3ZXJlZD17YWxsUXVlc3Rpb25zQW5zd2VyZWR9XG4gICAgICAgICAgcGVybWlzc2lvblJlc3VsdD17dG9vbFVzZUNvbmZpcm0ucGVybWlzc2lvblJlc3VsdH1cbiAgICAgICAgICBtaW5Db250ZW50SGVpZ2h0PXtnbG9iYWxDb250ZW50SGVpZ2h0fVxuICAgICAgICAgIG9uRmluYWxSZXNwb25zZT17aGFuZGxlRmluYWxSZXNwb25zZX1cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuXG4gIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGJlIHJlYWNoZWRcbiAgcmV0dXJuIG51bGxcbn1cblxuYXN5bmMgZnVuY3Rpb24gY29udmVydEltYWdlc1RvQmxvY2tzKFxuICBpbWFnZXM6IFBhc3RlZENvbnRlbnRbXSxcbik6IFByb21pc2U8SW1hZ2VCbG9ja1BhcmFtW10gfCB1bmRlZmluZWQ+IHtcbiAgaWYgKGltYWdlcy5sZW5ndGggPT09IDApIHJldHVybiB1bmRlZmluZWRcbiAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgIGltYWdlcy5tYXAoYXN5bmMgaW1nID0+IHtcbiAgICAgIGNvbnN0IGJsb2NrOiBJbWFnZUJsb2NrUGFyYW0gPSB7XG4gICAgICAgIHR5cGU6ICdpbWFnZScsXG4gICAgICAgIHNvdXJjZToge1xuICAgICAgICAgIHR5cGU6ICdiYXNlNjQnLFxuICAgICAgICAgIG1lZGlhX3R5cGU6IChpbWcubWVkaWFUeXBlIHx8XG4gICAgICAgICAgICAnaW1hZ2UvcG5nJykgYXMgQmFzZTY0SW1hZ2VTb3VyY2VbJ21lZGlhX3R5cGUnXSxcbiAgICAgICAgICBkYXRhOiBpbWcuY29udGVudCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlc2l6ZWQgPSBhd2FpdCBtYXliZVJlc2l6ZUFuZERvd25zYW1wbGVJbWFnZUJsb2NrKGJsb2NrKVxuICAgICAgcmV0dXJuIHJlc2l6ZWQuYmxvY2tcbiAgICB9KSxcbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsY0FDRUEsaUJBQWlCLEVBQ2pCQyxlQUFlLFFBQ1YsMENBQTBDO0FBQ2pELE9BQU9DLEtB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
|
package/src/components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
1
2
|
import { c as _c } from "react/compiler-runtime";
|
|
2
3
|
import figures from 'figures';
|
|
3
4
|
import React, { useMemo } from 'react';
|
|
@@ -175,4 +176,4 @@ function _temp2(header_0) {
|
|
|
175
176
|
function _temp(q_0, index_0) {
|
|
176
177
|
return q_0?.header || `Q${index_0 + 1}`;
|
|
177
178
|
}
|
|
178
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VNZW1vIiwidXNlVGVybWluYWxTaXplIiwic3RyaW5nV2lkdGgiLCJCb3giLCJUZXh0IiwiUXVlc3Rpb24iLCJ0cnVuY2F0ZVRvV2lkdGgiLCJQcm9wcyIsInF1ZXN0aW9ucyIsImN1cnJlbnRRdWVzdGlvbkluZGV4IiwiYW5zd2VycyIsIlJlY29yZCIsImhpZGVTdWJtaXRUYWIiLCJRdWVzdGlvbk5hdmlnYXRpb25CYXIiLCJ0MCIsIiQiLCJfYyIsInQxIiwidW5kZWZpbmVkIiwiY29sdW1ucyIsInQyIiwiYmIwIiwic3VibWl0VGV4dCIsInRpY2siLCJmaXhlZFdpZHRoIiwiYXZhaWxhYmxlRm9yVGFicyIsInQzIiwidDQiLCJxIiwiaW5kZXgiLCJoZWFkZXIiLCJzbGljZSIsIm1hcCIsInRhYkhlYWRlcnMiLCJfdGVtcCIsImlkZWFsV2lkdGhzIiwiX3RlbXAyIiwidG90YWxJZGVhbFdpZHRoIiwicmVkdWNlIiwiX3RlbXAzIiwiY3VycmVudEhlYWRlciIsImN1cnJlbnRJZGVhbFdpZHRoIiwiY3VycmVudFRhYldpZHRoIiwiTWF0aCIsIm1pbiIsInJlbWFpbmluZ1dpZHRoIiwib3RoZXJUYWJDb3VudCIsImxlbmd0aCIsIndpZHRoUGVyT3RoZXJUYWIiLCJtYXgiLCJmbG9vciIsImhlYWRlcl8xIiwiaW5kZXhfMSIsIm1heFRleHRXaWR0aCIsIm1heFRleHRXaWR0aF8wIiwidGFiRGlzcGxheVRleHRzIiwiaGlkZUFycm93cyIsInQ1IiwicV8xIiwiaW5kZXhfMiIsImlzU2VsZWN0ZWQiLCJpc0Fuc3dlcmVkIiwicXVlc3Rpb24iLCJjaGVja2JveCIsImNoZWNrYm94T24iLCJjaGVja2JveE9mZiIsImRpc3BsYXlUZXh0IiwidDYiLCJ0NyIsInN1bSIsInciLCJoZWFkZXJfMCIsInFfMCIsImluZGV4XzAiXSwic291cmNlcyI6WyJRdWVzdGlvbk5hdmlnYXRpb25CYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaWd1cmVzIGZyb20gJ2ZpZ3VyZXMnXG5pbXBvcnQgUmVhY3QsIHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVGVybWluYWxTaXplIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVGVybWluYWxTaXplLmpzJ1xuaW1wb3J0IHsgc3RyaW5nV2lkdGggfSBmcm9tICcuLi8uLi8uLi9pbmsvc3RyaW5nV2lkdGguanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi8uLi9pbmsuanMnXG5pbXBvcnQgdHlwZSB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvQXNrVXNlclF1ZXN0aW9uVG9vbC9Bc2tVc2VyUXVlc3Rpb25Ub29sLmpzJ1xuaW1wb3J0IHsgdHJ1bmNhdGVUb1dpZHRoIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZm9ybWF0LmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBxdWVzdGlvbnM6IFF1ZXN0aW9uW11cbiAgY3VycmVudFF1ZXN0aW9uSW5kZXg6IG51bWJlclxuICBhbnN3ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIGhpZGVTdWJtaXRUYWI/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBRdWVzdGlvbk5hdmlnYXRpb25CYXIoe1xuICBxdWVzdGlvbnMsXG4gIGN1cnJlbnRRdWVzdGlvbkluZGV4LFxuICBhbnN3ZXJzLFxuICBoaWRlU3VibWl0VGFiID0gZmFsc2UsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHsgY29sdW1ucyB9ID0gdXNlVGVybWluYWxTaXplKClcblxuICAvLyBDYWxjdWxhdGUgdGhlIGRpc3BsYXkgdGV4dCBmb3IgZWFjaCB0YWIgYmFzZWQgb24gYXZhaWxhYmxlIHdpZHRoXG4gIGNvbnN0IHRhYkRpc3BsYXlUZXh0cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8vIENhbGN1bGF0ZSBmaXhlZCB3aWR0aCBlbGVtZW50c1xuICAgIGNvbnN0IGxlZnRBcnJvdyA9ICfihpAgJ1xuICAgIGNvbnN0IHJpZ2h0QXJyb3cgPSAnIOKGkidcbiAgICBjb25zdCBzdWJtaXRUZXh0ID0gaGlkZVN1Ym1pdFRhYiA/ICcnIDogYCAke2ZpZ3VyZXMudGlja30gU3VibWl0IGBcbiAgICBjb25zdCBjaGVja2JveFdpZHRoID0gMiAvLyBjaGVja2JveCArIHNwYWNlXG4gICAgY29uc3QgcGFkZGluZ1BlclRhYiA9IDIgLy8gc3BhY2UgYmVmb3JlIGFuZCBhZnRlciBlYWNoIHRhYiB0ZXh0XG5cbiAgICBjb25zdCBmaXhlZFdpZHRoID1cbiAgICAgIHN0cmluZ1dpZHRoKGxlZnRBcnJvdykgKyBzdHJpbmdXaWR0aChyaWdodEFycm93KSArIHN0cmluZ1dpZHRoKHN1Ym1pdFRleHQpXG5cbiAgICAvLyBBdmFpbGFibGUgd2lkdGggZm9yIGFsbCBxdWVzdGlvbiB0YWJzXG4gICAgY29uc3QgYXZhaWxhYmxlRm9yVGFicyA9IGNvbHVtbnMgLSBmaXhlZFdpZHRoXG5cbiAgICBpZiAoYXZhaWxhYmxlRm9yVGFicyA8PSAwKSB7XG4gICAgICAvLyBUZXJtaW5hbCB0b28gbmFycm93LCBmYWxsYmFjayB0byBtaW5pbWFsIGRpc3BsYXlcbiAgICAgIHJldHVybiBxdWVzdGlvbnMubWFwKChxOiBRdWVzdGlvbiwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBoZWFkZXIgPSBxPy5oZWFkZXIgfHwgYFEke2luZGV4ICsgMX1gXG4gICAgICAgIHJldHVybiBpbmRleCA9PT0gY3VycmVudFF1ZXN0aW9uSW5kZXggPyBoZWFkZXIuc2xpY2UoMCwgMykgOiAnJ1xuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhdGUgaWRlYWwgd2lkdGggZm9yIGVhY2ggdGFiIChjaGVja2JveCArIHBhZGRpbmcgKyB0ZXh0KVxuICAgIGNvbnN0IHRhYkhlYWRlcnMgPSBxdWVzdGlvbnMubWFwKFxuICAgICAgKHE6IFF1ZXN0aW9uLCBpbmRleDogbnVtYmVyKSA9PiBxPy5oZWFkZXIgfHwgYFEke2luZGV4ICsgMX1gLFxuICAgIClcbiAgICBjb25zdCBpZGVhbFdpZHRocyA9IHRhYkhlYWRlcnMubWFwKFxuICAgICAgaGVhZGVyID0+IGNoZWNrYm94V2lkdGggKyBwYWRkaW5nUGVyVGFiICsgc3RyaW5nV2lkdGgoaGVhZGVyKSxcbiAgICApXG5cbiAgICAvLyBDYWxjdWxhdGUgdG90YWwgaWRlYWwgd2lkdGhcbiAgICBjb25zdCB0b3RhbElkZWFsV2lkdGggPSBpZGVhbFdpZHRocy5yZWR1Y2UoKHN1bSwgdykgPT4gc3VtICsgdywgMClcblxuICAgIC8vIElmIGV2ZXJ5dGhpbmcgZml0cywgdXNlIGZ1bGwgaGVhZGVyc1xuICAgIGlmICh0b3RhbElkZWFsV2lkdGggPD0gYXZhaWxhYmxlRm9yVGFicykge1xuICAgICAgcmV0dXJuIHRhYkhlYWRlcnNcbiAgICB9XG5cbiAgICAvLyBOZWVkIHRvIHRydW5jYXRlIC0gcHJpb3JpdGl6ZSBjdXJyZW50IHRhYlxuICAgIGNvbnN0IGN1cnJlbnRIZWFkZXIgPSB0YWJIZWFkZXJzW2N1cnJlbnRRdWVzdGlvbkluZGV4XSB8fCAnJ1xuICAgIGNvbnN0IGN1cnJlbnRJZGVhbFdpZHRoID1cbiAgICAgIGNoZWNrYm94V2lkdGggKyBwYWRkaW5nUGVyVGFiICsgc3RyaW5nV2lkdGgoY3VycmVudEhlYWRlcilcblxuICAgIC8vIE1pbmltdW0gd2lkdGggZm9yIG90aGVyIHRhYnMgKGNoZWNrYm94ICsgcGFkZGluZyArIDEgY2hhciArIGVsbGlwc2lzKVxuICAgIGNvbnN0IG1pbldpZHRoUGVyVGFiID0gY2hlY2tib3hXaWR0aCArIHBhZGRpbmdQZXJUYWIgKyAyIC8vIFwiWOKAplwiXG5cbiAgICAvLyBDYWxjdWxhdGUgc3BhY2UgZm9yIGN1cnJlbnQgdGFiICh0cnkgdG8gc2hvdyBmdWxsIHRleHQpXG4gICAgY29uc3QgY3VycmVudFRhYldpZHRoID0gTWF0aC5taW4oY3VycmVudElkZWFsV2lkdGgsIGF2YWlsYWJsZUZvclRhYnMgLyAyKVxuICAgIGNvbnN0IHJlbWFpbmluZ1dpZHRoID0gYXZhaWxhYmxlRm9yVGFicyAtIGN1cnJlbnRUYWJXaWR0aFxuXG4gICAgLy8gQ2FsY3VsYXRlIHNwYWNlIGZvciBvdGhlciB0YWJzXG4gICAgY29uc3Qgb3RoZXJUYWJDb3VudCA9IHF1ZXN0aW9ucy5sZW5ndGggLSAxXG4gICAgY29uc3Qgd2lkdGhQZXJPdGhlclRhYiA9IE1hdGgubWF4KFxuICAgICAgbWluV2lkdGhQZXJUYWIsXG4gICAgICBNYXRoLmZsb29yKHJlbWFpbmluZ1dpZHRoIC8gTWF0aC5tYXgob3RoZXJUYWJDb3VudCwgMSkpLFxuICAgIClcblxuICAgIHJldHVybiB0YWJIZWFkZXJzLm1hcCgoaGVhZGVyLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGluZGV4ID09PSBjdXJyZW50UXVlc3Rpb25JbmRleCkge1xuICAgICAgICAvLyBDdXJyZW50IHRhYiAtIHNob3cgYXMgbXVjaCBhcyBwb3NzaWJsZVxuICAgICAgICBjb25zdCBtYXhUZXh0V2lkdGggPSBjdXJyZW50VGFiV2lkdGggLSBjaGVja2JveFdpZHRoIC0gcGFkZGluZ1BlclRhYlxuICAgICAgICByZXR1cm4gdHJ1bmNhdGVUb1dpZHRoKGhlYWRlciwgbWF4VGV4dFdpZHRoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXIgdGFicyAtIHRydW5jYXRlIHRvIGZpdFxuICAgICAgICBjb25zdCBtYXhUZXh0V2lkdGggPSB3aWR0aFBlck90aGVyVGFiIC0gY2hlY2tib3hXaWR0aCAtIHBhZGRpbmdQZXJUYWJcbiAgICAgICAgcmV0dXJuIHRydW5jYXRlVG9XaWR0aChoZWFkZXIsIG1heFRleHRXaWR0aClcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbcXVlc3Rpb25zLCBjdXJyZW50UXVlc3Rpb25JbmRleCwgY29sdW1ucywgaGlkZVN1Ym1pdFRhYl0pXG5cbiAgY29uc3QgaGlkZUFycm93cyA9IHF1ZXN0aW9ucy5sZW5ndGggPT09IDEgJiYgaGlkZVN1Ym1pdFRhYlxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwicm93XCIgbWFyZ2luQm90dG9tPXsxfT5cbiAgICAgIHshaGlkZUFycm93cyAmJiAoXG4gICAgICAgIDxUZXh0IGNvbG9yPXtjdXJyZW50UXVlc3Rpb25JbmRleCA9PT0gMCA/ICdpbmFjdGl2ZScgOiB1bmRlZmluZWR9PlxuICAgICAgICAgIOKGkHsnICd9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICl9XG4gICAgICB7cXVlc3Rpb25zLm1hcCgocTogUXVlc3Rpb24sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGluZGV4ID09PSBjdXJyZW50UXVlc3Rpb25JbmRleFxuICAgICAgICBjb25zdCBpc0Fuc3dlcmVkID0gcT8ucXVlc3Rpb24gJiYgISFhbnN3ZXJzW3EucXVlc3Rpb25dXG4gICAgICAgIGNvbnN0IGNoZWNrYm94ID0gaXNBbnN3ZXJlZCA/IGZpZ3VyZXMuY2hlY2tib3hPbiA6IGZpZ3VyZXMuY2hlY2tib3hPZmZcbiAgICAgICAgY29uc3QgZGlzcGxheVRleHQgPVxuICAgICAgICAgIHRhYkRpc3BsYXlUZXh0c1tpbmRleF0gfHwgcT8uaGVhZGVyIHx8IGBRJHtpbmRleCArIDF9YFxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPEJveCBrZXk9e3E/LnF1ZXN0aW9uIHx8IGBxdWVzdGlvbi0ke2luZGV4fWB9PlxuICAgICAgICAgICAge2lzU2VsZWN0ZWQgPyAoXG4gICAgICAgICAgICAgIDxUZXh0IGJhY2tncm91bmRDb2xvcj1cInBlcm1pc3Npb25cIiBjb2xvcj1cImludmVyc2VUZXh0XCI+XG4gICAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgICB7Y2hlY2tib3h9IHtkaXNwbGF5VGV4dH17JyAnfVxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgIHtjaGVja2JveH0ge2Rpc3BsYXlUZXh0fXsnICd9XG4gICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgIClcbiAgICAgIH0pfVxuICAgICAgeyFoaWRlU3VibWl0VGFiICYmIChcbiAgICAgICAgPEJveCBrZXk9XCJzdWJtaXRcIj5cbiAgICAgICAgICB7Y3VycmVudFF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9ucy5sZW5ndGggPyAoXG4gICAgICAgICAgICA8VGV4dCBiYWNrZ3JvdW5kQ29sb3I9XCJwZXJtaXNzaW9uXCIgY29sb3I9XCJpbnZlcnNlVGV4dFwiPlxuICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICB7ZmlndXJlcy50aWNrfSBTdWJtaXR7JyAnfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VGV4dD4ge2ZpZ3VyZXMudGlja30gU3VibWl0IDwvVGV4dD5cbiAgICAgICAgICApfVxuICAgICAgICA8L0JveD5cbiAgICAgICl9XG4gICAgICB7IWhpZGVBcnJvd3MgJiYgKFxuICAgICAgICA8VGV4dFxuICAgICAgICAgIGNvbG9yPXtcbiAgICAgICAgICAgIGN1cnJlbnRRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbnMubGVuZ3RoID8gJ2luYWN0aXZlJyA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIHsnICd9XG4gICAgICAgICAg4oaSXG4gICAgICAgIDwvVGV4dD5cbiAgICAgICl9XG4gICAgPC9Cb3g+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLE9BQU8sTUFBTSxTQUFTO0FBQzdCLE9BQU9DLEtBQUssSUFBSUMsT0FBTyxRQUFRLE9BQU87QUFDdEMsU0FBU0MsZUFBZSxRQUFRLG1DQUFtQztBQUNuRSxTQUFTQyxXQUFXLFFBQVEsNkJBQTZCO0FBQ3pELFNBQVNDLEdB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
|
|
179
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VNZW1vIiwidXNlVGVybWluYWxTaXplIiwic3RyaW5nV2lkdGgiLCJCb3giLCJUZXh0IiwiUXVlc3Rpb24iLCJ0cnVuY2F0ZVRvV2lkdGgiLCJQcm9wcyIsInF1ZXN0aW9ucyIsImN1cnJlbnRRdWVzdGlvbkluZGV4IiwiYW5zd2VycyIsIlJlY29yZCIsImhpZGVTdWJtaXRUYWIiLCJRdWVzdGlvbk5hdmlnYXRpb25CYXIiLCJ0MCIsIiQiLCJfYyIsInQxIiwidW5kZWZpbmVkIiwiY29sdW1ucyIsInQyIiwiYmIwIiwic3VibWl0VGV4dCIsInRpY2siLCJmaXhlZFdpZHRoIiwiYXZhaWxhYmxlRm9yVGFicyIsInQzIiwidDQiLCJxIiwiaW5kZXgiLCJoZWFkZXIiLCJzbGljZSIsIm1hcCIsInRhYkhlYWRlcnMiLCJfdGVtcCIsImlkZWFsV2lkdGhzIiwiX3RlbXAyIiwidG90YWxJZGVhbFdpZHRoIiwicmVkdWNlIiwiX3RlbXAzIiwiY3VycmVudEhlYWRlciIsImN1cnJlbnRJZGVhbFdpZHRoIiwiY3VycmVudFRhYldpZHRoIiwiTWF0aCIsIm1pbiIsInJlbWFpbmluZ1dpZHRoIiwib3RoZXJUYWJDb3VudCIsImxlbmd0aCIsIndpZHRoUGVyT3RoZXJUYWIiLCJtYXgiLCJmbG9vciIsImhlYWRlcl8xIiwiaW5kZXhfMSIsIm1heFRleHRXaWR0aCIsIm1heFRleHRXaWR0aF8wIiwidGFiRGlzcGxheVRleHRzIiwiaGlkZUFycm93cyIsInQ1IiwicV8xIiwiaW5kZXhfMiIsImlzU2VsZWN0ZWQiLCJpc0Fuc3dlcmVkIiwicXVlc3Rpb24iLCJjaGVja2JveCIsImNoZWNrYm94T24iLCJjaGVja2JveE9mZiIsImRpc3BsYXlUZXh0IiwidDYiLCJ0NyIsInN1bSIsInciLCJoZWFkZXJfMCIsInFfMCIsImluZGV4XzAiXSwic291cmNlcyI6WyJRdWVzdGlvbk5hdmlnYXRpb25CYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaWd1cmVzIGZyb20gJ2ZpZ3VyZXMnXG5pbXBvcnQgUmVhY3QsIHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVGVybWluYWxTaXplIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlVGVybWluYWxTaXplLmpzJ1xuaW1wb3J0IHsgc3RyaW5nV2lkdGggfSBmcm9tICcuLi8uLi8uLi9pbmsvc3RyaW5nV2lkdGguanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi8uLi9pbmsuanMnXG5pbXBvcnQgdHlwZSB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdG9vbHMvQXNrVXNlclF1ZXN0aW9uVG9vbC9Bc2tVc2VyUXVlc3Rpb25Ub29sLmpzJ1xuaW1wb3J0IHsgdHJ1bmNhdGVUb1dpZHRoIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZm9ybWF0LmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBxdWVzdGlvbnM6IFF1ZXN0aW9uW11cbiAgY3VycmVudFF1ZXN0aW9uSW5kZXg6IG51bWJlclxuICBhbnN3ZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIGhpZGVTdWJtaXRUYWI/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBRdWVzdGlvbk5hdmlnYXRpb25CYXIoe1xuICBxdWVzdGlvbnMsXG4gIGN1cnJlbnRRdWVzdGlvbkluZGV4LFxuICBhbnN3ZXJzLFxuICBoaWRlU3VibWl0VGFiID0gZmFsc2UsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHsgY29sdW1ucyB9ID0gdXNlVGVybWluYWxTaXplKClcblxuICAvLyBDYWxjdWxhdGUgdGhlIGRpc3BsYXkgdGV4dCBmb3IgZWFjaCB0YWIgYmFzZWQgb24gYXZhaWxhYmxlIHdpZHRoXG4gIGNvbnN0IHRhYkRpc3BsYXlUZXh0cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIC8vIENhbGN1bGF0ZSBmaXhlZCB3aWR0aCBlbGVtZW50c1xuICAgIGNvbnN0IGxlZnRBcnJvdyA9ICfihpAgJ1xuICAgIGNvbnN0IHJpZ2h0QXJyb3cgPSAnIOKGkidcbiAgICBjb25zdCBzdWJtaXRUZXh0ID0gaGlkZVN1Ym1pdFRhYiA/ICcnIDogYCAke2ZpZ3VyZXMudGlja30gU3VibWl0IGBcbiAgICBjb25zdCBjaGVja2JveFdpZHRoID0gMiAvLyBjaGVja2JveCArIHNwYWNlXG4gICAgY29uc3QgcGFkZGluZ1BlclRhYiA9IDIgLy8gc3BhY2UgYmVmb3JlIGFuZCBhZnRlciBlYWNoIHRhYiB0ZXh0XG5cbiAgICBjb25zdCBmaXhlZFdpZHRoID1cbiAgICAgIHN0cmluZ1dpZHRoKGxlZnRBcnJvdykgKyBzdHJpbmdXaWR0aChyaWdodEFycm93KSArIHN0cmluZ1dpZHRoKHN1Ym1pdFRleHQpXG5cbiAgICAvLyBBdmFpbGFibGUgd2lkdGggZm9yIGFsbCBxdWVzdGlvbiB0YWJzXG4gICAgY29uc3QgYXZhaWxhYmxlRm9yVGFicyA9IGNvbHVtbnMgLSBmaXhlZFdpZHRoXG5cbiAgICBpZiAoYXZhaWxhYmxlRm9yVGFicyA8PSAwKSB7XG4gICAgICAvLyBUZXJtaW5hbCB0b28gbmFycm93LCBmYWxsYmFjayB0byBtaW5pbWFsIGRpc3BsYXlcbiAgICAgIHJldHVybiBxdWVzdGlvbnMubWFwKChxOiBRdWVzdGlvbiwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBoZWFkZXIgPSBxPy5oZWFkZXIgfHwgYFEke2luZGV4ICsgMX1gXG4gICAgICAgIHJldHVybiBpbmRleCA9PT0gY3VycmVudFF1ZXN0aW9uSW5kZXggPyBoZWFkZXIuc2xpY2UoMCwgMykgOiAnJ1xuICAgICAgfSlcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhdGUgaWRlYWwgd2lkdGggZm9yIGVhY2ggdGFiIChjaGVja2JveCArIHBhZGRpbmcgKyB0ZXh0KVxuICAgIGNvbnN0IHRhYkhlYWRlcnMgPSBxdWVzdGlvbnMubWFwKFxuICAgICAgKHE6IFF1ZXN0aW9uLCBpbmRleDogbnVtYmVyKSA9PiBxPy5oZWFkZXIgfHwgYFEke2luZGV4ICsgMX1gLFxuICAgIClcbiAgICBjb25zdCBpZGVhbFdpZHRocyA9IHRhYkhlYWRlcnMubWFwKFxuICAgICAgaGVhZGVyID0+IGNoZWNrYm94V2lkdGggKyBwYWRkaW5nUGVyVGFiICsgc3RyaW5nV2lkdGgoaGVhZGVyKSxcbiAgICApXG5cbiAgICAvLyBDYWxjdWxhdGUgdG90YWwgaWRlYWwgd2lkdGhcbiAgICBjb25zdCB0b3RhbElkZWFsV2lkdGggPSBpZGVhbFdpZHRocy5yZWR1Y2UoKHN1bSwgdykgPT4gc3VtICsgdywgMClcblxuICAgIC8vIElmIGV2ZXJ5dGhpbmcgZml0cywgdXNlIGZ1bGwgaGVhZGVyc1xuICAgIGlmICh0b3RhbElkZWFsV2lkdGggPD0gYXZhaWxhYmxlRm9yVGFicykge1xuICAgICAgcmV0dXJuIHRhYkhlYWRlcnNcbiAgICB9XG5cbiAgICAvLyBOZWVkIHRvIHRydW5jYXRlIC0gcHJpb3JpdGl6ZSBjdXJyZW50IHRhYlxuICAgIGNvbnN0IGN1cnJlbnRIZWFkZXIgPSB0YWJIZWFkZXJzW2N1cnJlbnRRdWVzdGlvbkluZGV4XSB8fCAnJ1xuICAgIGNvbnN0IGN1cnJlbnRJZGVhbFdpZHRoID1cbiAgICAgIGNoZWNrYm94V2lkdGggKyBwYWRkaW5nUGVyVGFiICsgc3RyaW5nV2lkdGgoY3VycmVudEhlYWRlcilcblxuICAgIC8vIE1pbmltdW0gd2lkdGggZm9yIG90aGVyIHRhYnMgKGNoZWNrYm94ICsgcGFkZGluZyArIDEgY2hhciArIGVsbGlwc2lzKVxuICAgIGNvbnN0IG1pbldpZHRoUGVyVGFiID0gY2hlY2tib3hXaWR0aCArIHBhZGRpbmdQZXJUYWIgKyAyIC8vIFwiWOKAplwiXG5cbiAgICAvLyBDYWxjdWxhdGUgc3BhY2UgZm9yIGN1cnJlbnQgdGFiICh0cnkgdG8gc2hvdyBmdWxsIHRleHQpXG4gICAgY29uc3QgY3VycmVudFRhYldpZHRoID0gTWF0aC5taW4oY3VycmVudElkZWFsV2lkdGgsIGF2YWlsYWJsZUZvclRhYnMgLyAyKVxuICAgIGNvbnN0IHJlbWFpbmluZ1dpZHRoID0gYXZhaWxhYmxlRm9yVGFicyAtIGN1cnJlbnRUYWJXaWR0aFxuXG4gICAgLy8gQ2FsY3VsYXRlIHNwYWNlIGZvciBvdGhlciB0YWJzXG4gICAgY29uc3Qgb3RoZXJUYWJDb3VudCA9IHF1ZXN0aW9ucy5sZW5ndGggLSAxXG4gICAgY29uc3Qgd2lkdGhQZXJPdGhlclRhYiA9IE1hdGgubWF4KFxuICAgICAgbWluV2lkdGhQZXJUYWIsXG4gICAgICBNYXRoLmZsb29yKHJlbWFpbmluZ1dpZHRoIC8gTWF0aC5tYXgob3RoZXJUYWJDb3VudCwgMSkpLFxuICAgIClcblxuICAgIHJldHVybiB0YWJIZWFkZXJzLm1hcCgoaGVhZGVyLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGluZGV4ID09PSBjdXJyZW50UXVlc3Rpb25JbmRleCkge1xuICAgICAgICAvLyBDdXJyZW50IHRhYiAtIHNob3cgYXMgbXVjaCBhcyBwb3NzaWJsZVxuICAgICAgICBjb25zdCBtYXhUZXh0V2lkdGggPSBjdXJyZW50VGFiV2lkdGggLSBjaGVja2JveFdpZHRoIC0gcGFkZGluZ1BlclRhYlxuICAgICAgICByZXR1cm4gdHJ1bmNhdGVUb1dpZHRoKGhlYWRlciwgbWF4VGV4dFdpZHRoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gT3RoZXIgdGFicyAtIHRydW5jYXRlIHRvIGZpdFxuICAgICAgICBjb25zdCBtYXhUZXh0V2lkdGggPSB3aWR0aFBlck90aGVyVGFiIC0gY2hlY2tib3hXaWR0aCAtIHBhZGRpbmdQZXJUYWJcbiAgICAgICAgcmV0dXJuIHRydW5jYXRlVG9XaWR0aChoZWFkZXIsIG1heFRleHRXaWR0aClcbiAgICAgIH1cbiAgICB9KVxuICB9LCBbcXVlc3Rpb25zLCBjdXJyZW50UXVlc3Rpb25JbmRleCwgY29sdW1ucywgaGlkZVN1Ym1pdFRhYl0pXG5cbiAgY29uc3QgaGlkZUFycm93cyA9IHF1ZXN0aW9ucy5sZW5ndGggPT09IDEgJiYgaGlkZVN1Ym1pdFRhYlxuXG4gIHJldHVybiAoXG4gICAgPEJveCBmbGV4RGlyZWN0aW9uPVwicm93XCIgbWFyZ2luQm90dG9tPXsxfT5cbiAgICAgIHshaGlkZUFycm93cyAmJiAoXG4gICAgICAgIDxUZXh0IGNvbG9yPXtjdXJyZW50UXVlc3Rpb25JbmRleCA9PT0gMCA/ICdpbmFjdGl2ZScgOiB1bmRlZmluZWR9PlxuICAgICAgICAgIOKGkHsnICd9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgICl9XG4gICAgICB7cXVlc3Rpb25zLm1hcCgocTogUXVlc3Rpb24sIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGluZGV4ID09PSBjdXJyZW50UXVlc3Rpb25JbmRleFxuICAgICAgICBjb25zdCBpc0Fuc3dlcmVkID0gcT8ucXVlc3Rpb24gJiYgISFhbnN3ZXJzW3EucXVlc3Rpb25dXG4gICAgICAgIGNvbnN0IGNoZWNrYm94ID0gaXNBbnN3ZXJlZCA/IGZpZ3VyZXMuY2hlY2tib3hPbiA6IGZpZ3VyZXMuY2hlY2tib3hPZmZcbiAgICAgICAgY29uc3QgZGlzcGxheVRleHQgPVxuICAgICAgICAgIHRhYkRpc3BsYXlUZXh0c1tpbmRleF0gfHwgcT8uaGVhZGVyIHx8IGBRJHtpbmRleCArIDF9YFxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPEJveCBrZXk9e3E/LnF1ZXN0aW9uIHx8IGBxdWVzdGlvbi0ke2luZGV4fWB9PlxuICAgICAgICAgICAge2lzU2VsZWN0ZWQgPyAoXG4gICAgICAgICAgICAgIDxUZXh0IGJhY2tncm91bmRDb2xvcj1cInBlcm1pc3Npb25cIiBjb2xvcj1cImludmVyc2VUZXh0XCI+XG4gICAgICAgICAgICAgICAgeycgJ31cbiAgICAgICAgICAgICAgICB7Y2hlY2tib3h9IHtkaXNwbGF5VGV4dH17JyAnfVxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VGV4dD5cbiAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgIHtjaGVja2JveH0ge2Rpc3BsYXlUZXh0fXsnICd9XG4gICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgIClcbiAgICAgIH0pfVxuICAgICAgeyFoaWRlU3VibWl0VGFiICYmIChcbiAgICAgICAgPEJveCBrZXk9XCJzdWJtaXRcIj5cbiAgICAgICAgICB7Y3VycmVudFF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9ucy5sZW5ndGggPyAoXG4gICAgICAgICAgICA8VGV4dCBiYWNrZ3JvdW5kQ29sb3I9XCJwZXJtaXNzaW9uXCIgY29sb3I9XCJpbnZlcnNlVGV4dFwiPlxuICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICB7ZmlndXJlcy50aWNrfSBTdWJtaXR7JyAnfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8VGV4dD4ge2ZpZ3VyZXMudGlja30gU3VibWl0IDwvVGV4dD5cbiAgICAgICAgICApfVxuICAgICAgICA8L0JveD5cbiAgICAgICl9XG4gICAgICB7IWhpZGVBcnJvd3MgJiYgKFxuICAgICAgICA8VGV4dFxuICAgICAgICAgIGNvbG9yPXtcbiAgICAgICAgICAgIGN1cnJlbnRRdWVzdGlvbkluZGV4ID09PSBxdWVzdGlvbnMubGVuZ3RoID8gJ2luYWN0aXZlJyA6IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgPlxuICAgICAgICAgIHsnICd9XG4gICAgICAgICAg4oaSXG4gICAgICAgIDwvVGV4dD5cbiAgICAgICl9XG4gICAgPC9Cb3g+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLE9BQU8sTUFBTSxTQUFTO0FBQzdCLE9BQU9DLEtBQUssSUFBSUMsT0FBTyxRQUFRLE9BQU87QUFDdEMsU0FBU0MsZUFBZSxRQUFRLG1DQUFtQztBQUNuRSxTQUFTQyxXQUFXLFFBQVEsNkJBQTZCO0FBQ3pELFNBQVNDLEdB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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
1
2
|
import { c as _c } from "react/compiler-runtime";
|
|
2
3
|
import figures from 'figures';
|
|
3
4
|
import React, { useCallback, useState } from 'react';
|
|
@@ -462,4 +463,4 @@ function _temp2(opt) {
|
|
|
462
463
|
function _temp(s) {
|
|
463
464
|
return s.toolPermissionContext.mode;
|
|
464
465
|
}
|
|
465
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwiS2V5Ym9hcmRFdmVudCIsIkJveCIsIlRleHQiLCJ1c2VBcHBTdGF0ZSIsIlF1ZXN0aW9uIiwiUXVlc3Rpb25PcHRpb24iLCJQYXN0ZWRDb250ZW50IiwiZ2V0RXh0ZXJuYWxFZGl0b3IiLCJ0b0lERURpc3BsYXlOYW1lIiwiSW1hZ2VEaW1lbnNpb25zIiwiZWRpdFByb21wdEluRWRpdG9yIiwiT3B0aW9uV2l0aERlc2NyaXB0aW9uIiwiU2VsZWN0IiwiU2VsZWN0TXVsdGkiLCJEaXZpZGVyIiwiRmlsZVBhdGhMaW5rIiwiUGVybWlzc2lvblJlcXVlc3RUaXRsZSIsIlByZXZpZXdRdWVzdGlvblZpZXciLCJRdWVzdGlvbk5hdmlnYXRpb25CYXIiLCJRdWVzdGlvblN0YXRlIiwiUHJvcHMiLCJxdWVzdGlvbiIsInF1ZXN0aW9ucyIsImN1cnJlbnRRdWVzdGlvbkluZGV4IiwiYW5zd2VycyIsIlJlY29yZCIsInF1ZXN0aW9uU3RhdGVzIiwiaGlkZVN1Ym1pdFRhYiIsInBsYW5GaWxlUGF0aCIsInBhc3RlZENvbnRlbnRzIiwibWluQ29udGVudEhlaWdodCIsIm1pbkNvbnRlbnRXaWR0aCIsIm9uVXBkYXRlUXVlc3Rpb25TdGF0ZSIsInF1ZXN0aW9uVGV4dCIsInVwZGF0ZXMiLCJQYXJ0aWFsIiwiaXNNdWx0aVNlbGVjdCIsIm9uQW5zd2VyIiwibGFiZWwiLCJ0ZXh0SW5wdXQiLCJzaG91bGRBZHZhbmNlIiwib25UZXh0SW5wdXRGb2N1cyIsImlzSW5JbnB1dCIsIm9uQ2FuY2VsIiwib25TdWJtaXQiLCJvblRhYlByZXYiLCJvblRhYk5leHQiLCJvblJlc3BvbmRUb0NsYXVkZSIsIm9uRmluaXNoUGxhbkludGVydmlldyIsIm9uSW1hZ2VQYXN0ZSIsImJhc2U2NEltYWdlIiwibWVkaWFUeXBlIiwiZmlsZW5hbWUiLCJkaW1lbnNpb25zIiwic291cmNlUGF0aCIsIm9uUmVtb3ZlSW1hZ2UiLCJpZCIsIlF1ZXN0aW9uVmlldyIsInQwIiwiJCIsIl9jIiwidDEiLCJ1bmRlZmluZWQiLCJpc0luUGxhbk1vZGUiLCJfdGVtcCIsImlzRm9vdGVyRm9jdXNlZCIsInNldElzRm9vdGVyRm9jdXNlZCIsImZvb3RlckluZGV4Iiwic2V0Rm9vdGVySW5kZXgiLCJpc090aGVyRm9jdXNlZCIsInNldElzT3RoZXJGb2N1c2VkIiwidDIiLCJTeW1ib2wiLCJmb3IiLCJlZGl0b3IiLCJlZGl0b3JOYW1lIiwidDMiLCJ2YWx1ZSIsImlzT3RoZXIiLCJoYW5kbGVGb2N1cyIsInQ0IiwiaGFuZGxlRG93bkZyb21MYXN0SXRlbSIsInQ1IiwiaGFuZGxlVXBGcm9tRm9vdGVyIiwidDYiLCJlIiwia2V5IiwiY3RybCIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlS2V5RG93biIsImhhbmRsZU9wZW5FZGl0b3IiLCJ0NyIsInRleHRPcHRpb25zIiwib3B0aW9ucyIsIm1hcCIsIl90ZW1wMiIsInF1ZXN0aW9uU3RhdGUiLCJ0OCIsIm11bHRpU2VsZWN0IiwiY3VycmVudFZhbHVlIiwic2V0VmFsdWUiLCJyZXN1bHQiLCJjb250ZW50IiwidGV4dElucHV0VmFsdWUiLCJ0OSIsInQxMCIsInQxMSIsInZhbHVlXzAiLCJ0MTIiLCJ0eXBlIiwiY29uc3QiLCJwbGFjZWhvbGRlciIsImluaXRpYWxWYWx1ZSIsIm9uQ2hhbmdlIiwib3RoZXJPcHRpb24iLCJoYXNBbnlQcmV2aWV3Iiwic29tZSIsIl90ZW1wMyIsImxlbmd0aCIsInNlbGVjdGVkVmFsdWUiLCJ2YWx1ZXMiLCJpbmNsdWRlcyIsImZpbmFsVmFsdWVzIiwiZmlsdGVyIiwiX3RlbXA0IiwiY29uY2F0IiwidmFsdWVfMSIsInRleHRJbnB1dF8wIiwidDEzIiwidDE0IiwicG9pbnRlciIsInQxNSIsInQxNiIsInQxNyIsInQxOCIsInQxOSIsInQyMCIsInQyMSIsImFycm93VXAiLCJhcnJvd0Rvd24iLCJ0MjIiLCJ0MjMiLCJ0MjQiLCJ0MjUiLCJ0MjYiLCJ2Iiwib3B0XzAiLCJvcHQiLCJwcmV2aWV3IiwiZGVzY3JpcHRpb24iLCJzIiwidG9vbFBlcm1pc3Npb25Db250ZXh0IiwibW9kZSJdLCJzb3VyY2VzIjpbIlF1ZXN0aW9uVmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpZ3VyZXMgZnJvbSAnZmlndXJlcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgS2V5Ym9hcmRFdmVudCB9IGZyb20gJy4uLy4uLy4uL2luay9ldmVudHMva2V5Ym9hcmQtZXZlbnQuanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi8uLi9pbmsuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3N0YXRlL0FwcFN0YXRlLmpzJ1xuaW1wb3J0IHR5cGUge1xuICBRdWVzdGlvbixcbiAgUXVlc3Rpb25PcHRpb24sXG59IGZyb20gJy4uLy4uLy4uL3Rvb2xzL0Fza1VzZXJRdWVzdGlvblRvb2wvQXNrVXNlclF1ZXN0aW9uVG9vbC5qcydcbmltcG9ydCB0eXBlIHsgUGFzdGVkQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbmZpZy5qcydcbmltcG9ydCB7IGdldEV4dGVybmFsRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZWRpdG9yLmpzJ1xuaW1wb3J0IHsgdG9JREVEaXNwbGF5TmFtZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2lkZS5qcydcbmltcG9ydCB0eXBlIHsgSW1hZ2VEaW1lbnNpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaW1hZ2VSZXNpemVyLmpzJ1xuaW1wb3J0IHsgZWRpdFByb21wdEluRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcHJvbXB0RWRpdG9yLmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBPcHRpb25XaXRoRGVzY3JpcHRpb24sXG4gIFNlbGVjdCxcbiAgU2VsZWN0TXVsdGksXG59IGZyb20gJy4uLy4uL0N1c3RvbVNlbGVjdC9pbmRleC5qcydcbmltcG9ydCB7IERpdmlkZXIgfSBmcm9tICcuLi8uLi9kZXNpZ24tc3lzdGVtL0RpdmlkZXIuanMnXG5pbXBvcnQgeyBGaWxlUGF0aExpbmsgfSBmcm9tICcuLi8uLi9GaWxlUGF0aExpbmsuanMnXG5pbXBvcnQgeyBQZXJtaXNzaW9uUmVxdWVzdFRpdGxlIH0gZnJvbSAnLi4vUGVybWlzc2lvblJlcXVlc3RUaXRsZS5qcydcbmltcG9ydCB7IFByZXZpZXdRdWVzdGlvblZpZXcgfSBmcm9tICcuL1ByZXZpZXdRdWVzdGlvblZpZXcuanMnXG5pbXBvcnQgeyBRdWVzdGlvbk5hdmlnYXRpb25CYXIgfSBmcm9tICcuL1F1ZXN0aW9uTmF2aWdhdGlvbkJhci5qcydcbmltcG9ydCB0eXBlIHsgUXVlc3Rpb25TdGF0ZSB9IGZyb20gJy4vdXNlLW11bHRpcGxlLWNob2ljZS1zdGF0ZS5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgcXVlc3Rpb246IFF1ZXN0aW9uXG4gIHF1ZXN0aW9uczogUXVlc3Rpb25bXVxuICBjdXJyZW50UXVlc3Rpb25JbmRleDogbnVtYmVyXG4gIGFuc3dlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgcXVlc3Rpb25TdGF0ZXM6IFJlY29yZDxzdHJpbmcsIFF1ZXN0aW9uU3RhdGU+XG4gIGhpZGVTdWJtaXRUYWI/OiBib29sZWFuXG4gIHBsYW5GaWxlUGF0aD86IHN0cmluZ1xuICBwYXN0ZWRDb250ZW50cz86IFJlY29yZDxudW1iZXIsIFBhc3RlZENvbnRlbnQ+XG4gIG1pbkNvbnRlbnRIZWlnaHQ/OiBudW1iZXJcbiAgbWluQ29udGVudFdpZHRoPzogbnVtYmVyXG4gIG9uVXBkYXRlUXVlc3Rpb25TdGF0ZTogKFxuICAgIHF1ZXN0aW9uVGV4dDogc3RyaW5nLFxuICAgIHVwZGF0ZXM6IFBhcnRpYWw8UXVlc3Rpb25TdGF0ZT4sXG4gICAgaXNNdWx0aVNlbGVjdDogYm9vbGVhbixcbiAgKSA9PiB2b2lkXG4gIG9uQW5zd2VyOiAoXG4gICAgcXVlc3Rpb25UZXh0OiBzdHJpbmcsXG4gICAgbGFiZWw6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgIHRleHRJbnB1dD86IHN0cmluZyxcbiAgICBzaG91bGRBZHZhbmNlPzogYm9vbGVhbixcbiAgKSA9PiB2b2lkXG4gIG9uVGV4dElucHV0Rm9jdXM6IChpc0luSW5wdXQ6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DYW5jZWw6ICgpID0+IHZvaWRcbiAgb25TdWJtaXQ6ICgpID0+IHZvaWRcbiAgb25UYWJQcmV2PzogKCkgPT4gdm9pZFxuICBvblRhYk5leHQ/OiAoKSA9PiB2b2lkXG4gIG9uUmVzcG9uZFRvQ2xhdWRlOiAoKSA9PiB2b2lkXG4gIG9uRmluaXNoUGxhbkludGVydmlldzogKCkgPT4gdm9pZFxuICBvbkltYWdlUGFzdGU/OiAoXG4gICAgYmFzZTY0SW1hZ2U6IHN0cmluZyxcbiAgICBtZWRpYVR5cGU/OiBzdHJpbmcsXG4gICAgZmlsZW5hbWU/OiBzdHJpbmcsXG4gICAgZGltZW5zaW9ucz86IEltYWdlRGltZW5zaW9ucyxcbiAgICBzb3VyY2VQYXRoPzogc3RyaW5nLFxuICApID0+IHZvaWRcbiAgb25SZW1vdmVJbWFnZT86IChpZDogbnVtYmVyKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBRdWVzdGlvblZpZXcoe1xuICBxdWVzdGlvbixcbiAgcXVlc3Rpb25zLFxuICBjdXJyZW50UXVlc3Rpb25JbmRleCxcbiAgYW5zd2VycyxcbiAgcXVlc3Rpb25TdGF0ZXMsXG4gIGhpZGVTdWJtaXRUYWIgPSBmYWxzZSxcbiAgcGxhbkZpbGVQYXRoLFxuICBtaW5Db250ZW50SGVpZ2h0LFxuICBtaW5Db250ZW50V2lkdGgsXG4gIG9uVXBkYXRlUXVlc3Rpb25TdGF0ZSxcbiAgb25BbnN3ZXIsXG4gIG9uVGV4dElucHV0Rm9jdXMsXG4gIG9uQ2FuY2VsLFxuICBvblN1Ym1pdCxcbiAgb25UYWJQcmV2LFxuICBvblRhYk5leHQsXG4gIG9uUmVzcG9uZFRvQ2xhdWRlLFxuICBvbkZpbmlzaFBsYW5JbnRlcnZpZXcsXG4gIG9uSW1hZ2VQYXN0ZSxcbiAgcGFzdGVkQ29udGVudHMsXG4gIG9uUmVtb3ZlSW1hZ2UsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IGlzSW5QbGFuTW9kZSA9IHVzZUFwcFN0YXRlKHMgPT4gcy50b29sUGVybWlzc2lvbkNvbnRleHQubW9kZSkgPT09ICdwbGFuJ1xuICBjb25zdCBbaXNGb290ZXJGb2N1c2VkLCBzZXRJc0Zvb3RlckZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtmb290ZXJJbmRleCwgc2V0Rm9vdGVySW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2lzT3RoZXJGb2N1c2VkLCBzZXRJc090aGVyRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBlZGl0b3IgPSBnZXRFeHRlcm5hbEVkaXRvcigpXG4gIGNvbnN0IGVkaXRvck5hbWUgPSBlZGl0b3IgPyB0b0lERURpc3BsYXlOYW1lKGVkaXRvcikgOiBudWxsXG5cbiAgY29uc3QgaGFuZGxlRm9jdXMgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgaXNPdGhlciA9IHZhbHVlID09PSAnX19vdGhlcl9fJ1xuICAgICAgc2V0SXNPdGhlckZvY3VzZWQoaXNPdGhlcilcbiAgICAgIG9uVGV4dElucHV0Rm9jdXMoaXNPdGhlcilcbiAgICB9LFxuICAgIFtvblRleHRJbnB1dEZvY3VzXSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZURvd25Gcm9tTGFzdEl0ZW0gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNGb290ZXJGb2N1c2VkKHRydWUpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZVVwRnJvbUZvb3RlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRJc0Zvb3RlckZvY3VzZWQoZmFsc2UpXG4gIH0sIFtdKVxuXG4gIC8vIEhhbmRsZSBrZXlib2FyZCBpbnB1dCB3aGVuIGZvb3RlciBpcyBmb2N1c2VkXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0Zvb3RlckZvY3VzZWQpIHJldHVyblxuXG4gICAgICBpZiAoZS5rZXkgPT09ICd1cCcgfHwgKGUuY3RybCAmJiBlLmtleSA9PT0gJ3AnKSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgaWYgKGZvb3RlckluZGV4ID09PSAwKSB7XG4gICAgICAgICAgaGFuZGxlVXBGcm9tRm9vdGVyKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRGb290ZXJJbmRleCgwKVxuICAgICAgICB9XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoZS5rZXkgPT09ICdkb3duJyB8fCAoZS5jdHJsICYmIGUua2V5ID09PSAnbicpKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBpZiAoaXNJblBsYW5Nb2RlICYmIGZvb3RlckluZGV4ID09PSAwKSB7XG4gICAgICAgICAgc2V0Rm9vdGVySW5kZXgoMSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGUua2V5ID09PSAncmV0dXJuJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgaWYgKGZvb3RlckluZGV4ID09PSAwKSB7XG4gICAgICAgICAgb25SZXNwb25kVG9DbGF1ZGUoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uRmluaXNoUGxhbkludGVydmlldygpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChlLmtleSA9PT0gJ2VzY2FwZScpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIG9uQ2FuY2VsKClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGlzRm9vdGVyRm9jdXNlZCxcbiAgICAgIGZvb3RlckluZGV4LFxuICAgICAgaXNJblBsYW5Nb2RlLFxuICAgICAgaGFuZGxlVXBGcm9tRm9vdGVyLFxuICAgICAgb25SZXNwb25kVG9DbGF1ZGUsXG4gICAgICBvbkZpbmlzaFBsYW5JbnRlcnZpZXcsXG4gICAgICBvbkNhbmNlbCxcbiAgICBdLFxuICApXG5cbiAgY29uc3QgdGV4dE9wdGlvbnM6IE9wdGlvbldpdGhEZXNjcmlwdGlvbjxzdHJpbmc+W10gPSBxdWVzdGlvbi5vcHRpb25zLm1hcChcbiAgICAob3B0OiBRdWVzdGlvbk9wdGlvbikgPT4gKHtcbiAgICAgIHR5cGU6ICd0ZXh0JyBhcyBjb25zdCxcbiAgICAgIHZhbHVlOiBvcHQubGFiZWwsXG4gICAgICBsYWJlbDogb3B0LmxhYmVsLFxuICAgICAgZGVzY3JpcHRpb246IG9wdC5kZXNjcmlwdGlvbixcbiAgICB9KSxcbiAgKVxuXG4gIGNvbnN0IHF1ZXN0aW9uVGV4dCA9IHF1ZXN0aW9uLnF1ZXN0aW9uXG4gIGNvbnN0IHF1ZXN0aW9uU3RhdGUgPSBxdWVzdGlvblN0YXRlc1txdWVzdGlvblRleHRdXG5cbiAgY29uc3QgaGFuZGxlT3BlbkVkaXRvciA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChjdXJyZW50VmFsdWU6IHN0cmluZywgc2V0VmFsdWU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBlZGl0UHJvbXB0SW5FZGl0b3IoY3VycmVudFZhbHVlKVxuXG4gICAgICBpZiAocmVzdWx0LmNvbnRlbnQgIT09IG51bGwgJiYgcmVzdWx0LmNvbnRlbnQgIT09IGN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAvLyBVcGRhdGUgdGhlIFNlbGVjdCdzIGludGVybmFsIHN0YXRlIGZvciBpbW1lZGlhdGUgVUkgdXBkYXRlXG4gICAgICAgIHNldFZhbHVlKHJlc3VsdC5jb250ZW50KVxuICAgICAgICAvLyBBbHNvIHVwZGF0ZSB0aGUgcXVlc3Rpb24gc3RhdGUgZm9yIHBlcnNpc3RlbmNlXG4gICAgICAgIG9uVXBkYXRlUXVlc3Rpb25TdGF0ZShcbiAgICAgICAgICBxdWVzdGlvblRleHQsXG4gICAgICAgICAgeyB0ZXh0SW5wdXRWYWx1ZTogcmVzdWx0LmNvbnRlbnQgfSxcbiAgICAgICAgICBxdWVzdGlvbi5tdWx0aVNlbGVjdCA/PyBmYWxzZSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3F1ZXN0aW9uVGV4dCwgb25VcGRhdGVRdWVzdGlvblN0YXRlLCBxdWVzdGlvbi5tdWx0aVNlbGVjdF0sXG4gIClcblxuICBjb25zdCBvdGhlck9wdGlvbjogT3B0aW9uV2l0aERlc2NyaXB0aW9uPHN0cmluZz4gPSB7XG4gICAgdHlwZTogJ2lucHV0JyBhcyBjb25zdCxcbiAgICB2YWx1ZTogJ19fb3RoZXJfXycsXG4gICAgbGFiZWw6ICdPdGhlcicsXG4gICAgcGxhY2Vob2xkZXI6IHF1ZXN0aW9uLm11bHRpU2VsZWN0ID8gJ1R5cGUgc29tZXRoaW5nJyA6ICdUeXBlIHNvbWV0aGluZy4nLFxuICAgIGluaXRpYWxWYWx1ZTogcXVlc3Rpb25TdGF0ZT8udGV4dElucHV0VmFsdWUgPz8gJycsXG4gICAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICBvblVwZGF0ZVF1ZXN0aW9uU3RhdGUoXG4gICAgICAgIHF1ZXN0aW9uVGV4dCxcbiAgICAgICAgeyB0ZXh0SW5wdXRWYWx1ZTogdmFsdWUgfSxcbiAgICAgICAgcXVlc3Rpb24ubXVsdGlTZWxlY3QgPz8gZmFsc2UsXG4gICAgICApXG4gICAgfSxcbiAgfVxuXG4gIGNvbnN0IG9wdGlvbnMgPSBbLi4udGV4dE9wdGlvbnMsIG90aGVyT3B0aW9uXVxuXG4gIC8vIENoZWNrIGlmIGFueSBvcHRpb24gaGFzIGEgcHJldmlldyBhbmQgaXQncyBub3QgbXVsdGktc2VsZWN0XG4gIC8vIFByZXZpZXdzIG9ubHkgc3VwcG9ydGVkIGZvciBzaW5nbGUtc2VsZWN0IHF1ZXN0aW9uc1xuICBjb25zdCBoYXNBbnlQcmV2aWV3ID1cbiAgICAhcXVlc3Rpb24ubXVsdGlTZWxlY3QgJiYgcXVlc3Rpb24ub3B0aW9ucy5zb21lKG9wdCA9PiBvcHQucHJldmlldylcblxuICAvLyBEZWxlZ2F0ZSB0byBQcmV2aWV3UXVlc3Rpb25WaWV3IGZvciBjYXJvdXNlbC1zdHlsZSBwcmV2aWV3IG1vZGVcbiAgaWYgKGhhc0FueVByZXZpZXcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdRdWVzdGlvblZpZXdcbiAgICAgICAgcXVlc3Rpb249e3F1ZXN0aW9ufVxuICAgICAgICBxdWVzdGlvbnM9e3F1ZXN0aW9uc31cbiAgICAgICAgY3VycmVudFF1ZXN0aW9uSW5kZXg9e2N1cnJlbnRRdWVzdGlvbkluZGV4fVxuICAgICAgICBhbnN3ZXJzPXthbnN3ZXJzfVxuICAgICAgICBxdWVzdGlvblN0YXRlcz17cXVlc3Rpb25TdGF0ZXN9XG4gICAgICAgIGhpZGVTdWJtaXRUYWI9e2hpZGVTdWJtaXRUYWJ9XG4gICAgICAgIG1pbkNvbnRlbnRIZWlnaHQ9e21pbkNvbnRlbnRIZWlnaHR9XG4gICAgICAgIG1pbkNvbnRlbnRXaWR0aD17bWluQ29udGVudFdpZHRofVxuICAgICAgICBvblVwZGF0ZVF1ZXN0aW9uU3RhdGU9e29uVXBkYXRlUXVlc3Rpb25TdGF0ZX1cbiAgICAgICAgb25BbnN3ZXI9e29uQW5zd2VyfVxuICAgICAgICBvblRleHRJbnB1dEZvY3VzPXtvblRleHRJbnB1dEZvY3VzfVxuICAgICAgICBvbkNhbmNlbD17b25DYW5jZWx9XG4gICAgICAgIG9uVGFiUHJldj17b25UYWJQcmV2fVxuICAgICAgICBvblRhYk5leHQ9e29uVGFiTmV4dH1cbiAgICAgICAgb25SZXNwb25kVG9DbGF1ZGU9e29uUmVzcG9uZFRvQ2xhdWRlfVxuICAgICAgICBvbkZpbmlzaFBsYW5JbnRlcnZpZXc9e29uRmluaXNoUGxhbkludGVydmlld31cbiAgICAgIC8+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94XG4gICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgIG1hcmdpblRvcD17MH1cbiAgICAgIHRhYkluZGV4PXswfVxuICAgICAgYXV0b0ZvY3VzXG4gICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgPlxuICAgICAge2lzSW5QbGFuTW9kZSAmJiBwbGFuRmlsZVBhdGggJiYgKFxuICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBnYXA9ezB9PlxuICAgICAgICAgIDxEaXZpZGVyIGNvbG9yPVwiaW5hY3RpdmVcIiAvPlxuICAgICAgICAgIDxUZXh0IGNvbG9yPVwiaW5hY3RpdmVcIj5cbiAgICAgICAgICAgIFBsYW5uaW5nOiA8RmlsZVBhdGhMaW5rIGZpbGVQYXRoPXtwbGFuRmlsZVBhdGh9IC8+XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0JveD5cbiAgICAgICl9XG4gICAgICA8Qm94IG1hcmdpblRvcD17LTF9PlxuICAgICAgICA8RGl2aWRlciBjb2xvcj1cImluYWN0aXZlXCIgLz5cbiAgICAgIDwvQm94PlxuICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZ1RvcD17MH0+XG4gICAgICAgIDxRdWVzdGlvbk5hdmlnYXRpb25CYXJcbiAgICAgICAgICBxdWVzdGlvbnM9e3F1ZXN0aW9uc31cbiAgICAgICAgICBjdXJyZW50UXVlc3Rpb25JbmRleD17Y3VycmVudFF1ZXN0aW9uSW5kZXh9XG4gICAgICAgICAgYW5zd2Vycz17YW5zd2Vyc31cbiAgICAgICAgICBoaWRlU3VibWl0VGFiPXtoaWRlU3VibWl0VGFifVxuICAgICAgICAvPlxuICAgICAgICA8UGVybWlzc2lvblJlcXVlc3RUaXRsZSB0aXRsZT17cXVlc3Rpb24ucXVlc3Rpb259IGNvbG9yPXsndGV4dCd9IC8+XG5cbiAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgbWluSGVpZ2h0PXttaW5Db250ZW50SGVpZ2h0fT5cbiAgICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgICB7cXVlc3Rpb24ubXVsdGlTZWxlY3QgPyAoXG4gICAgICAgICAgICAgIDxTZWxlY3RNdWx0aVxuICAgICAgICAgICAgICAgIGtleT17cXVlc3Rpb24ucXVlc3Rpb259XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e1xuICAgICAgICAgICAgICAgICAgcXVlc3Rpb25TdGF0ZXNbcXVlc3Rpb24ucXVlc3Rpb25dPy5zZWxlY3RlZFZhbHVlIGFzXG4gICAgICAgICAgICAgICAgICAgIHwgc3RyaW5nW11cbiAgICAgICAgICAgICAgICAgICAgfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblVwZGF0ZVF1ZXN0aW9uU3RhdGUoXG4gICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgeyBzZWxlY3RlZFZhbHVlOiB2YWx1ZXMgfSxcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHRJbnB1dCA9IHZhbHVlcy5pbmNsdWRlcygnX19vdGhlcl9fJylcbiAgICAgICAgICAgICAgICAgICAgPyBxdWVzdGlvblN0YXRlc1txdWVzdGlvblRleHRdPy50ZXh0SW5wdXRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgY29uc3QgZmluYWxWYWx1ZXMgPSB2YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcih2ID0+IHYgIT09ICdfX290aGVyX18nKVxuICAgICAgICAgICAgICAgICAgICAuY29uY2F0KHRleHRJbnB1dCA/IFt0ZXh0SW5wdXRdIDogW10pXG4gICAgICAgICAgICAgICAgICBvbkFuc3dlcihxdWVzdGlvblRleHQsIGZpbmFsVmFsdWVzLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgb25DYW5jZWw9e29uQ2FuY2VsfVxuICAgICAgICAgICAgICAgIHN1Ym1pdEJ1dHRvblRleHQ9e1xuICAgICAgICAgICAgICAgICAgY3VycmVudFF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9ucy5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgICAgID8gJ1N1Ym1pdCdcbiAgICAgICAgICAgICAgICAgICAgOiAnTmV4dCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25TdWJtaXQ9e29uU3VibWl0fVxuICAgICAgICAgICAgICAgIG9uRG93bkZyb21MYXN0SXRlbT17aGFuZGxlRG93bkZyb21MYXN0SXRlbX1cbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Zvb3RlckZvY3VzZWR9XG4gICAgICAgICAgICAgICAgb25PcGVuRWRpdG9yPXtoYW5kbGVPcGVuRWRpdG9yfVxuICAgICAgICAgICAgICAgIG9uSW1hZ2VQYXN0ZT17b25JbWFnZVBhc3RlfVxuICAgICAgICAgICAgICAgIHBhc3RlZENvbnRlbnRzPXtwYXN0ZWRDb250ZW50c31cbiAgICAgICAgICAgICAgICBvblJlbW92ZUltYWdlPXtvblJlbW92ZUltYWdlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIGtleT17cXVlc3Rpb24ucXVlc3Rpb259XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e1xuICAgICAgICAgICAgICAgICAgcXVlc3Rpb25TdGF0ZXNbcXVlc3Rpb24ucXVlc3Rpb25dPy5zZWxlY3RlZFZhbHVlIGFzXG4gICAgICAgICAgICAgICAgICAgIHwgc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgb25VcGRhdGVRdWVzdGlvblN0YXRlKFxuICAgICAgICAgICAgICAgICAgICBxdWVzdGlvblRleHQsXG4gICAgICAgICAgICAgICAgICAgIHsgc2VsZWN0ZWRWYWx1ZTogdmFsdWUgfSxcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0SW5wdXQgPVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ19fb3RoZXJfXydcbiAgICAgICAgICAgICAgICAgICAgICA/IHF1ZXN0aW9uU3RhdGVzW3F1ZXN0aW9uVGV4dF0/LnRleHRJbnB1dFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIG9uQW5zd2VyKHF1ZXN0aW9uVGV4dCwgdmFsdWUsIHRleHRJbnB1dClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXtvbkNhbmNlbH1cbiAgICAgICAgICAgICAgICBvbkRvd25Gcm9tTGFzdEl0ZW09e2hhbmRsZURvd25Gcm9tTGFzdEl0ZW19XG4gICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17aXNGb290ZXJGb2N1c2VkfVxuICAgICAgICAgICAgICAgIGxheW91dD1cImNvbXBhY3QtdmVydGljYWxcIlxuICAgICAgICAgICAgICAgIG9uT3BlbkVkaXRvcj17aGFuZGxlT3BlbkVkaXRvcn1cbiAgICAgICAgICAgICAgICBvbkltYWdlUGFzdGU9e29uSW1hZ2VQYXN0ZX1cbiAgICAgICAgICAgICAgICBwYXN0ZWRDb250ZW50cz17cGFzdGVkQ29udGVudHN9XG4gICAgICAgICAgICAgICAgb25SZW1vdmVJbWFnZT17b25SZW1vdmVJbWFnZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgey8qIEZvb3RlciBzZWN0aW9uIC0gYWx3YXlzIHZpc2libGUsIHNlcGFyYXRlIGZyb20gU2VsZWN0ICovfVxuICAgICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgPERpdmlkZXIgY29sb3I9XCJpbmFjdGl2ZVwiIC8+XG4gICAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJyb3dcIiBnYXA9ezF9PlxuICAgICAgICAgICAgICB7aXNGb290ZXJGb2N1c2VkICYmIGZvb3RlckluZGV4ID09PSAwID8gKFxuICAgICAgICAgICAgICAgIDxUZXh0IGNvbG9yPVwic3VnZ2VzdGlvblwiPntmaWd1cmVzLnBvaW50ZXJ9PC9UZXh0PlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxUZXh0PiA8L1RleHQ+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgICAgY29sb3I9e1xuICAgICAgICAgICAgICAgICAgaXNGb290ZXJGb2N1c2VkICYmIGZvb3RlckluZGV4ID09PSAwXG4gICAgICAgICAgICAgICAgICAgID8gJ3N1Z2dlc3Rpb24nXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge29wdGlvbnMubGVuZ3RoICsgMX0uIENoYXQgYWJvdXQgdGhpc1xuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgIHtpc0luUGxhbk1vZGUgJiYgKFxuICAgICAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJyb3dcIiBnYXA9ezF9PlxuICAgICAgICAgICAgICAgIHtpc0Zvb3RlckZvY3VzZWQgJiYgZm9vdGVySW5kZXggPT09IDEgPyAoXG4gICAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cInN1Z2dlc3Rpb25cIj57ZmlndXJlcy5wb2ludGVyfTwvVGV4dD5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPFRleHQ+IDwvVGV4dD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgICAgICBjb2xvcj17XG4gICAgICAgICAgICAgICAgICAgIGlzRm9vdGVyRm9jdXNlZCAmJiBmb290ZXJJbmRleCA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgID8gJ3N1Z2dlc3Rpb24nXG4gICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7b3B0aW9ucy5sZW5ndGggKyAyfS4gU2tpcCBpbnRlcnZpZXcgYW5kIHBsYW4gaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgICA8VGV4dCBjb2xvcj1cImluYWN0aXZlXCIgZGltQ29sb3I+XG4gICAgICAgICAgICAgIEVudGVyIHRvIHNlbGVjdCDCt3snICd9XG4gICAgICAgICAgICAgIHtxdWVzdGlvbnMubGVuZ3RoID09PSAxID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7ZmlndXJlcy5hcnJvd1VwfS97ZmlndXJlcy5hcnJvd0Rvd259IHRvIG5hdmlnYXRlXG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgJ1RhYi9BcnJvdyBrZXlzIHRvIG5hdmlnYXRlJ1xuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7aXNPdGhlckZvY3VzZWQgJiYgZWRpdG9yTmFtZSAmJiAoXG4gICAgICAgICAgICAgICAgPD4gwrcgY3RybCtnIHRvIGVkaXQgaW4ge2VkaXRvck5hbWV9PC8+XG4gICAgICAgICAgICAgICl9eycgJ31cbiAgICAgICAgICAgICAgwrcgRXNjIHRvIGNhbmNlbFxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvQm94PlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxPQUFPLE1BQU0sU0FBUztBQUM3QixPQUFPQyxLQUFLLElBQUlDLFdBQVcsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDcEQsY0FBY0MsYUFBYSxRQUFRLHVDQUF1QztBQUMxRSxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxpQkFBaUI7QUFDM0MsU0FBU0MsV0FBVyxRQUFRLDRCQUE0QjtBQUN4RCxjQUNFQyxRQUFRLEVBQ1JDLGNBQWMsUUFDVCwyREFBMkQ7QUFDbEUsY0FBY0MsYUFBYSxRQUFRLDBCQUEwQjtBQUM3RCxTQUFTQyxpQkFBaUIsUUFBUSwwQkFBMEI7QUFDNUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBQ3hELGNBQWNDLGVBQWUsUUFBUSxnQ0FBZ0M7QUFDckUsU0FBU0Msa0JBQWtCLFFBQVEsZ0NBQWdDO0FBQ25FLFNBQ0UsS0FBS0MscUJBQXFCLEVBQzFCQyxNQUFNLEVBQ05DLFdBQVcsUUFDTiw2QkFBNkI7QUFDcEMsU0FBU0MsT0FBTyxRQUFRLGdDQUFnQztBQUN4RCxTQUFTQyxZQUFZLFFBQVEsdUJBQXVCO0FBQ3BELFNBQVNDLHNCQUFzQixRQUFRLDhCQUE4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
|
|
466
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZVN0YXRlIiwiS2V5Ym9hcmRFdmVudCIsIkJveCIsIlRleHQiLCJ1c2VBcHBTdGF0ZSIsIlF1ZXN0aW9uIiwiUXVlc3Rpb25PcHRpb24iLCJQYXN0ZWRDb250ZW50IiwiZ2V0RXh0ZXJuYWxFZGl0b3IiLCJ0b0lERURpc3BsYXlOYW1lIiwiSW1hZ2VEaW1lbnNpb25zIiwiZWRpdFByb21wdEluRWRpdG9yIiwiT3B0aW9uV2l0aERlc2NyaXB0aW9uIiwiU2VsZWN0IiwiU2VsZWN0TXVsdGkiLCJEaXZpZGVyIiwiRmlsZVBhdGhMaW5rIiwiUGVybWlzc2lvblJlcXVlc3RUaXRsZSIsIlByZXZpZXdRdWVzdGlvblZpZXciLCJRdWVzdGlvbk5hdmlnYXRpb25CYXIiLCJRdWVzdGlvblN0YXRlIiwiUHJvcHMiLCJxdWVzdGlvbiIsInF1ZXN0aW9ucyIsImN1cnJlbnRRdWVzdGlvbkluZGV4IiwiYW5zd2VycyIsIlJlY29yZCIsInF1ZXN0aW9uU3RhdGVzIiwiaGlkZVN1Ym1pdFRhYiIsInBsYW5GaWxlUGF0aCIsInBhc3RlZENvbnRlbnRzIiwibWluQ29udGVudEhlaWdodCIsIm1pbkNvbnRlbnRXaWR0aCIsIm9uVXBkYXRlUXVlc3Rpb25TdGF0ZSIsInF1ZXN0aW9uVGV4dCIsInVwZGF0ZXMiLCJQYXJ0aWFsIiwiaXNNdWx0aVNlbGVjdCIsIm9uQW5zd2VyIiwibGFiZWwiLCJ0ZXh0SW5wdXQiLCJzaG91bGRBZHZhbmNlIiwib25UZXh0SW5wdXRGb2N1cyIsImlzSW5JbnB1dCIsIm9uQ2FuY2VsIiwib25TdWJtaXQiLCJvblRhYlByZXYiLCJvblRhYk5leHQiLCJvblJlc3BvbmRUb0NsYXVkZSIsIm9uRmluaXNoUGxhbkludGVydmlldyIsIm9uSW1hZ2VQYXN0ZSIsImJhc2U2NEltYWdlIiwibWVkaWFUeXBlIiwiZmlsZW5hbWUiLCJkaW1lbnNpb25zIiwic291cmNlUGF0aCIsIm9uUmVtb3ZlSW1hZ2UiLCJpZCIsIlF1ZXN0aW9uVmlldyIsInQwIiwiJCIsIl9jIiwidDEiLCJ1bmRlZmluZWQiLCJpc0luUGxhbk1vZGUiLCJfdGVtcCIsImlzRm9vdGVyRm9jdXNlZCIsInNldElzRm9vdGVyRm9jdXNlZCIsImZvb3RlckluZGV4Iiwic2V0Rm9vdGVySW5kZXgiLCJpc090aGVyRm9jdXNlZCIsInNldElzT3RoZXJGb2N1c2VkIiwidDIiLCJTeW1ib2wiLCJmb3IiLCJlZGl0b3IiLCJlZGl0b3JOYW1lIiwidDMiLCJ2YWx1ZSIsImlzT3RoZXIiLCJoYW5kbGVGb2N1cyIsInQ0IiwiaGFuZGxlRG93bkZyb21MYXN0SXRlbSIsInQ1IiwiaGFuZGxlVXBGcm9tRm9vdGVyIiwidDYiLCJlIiwia2V5IiwiY3RybCIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlS2V5RG93biIsImhhbmRsZU9wZW5FZGl0b3IiLCJ0NyIsInRleHRPcHRpb25zIiwib3B0aW9ucyIsIm1hcCIsIl90ZW1wMiIsInF1ZXN0aW9uU3RhdGUiLCJ0OCIsIm11bHRpU2VsZWN0IiwiY3VycmVudFZhbHVlIiwic2V0VmFsdWUiLCJyZXN1bHQiLCJjb250ZW50IiwidGV4dElucHV0VmFsdWUiLCJ0OSIsInQxMCIsInQxMSIsInZhbHVlXzAiLCJ0MTIiLCJ0eXBlIiwiY29uc3QiLCJwbGFjZWhvbGRlciIsImluaXRpYWxWYWx1ZSIsIm9uQ2hhbmdlIiwib3RoZXJPcHRpb24iLCJoYXNBbnlQcmV2aWV3Iiwic29tZSIsIl90ZW1wMyIsImxlbmd0aCIsInNlbGVjdGVkVmFsdWUiLCJ2YWx1ZXMiLCJpbmNsdWRlcyIsImZpbmFsVmFsdWVzIiwiZmlsdGVyIiwiX3RlbXA0IiwiY29uY2F0IiwidmFsdWVfMSIsInRleHRJbnB1dF8wIiwidDEzIiwidDE0IiwicG9pbnRlciIsInQxNSIsInQxNiIsInQxNyIsInQxOCIsInQxOSIsInQyMCIsInQyMSIsImFycm93VXAiLCJhcnJvd0Rvd24iLCJ0MjIiLCJ0MjMiLCJ0MjQiLCJ0MjUiLCJ0MjYiLCJ2Iiwib3B0XzAiLCJvcHQiLCJwcmV2aWV3IiwiZGVzY3JpcHRpb24iLCJzIiwidG9vbFBlcm1pc3Npb25Db250ZXh0IiwibW9kZSJdLCJzb3VyY2VzIjpbIlF1ZXN0aW9uVmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpZ3VyZXMgZnJvbSAnZmlndXJlcydcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgS2V5Ym9hcmRFdmVudCB9IGZyb20gJy4uLy4uLy4uL2luay9ldmVudHMva2V5Ym9hcmQtZXZlbnQuanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi8uLi9pbmsuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3N0YXRlL0FwcFN0YXRlLmpzJ1xuaW1wb3J0IHR5cGUge1xuICBRdWVzdGlvbixcbiAgUXVlc3Rpb25PcHRpb24sXG59IGZyb20gJy4uLy4uLy4uL3Rvb2xzL0Fza1VzZXJRdWVzdGlvblRvb2wvQXNrVXNlclF1ZXN0aW9uVG9vbC5qcydcbmltcG9ydCB0eXBlIHsgUGFzdGVkQ29udGVudCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NvbmZpZy5qcydcbmltcG9ydCB7IGdldEV4dGVybmFsRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvZWRpdG9yLmpzJ1xuaW1wb3J0IHsgdG9JREVEaXNwbGF5TmFtZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2lkZS5qcydcbmltcG9ydCB0eXBlIHsgSW1hZ2VEaW1lbnNpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaW1hZ2VSZXNpemVyLmpzJ1xuaW1wb3J0IHsgZWRpdFByb21wdEluRWRpdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvcHJvbXB0RWRpdG9yLmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBPcHRpb25XaXRoRGVzY3JpcHRpb24sXG4gIFNlbGVjdCxcbiAgU2VsZWN0TXVsdGksXG59IGZyb20gJy4uLy4uL0N1c3RvbVNlbGVjdC9pbmRleC5qcydcbmltcG9ydCB7IERpdmlkZXIgfSBmcm9tICcuLi8uLi9kZXNpZ24tc3lzdGVtL0RpdmlkZXIuanMnXG5pbXBvcnQgeyBGaWxlUGF0aExpbmsgfSBmcm9tICcuLi8uLi9GaWxlUGF0aExpbmsuanMnXG5pbXBvcnQgeyBQZXJtaXNzaW9uUmVxdWVzdFRpdGxlIH0gZnJvbSAnLi4vUGVybWlzc2lvblJlcXVlc3RUaXRsZS5qcydcbmltcG9ydCB7IFByZXZpZXdRdWVzdGlvblZpZXcgfSBmcm9tICcuL1ByZXZpZXdRdWVzdGlvblZpZXcuanMnXG5pbXBvcnQgeyBRdWVzdGlvbk5hdmlnYXRpb25CYXIgfSBmcm9tICcuL1F1ZXN0aW9uTmF2aWdhdGlvbkJhci5qcydcbmltcG9ydCB0eXBlIHsgUXVlc3Rpb25TdGF0ZSB9IGZyb20gJy4vdXNlLW11bHRpcGxlLWNob2ljZS1zdGF0ZS5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgcXVlc3Rpb246IFF1ZXN0aW9uXG4gIHF1ZXN0aW9uczogUXVlc3Rpb25bXVxuICBjdXJyZW50UXVlc3Rpb25JbmRleDogbnVtYmVyXG4gIGFuc3dlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgcXVlc3Rpb25TdGF0ZXM6IFJlY29yZDxzdHJpbmcsIFF1ZXN0aW9uU3RhdGU+XG4gIGhpZGVTdWJtaXRUYWI/OiBib29sZWFuXG4gIHBsYW5GaWxlUGF0aD86IHN0cmluZ1xuICBwYXN0ZWRDb250ZW50cz86IFJlY29yZDxudW1iZXIsIFBhc3RlZENvbnRlbnQ+XG4gIG1pbkNvbnRlbnRIZWlnaHQ/OiBudW1iZXJcbiAgbWluQ29udGVudFdpZHRoPzogbnVtYmVyXG4gIG9uVXBkYXRlUXVlc3Rpb25TdGF0ZTogKFxuICAgIHF1ZXN0aW9uVGV4dDogc3RyaW5nLFxuICAgIHVwZGF0ZXM6IFBhcnRpYWw8UXVlc3Rpb25TdGF0ZT4sXG4gICAgaXNNdWx0aVNlbGVjdDogYm9vbGVhbixcbiAgKSA9PiB2b2lkXG4gIG9uQW5zd2VyOiAoXG4gICAgcXVlc3Rpb25UZXh0OiBzdHJpbmcsXG4gICAgbGFiZWw6IHN0cmluZyB8IHN0cmluZ1tdLFxuICAgIHRleHRJbnB1dD86IHN0cmluZyxcbiAgICBzaG91bGRBZHZhbmNlPzogYm9vbGVhbixcbiAgKSA9PiB2b2lkXG4gIG9uVGV4dElucHV0Rm9jdXM6IChpc0luSW5wdXQ6IGJvb2xlYW4pID0+IHZvaWRcbiAgb25DYW5jZWw6ICgpID0+IHZvaWRcbiAgb25TdWJtaXQ6ICgpID0+IHZvaWRcbiAgb25UYWJQcmV2PzogKCkgPT4gdm9pZFxuICBvblRhYk5leHQ/OiAoKSA9PiB2b2lkXG4gIG9uUmVzcG9uZFRvQ2xhdWRlOiAoKSA9PiB2b2lkXG4gIG9uRmluaXNoUGxhbkludGVydmlldzogKCkgPT4gdm9pZFxuICBvbkltYWdlUGFzdGU/OiAoXG4gICAgYmFzZTY0SW1hZ2U6IHN0cmluZyxcbiAgICBtZWRpYVR5cGU/OiBzdHJpbmcsXG4gICAgZmlsZW5hbWU/OiBzdHJpbmcsXG4gICAgZGltZW5zaW9ucz86IEltYWdlRGltZW5zaW9ucyxcbiAgICBzb3VyY2VQYXRoPzogc3RyaW5nLFxuICApID0+IHZvaWRcbiAgb25SZW1vdmVJbWFnZT86IChpZDogbnVtYmVyKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBRdWVzdGlvblZpZXcoe1xuICBxdWVzdGlvbixcbiAgcXVlc3Rpb25zLFxuICBjdXJyZW50UXVlc3Rpb25JbmRleCxcbiAgYW5zd2VycyxcbiAgcXVlc3Rpb25TdGF0ZXMsXG4gIGhpZGVTdWJtaXRUYWIgPSBmYWxzZSxcbiAgcGxhbkZpbGVQYXRoLFxuICBtaW5Db250ZW50SGVpZ2h0LFxuICBtaW5Db250ZW50V2lkdGgsXG4gIG9uVXBkYXRlUXVlc3Rpb25TdGF0ZSxcbiAgb25BbnN3ZXIsXG4gIG9uVGV4dElucHV0Rm9jdXMsXG4gIG9uQ2FuY2VsLFxuICBvblN1Ym1pdCxcbiAgb25UYWJQcmV2LFxuICBvblRhYk5leHQsXG4gIG9uUmVzcG9uZFRvQ2xhdWRlLFxuICBvbkZpbmlzaFBsYW5JbnRlcnZpZXcsXG4gIG9uSW1hZ2VQYXN0ZSxcbiAgcGFzdGVkQ29udGVudHMsXG4gIG9uUmVtb3ZlSW1hZ2UsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IGlzSW5QbGFuTW9kZSA9IHVzZUFwcFN0YXRlKHMgPT4gcy50b29sUGVybWlzc2lvbkNvbnRleHQubW9kZSkgPT09ICdwbGFuJ1xuICBjb25zdCBbaXNGb290ZXJGb2N1c2VkLCBzZXRJc0Zvb3RlckZvY3VzZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtmb290ZXJJbmRleCwgc2V0Rm9vdGVySW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2lzT3RoZXJGb2N1c2VkLCBzZXRJc090aGVyRm9jdXNlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCBlZGl0b3IgPSBnZXRFeHRlcm5hbEVkaXRvcigpXG4gIGNvbnN0IGVkaXRvck5hbWUgPSBlZGl0b3IgPyB0b0lERURpc3BsYXlOYW1lKGVkaXRvcikgOiBudWxsXG5cbiAgY29uc3QgaGFuZGxlRm9jdXMgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgaXNPdGhlciA9IHZhbHVlID09PSAnX19vdGhlcl9fJ1xuICAgICAgc2V0SXNPdGhlckZvY3VzZWQoaXNPdGhlcilcbiAgICAgIG9uVGV4dElucHV0Rm9jdXMoaXNPdGhlcilcbiAgICB9LFxuICAgIFtvblRleHRJbnB1dEZvY3VzXSxcbiAgKVxuXG4gIGNvbnN0IGhhbmRsZURvd25Gcm9tTGFzdEl0ZW0gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0SXNGb290ZXJGb2N1c2VkKHRydWUpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZVVwRnJvbUZvb3RlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRJc0Zvb3RlckZvY3VzZWQoZmFsc2UpXG4gIH0sIFtdKVxuXG4gIC8vIEhhbmRsZSBrZXlib2FyZCBpbnB1dCB3aGVuIGZvb3RlciBpcyBmb2N1c2VkXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKCFpc0Zvb3RlckZvY3VzZWQpIHJldHVyblxuXG4gICAgICBpZiAoZS5rZXkgPT09ICd1cCcgfHwgKGUuY3RybCAmJiBlLmtleSA9PT0gJ3AnKSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgaWYgKGZvb3RlckluZGV4ID09PSAwKSB7XG4gICAgICAgICAgaGFuZGxlVXBGcm9tRm9vdGVyKClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRGb290ZXJJbmRleCgwKVxuICAgICAgICB9XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBpZiAoZS5rZXkgPT09ICdkb3duJyB8fCAoZS5jdHJsICYmIGUua2V5ID09PSAnbicpKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBpZiAoaXNJblBsYW5Nb2RlICYmIGZvb3RlckluZGV4ID09PSAwKSB7XG4gICAgICAgICAgc2V0Rm9vdGVySW5kZXgoMSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGUua2V5ID09PSAncmV0dXJuJykge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgaWYgKGZvb3RlckluZGV4ID09PSAwKSB7XG4gICAgICAgICAgb25SZXNwb25kVG9DbGF1ZGUoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uRmluaXNoUGxhbkludGVydmlldygpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChlLmtleSA9PT0gJ2VzY2FwZScpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIG9uQ2FuY2VsKClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIGlzRm9vdGVyRm9jdXNlZCxcbiAgICAgIGZvb3RlckluZGV4LFxuICAgICAgaXNJblBsYW5Nb2RlLFxuICAgICAgaGFuZGxlVXBGcm9tRm9vdGVyLFxuICAgICAgb25SZXNwb25kVG9DbGF1ZGUsXG4gICAgICBvbkZpbmlzaFBsYW5JbnRlcnZpZXcsXG4gICAgICBvbkNhbmNlbCxcbiAgICBdLFxuICApXG5cbiAgY29uc3QgdGV4dE9wdGlvbnM6IE9wdGlvbldpdGhEZXNjcmlwdGlvbjxzdHJpbmc+W10gPSBxdWVzdGlvbi5vcHRpb25zLm1hcChcbiAgICAob3B0OiBRdWVzdGlvbk9wdGlvbikgPT4gKHtcbiAgICAgIHR5cGU6ICd0ZXh0JyBhcyBjb25zdCxcbiAgICAgIHZhbHVlOiBvcHQubGFiZWwsXG4gICAgICBsYWJlbDogb3B0LmxhYmVsLFxuICAgICAgZGVzY3JpcHRpb246IG9wdC5kZXNjcmlwdGlvbixcbiAgICB9KSxcbiAgKVxuXG4gIGNvbnN0IHF1ZXN0aW9uVGV4dCA9IHF1ZXN0aW9uLnF1ZXN0aW9uXG4gIGNvbnN0IHF1ZXN0aW9uU3RhdGUgPSBxdWVzdGlvblN0YXRlc1txdWVzdGlvblRleHRdXG5cbiAgY29uc3QgaGFuZGxlT3BlbkVkaXRvciA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChjdXJyZW50VmFsdWU6IHN0cmluZywgc2V0VmFsdWU6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBlZGl0UHJvbXB0SW5FZGl0b3IoY3VycmVudFZhbHVlKVxuXG4gICAgICBpZiAocmVzdWx0LmNvbnRlbnQgIT09IG51bGwgJiYgcmVzdWx0LmNvbnRlbnQgIT09IGN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAvLyBVcGRhdGUgdGhlIFNlbGVjdCdzIGludGVybmFsIHN0YXRlIGZvciBpbW1lZGlhdGUgVUkgdXBkYXRlXG4gICAgICAgIHNldFZhbHVlKHJlc3VsdC5jb250ZW50KVxuICAgICAgICAvLyBBbHNvIHVwZGF0ZSB0aGUgcXVlc3Rpb24gc3RhdGUgZm9yIHBlcnNpc3RlbmNlXG4gICAgICAgIG9uVXBkYXRlUXVlc3Rpb25TdGF0ZShcbiAgICAgICAgICBxdWVzdGlvblRleHQsXG4gICAgICAgICAgeyB0ZXh0SW5wdXRWYWx1ZTogcmVzdWx0LmNvbnRlbnQgfSxcbiAgICAgICAgICBxdWVzdGlvbi5tdWx0aVNlbGVjdCA/PyBmYWxzZSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3F1ZXN0aW9uVGV4dCwgb25VcGRhdGVRdWVzdGlvblN0YXRlLCBxdWVzdGlvbi5tdWx0aVNlbGVjdF0sXG4gIClcblxuICBjb25zdCBvdGhlck9wdGlvbjogT3B0aW9uV2l0aERlc2NyaXB0aW9uPHN0cmluZz4gPSB7XG4gICAgdHlwZTogJ2lucHV0JyBhcyBjb25zdCxcbiAgICB2YWx1ZTogJ19fb3RoZXJfXycsXG4gICAgbGFiZWw6ICdPdGhlcicsXG4gICAgcGxhY2Vob2xkZXI6IHF1ZXN0aW9uLm11bHRpU2VsZWN0ID8gJ1R5cGUgc29tZXRoaW5nJyA6ICdUeXBlIHNvbWV0aGluZy4nLFxuICAgIGluaXRpYWxWYWx1ZTogcXVlc3Rpb25TdGF0ZT8udGV4dElucHV0VmFsdWUgPz8gJycsXG4gICAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICBvblVwZGF0ZVF1ZXN0aW9uU3RhdGUoXG4gICAgICAgIHF1ZXN0aW9uVGV4dCxcbiAgICAgICAgeyB0ZXh0SW5wdXRWYWx1ZTogdmFsdWUgfSxcbiAgICAgICAgcXVlc3Rpb24ubXVsdGlTZWxlY3QgPz8gZmFsc2UsXG4gICAgICApXG4gICAgfSxcbiAgfVxuXG4gIGNvbnN0IG9wdGlvbnMgPSBbLi4udGV4dE9wdGlvbnMsIG90aGVyT3B0aW9uXVxuXG4gIC8vIENoZWNrIGlmIGFueSBvcHRpb24gaGFzIGEgcHJldmlldyBhbmQgaXQncyBub3QgbXVsdGktc2VsZWN0XG4gIC8vIFByZXZpZXdzIG9ubHkgc3VwcG9ydGVkIGZvciBzaW5nbGUtc2VsZWN0IHF1ZXN0aW9uc1xuICBjb25zdCBoYXNBbnlQcmV2aWV3ID1cbiAgICAhcXVlc3Rpb24ubXVsdGlTZWxlY3QgJiYgcXVlc3Rpb24ub3B0aW9ucy5zb21lKG9wdCA9PiBvcHQucHJldmlldylcblxuICAvLyBEZWxlZ2F0ZSB0byBQcmV2aWV3UXVlc3Rpb25WaWV3IGZvciBjYXJvdXNlbC1zdHlsZSBwcmV2aWV3IG1vZGVcbiAgaWYgKGhhc0FueVByZXZpZXcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdRdWVzdGlvblZpZXdcbiAgICAgICAgcXVlc3Rpb249e3F1ZXN0aW9ufVxuICAgICAgICBxdWVzdGlvbnM9e3F1ZXN0aW9uc31cbiAgICAgICAgY3VycmVudFF1ZXN0aW9uSW5kZXg9e2N1cnJlbnRRdWVzdGlvbkluZGV4fVxuICAgICAgICBhbnN3ZXJzPXthbnN3ZXJzfVxuICAgICAgICBxdWVzdGlvblN0YXRlcz17cXVlc3Rpb25TdGF0ZXN9XG4gICAgICAgIGhpZGVTdWJtaXRUYWI9e2hpZGVTdWJtaXRUYWJ9XG4gICAgICAgIG1pbkNvbnRlbnRIZWlnaHQ9e21pbkNvbnRlbnRIZWlnaHR9XG4gICAgICAgIG1pbkNvbnRlbnRXaWR0aD17bWluQ29udGVudFdpZHRofVxuICAgICAgICBvblVwZGF0ZVF1ZXN0aW9uU3RhdGU9e29uVXBkYXRlUXVlc3Rpb25TdGF0ZX1cbiAgICAgICAgb25BbnN3ZXI9e29uQW5zd2VyfVxuICAgICAgICBvblRleHRJbnB1dEZvY3VzPXtvblRleHRJbnB1dEZvY3VzfVxuICAgICAgICBvbkNhbmNlbD17b25DYW5jZWx9XG4gICAgICAgIG9uVGFiUHJldj17b25UYWJQcmV2fVxuICAgICAgICBvblRhYk5leHQ9e29uVGFiTmV4dH1cbiAgICAgICAgb25SZXNwb25kVG9DbGF1ZGU9e29uUmVzcG9uZFRvQ2xhdWRlfVxuICAgICAgICBvbkZpbmlzaFBsYW5JbnRlcnZpZXc9e29uRmluaXNoUGxhbkludGVydmlld31cbiAgICAgIC8+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94XG4gICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgIG1hcmdpblRvcD17MH1cbiAgICAgIHRhYkluZGV4PXswfVxuICAgICAgYXV0b0ZvY3VzXG4gICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgPlxuICAgICAge2lzSW5QbGFuTW9kZSAmJiBwbGFuRmlsZVBhdGggJiYgKFxuICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIiBnYXA9ezB9PlxuICAgICAgICAgIDxEaXZpZGVyIGNvbG9yPVwiaW5hY3RpdmVcIiAvPlxuICAgICAgICAgIDxUZXh0IGNvbG9yPVwiaW5hY3RpdmVcIj5cbiAgICAgICAgICAgIFBsYW5uaW5nOiA8RmlsZVBhdGhMaW5rIGZpbGVQYXRoPXtwbGFuRmlsZVBhdGh9IC8+XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0JveD5cbiAgICAgICl9XG4gICAgICA8Qm94IG1hcmdpblRvcD17LTF9PlxuICAgICAgICA8RGl2aWRlciBjb2xvcj1cImluYWN0aXZlXCIgLz5cbiAgICAgIDwvQm94PlxuICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgcGFkZGluZ1RvcD17MH0+XG4gICAgICAgIDxRdWVzdGlvbk5hdmlnYXRpb25CYXJcbiAgICAgICAgICBxdWVzdGlvbnM9e3F1ZXN0aW9uc31cbiAgICAgICAgICBjdXJyZW50UXVlc3Rpb25JbmRleD17Y3VycmVudFF1ZXN0aW9uSW5kZXh9XG4gICAgICAgICAgYW5zd2Vycz17YW5zd2Vyc31cbiAgICAgICAgICBoaWRlU3VibWl0VGFiPXtoaWRlU3VibWl0VGFifVxuICAgICAgICAvPlxuICAgICAgICA8UGVybWlzc2lvblJlcXVlc3RUaXRsZSB0aXRsZT17cXVlc3Rpb24ucXVlc3Rpb259IGNvbG9yPXsndGV4dCd9IC8+XG5cbiAgICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCIgbWluSGVpZ2h0PXttaW5Db250ZW50SGVpZ2h0fT5cbiAgICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgICB7cXVlc3Rpb24ubXVsdGlTZWxlY3QgPyAoXG4gICAgICAgICAgICAgIDxTZWxlY3RNdWx0aVxuICAgICAgICAgICAgICAgIGtleT17cXVlc3Rpb24ucXVlc3Rpb259XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e1xuICAgICAgICAgICAgICAgICAgcXVlc3Rpb25TdGF0ZXNbcXVlc3Rpb24ucXVlc3Rpb25dPy5zZWxlY3RlZFZhbHVlIGFzXG4gICAgICAgICAgICAgICAgICAgIHwgc3RyaW5nW11cbiAgICAgICAgICAgICAgICAgICAgfCB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh2YWx1ZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBvblVwZGF0ZVF1ZXN0aW9uU3RhdGUoXG4gICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uVGV4dCxcbiAgICAgICAgICAgICAgICAgICAgeyBzZWxlY3RlZFZhbHVlOiB2YWx1ZXMgfSxcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRleHRJbnB1dCA9IHZhbHVlcy5pbmNsdWRlcygnX19vdGhlcl9fJylcbiAgICAgICAgICAgICAgICAgICAgPyBxdWVzdGlvblN0YXRlc1txdWVzdGlvblRleHRdPy50ZXh0SW5wdXRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgY29uc3QgZmluYWxWYWx1ZXMgPSB2YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcih2ID0+IHYgIT09ICdfX290aGVyX18nKVxuICAgICAgICAgICAgICAgICAgICAuY29uY2F0KHRleHRJbnB1dCA/IFt0ZXh0SW5wdXRdIDogW10pXG4gICAgICAgICAgICAgICAgICBvbkFuc3dlcihxdWVzdGlvblRleHQsIGZpbmFsVmFsdWVzLCB1bmRlZmluZWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgb25DYW5jZWw9e29uQ2FuY2VsfVxuICAgICAgICAgICAgICAgIHN1Ym1pdEJ1dHRvblRleHQ9e1xuICAgICAgICAgICAgICAgICAgY3VycmVudFF1ZXN0aW9uSW5kZXggPT09IHF1ZXN0aW9ucy5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgICAgID8gJ1N1Ym1pdCdcbiAgICAgICAgICAgICAgICAgICAgOiAnTmV4dCdcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25TdWJtaXQ9e29uU3VibWl0fVxuICAgICAgICAgICAgICAgIG9uRG93bkZyb21MYXN0SXRlbT17aGFuZGxlRG93bkZyb21MYXN0SXRlbX1cbiAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXtpc0Zvb3RlckZvY3VzZWR9XG4gICAgICAgICAgICAgICAgb25PcGVuRWRpdG9yPXtoYW5kbGVPcGVuRWRpdG9yfVxuICAgICAgICAgICAgICAgIG9uSW1hZ2VQYXN0ZT17b25JbWFnZVBhc3RlfVxuICAgICAgICAgICAgICAgIHBhc3RlZENvbnRlbnRzPXtwYXN0ZWRDb250ZW50c31cbiAgICAgICAgICAgICAgICBvblJlbW92ZUltYWdlPXtvblJlbW92ZUltYWdlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPFNlbGVjdFxuICAgICAgICAgICAgICAgIGtleT17cXVlc3Rpb24ucXVlc3Rpb259XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e1xuICAgICAgICAgICAgICAgICAgcXVlc3Rpb25TdGF0ZXNbcXVlc3Rpb24ucXVlc3Rpb25dPy5zZWxlY3RlZFZhbHVlIGFzXG4gICAgICAgICAgICAgICAgICAgIHwgc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgIHwgdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgb25VcGRhdGVRdWVzdGlvblN0YXRlKFxuICAgICAgICAgICAgICAgICAgICBxdWVzdGlvblRleHQsXG4gICAgICAgICAgICAgICAgICAgIHsgc2VsZWN0ZWRWYWx1ZTogdmFsdWUgfSxcbiAgICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0SW5wdXQgPVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ19fb3RoZXJfXydcbiAgICAgICAgICAgICAgICAgICAgICA/IHF1ZXN0aW9uU3RhdGVzW3F1ZXN0aW9uVGV4dF0/LnRleHRJbnB1dFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIG9uQW5zd2VyKHF1ZXN0aW9uVGV4dCwgdmFsdWUsIHRleHRJbnB1dClcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXtvbkNhbmNlbH1cbiAgICAgICAgICAgICAgICBvbkRvd25Gcm9tTGFzdEl0ZW09e2hhbmRsZURvd25Gcm9tTGFzdEl0ZW19XG4gICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17aXNGb290ZXJGb2N1c2VkfVxuICAgICAgICAgICAgICAgIGxheW91dD1cImNvbXBhY3QtdmVydGljYWxcIlxuICAgICAgICAgICAgICAgIG9uT3BlbkVkaXRvcj17aGFuZGxlT3BlbkVkaXRvcn1cbiAgICAgICAgICAgICAgICBvbkltYWdlUGFzdGU9e29uSW1hZ2VQYXN0ZX1cbiAgICAgICAgICAgICAgICBwYXN0ZWRDb250ZW50cz17cGFzdGVkQ29udGVudHN9XG4gICAgICAgICAgICAgICAgb25SZW1vdmVJbWFnZT17b25SZW1vdmVJbWFnZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgey8qIEZvb3RlciBzZWN0aW9uIC0gYWx3YXlzIHZpc2libGUsIHNlcGFyYXRlIGZyb20gU2VsZWN0ICovfVxuICAgICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICAgICAgPERpdmlkZXIgY29sb3I9XCJpbmFjdGl2ZVwiIC8+XG4gICAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJyb3dcIiBnYXA9ezF9PlxuICAgICAgICAgICAgICB7aXNGb290ZXJGb2N1c2VkICYmIGZvb3RlckluZGV4ID09PSAwID8gKFxuICAgICAgICAgICAgICAgIDxUZXh0IGNvbG9yPVwic3VnZ2VzdGlvblwiPntmaWd1cmVzLnBvaW50ZXJ9PC9UZXh0PlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxUZXh0PiA8L1RleHQ+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgICAgY29sb3I9e1xuICAgICAgICAgICAgICAgICAgaXNGb290ZXJGb2N1c2VkICYmIGZvb3RlckluZGV4ID09PSAwXG4gICAgICAgICAgICAgICAgICAgID8gJ3N1Z2dlc3Rpb24nXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge29wdGlvbnMubGVuZ3RoICsgMX0uIENoYXQgYWJvdXQgdGhpc1xuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgIHtpc0luUGxhbk1vZGUgJiYgKFxuICAgICAgICAgICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJyb3dcIiBnYXA9ezF9PlxuICAgICAgICAgICAgICAgIHtpc0Zvb3RlckZvY3VzZWQgJiYgZm9vdGVySW5kZXggPT09IDEgPyAoXG4gICAgICAgICAgICAgICAgICA8VGV4dCBjb2xvcj1cInN1Z2dlc3Rpb25cIj57ZmlndXJlcy5wb2ludGVyfTwvVGV4dD5cbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPFRleHQ+IDwvVGV4dD5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgICAgICBjb2xvcj17XG4gICAgICAgICAgICAgICAgICAgIGlzRm9vdGVyRm9jdXNlZCAmJiBmb290ZXJJbmRleCA9PT0gMVxuICAgICAgICAgICAgICAgICAgICAgID8gJ3N1Z2dlc3Rpb24nXG4gICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7b3B0aW9ucy5sZW5ndGggKyAyfS4gU2tpcCBpbnRlcnZpZXcgYW5kIHBsYW4gaW1tZWRpYXRlbHlcbiAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgICA8Qm94IG1hcmdpblRvcD17MX0+XG4gICAgICAgICAgICA8VGV4dCBjb2xvcj1cImluYWN0aXZlXCIgZGltQ29sb3I+XG4gICAgICAgICAgICAgIEVudGVyIHRvIHNlbGVjdCDCt3snICd9XG4gICAgICAgICAgICAgIHtxdWVzdGlvbnMubGVuZ3RoID09PSAxID8gKFxuICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICB7ZmlndXJlcy5hcnJvd1VwfS97ZmlndXJlcy5hcnJvd0Rvd259IHRvIG5hdmlnYXRlXG4gICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgJ1RhYi9BcnJvdyBrZXlzIHRvIG5hdmlnYXRlJ1xuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICB7aXNPdGhlckZvY3VzZWQgJiYgZWRpdG9yTmFtZSAmJiAoXG4gICAgICAgICAgICAgICAgPD4gwrcgY3RybCtnIHRvIGVkaXQgaW4ge2VkaXRvck5hbWV9PC8+XG4gICAgICAgICAgICAgICl9eycgJ31cbiAgICAgICAgICAgICAgwrcgRXNjIHRvIGNhbmNlbFxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgIDwvQm94PlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvQm94PlxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxPQUFPLE1BQU0sU0FBUztBQUM3QixPQUFPQyxLQUFLLElBQUlDLFdBQVcsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDcEQsY0FBY0MsYUFBYSxRQUFRLHVDQUF1QztBQUMxRSxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxpQkFBaUI7QUFDM0MsU0FBU0MsV0FBVyxRQUFRLDRCQUE0QjtBQUN4RCxjQUNFQyxRQUFRLEVBQ1JDLGNBQWMsUUFDVCwyREFBMkQ7QUFDbEUsY0FBY0MsYUFBYSxRQUFRLDBCQUEwQjtBQUM3RCxTQUFTQyxpQkFBaUIsUUFBUSwwQkFBMEI7QUFDNUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBQ3hELGNBQWNDLGVBQWUsUUFBUSxnQ0FBZ0M7QUFDckUsU0FBU0Msa0JBQWtCLFFBQVEsZ0NBQWdDO0FBQ25FLFNBQ0UsS0FBS0MscUJBQXFCLEVBQzFCQyxNQUFNLEVBQ05DLFdBQVcsUUFDTiw2QkFBNkI7QUFDcEMsU0FBU0MsT0FBTyxRQUFRLGdDQUFnQztBQUN4RCxTQUFTQyxZQUFZLFFBQVEsdUJBQXVCO0FBQ3BELFNBQVNDLHNCQUFzQixRQUFRLDhCQUE4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
|